redacted173 / sd2snes

SD card based multi-purpose cartridge for the SNES
http://sd2snes.de
GNU General Public License v2.0
79 stars 2 forks source link

Mega Man V crashes to the "Licenced by Nintendo" screen #3

Closed rhythm-g closed 4 years ago

rhythm-g commented 4 years ago

Selecting Mercury or Neptune on the stage select makes the game crash and go back to the "licensed by nintendo" screen.

Firmware: 1.10.3_sgb01 SD2SNES Rev. F

severthesestrings commented 4 years ago

Are you sure that's correct? On my Pro Mars and Venus work, but it's Mercury and Neptune that crash.

rhythm-g commented 4 years ago

It's Mercury and Neptune. Was a typo.

juraisa commented 4 years ago

can confirm this behavior as well, using sgb01 release, someone on discord confirmed that it does not happen on the actual SGB2 hardware

Nigoli commented 4 years ago

The Japanese version also has the same issue. I'm sure that fixing it would make both regions work.

redacted173 commented 4 years ago

Returning from an interrupt with RETI needs to bypass IME to instruction fetch. Without this a CALL/RST could push to the stack between interrupts. This resulted in the stack overflowing in MMV. Fixed in commit below, but this exposes other bugs in different games.

b2e6464ca02c0579b86a5bef6aa088ef2a5919f1

Nigoli commented 4 years ago

Mega Man V - Rockman World 5 Fix.zip

I hope this helps. This should allow the game to run on SD2SNES SGB2, as well as any single booting flash cart that had problems booting the game properly. Works with all regions and hacks of the game.

Goldanas commented 4 years ago

Looks like this issue is addressed in the sgb02 release for me. Even using hacks like Roll-Chan World V, it seems to work as intended when loading up Mercury, etc.

rhythm-g commented 4 years ago

The issue seems fixed here in the SGB02 release. Thanks!