Here’s what I’ve been working on in the meantime:
- More refactorings of the menu ROM. This will facilitate further UI development (sub-menus etc.)
- NMI+IRQ hook routine – these are required for WRAM cheats and in-game reset. The latter is in working state as of now. I’d like some input on which key combinations would be desirable ;-) (some conflicts can arise with existing SNES mods, see below). There is now a dedicated memory area in FPGA block RAM mapped to $2a00-$2aff which is used for the hook routine and command exchange between a running game and the sd2snes main CPU.
- Game loading handshake between SNES menu and sd2snes CPU – this is a technical prerequisite for error handling (such as missing supplementary files, write-protected SD Card, etc.)
- LED blink codes for file system errors – e.g. in case the SRM file cannot be saved this will tell you that something’s gone wrong. Also the sd2snes will retry saving until it works so you have the chance to swap out the SD Card etc.
- “Screen saver” – the screen is darkened after some idle time to reduce wear on CRT and plasma screens.
- Memory sharing between SNES and the sd2snes CPU is greatly simplified (The FSM is reduced to only 5 states instead of 18) and timing is more relaxed. This should help with stability on a wider range of consoles.
- Fixed some compatibility issues with a number of games. (Super Play Action Football (S-RTC interference), GP1 Part II (WRAM initialization), Human Grand Prix (mapper detection bug))
To do for the upcoming release:
- Cheat management – technical prerequisites for cheats (ROM+WRAM) are met, now to code the GUI for it…
- Finish on-the-fly file browsing
- Decide on key combinations for in-game functions. (en/disable cheats, kill cheat engine, reset game, reset to menu)
About key combinations:
I wanted to use combinations that don’t interfere with my SNES IGR mod. This mod uses L+R+Select in combination with Start, A, B, X, or Y to perform different operations. In that scenario I still had the four directional buttons left to put other functions on. However :D With borti4938’s release of the feature-enriched uIGR these are now taken.
So far this is my new proposal for key combinations (UPDATED 2014-06-24):
|L+R+Select+X||Reset to sd2snes menu|
|L+R+Start+Y||Kill in-game routines (in case they interfere with game operation).|
Updated to reflect some of your suggestions. Already looks better to me. I steered clear of L+R+Start+X because it’s similar to L+R+Select+X. ;)