TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.19k stars 384 forks source link

Gambatte memory corruption bug #3519

Closed getCursorsExe closed 1 year ago

getCursorsExe commented 1 year ago

To reproduce: Create a savestate while in GB mode Switch to SGB mode Load that savestate in GB mode. The core memory gets corrupted. If the game supports SGB functions, hard reset the game (don't reboot core). You can't do it vice versa, because this will crash BizHawk.

getCursorsExe commented 1 year ago

I think I will call this "SGB in GBC".

CasualPokePlayer commented 1 year ago

No ""memory corruption"" ever occurs here. If you load in a GB state in SGB mode, it largely ends up working (although side effects occur due to the sudden system shift, like everything is noticably black as there aren't any SGB palettes loaded now since of course a GB state has those blank, so you don't see anything until you hard reset and they (eventually) get set by the game).

If you do it vice versa, you just get this soon after (it's not related to hard reset at all anyways) image as you shifted it back internally to GB mode, so SGB specific functions explicitly fail). This is intentional behavior.

I'm going to close this as no actual ""memory corruption"" bug occurs, the core just gets into a weird state due to the user mismanaging states. Changing sync settings like this and loading states should just be expected not to work exactly sometimes.

getCursorsExe commented 1 year ago

Whoops, I just got confused. Also you can't make controller inputs in this state.