mgba-emu / mgba

mGBA Game Boy Advance Emulator
https://mgba.io/
Mozilla Public License 2.0
5.42k stars 747 forks source link

Regression: Famicom Mini - Vol. 22 - Nazo no Murasamejou (J) freezes after a few seconds of game play. #482

Closed codebase7 closed 3 years ago

codebase7 commented 7 years ago

Famicom Mini - Vol. 22 - Nazo no Murasamejou works normally in the menus, when starting a new game however, the game will lock up after a few seconds of gameplay. (It locks when the BGM passes the initial beat and begins playing the high notes that signal the start of the BGM loop.) The game is fully playable to that point, but considering it's only enough time to move one screen over, the bug renders the game unplayable.

endrift commented 7 years ago

You say this is a regression, but you don't say when it first stopped working, nor when it used to work. Can I get that info?

codebase7 commented 7 years ago

Sorry. The last working version is 0.4.1. It broke in release 0.5.0, and is still broken in the current release 0.5.1.

endrift commented 7 years ago

I'm having trouble reproducing this. It seems to be working fine for me.

Zombie-Ryushu commented 7 years ago

I have tested this on Linux, and it appears not to happen on mgba 0.5.0 and 0.5.1 on Linux build. However end user was using Windows at the time this bug occurred. It may possibly be something related to the Windows build.

endrift commented 7 years ago

Seems more likely a bad dump than an OS issue.

Zombie-Ryushu commented 7 years ago

Except my dump due to the device used to dump the cart, is an overdump.

endrift commented 7 years ago

There's more than one way to have a bad dump :P But yeah you can try trimming it to the right size to see if the issue arises. My dump is the right size, so idk.

Zombie-Ryushu commented 7 years ago

I'm going to try the Windows version on Wine.

codebase7 commented 7 years ago

After enabling the logging this is outputted to the log after the freeze, with the memory offset increasing constantly:

[GAME ERROR] GBA Memory: Bad memory Load32: 0x1D652F74 [GAME ERROR] GBA Memory: Bad memory Load32: 0x1D652F7C [GAME ERROR] GBA Memory: Bad memory Load32: 0x1D652F84 [GAME ERROR] GBA Memory: Bad memory Load32: 0x1D652F8C [GAME ERROR] GBA Memory: Bad memory Load32: 0x1D652F94 [GAME ERROR] GBA Memory: Bad memory Load32: 0x1D652F9C [GAME ERROR] GBA Memory: Bad memory Load32: 0x1D652FA4 [GAME ERROR] GBA Memory: Bad memory Load32: 0x1D652FAC [GAME ERROR] GBA Memory: Bad memory Load32: 0x1D652FB4

endrift commented 7 years ago

What are the hashes (MD5, SHA-1, etc, whatever) of your ROM? I think you may have a bad dump.

codebase7 commented 7 years ago

File: MURASAME_FNMJ00.gba CRC-32: 2cc7a10a MD4: 260ad6341fe9cf19e126c4ca540c9e47 MD5: 84c4ed515c3e569ac91b08513c9a3691 SHA-1: 0b8320dc59189483105e651527186c20bd51d3a6

endrift commented 7 years ago

Yeah, my SHA-1 is 0100d4e94c30adf73cd6082b89911dedf723ecd5, which means we have different ROMs. Let me see what no-intro says.

codebase7 commented 7 years ago

If I knew the size of the ROM, I could trim it manually if needed via a hexeditor, but I have no idea what it's size is. Alternatively, I could attempt to redump the ROM, as I have the cart.

endrift commented 7 years ago

No-Intro says the ROM is supposed to be 4194304 bytes. You might have an overdump in that case. Try trimming it and seeing if it matches and/or works then.

codebase7 commented 7 years ago

1.00 MB (1,048,576 bytes) according to mine, odd the Apr 3 2016 version of GoodGBA seems to be ok with it:

You have 1 of 37145 known Nintendo Game Boy Advance ROMS (V3.27)

Famicom Mini - Vol. 22 - Nazo no Murasamejou (J)

I guess I'll try a redump then.

codebase7 commented 7 years ago

OK so a redump at 4.00 MB (4,194,304 bytes) with checksums:

File: MURASAME_FNMJ00.gba CRC-32: 8233349c MD4: f36e545cd9b39d5e00fd7a43ff9996db MD5: e559a4743a79fb5374872d758c3c67b2 SHA-1: 0100d4e94c30adf73cd6082b89911dedf723ecd5

Results in GoodGBA returning it as an overdump:

You have 2 of 37145 known Nintendo Game Boy Advance ROMS (V3.27)

Famicom Mini - Vol. 22 - Nazo no Murasamejou (J) [o1] Famicom Mini - Vol. 22 - Nazo no Murasamejou (J)

The overdump works, post version 0.5.0 while the non-overdump fails. Odd.

endrift commented 7 years ago

Looking at it in a hex editor, it doesn't LOOK like an overdump, so I'd be wary of GoodGBA's data on this one.

codebase7 commented 7 years ago

That's what I think too, although I wonder what caused the underdump to work without any visible issue prior to version 0.5.0? Something missing 3/4th s of it's data shouldn't really run to begin with, but apparently it wasn't an issue until 0.5.0. I'm just wondering if it's really an underdump or if GoodGBA knows something we don't. (Bank mirroring maybe?)

endrift commented 7 years ago

I think I first implemented bank mirroring in 0.5.0, so that might be it.

benderscruffy commented 4 years ago

doesnt freeze for me this can be closed

Testsr commented 3 years ago

We all agree that GoodGBA's Famicom Mini - Vol. 22 - Nazo no Murasamejou (J) is actually a underdump. @endrift, could you close this?

endrift commented 3 years ago

Yes, this ROM is supposed to be a 4 MiB dump.