So for example if I run the Pinball Fantasies preview and click Hack Menu the menu never appears.
Is it just Pinball Fantasies, or was it failing to start up with other games too? (examples appreciated, so I can test).
Whereas with other games it took a while for it to appear. Not sure if this is because I’m using a C4CPC cart as didn’t test without.
Slow depends a bit on your microSD card speed. When the hack menu is activated, memory will be written to the microSD. With a class 10 microSD card which I use, this takes about 1 second all in all.
It may take longer with older microSD's, which may be the reason for the slowness you experince?
One further piece of feedback is that shifted characters on the number keys don’t appear to work. Some of my snapshot file names have brackets so I couldn’t type those file names as shift+8 just generates an 8.
Yup, I only added one keymap so far (it's all lowlevel, not using the CPC firmware), so no checking for shift or lowercase characters.
Great starting point though and a great dev tool ultimately for debug like the HackIt for Siren Software back in the day.
Thanks. Guess it's more like the multiface 2 in the way it works.
The method goes like this:
When "Hack Menu" is activated, NMI is triggered along with RAMDIS and ROMDIS and M4 maps the lowerrom/ram area with its own dynamic rom "hack rom" (containing the menu code, save code etc).
Z80 registers are stored via M4 commands to the hack rom (hence dynamic) and 16 bytes of ram is used aswell (0xFFF0) as this is thrashed anyway when using the sna loader.
CRTC, Gate Array, PSG, Romsel and PPI registers are watched by the M4 core handler when the CPC is running at all time, and copied into the hack rom, when the NMI is triggered.
At entry RAM is saved to a temporary file, so the menu can use the screen to show registeres, menu options etc.
At exit, RAM is reloaded and a minimal exit routine is written to 0xFFF0 (so both upper and lower roms can be disabled if RMR had them disabled) that resumes the game/whatever was running.