Added to new test version:
http://64drive.retroactive.be/menu.bin
Seems to work, I tested with Kirby. When the NES > 64 SRAM is selected, it triggers a save writeback as expected, and reloads on the next boot from menu.
Thank you for the super-fast implementation into the menu!
I have noticed a few audio bugs, mostly when starting Kirby (I haven't tested others) I have no sound, then if I bring up the L+R menu I hear an increasingly loud broken screech, then Kirby music plays when I unpause.
I tested three different Kirby roms and can sadly not reproduce the lack of sound after initialization, strange. Maybe a bad rom or one of the non-deterministic bugs hcs mentions in his notes. Sometimes the emulator does not load the rom at all for me, but very rare case. The loud screech/crackle happens on a lot of roms. Not sure what causes it. Might look into it, but the pre calculated hex tables for sound in atables.inc have zero comments so no promises.
Also a suggestion: for some reason Neon64 by default has the VI dither filter turned on. This could not only free up ram bandwidth but also make things look less splotchy.
Thanks again, I added the change to NTSC and PAL mode. Even so I see zero difference on my tiny debugging TV, with my bad eyes. Your dog with the four asian girls and two blue cups still looks sharper
New features in version 0.3
- RSP backup code
- SRAM savestate errorhandling
- NES Graphics Compiler Cache invalidation
- disable dither filter (thx marshallh)
- small fixes
Detailed changelog will follow later. Will be the last fast update for the time being due to work. Thanks to the added RSP backup and cache invalidation the permanent savestates fully work in Super Mario Bros. 1 and 3. In other games loading, killing yourself once and loading again can restore the cache. This works e.g. in Super Mario Bros. 2, Contra, Kirby, Metroid and Megamen. The emulator is obviously not designed to get its entire pattern table cache deleted between two frames. So the results will vary depending on the game. But the described strategy should work for most games.
Resetting back to 64drive menu would also be nice via L+R menu, but since the N64 seems to support no software triggered reset according to the NMI docs this seems not feasible to realize for now.