Changes for 1.04.030 - Added Reset Game Support - Added Load/Save Position Support - Added autoresume after loadstate support - Added autoresume after savestate support - Split options into display, sound, and system panels - Allow full selection of bitrates for sound (8khz to 48khz) - Exposed the following sound options: sync sound enable echo stereo reverse stereo interpolate sound envelope height reading alt sound decode fix frequency - Exposed show frame rate option - Changed orientation of spinner controls for frameskip - Changed orientation of spinner controls for cycles - Fixed lagging delayed joystick input issues - Fixed joystick support for many games (Donkey Kong, Syndicate etc) - Added support for landscape right and landscape right stretched (needs review) - Sound now works consistently on iPaq39xx INTERNAL CHANGES for 1.04.030: - Rolled blitter thread back into S9xDeInitUpdate - Spawned S9xMainLoop as a 50ms quantum thread (fixed lagging input) - Rewrote port.h - Global Scratchpad vars now declared locally (10% speedup) - Some global vars promoted to 32 bit (20% speedup) - Consolidation of sa1 vs cpu structures (COMPLETED) SA1 uses SRegisters struct (COMPLETED) SA1 Struct Split into SA1ICPU and SA1CPUState (COMPLETED) Placed PC reg first in SRegisters, speed increase (COMPLETED) Placed *S9xOpCodes first in struct def, speed increase (COMPLETED) SA1ICPU and ICPU have same struct def (COMPLETED) SA1CPUState and CPUState have same struct def (COMPLETED) A1, APU and CPU all use same structs!, speed increase (COMPLETED) Update defs for 16c814.h to reference passed structs - Chain-Pass struct addresses to ICPU, SCPUState and SRegisters (COMPLETED) for cpu and sa1 cpu (COMPLETED) Substantial speed increases once passed struct refs propagated into functions (COMPLETED) Verify that all CPU, ICPU, and Register refs are updated to scpu, icpu, and reg (COMPLETED) All Ops use passed struct references CPU and SA1 - CPU Core Address modes using defines - SetZN16/8 functions using defines - SPC700 Core overhauled - SAPURegisters struct rearranged -- PC on top - APU_EXECUTE now passes values PENDING: - Check Sub Op CPU functions for struct passing candidates vs defines, faster or slower? - Apply CPU overhaul structs to PPU - Apply CPU overhaul struct to SuperFX Ops - Apply CPU overhaul struct to APU - *RESEARCH revise structs, place most used item first on list for speed increase - *RESEARCH any speed dif from passing all three structs vs variable structs? - Complete migration to 32bit values (COMPLETED) global all bool8 to bool8_32 SRegisters to 32bit *EVALUATE ppu.h structs for conversion to 32 bit - Implement Freezefile Support - Implement UseDir Support for files - Implement Recent Games List Support - Implement Cheats Support - Implement NetPlay Support - Implement True Profiler sub millisecond resolution penter/pexit type function call for all functions use defines for penter/pexit grouped by module (cpu, apu, ppu, dsp, sa1 etc) track execute time, total execute time upon application exit, spit out function name, total calls, total calltime, average calltime - Complete local Var Defs for spc700.cpp - Consolidate all global vars used g_b... into GUI structure - Experiment with chain-passing cpu context using __fastcall to reduce reads - Memory ram segments to 32 bit - Possibility of separating R.A.W R.AL R.AH into 32 bits with manual combining per op?