Skip to content

Rosalie's Mupen GUI - RetroBIOS

Type standalone
Classification Community forks
Source https://github.com/Rosalie241/RMG
Version v0.9.0
Profiled 2026-10-04
Cores rosalies-mupen-gui, RMG, com.github.Rosalie241.RMG
Systems nintendo-64, nintendo-64dd
Technical notes

Qt front end by Rosalie Wanders built around its own vendored fork of mupen64plus-core, compiled with OSD=0, NEW_DYNAREC=1 and VULKAN=0 (Source/3rdParty/CMakeLists.txt:63-83). Forks of the RSP plugins hle, cxd4 and parallel, the video plugins GLideN64, parallel, angrylion-plus and softrdp, and the raphnetraw input plugin are vendored alongside it, plus RMG's own audio and input plugins. softrdp opens no data file. ES-DE runs it as --nogui -q <rom> for both n64 and n64dd. Against mupen64plus-core 6dca4c15 the media loader, the DD region enum and load_dd_rom are unchanged; the fork diverges on SDL3, video capture, netplay and the dynarec.

Cartridge boot needs no boot ROM. The PIF boot ROM is simulated (Source/3rdParty/mupen64plus-core/src/device/pif/bootrom_hle.c:48, reached from Source/3rdParty/mupen64plus-core/src/device/r4300/interrupt.c:445,496) and the CIC-NUS-6105 challenge is answered by an algorithm rather than a stored table (Source/3rdParty/mupen64plus-core/src/device/pif/n64_cic_nus_6105.c:93).

Which 64DD IPL is used is not a user choice. scan_and_expand_disk_format accepts a disk only when one of eight candidate blocks holds system data carrying a known region word, and marks it development when that block sits at index 2, 3, 10 or 11 (Source/3rdParty/mupen64plus-core/src/device/dd/disk.c:412-475). The core hands the resulting region to the front end, which answers with one of three configured paths, or with nothing when the region stayed unknown (Source/RMG-Core/MediaLoader.cpp:47-74). All three settings default to empty (Source/RMG-Core/Settings.cpp:284-292) and are filled from a file dialog filtered on *.n64 (Source/RMG/UserInterface/Dialog/SettingsDialog.cpp:1377-1390).

A bare .ndd or .d64 opens as a disk with no cartridge (Source/RMG-Core/Rom.cpp:111-133), which is the route ES-DE takes, so the IPL is the only boot ROM and the core bails before starting when it is absent (Source/3rdParty/mupen64plus-core/src/main/main.c:1722-1738). Passing a cartridge with --disk (Source/RMG/main.cpp:219,232,287) boots the cartridge and switches 64DD off instead. Disk content inside a .zip or .7z is extracted to the user cache directory first (Source/RMG-Core/MediaLoader.cpp:164-215, Source/RMG-Core/Archive.cpp:188-227).

Transfer Pak carts come from the input profile, which copies its GameboyRom and GameboySave paths into the per player core settings (Source/RMG-Input/main.cpp:320-321,472-483, Source/RMG-Core/MediaLoader.cpp:76-114). The core rejects a ROM under 32 KiB and an unknown cart type byte at 0x147 (Source/3rdParty/mupen64plus-core/src/device/gb/gb_cart.c:999-1012) and fixes no name, size or hash, so neither the cart nor its save carries an entry here.

Data the install places in the shared data directory (CMakeLists.txt:130-153; /usr/share/RMG, or Data beside the executable for portable and Windows builds, Source/RMG-Core/Directories.cpp:406-431): mupen64plus.ini, read as the ROM database (Source/3rdParty/mupen64plus-core/src/main/rom.c:585-604) and used by GLideN64 to locate that same directory (Source/3rdParty/mupen64plus-video-GLideN64/src/mupenplus/CommonAPIImpl_mupenplus.cpp:77-85); GLideN64.custom.ini, per ROM overrides keyed on the uppercased header name (Source/3rdParty/mupen64plus-video-GLideN64/src/mupenplus/Config_mupenplus.cpp:331-350); font.ttf, reached only after the configured font name fails both as a system font path and as a full path (Source/3rdParty/mupen64plus-video-GLideN64/src/TextDrawer.cpp:202-230); Cheats/<name>.cht, named from the header CRC pair and country code, or from the ROM MD5 when all three are zero, and merged with a user copy under the config directory (Source/RMG-Core/Cheats.cpp:82-116,579-598); InputProfileDB.json (Source/RMG-Input/Utilities/InputProfileDB.cpp:26-36); gamecontrollerdb.txt (Source/RMG-Input/main.cpp:1071-1077); and for VRU builds vosk-model-small-en-us-0.15.zip, extracted into the user data directory when any of the thirteen model files it checks for is missing (Source/RMG-Input/VRU.cpp:154-232). The published AppImage is the features-on build, so the model ships with it (.github/workflows/build.yml:10,94,107).

Optional files with no canonical artifact: a .qss stylesheet under Styles in the shared data directory (Source/RMG/UserInterface/MainWindow.cpp:405-425), hi-res texture packs under hires_texture in the user data directory (GLideN64 Config.cpp:118-123), and alp_screen.vert and alp_screen.frag, which angrylion-plus opens as working directory relative paths before falling back to its embedded shaders (angrylion-plus output/vdac.c:120-175,257-258).

Written rather than obtained: mupen64plus.cfg in the config directory, GLideN64.ini written there by the plugin settings pages and read back from both that directory and the shared data directory (Source/3rdParty/mupen64plus-video-GLideN64/src/GLideNUI/Config_GLideNUI.cpp:20-21,45-46, Source/3rdParty/mupen64plus-video-GLideN64/src/GLideNUI/Settings.cpp:354-370), the mempak, eeprom, flashram and sram saves opened with default content when absent (Source/3rdParty/mupen64plus-core/src/main/main.c:1711-1715), 64DD disk saves in the format the SaveDiskFormat setting selects (Source/3rdParty/mupen64plus-core/src/main/main.c:1285-1297), savestates, screenshots, the ROM browser header cache (Source/RMG-Core/CachedRomHeaderAndSettings.cpp:152), the GLideN64 texture cache and texture dumps (GLideN64 Config.cpp:120-123) and the parallel-rdp pipeline cache (video-parallel vulkan/device.cpp:760,834).

Two files in the tree this build never reads: the vendored core's data/mupencheat.txt, which RMG neither installs nor parses since cheats use its own .cht format and the core's cheat.c opens no file, and cxd4's rsp_conf.bin, whose reader is the zilmar variant of update_conf behind #if !defined(M64P_PLUGIN_API); the variant this build compiles takes settings from the core config API and ignores its filename argument (Source/3rdParty/mupen64plus-rsp-cxd4/module.c:89-99,652-673).

3 files | 3 required, 0 optional | 3 in repo, 0 missing

64DD_IPL_JP.n64 required in repo japan
64DD IPL ROM (Japanese retail)

64DD_IPL_US.n64 required in repo north-america
64DD IPL ROM (American retail)

64DD_IPL_DEV.n64 required in repo
64DD IPL ROM (Japanese development)

Generated on 2026-10-10T11:26:02Z