3

Why do my Wario games go crazy unless I uncheck "Do not change battery save" in VBA-M?

I tried to google this to no avail but I'm not entirely sure how to describe this so bear with me as I'm not particularly knowledgeable when it comes to emulation.

I've been playing Wario Land: Super Mario Land 3 and now Wario Land 2. In both cases the game seemed fine until I saved state and then reloaded, after which it looked like the game's physics would go haywire (see screenshot), Wario falling through the floor and back down from the ceiling, etc.

I used to play other games in the past, including various GB/GBC/GBA Pokemon games, Magi Nation, Golden Sun and others, and none of them behaved like that.

What's the reason for this? How do I know which game's ROM will require changing this emulator option? Why wouldn't the emulator detect such requirements on its own?

screenshot

1 Answer 1

5

So I did some research into the issue. Came across this github issue:

https://github.com/visualboyadvance-m/visualboyadvance-m/issues/1184

This summarizes what is happening:

These games are using part of the SRAM memory as game RAM, and basically not using the GB's own memory at all, so upon loading the state with the do not restore battery data option set you're getting the CPU state loaded and referencing whatever the cart's boot state has put into SRAM .

Essentially these games are using hardware tricks to use some of the game SRAM memory as RAM. Now when you load the save state it's not reloading the full state with "Do not change battery save" enabled, but just RAM. Since it then does not load the SRAM portion the game's logic gets corrupt and weird stuff happens.

So the reason why the emulator doesn't detect this automatically is there's not really an easy way to detect if a game is doing this or not. I guess they could keep a list of known games but I'm not on the emulator team so I'm not entirely sure if there's a reason they don't.

3
  • 2
    worth noting that "keeping a list of games with behavior x" is an extremely common tactic for emulator development, especially when game carts may include specialty hardware, generally referred to as "quirks". I couldn't find any for visualboy advance, but from the dolphin docs: Disable Bounding Box - Five games use Bounding Box emulation, and Dolphin automatically enables this setting for all of those games. Commented Aug 30 at 7:59
  • 1
    Thank you! I'll have to try and remember this. Unless I change the emulator I use, I guess :)
    – JakeP
    Commented Aug 30 at 9:40
  • @Themoonisacheese I think because the use case is loading a save state won't impact your save game data, since they are using part of the SRAM as RAM doing this for some games would impact how save game data works for these games which could be just as bad for some other use cases
    – Halfwarr
    Commented Sep 6 at 6:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.