Skip to content

Dolphin MMJR - RetroBIOS

Type standalone
Classification Community forks
Source https://github.com/acidtech/Dolphin-MMJR
Upstream https://github.com/weihuoya/dolphin
Version 11460 - bankaimaster999
Profiled 2026-08-11
Cores dolphin-mmjr
Systems nintendo-gamecube, nintendo-wii
Valid BIOS CRC32

ipl_ntsc:

  • crc32: 6DAC1F2A, name: NTSC v1.0
  • crc32: D5E6FEEA, name: NTSC v1.1
  • crc32: 86573808, name: NTSC v1.2
  • crc32: 667D0B64, name: MPAL v1.1 (Brazil)

ipl_pal:

  • crc32: 4F319F43, name: PAL v1.0
  • crc32: AD1B7F16, name: PAL v1.2
Technical notes

Android-only Dolphin fork continuing the MMJ line, published as the org.mm.jr package. The repositories it released from are gone, including the Dolphin-MMJR1 link in its own README; this reading is taken from a surviving copy that carries the release build metadata of the app, applicationId org.mm.jr and versionCode 15808. ref: Source/Android/app/build.gradle:23-29, Source/Android/app/release/output-metadata.json

Two roots. The user directory is dolphin-mmjr at the root of external storage. The Sys directory is extracted from the APK assets into the app's internal files directory, and the first run after a versionCode change deletes it and extracts it again, so nothing placed there survives an update. Paths below are relative to the user directory; entries with no path are read only from the Sys directory and name their location in their note. ref: Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java:93-134, Source/Core/Common/CommonPaths.h:22-24, Source/Core/Common/FileUtil.cpp:756-807

The GameCube boot ROM is looked up as GC//IPL.bin, the region directory being NTSC-J to JAP, NTSC-U to USA and PAL to EUR, in the user directory first and the Sys directory second. Booting the IPL itself hashes the whole file with crc32 and warns on an unknown dump, and again when a PAL dump answers a non-PAL boot. SkipIPL defaults to true, so games start without it. ref: Source/Core/Core/ConfigManager.cpp:835-849, Source/Core/Core/ConfigManager.cpp:861-868, Source/Core/Core/Boot/Boot.cpp:295-337, Source/Core/Core/Config/MainSettings.cpp:18

Fonts follow the IPL. When a dump is present the Shift JIS and Windows-1252 fonts are read out of it at offsets 0x1aff00 and 0x1fcf00, for 0x4a24d and 0x2575 bytes; otherwise the standalone font files are loaded whole, and the bundled ones have different padding from the console fonts. ref: Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:99-127, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:159-172, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:199-240

DSP HLE is the default and reads dsp_coef.bin alone, for polyphase resampling coefficients, skipping any file that is not 0x1000 bytes. DSP LLE, reached by setting DSPHLE to False in Dolphin.ini, loads both ROMs from GC/ in the user directory then Sys/GC/, rejects either at the wrong size and refuses to start when one is missing. Both are byte-swapped into memory and the pair is then hashed with adler32 against six known combinations. ref: Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:120-138, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:140-176, Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp:45-58, Source/Core/Core/DSP/DSPCore.cpp:38-105, Source/Core/Core/HW/DSP.cpp:190

Wii emulation reads keys.bin from the NAND root every time the key store is built, and keeps the built-in keys when it is absent. SYSCONF is read through the emulated filesystem and rebuilt unless it is exactly 0x4000 bytes, setting.txt is read for its serial number then deleted and written again, and the WiiConnect24 files shipped in Sys/Wii are copied into the NAND without overwriting what is there. A missing SD card image is created at 128 MB. ref: Source/Core/Core/IOS/IOSC.cpp:94, Source/Core/Core/IOS/IOSC.cpp:136-140, Source/Core/Core/IOS/IOSC.cpp:559-584, Source/Core/Core/SysConf.cpp:55-66, Source/Core/Core/Boot/Boot_BS2Emu.cpp:228-256, Source/Core/Core/WiiRoot.cpp:217-227, Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp:60-79

Every boot looks for a symbol map named after the running game ID, in Maps/ then Sys/Maps/, and reloads it whenever the running title changes. The game ID comes from the disc metadata, not from a debugger setting. ref: Source/Core/Core/Boot/Boot.cpp:253-290, Source/Core/Core/ConfigManager.cpp:698-720, Source/Core/Core/ConfigManager.cpp:742-754

16 files | 0 required, 16 optional | 15 in repo, 1 missing | 11 with HLE fallback

IPL.bin optional in repo HLE fallback north-america
GameCube boot ROM, NTSC-U directory

IPL.bin optional in repo HLE fallback europe
GameCube boot ROM, PAL directory

IPL.bin optional in repo HLE fallback japan
GameCube boot ROM, NTSC-J directory

font_western.bin optional in repo HLE fallback
Windows-1252 font, loaded at 0x1fcf00

font_japanese.bin optional in repo HLE fallback
Shift JIS font, loaded at 0x1aff00

dsp_rom.bin optional in repo HLE fallback
DSP instruction ROM

dsp_coef.bin optional in repo HLE fallback
DSP coefficient ROM

codehandler.bin optional in repo
Gecko code handler

keys.bin optional in repo HLE fallback
BootMii key dump, console keys and identity

SYSCONF optional in repo HLE fallback
Wii system configuration

setting.txt optional in repo HLE fallback
Wii region and language settings

sd.raw optional in repo HLE fallback
Wii SD card image

wiitdb.txt optional in repo
user title database

mios-ipl.map optional missing
MIOS symbol map

GFZE01.map optional in repo
symbol map for game id GFZE01

  • Source: Source/Core/Core/Boot/Boot.cpp:253-290
  • Reached by the per-title lookup, which reads Maps/.map from the user directory then the Sys directory. Ships in Maps/ inside the Sys directory.

GMBE8P.map optional in repo
symbol map for game id GMBE8P

  • Source: Source/Core/Core/Boot/Boot.cpp:253-290
  • Reached by the per-title lookup, which reads Maps/.map from the user directory then the Sys directory. Ships in Maps/ inside the Sys directory.

Generated on 2026-08-23T16:12:06Z