Make sure your issue doesn't get closed! Make sure you have done the following items
I posted about this in the Discord server, but I figured it is worth mentioning here too. N64 games larger than 64 MB appear to not work. I noticed this with the ROM hack B3313 version 1.0.2 (note: the download is to a patch file, not a ROM).
This is known in other emulators and has a bit of a writeup at https://docs.chlorobyte.me/2023/mupen_readme/. B3313 is 96 MB, exceeding the 64 MB limit. The other cores in emulatorjs do not help either (if loaded by an HTML outside of the demo where I can specify the core used). This is not an issue with B3313 otherwise as it works in other emulators like RMG. Also, earlier builds of B3313 that conform to the file size do work perfectly fine.
Attempting to boot larger games like this gives me these errors in the console:
emulator.min.js:1 Failed to start game RuntimeError: memory access out of bounds
at d726c45b-77db-44d7-940e-215f5deaf1c8:0x170edb
at d726c45b-77db-44d7-940e-215f5deaf1c8:0x320834
at ret. [as resetCheat] (9b7b4be4-6683-4e67-afb5-b7738c3687ae:13:153569)
at EJS_GameManager.resetCheat (emulator.min.js:1:425007)
at EmulatorJS.updateCheatUI (emulator.min.js:1:406474)
at EmulatorJS.startGame (emulator.min.js:1:233715)
at emulator.min.js:1:232293
startGame @ emulator.min.js:1
(anonymous) @ emulator.min.js:1
await in (anonymous)
downloadFiles @ emulator.min.js:1
(anonymous) @ emulator.min.js:1
Promise.then
initModule @ emulator.min.js:1
(anonymous) @ emulator.min.js:1
script
createElement @ emulator.min.js:1
initGameCore @ emulator.min.js:1
(anonymous) @ emulator.min.js:1
Promise.then
t @ emulator.min.js:1
(anonymous) @ emulator.min.js:1
Promise.then
downloadGameCore @ emulator.min.js:1
startButtonClicked @ emulator.min.js:1
createStartButton @ emulator.min.js:1
EmulatorJS @ emulator.min.js:1
(anonymous) @ loader.js:150
await in (anonymous)
(anonymous) @ loader.js:170
PendingScript
(anonymous) @ (index):201Understand this warning
emulator.min.js:1 RuntimeError: Aborted(undefined). Build with -sASSERTIONS for more info.
at Object.abort (9b7b4be4-6683-4e67-afb5-b7738c3687ae:13:3089)
at emulator.min.js:1:417866
In the regular window, it just throws a red "Failed to start game" error. The emulator does not attempt to launch the game because of the size. This isn't going to be an issue with any official N64 game, but games that are larger than 64 MB (exclusively ROM hacks and maybe very large homebrew games if those ever get created) will fail to load.
I admit that this is quite low priority as the number of ROM hacks I know of that are bigger than 64 MB can be counted on 1 hand (B3313 and Dream64), but for compatibility, could the memory limit for N64 ROMs be increased to 256 MB instead of just 64?
Make sure your issue doesn't get closed! Make sure you have done the following items
EJS_DEBUG_XXset to true, and uploaded it straight to GitHub.I posted about this in the Discord server, but I figured it is worth mentioning here too. N64 games larger than 64 MB appear to not work. I noticed this with the ROM hack B3313 version 1.0.2 (note: the download is to a patch file, not a ROM).
This is known in other emulators and has a bit of a writeup at https://docs.chlorobyte.me/2023/mupen_readme/. B3313 is 96 MB, exceeding the 64 MB limit. The other cores in emulatorjs do not help either (if loaded by an HTML outside of the demo where I can specify the core used). This is not an issue with B3313 otherwise as it works in other emulators like RMG. Also, earlier builds of B3313 that conform to the file size do work perfectly fine.
Attempting to boot larger games like this gives me these errors in the console:
emulator.min.js:1 Failed to start game RuntimeError: memory access out of bounds
at d726c45b-77db-44d7-940e-215f5deaf1c8:0x170edb
at d726c45b-77db-44d7-940e-215f5deaf1c8:0x320834
at ret. [as resetCheat] (9b7b4be4-6683-4e67-afb5-b7738c3687ae:13:153569)
at EJS_GameManager.resetCheat (emulator.min.js:1:425007)
at EmulatorJS.updateCheatUI (emulator.min.js:1:406474)
at EmulatorJS.startGame (emulator.min.js:1:233715)
at emulator.min.js:1:232293
startGame @ emulator.min.js:1
(anonymous) @ emulator.min.js:1
await in (anonymous)
downloadFiles @ emulator.min.js:1
(anonymous) @ emulator.min.js:1
Promise.then
initModule @ emulator.min.js:1
(anonymous) @ emulator.min.js:1
script
createElement @ emulator.min.js:1
initGameCore @ emulator.min.js:1
(anonymous) @ emulator.min.js:1
Promise.then
t @ emulator.min.js:1
(anonymous) @ emulator.min.js:1
Promise.then
downloadGameCore @ emulator.min.js:1
startButtonClicked @ emulator.min.js:1
createStartButton @ emulator.min.js:1
EmulatorJS @ emulator.min.js:1
(anonymous) @ loader.js:150
await in (anonymous)
(anonymous) @ loader.js:170
PendingScript
(anonymous) @ (index):201Understand this warning
emulator.min.js:1 RuntimeError: Aborted(undefined). Build with -sASSERTIONS for more info.
at Object.abort (9b7b4be4-6683-4e67-afb5-b7738c3687ae:13:3089)
at emulator.min.js:1:417866
In the regular window, it just throws a red "Failed to start game" error. The emulator does not attempt to launch the game because of the size. This isn't going to be an issue with any official N64 game, but games that are larger than 64 MB (exclusively ROM hacks and maybe very large homebrew games if those ever get created) will fail to load.
I admit that this is quite low priority as the number of ROM hacks I know of that are bigger than 64 MB can be counted on 1 hand (B3313 and Dream64), but for compatibility, could the memory limit for N64 ROMs be increased to 256 MB instead of just 64?