- DONE: Fix C++ CPU_SHUTDOWN - Get/Set Byte/Word. - DONE: Pitch modulation. - DONE: Asm version NMI/IRQ problem. - DONE: 16 bit support to tile redraw code. - DONE: Write test for FIR filter code. - DONE: Puzzle Bobble and mode 4 - is mode 4 offset per tile? Yes. - DONE: Why doesn't the speech work properly in the MK* series, it used to in older versions? (Watches for ENVX to reach a particular value). - DONE: Hi res mode. - DONE: interlace mode. - DONE: Make envx reading switchable. - DONE: Add my improved ROM type detection code. - DONE: Snapshot to be called at anytime. - DONE: Hi-res with interlace graphics mode. - DONE: Finish mode 4 offset-per-tile support (Puzzle Bobble) - DONE: Fix 8-bit sound code. - DONE: Fix old-style joypad access via 0x4016 and 0x4017. - DONE: Remove gfx.cpp once transparency is working - DONE: Colour addition/subtraction (#2 attempt). - DONE: Build array to show what areas of memory are ROM - routine to build WriteMap array could use it. Also cheat code could use it. - DONE: Save ROM values before applying cheats. - DONE: Move command line parsing from unix.cpp into snes9x.cpp. - DONE: Change snapshot code so it can be called at any time - will need flag to stop graphics code rendering screen. - DONE: Improve hi-res support. - DONE: Add/sub support to tile redraw code. - DONE: Analyze ROM format of other copy of Yoshi's Island - DOOM could be in same format. - DONE: Add CPU_SHUTDOWN to asm version. - DONE: Fix WAI instruction on asm version not to skip SPC700 instructions. - DONE: Asm version crashes with X-Men Gem Wars. - DONE: Fix asm MainLoop to correctly setup flags and PC's in structures so snapshot saving works. - DONE: extern "C" all structures accessed by the asm code. - DONE: Fix sprite vertical scaling on a hi-res. interlaced screen. - DONE: Portable snapshot format. - DONE: AND, XOR and X-NOR graphics window combination modes. - DONE: Colour window. - DONE: Add mouse and SuperScope support. - DONE: Add GrIP support. - DONE: Add Micro$oft Sidewinder support. - DONE: Change DOS port to use new allegro v3.0 library. - DONE: Fix game genie codes support. - DONE: Replace printfs with more general output function. - DONE: Trigger sound register changes during/in sync with sound processing. - Exact sound CPU and sound generation sychronisation. - Write 65c816 test ROM. - Ignore ADRS value setting if channel is key'ed off. - Mode 6 - offset per tile, hi-res and interlace. - Change 65c816 code to only use _Zero flag rather than _Zero and _Negative. - Script to convert AT&T format code to NASM. - SyncSpeed broken when very slow frame drawing in use - hi-res. interlace. - Seems to be problem with Linux. - DONE: Replicate SNES ROM image throught ROM memory range. - Improve portability of code. - Change DOS port to use the SEAL sound library to get greater sound card compatibility. - Re-write graphics and sound code in assembler. - GUI on the DOS port. - Fix mosaic effect on hi-res. modes. - DONE: Add fixed colour addition on the hi-res. modes. - DONE: Revisit ROM loading code to see if can improve ROM type detection. - DONE: Clear old screen area if SNES screen changes size - coolworld changes from 239 to 224 lines. Graphics: - DONE: Mode 7 128 colour, priority-per-pixel mode. (Winter Skiing) - Mosaic effect and mode 7. (Street Fighter 2) - Mosaic effect and hi-res. - Mode 6 scroll offset-per-pixel and hi-res. - DONE: Fixed colour addition/subtraction on modes 2, 4 and 6 (hi-res.) - DONE: Mode 2, 4 and 6 horizontal scroll offset-per-pixel. (Chrono Trigger) - Full 15-bit colour addition/subtraction rather than the current 13-bit code. - DONE: Correct pixel priority when background is on both sub and main screens and colour transparency effects are switched on. - Pseudo 512 horizontal resolution (interpolation). Sound DSP/SPC700: - A few SPC700 instructions missing or their exact function not known: BRK, DAA, DAS and DIV. - Re-write SPC700 code in assembler (#2 attempt) - DONE Cycle counting on SPC700 emulation. 65c816: - Cycle counting not exact for some addressing modes. - 6502 emulation mode not fully supported. - Change 65c816 code to only increment PC after instruction has executed - makes CPU_SHUTDOWN code slightly simpler and might be faster. - Multiple versions of main loop - avoids repeated SPC700 and SA-1 enabled flag tests at expense jsr rather than jmp to instruction emulation code. DSP1: - Mostly not working. SA1: - Completely missing. - Finish the SuperFX emulation. DONE: Reshedule HTimer trigger - not testing if enabled.