Game fixes for GDSF7 real-time saving

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Game fixes for GDSF7 real-time saving
by on (#60427)
Addams Family Values freezes when you use the real-time save (RTS) feature on the Game Doctor SF-7. After restoring, the first time the game tries to do anything sound-related, it hangs. This patches the game to not hang, by having it detect a timeout and re-sync with the APU. After restoring, the first time a sound effect plays, the game will hang for a quarter second, then start working normally. The RTS feature helps make this tedious game less-so.

I did find one way to still get it to hang: do a save in-game, then reset the game and restore at the Ocean logo. Then sound effects will be screwed up, and it will hang when it changes songs at the game over screen, possibly sooner. So when restoring a save after resetting, get to the title screen and start a new game first.

Also, I put the patch over I think some of the French text. Apologies to French-speaking players.

Any better place to post this?

addams_family_values_us_rts.ips

Apply IPS patch to unheadered Addams Family Values US version.

CRC-32 before: 98b07db8
CRC-32 after: 64768f95

by on (#60456)
That's cool. I have fixes I made for some SNES games to run on a GDSF7 as well, if anyone would be interested. Assuming I still have the ROMs.

They were for:
Rock 'n Roll Racing
SimCity 2000
Puzzle Bobble (complains I have a European SNES, probably because it's running on an SNES clone).

ucon64 at the time didn't seem to fix any of those, but it was a while back too. The other 2 just didn't start, no advanced hacking involved like this Adams Family one must have required, heheh.

I never could get the the game Super Fire Pro Wrestling Premium X (what a name huh?) to save for some reason. Really annoyed me. It had a 32kB save file. Mario Paint always seemed OK, and it was 32kB as well I believe.

by on (#60458)
The real-time save feature is really cool. Apparently it snoops bus accesses and keeps track of the last writes to PPU and other registers, and then when you press the right controller buttons, it sees these via the snooped controller reads, and THEN intercepts the game. So it should have zero impact on the game until you first save/restore state. But of course it can't save and restore the APU, so many games' sound effects don't work after restoring. It seems the common problem is a sequence number they use in their communication protocol with the APU, which gets out of sync with the APU sound driver. I'm now fixing Super Ghouls and Ghosts' sound driver in the same way. It's too bad, but I don't see any way this can be gotten around without specific patches to each game. It makes these hard/tedious games more playable.

by on (#60478)
I've put up a few more (Mega Man 7, Super Ghouls and Ghosts, and Zombies Ate My Neighbors): gdsf7_rts_fixes/

My god, these Ocean games are so badly programmed. In Jurassic Park 2, rather than using a sound effect routine that the rest of the code calls, apparently each place a sound effect is used it directly communicates with the APU. There are probably around 80 instances of this. This one will be a real chore to patch.

by on (#60479)
blargg wrote:
My god, these Ocean games are so badly programmed. In Jurassic Park 2, it looks like their sound effect play routine was a macro

I believe unrolls like that are called "DRM".