BizHawk
BizHawk copied to clipboard
B3313 (SM64 ROM Hack) - Game Crashes after File Select Screen (Official v1.0)
Summary
The newest version of the Super Mario 64 ROM Hack, B3313, crashes upon choosing a file in the file select screen. B3313 just recieved it's newest update recently in the form of the "abandoned v1.0" release, otherwise known as v0.9. The previous version, v0.7 is fully playable in BizHawk, but this new version is just not working for whatever reason... Is it because the ROM file size it's too big and Mupen can't just handle it? It is a 98 MB ROM after all. This is a problem I've been having with the Mupen64Plus core, and it doesn't matter which plugin I use, not even Angrylion is safe. (and no I can't test on Ares64, the core just doesn't work on my really old computer.) I don't have this issue when using Project64 though, as the game plays just fine. Game is also playable on Parallel Launcher.
Also want to point out that the current, official v1.0 update still doesn't run here.
Repro
- Open BizHawk and load a ROM
- Load the B3313 ROM (for me it is called b3313_abandoned.z64)
- After the ROM is loaded, skip Mario's face screen and pick any file in the file select screen.
Output
It should throw you this screen:
Host env.
- BizHawk 2.9; Win10 Pro; Intel
- BizHawk dev build at d8ea454; Win10 Pro; Intel
It will probably take a core update to fix this. Can you check on the standalone Mupen64Plus?
Also, is this new revision console-compatible?
I did tried using standalone Mupen and even the latest Mupen-rr, and it has the same issue, but with a black screen instead.
Also I'm not sure if this is console compatible either, I can't really test that personally.
This issue appears to also occur on Ares64.
FIXED
The problem is that the memory limit for ROMs provided to Mupen only allows up to 64MB, B3313.z64 is 96MB.
This problem can be fixed (Currently only on the Windows 64-bit Release) by way of using a hex editor to change mupen64plus.dll. Only one octet needs to be changed, 0x4BC0 - the value being changed from ffffff03 to ffffff0f. (Solution sourced from https://youtube.com/watch?v=vCP-rqroZvo)
This change does work, and the current release of Mupen for Windows platforms works with Wine - at least version wine-6.0.3 (Ubuntu 6.0.3~repack-1).
It can be performed on most GNU/Linux machines with xxd using the following steps to edit the line:
-
Step One: use the following command in the mupen64plus Window's root folder to extract the binary file to an editable dump file:
xxd mupen64plus.dll > mupen64plus.dump -
Step Two: Use a Text Editor of your choice to access line 1213; listed in the dump file as:
00004BC0 -
Step Three: Edit the data in this line from
ffff ff03toffff ff0f. This increases the maximum file size of ROMs used by Mupen from 64MB to 256MB, the maximum available. -
Step Four: Use the following command to patch the binary/.dll file with our changes merged in:
xxd -r mupen64plus.dump > mupen64plus.dll
FIXED
The problem is that the memory limit for ROMs provided to Mupen only allows up to 64MB, B3313.z64 is 96MB.
This problem can be fixed (Currently only on the Windows 32-bit Release) by way of using a hex editor to change
mupen64plus.dll. Only one line needs to be changed,0x4BC0- the value being changed from ```ffffff03toffffff0f``. (Solution sourced from https://youtube.com/watch?v=vCP-rqroZvo)This change does work, and the current release of Mupen for Windows platforms works with Wine - at least version
wine-6.0.3 (Ubuntu 6.0.3~repack-1).It can be performed on most GNU/Linux machines with
xxdusing the following steps to edit the line:
- Step One: use the following command in the mupen64plus Window's root folder to extract the binary file to an editable dump file:
xxd mupen64plus.dll > mupen64plus.dump- Step Two: Use a Text Editor of your choice to access line 1213; listed in the dump file as:
00004BC0- Step Three: Edit the data in this line from
ffff ff03toffff ff0f. This increases the maximum file size of ROMs used by Mupen from 64MB to 256MB, the maximum available.- Step Four: Use the following command to patch the binary/.dll file with our changes merged in:
xxd -r mupen64plus.dump > mupen64plus.dll
For whatever reaseon, BizHawk's Ares64 core suffers from the same problem. Somehow, the 64MB limit from Mupen64Plus was carried into Ares64 core. Upstream Ares works just fine though.