mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-22 03:39:14 -05:00
100 emulator names the two platforms run had no profile, so their packs carried nothing for them. Each was read from the platform's own launcher or scriptmodule: the same program as an existing profile takes the name in cores:, a different build gets its own profile read from that version, a launcher or self-contained game goes to remove_cores, and the rest are new profiles written from their source or shipped binary. The files they need that the collection lacked are collected from the upstream distributions. Bungie and splitwolf trees are read by path and stay out of dedup.
148 lines
8.8 KiB
YAML
148 lines
8.8 KiB
YAML
emulator: Rosalie's Mupen GUI
|
|
type: standalone
|
|
core_classification: community_fork
|
|
source: "https://github.com/Rosalie241/RMG"
|
|
upstream: "https://github.com/Rosalie241/RMG"
|
|
profiled_date: "2026-10-04"
|
|
source_commit: "4777ed3f1fb7f1e4a0e70438a27dc4a5e9fb1927"
|
|
core_version: "v0.9.0"
|
|
display_name: "Nintendo - Nintendo 64 (Rosalie's Mupen GUI)"
|
|
cores:
|
|
- rosalies-mupen-gui
|
|
- RMG
|
|
- com.github.Rosalie241.RMG
|
|
- mupen64
|
|
systems:
|
|
- nintendo-64
|
|
- nintendo-64dd
|
|
mode: standalone
|
|
|
|
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 holds per ROM
|
|
overrides keyed on the uppercased header name
|
|
(Source/3rdParty/mupen64plus-video-GLideN64/src/mupenplus/Config_mupenplus.cpp:331-350). font.ttf is 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 is 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). The directory also holds 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).
|
|
|
|
files:
|
|
- name: "64DD_IPL_JP.n64"
|
|
aliases: ["64DD_IPL_v12_JPN.bin", "64DD_IPL.bin"]
|
|
system: nintendo-64dd
|
|
region: [japan]
|
|
required: true
|
|
description: "64DD IPL ROM (Japanese retail)"
|
|
note: >
|
|
Selected when the disk system data holds the Japanese region word
|
|
0xe848d316, which covers the retail library. The path is set in the
|
|
settings dialog and no name is fixed by the code. Loaded whole, then
|
|
byteswapped after identifying the first word as one of 0x80270740 (z64),
|
|
0x40072780 (n64) or 0x27804007 (v64). Any other value disables 64DD.
|
|
Size is not checked and no hash is computed.
|
|
source_ref: "Source/RMG-Core/MediaLoader.cpp:47-74, Source/RMG-Core/Settings.cpp:284-286, Source/3rdParty/mupen64plus-core/src/main/main.c:1189-1254, Source/3rdParty/mupen64plus-core/src/device/dd/disk.c:434-445"
|
|
|
|
- name: "64DD_IPL_US.n64"
|
|
aliases: ["64DD_IPL_USA.bin", "IPL_USA.n64"]
|
|
system: nintendo-64dd
|
|
region: [north-america]
|
|
required: true
|
|
description: "64DD IPL ROM (American retail)"
|
|
note: >
|
|
Selected when the disk system data holds the US region word 0x2263ee56.
|
|
The other two IPL settings are not consulted for such a disk, so no
|
|
substitution is possible. Same load path, format check and absence of
|
|
size or hash validation as the Japanese image.
|
|
source_ref: "Source/RMG-Core/MediaLoader.cpp:54-56, Source/RMG-Core/Settings.cpp:287-289, Source/3rdParty/mupen64plus-core/src/main/main.c:1189-1254, Source/3rdParty/mupen64plus-core/src/device/dd/disk.c:434-445"
|
|
|
|
- name: "64DD_IPL_DEV.n64"
|
|
aliases: ["64DD_IPL_DEV.bin", "IPL_DEV.n64"]
|
|
system: nintendo-64dd
|
|
required: true
|
|
description: "64DD IPL ROM (Japanese development)"
|
|
note: >
|
|
Selected when the disk system data holds the development region word
|
|
0x00000000, and also whenever the valid system data block sits at index
|
|
2, 3, 10 or 11, which is the development disk layout. Same load path,
|
|
format check and absence of size or hash validation as the Japanese
|
|
image.
|
|
source_ref: "Source/RMG-Core/MediaLoader.cpp:57-59, Source/RMG-Core/Settings.cpp:290-292, Source/3rdParty/mupen64plus-core/src/main/main.c:1189-1254, Source/3rdParty/mupen64plus-core/src/device/dd/disk.c:412-475"
|