Emulator Issues #12797
openNAND Pagefile is broken/unsupported on Wii64/Not64 (Invalid Write, Invalid Read)
0%
Description
Game Name? Nintendo 64 Emulator for Wii (Wii64/Not64)
To name a few: Smash Remix, Goldeneye X, Perfect Dark, Mario Party 1, 2 & 3, Pokémon Stadium 1 & 2
What's the problem?
Any game that exceeds 16MB in ROM size will require Wii64/Not64 to use the nand pagefile to partially load the ROM into MEM2, this is because MEM2 can only handle ROM sizes that are equal or less than 16MB. On console, the nand pagefile works as expected, but unfortunately it seems that Dolphin does not support nand paging or it's broken for some reason. As a result, trying to load any game higher than 16MB will simply trigger invalid writes and reads into MEM2, thus crashing the emulator with a silent black screen.
Steps to reproduce the problem:
On Dolphin 5.x (latest), run either Wii64 1.3 2021-12-22 or Not64 2013-02-02 or any other newer version, assuming you already have setup and configured a virtual SD Card in order to store the ROMs (any size should work but 2GB is recommended for most homebrew apps), load ANY game higher than 16MB in ROM size, this will trigger the NAND page growth, then the game is partially loaded into MEM2, after the load is finished, select "Play Game".
Is the issue present in the latest development version? Yes. Versions tested:
[Dolphin 5.0.15445 (Arch Linux), dolphin-master-5.0-15377-x64 (Windows 10)]
Is the issue present in the latest stable version? [Yes]
What are your PC specifications? (CPU, GPU, Operating System, more)
[PC specs here]
CPU: Intel Core i5-4590
GPU: Intel HD Graphics 4600
RAM: 12GB DDR3 @ 1600Mhz
OS: Windows 10 / Arch Linux both x64
configuration files, savefiles, savestates)
I don't think I can upload my 2GB Virtual SD card but if you need it I could try uploading to let others test with it.
Once it starts partially loading ROM into MEM2 a lot of these warnings will pop up on the log:
Common/MsgHandler.cpp:112 E[MASTER]: Warning: Invalid write to 0x7fffb2b4, PC = 0x800ea860
Then after "Play Game" is selected, it start showing up invalid reads:
Common/MsgHandler.cpp:112 E[MASTER]: Warning: Invalid read from 0x00000258, PC = 0x800833d4
[Anything else here]
On real hardware this isn't an issue.
Files