Closed codebase7 closed 3 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?
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.
I'm having trouble reproducing this. It seems to be working fine for me.
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.
Seems more likely a bad dump than an OS issue.
Except my dump due to the device used to dump the cart, is an overdump.
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.
I'm going to try the Windows version on Wine.
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
What are the hashes (MD5, SHA-1, etc, whatever) of your ROM? I think you may have a bad dump.
File: MURASAME_FNMJ00.gba CRC-32: 2cc7a10a MD4: 260ad6341fe9cf19e126c4ca540c9e47 MD5: 84c4ed515c3e569ac91b08513c9a3691 SHA-1: 0b8320dc59189483105e651527186c20bd51d3a6
Yeah, my SHA-1 is 0100d4e94c30adf73cd6082b89911dedf723ecd5, which means we have different ROMs. Let me see what no-intro says.
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.
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.
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.
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.
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.
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?)
I think I first implemented bank mirroring in 0.5.0, so that might be it.
doesnt freeze for me this can be closed
We all agree that GoodGBA's Famicom Mini - Vol. 22 - Nazo no Murasamejou (J) is actually a underdump. @endrift, could you close this?
Yes, this ROM is supposed to be a 4 MiB dump.
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.