Mupen64Plus
Mupen64Plus emulates Nintendo 64 and Nintendo 64DD. It reads 3 files, 3 of them required: without a required file it does not start games. A required file is needed only by the machines that use it. Each file below cites the line of source code that reads it.
About this profile
Install this emulator's files
With Batocera, Recalbox, ROCKNIX, AmberELEC, EmuELEC, KNULLI or RetroPie: the installer finds Batocera, Recalbox, ROCKNIX, AmberELEC, EmuELEC, KNULLI or RetroPie and its BIOS folder, then downloads only the files Mupen64Plus reads there and checks each one.
Open a terminal on the device. Or connect from a computer with SSH, a terminal over the network. Paste the line. Press Enter.
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh -s -- --emulator mupen64plusTechnical notes
The mupen64plus program is the console front end, which loads the mupen64plus-core library and four plugins. AmberELEC builds the front end at c8ac4862 and the core at 6dca4c15 with the rice and glide64mk2 video, hle RSP, sdl input and sdl audio plugins, and EmuELEC builds the same set at older revisions (front end 32e27344, core 57828d93), whose media loader, IPL format check and ROM database lookup read the same files. Both build the core with USE_GLES=1, which turns the OpenGL on-screen display off. ref: AmberELEC packages/games/emulators/mupen64plussa/mupen64plussa-core/package.mk:5,13, EmuELEC packages/sx05re/emulators/mupen64plussa/mupen64plussa-core/package.mk:5, upstream projects/unix/Makefile:374-388
Cartridge boot needs no boot ROM. The PIF boot sequence is simulated and the CIC-NUS-6105 challenge is answered by an algorithm rather than a stored table. ref: upstream src/device/pif/bootrom_hle.c:48, upstream src/device/r4300/interrupt.c:445,496, upstream src/device/pif/n64_cic_nus_6105.c:93
64DD: the front end holds one IPL path and one disk path, the 64DD section's IPL-ROM and Disk keys, both empty by default and set by --dd-ipl-rom and --dd-disk. It reads them back from mupen64plus.cfg when the core asks and leaves the core's region callback empty, so whichever image the key names is loaded whatever region the disk carries. The core asks for the IPL only after a disk loads, reads it whole and byteswaps it after identifying its first word as 0x80270740 (z64), 0x40072780 (n64) or 0x27804007 (v64). Any other value, or a missing file, disables 64DD and the cartridge runs alone. ref: src/main.c:321-322, src/main.c:729-737, src/main.c:803-892, upstream src/main/main.c:1183-1248, upstream src/main/main.c:1719-1735 AmberELEC's mupen64plus.cfg sets IPL-ROM to "" and its m64p.sh passes no 64DD option, and its n64 system lists no disk extension, so 64DD is never reached there. EmuELEC's m64p.sh passes --dd-ipl-rom when <game>.ndd sits beside the cartridge, pointing at bios/Mupen64plus/N64DD IPLROM (J).n64, else bios/Mupen64plus/IPL.n64. ref: AmberELEC packages/games/emulators/mupen64plussa/mupen64plussa-core/config/mupen64plus-RG351V.cfg:4-9, AmberELEC packages/games/emulators/mupen64plussa/mupen64plussa-core/m64p.sh:102-112, EmuELEC packages/sx05re/emulators/mupen64plussa/mupen64plussa-core/m64p.sh:16,65-77,94-99
Transfer Pak carts come from the Transferpak keys GB-rom-1 to GB-rom-4 and their GB-ram counterparts, read the same way. The core fixes no name, size or hash for them, so neither the cart nor its save carries an entry here. ref: src/main.c:856-872, upstream src/main/main.c:1452-1478
Shared data files are searched in --datadir, then the core's SharedDataPath, then /usr/local/share/mupen64plus, /usr/share/mupen64plus and the working directory. The packages install the core's data directory and each plugin's .ini there. ref: upstream src/api/config.c:1610-1624, upstream src/osal/files_unix.c:43-48, upstream src/osal/files_unix.c:150-170
Optional content with no canonical artifact: hi-res texture packs read by rice and glide64mk2 from the user data directory. Written rather than obtained: mupen64plus.cfg, the mempak, eeprom, flashram and sram saves given default content when absent, the 64DD disk save, savestates and screenshots. ref: upstream src/main/main.c:1709-1712
3 files: 3 required, 0 optional. 6 more files come with the app.
| File | Required | Hash |
|---|---|---|
64DD_IPL_JP.n64 |
for Nintendo 64DD | - |
64DD_IPL_US.n64 |
for Nintendo 64DD | - |
64DD_IPL_DEV.n64 |
for Nintendo 64DD | - |
mupen64plus.ini |
with the app | SHA1 37b26dbe0df6 |
mupencheat.txt |
with the app | SHA1 f8b083f6a5a9 |
font.ttf |
with the app | SHA1 1d7f6fa0c34e |
InputAutoCfg.ini |
with the app | SHA1 c71834f8e074 |
RiceVideoLinux.ini |
with the app | SHA1 7299996b11d3 |
Glide64mk2.ini |
with the app | SHA1 523de4d0c142 |
In this collection: 3 in repo and 0 missing.
Required
Section titled “Required”64DD_IPL_JP.n64 required for Nintendo 64DD in repo
64DD IPL ROM (Japanese retail)
- System: Nintendo 64DD
- Aliases:
64DD_IPL_v12_JPN.bin
- Never opened on these platforms, whose launcher names other files: amberelec
- Asked for by: upstream emulator
- Source:
src/main.c:321,src/main.c:729-732,src/main.c:874-877,src/main/main.c:1183-1248(upstream emulator) - Collection copy:
bios/Nintendo/ Nintendo 64DD/ 64DD_IPL.bin - Platforms: AmberELEC:
bios/64DD_IPL.bin, Batocera:64DD_IPL.bin, BizHawk:64DD_IPL_v12_JPN.bin, EmuDeck:64DD_IPL_JP.n64, EmuELEC:bios/64DD_IPL.bin, KNULLI:64DD_IPL.bin, Lakka:64DD_IPL.bin,Mupen64plus/IPL.n64, MiSTer FPGA:N64/boot3.rom, Recalbox:Mupen64plus/IPL.n64, RetroArch:64DD_IPL.bin,Mupen64plus/IPL.n64, RetroBat:Mupen64plus/IPL_JAP.n64, RetroDECK:bios/64DD_IPL.bin, RetroPie:64DD_IPL.bin,Mupen64plus/IPL.n64, RomM:64dd/64DD_IPL.bin
- The image every commercially released disk needs. No name is fixed by the code: the path comes from the IPL-ROM key or --dd-ipl-rom. Read whole, then byteswapped after identifying the first word as z64, n64 or v64. Size is not checked and no hash is computed.
64DD_IPL_US.n64 required for Nintendo 64DD in repo
64DD IPL ROM (American retail)
- System: Nintendo 64DD
- Aliases:
64DD_IPL_USA.bin,IPL_USA.n64
- Never opened on these platforms, whose launcher names other files: amberelec
- Asked for by: upstream emulator
- Source:
src/main.c:874-892,src/main/main.c:1183-1248(upstream emulator) - Collection copy:
bios/Nintendo/ Nintendo 64DD/ 64DD_IPL_US.n64 - Platforms: BizHawk:
64DD_IPL_USA.bin, EmuDeck:64DD_IPL_US.n64, MiSTer FPGA:N64/boot5.rom, RetroBat:Mupen64plus/IPL_USA.n64
- Needed for a disk whose system data carries the US region word. The front end holds one IPL path and leaves the region callback empty, so this image is loaded by putting it in the same key. Same load path and format check as the Japanese image.
64DD_IPL_DEV.n64 required for Nintendo 64DD in repo
64DD IPL ROM (development)
- System: Nintendo 64DD
- Aliases:
64DD_IPL_DEV.bin,IPL_DEV.n64
- Never opened on these platforms, whose launcher names other files: amberelec
- Asked for by: upstream emulator
- Source:
src/main.c:874-892,src/main/main.c:1183-1248(upstream emulator) - Collection copy:
bios/Nintendo/ Nintendo 64DD/ 64DD_IPL_DEV.bin - Platforms: BizHawk:
64DD_IPL_DEV.bin, EmuDeck:64DD_IPL_DEV.n64, MiSTer FPGA:N64/boot4.rom, RetroBat:Mupen64plus/IPL_DEV.n64
- Needed for a disk whose system data carries the development region word. Shares the single IPL key with the other two images. Same load path and format check.
Comes with the app
Section titled “Comes with the app”6 files
mupen64plus.ini comes with the app
ROM database
- System: Nintendo 64
- Size: 438.6 KB
- SHA1:
37b26dbe0df63c2887f958978e1638e2ddead1bc - Asked for by: upstream emulator
- Source:
src/main/rom.c:590-604(upstream emulator)
- Per ROM save type, player count, rumble and counter settings, looked up by MD5 or CRC. Absent, the core logs an error and runs every ROM on defaults.
mupencheat.txt comes with the app
Cheat code database
- System: Nintendo 64
- Size: 1.2 MB
- SHA1:
f8b083f6a5a9ef4a28957792ca65d7b50f7af1bd - Source:
src/cheat.c:33,src/cheat.c:202-216,src/cheat.c:346-367,src/main.c:1040-1041
- Read by the front end for the ROM's section when --cheats is given. Absent, a warning is logged and no cheat is offered.
font.ttf comes with the app
On-screen display font
- System: Nintendo 64
- Size: 64.4 KB
- SHA1:
1d7f6fa0c34e3d50be52c16a0816bebac309fe41 - Asked for by: upstream emulator
- Source:
src/osd/osd.c:40(upstream emulator),src/osd/osd.c:227(upstream emulator),projects/unix/Makefile:377-388(upstream emulator) - Collection copy:
bios/Nintendo/ Nintendo 64DD/ Mupen64plus/ font.ttf
- Opened by the core's OpenGL on-screen display, which a USE_GLES=1 build leaves out.
InputAutoCfg.ini comes with the app
Controller auto-configuration database of the sdl input plugin
- System: Nintendo 64
- Size: 50.4 KB
- SHA1:
c71834f8e0749ba28135cefbec370a8ac6b3c26c - Source:
mupen64plus-input-sdl src/autoconfig.c:196-218
- Matched against the SDL joystick name to fill the controller mapping.
RiceVideoLinux.ini comes with the app
Per ROM settings of the rice video plugin
- System: Nintendo 64
- Size: 22.7 KB
- SHA1:
7299996b11d37dd644d8c01adeb04fae15352983 - Source:
mupen64plus-video-rice src/,Config.cpp:38 mupen64plus-video-rice src/Config.cpp:933-945
Glide64mk2.ini comes with the app
Per ROM settings of the glide64mk2 video plugin
- System: Nintendo 64
- Size: 17.0 KB
- SHA1:
523de4d0c142bc112a7d94df26c0fe42a049d581 - Source:
mupen64plus-video-glide64mk2 src/,Glide64/ Main.cpp:1580-1591 mupen64plus-video-glide64mk2 src/Glide64/ Ini.cpp:134-216
- PluginStartup returns M64ERR_FILES without it, so the glide64mk2 renderer does not start.
Next steps
Section titled “Next steps”- Get your files, for the setup you play on
- Every system, and the files each one needs
- When a game does not start