TASEmulators / desmume

DeSmuME is a Nintendo DS emulator
http://desmume.org
GNU General Public License v2.0
3.01k stars 550 forks source link

zoids saga detects save is corrupt if cheats are enabled #100

Closed SoraHjort closed 7 years ago

SoraHjort commented 7 years ago

I've ran into several games (The most recent being Zoids Saga DS), where upon loading the rom it will detect the save is corrupted if you have any cheat turned on. (In Zoids Saga DS's case: Max Money) Saving while cheats are turned on don't corrupt the save, only upon loading. I don't really recall what previous games I've ran into this issue, I think one of them might have been a Digimon title but I can't be sure. Which, it was a good thing I remembered that after racking my brain on it for an hour...

Anyway, these cheats had been tested on actual carts with out these issues cropping up. At the very least it would be nice to have a toggle option that disables cheats on rom load/reset

zeromus commented 7 years ago
02294F50 0098967F
023540A4 0098967F

We won't be adding the obscure option you requested which nobody will understand the significance of but you. Instead, we'll be figuring out why this cheat breaks the game's loading verification. Maybe there is some condition where the cheats should not be running, which we aren't emulating. Or maybe it's just an unlucky timing.

"These cheats had been tested on actual carts with out these issues cropping up" says who?

Notably, I see this cheat listed online sometimes without the 023540A4 part listed, and that's the part that corrupts the save. Are you sure a broken cheat didn't get accidentally propagated and taken as gospel? Perhaps the one-code version was propagated afterwards when someone realized they'd made an error releasing the two-code version?

SoraHjort commented 7 years ago

"These cheats had been tested on actual carts with out these issues cropping up" says who?

I do, since I imported the actual cart years ago. The same money cheat does not trigger the corruption on actual hardware, only in the emulator. (Using a Action Replay DSi to use the cheat for the curious)

The code I used in the emulator is the two parter as well. So it isn't the lack of the second part triggering it.

This also doesn't explain why I've ran into similar issues with other games. So this isn't an isolated case to just Zoids Saga DS. I don't have time at the moment to go through my list to find out which specific, I'll see if I can do that later tonight though and will submit a edit or reply to give additional information on which ones.

zeromus commented 7 years ago

The only thing this has to do with similar bugs in other games is that the codes may have been made by the same author using the same risky technique, or other games may be using the same engine and be vulnerable to the same risky technique.

The game doesn't even load the money into the 023540A4 address. I have no idea why the code references that address.

SoraHjort commented 7 years ago

Well it seems you may have a point that the person who posted those codes may have done something odd. I managed to track down official AR codes through the Action Replay DSi app, (which comes with a JP code list) and found one for money. Which was one code, which I decided to delve into the matter a bit more. Though there was one thing I found odd about the official code listings, and that was the cheat list was bare bones in it's selection but that's neither here nor there on this topic.

After that I dug around and dusted my Action Replay DSi just to find out just what codes I was using years ago. Turns out the one I was using was also just one code. So it turns out I have had infact been using the wrong code. And my previous statements of it being tested on hardware are now voided by this.

I was also unable to locate which previous game I had also ran into this issue, possibly on a computer I do not have current access to. Though I have a feeling I might run into the same conclusion as to what ended up here for that one as well.

So I apologize for making this mistake and wasting time.