chore: merge fix-profiles

This commit is contained in:
Abdessamad Derraz committed 2026-11-09 17:28:10 +01:00
commit 024032ab89
4 files changed
+91 -81

No files matched your search

+12 -24
View File
@@ -136,38 +136,26 @@ files:
note: "Read only by --dsi-mode and NAND title shortcuts. DSiWare run from the game list does without it. Opened read-only, rejected without the \"DSi eMMC CID/CPU\" footer."
source_ref: "src/frontend/sdl/main.cpp:1153-1166, src/frontend/sdl/main.cpp:1331-1337, src/core/nds_dsi.cpp:112-118, src/core/io/dsi_sd.cpp:105-138"
- name: "TWLFontTable.dat"
- name: "dsi_boot.bin"
system: nintendo-dsi
required: false
hle_fallback: true
size: 863296
sha1: "c1101d7c9224acfa0350b5fc62da97d4c6d36141"
config_key: "paths.dsi_font"
description: "DSi system font (Japan, Americas, Europe, Australia)"
note: "Used for DSiWare run without a NAND. Absent, DSperate's own font table is generated. ROCKNIX's ini leaves the key unset. A file under 256 bytes is refused. No hash is checked, only the layout bytes 0x84 and 0x86, and a table whose layout differs from the title's region draws a warning. This is the normal layout (0x84 = 3, 0x86 = 0), read from nand:/sys/TWLFontTable.dat of a retail DSi NAND dump. The FAT16 partition is AES-CTR encrypted with the normal key ROL128((KeyX XOR KeyY) + 0xFFFEFB4E295902582A680F5F1A4F3E79, 42), where KeyX is built from the console ID in the nocash footer and KeyY is 0x0AB9DC76 0xBD4DC4D3 0x202DDD1D 0xE1A00005. The counter is the first 16 bytes of SHA-1 of the footer's eMMC CID, and each 16-byte block is byte-reversed before and after AES. The USA, Europe, Japan and Australia consoles, four different console IDs, give the same bytes."
source_ref: "src/core/nds_dsi.cpp:310-327, src/core/io/dsi_font.cpp:38-43, src/core/io/dsi_nand_fs.cpp:786-800, src/core/io/dsi_aes.cpp:38-46, src/frontend/sdl/main.cpp:1774-1778"
size: 340
validation: [size]
found_by: content
description: "DSi console data blob"
note: "Read only by dsperate-headless, through --dsi-boot, which has no default, so the name is a label. A file of any size other than 0x154 bytes stops the run. The blob is TWLCFG bytes 0x88-0x1AF, HWINFO_N bytes 0x88-0x9B and HWINFO_S bytes 0x88-0x9F, copied to 0x02000400, 0x02000600 and 0x02FFFD68 when a DSi title starts. Without it the same bytes are read from shared1/TWLCFG0.dat or TWLCFG1.dat (the higher save count at byte 0x81) and sys/HWINFO_N.dat and sys/HWINFO_S.dat of an attached NAND, generated for DSiWare run without a NAND, and left zero in card mode."
source_ref: "src/frontend/headless/main.cpp:304, src/frontend/headless/main.cpp:386, src/frontend/headless/main.cpp:508, src/core/nds_dsi.cpp:107-111, src/core/nds_dsi.cpp:294, src/core/nds_dsi.cpp:340-343, src/core/nds_dsi.cpp:454-464, src/core/io/dsi_nand_launch.cpp:147-167, src/core/io/dsi_nand_synth.cpp:114-120"
- name: "TWLFontTable.dat"
system: nintendo-dsi
required: false
hle_fallback: true
size: 581664
sha1: "5170aff7e9766baadbbf2943c41f5634e82aaf2d"
min_size: 256
validation: [size]
config_key: "paths.dsi_font"
description: "DSi system font (China)"
note: "The Chinese layout (0x84 = 9, 0x86 = 4), which Chinese DSiWare needs to find its fonts. Read from nand:/sys/TWLFontTable.dat of a retail Chinese DSi NAND dump, decrypted as for the normal table."
source_ref: "src/core/nds_dsi.cpp:313-320, src/core/io/dsi_font.cpp:38-43, src/core/io/dsi_nand_fs.cpp:786-800, src/core/io/dsi_aes.cpp:38-46"
- name: "TWLFontTable.dat"
system: nintendo-dsi
required: false
hle_fallback: true
size: 162688
sha1: "f0a37b073eb0208d3a54c9a6bb94292dbec1192a"
config_key: "paths.dsi_font"
description: "DSi system font (Korea)"
note: "The Korean layout (0x84 = 9, 0x86 = 5), which Korean DSiWare needs to find its fonts. Read from nand:/sys/TWLFontTable.dat of a retail Korean DSi NAND dump, decrypted as for the normal table."
source_ref: "src/core/nds_dsi.cpp:313-320, src/core/io/dsi_font.cpp:38-43, src/core/io/dsi_nand_fs.cpp:786-800, src/core/io/dsi_aes.cpp:38-46"
description: "DSi system font"
note: "Used for DSiWare run without a NAND. A path that names no file falls back to DSperate's own tables, linked into the binary. ROCKNIX's ini leaves the key unset. A file under 256 bytes stops the session. No hash is checked. The layout is read from bytes 0x84 and 0x86: 3 and 0 for the normal table (Japan, Americas, Europe, Australia), 9 and 4 for the Chinese one, 9 and 5 for the Korean one. Chinese and Korean titles need their own layout and every other title the normal one. Another layout only draws a warning, and the title does not find its fonts."
source_ref: "src/core/nds_dsi.cpp:311-323, src/core/io/dsi_font.cpp:38-43, src/frontend/sdl/main.cpp:1774-1778"
- name: "usrcheat.dat"
system: nintendo-ds
+19 -11
View File
@@ -279,21 +279,23 @@ files:
the byte-swapped data (Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:100-102).
# -- GameCube fonts --
# Sys/GC/ only. Skipped when an IPL dump is available, the fonts are then read
# out of the dump at 0x1aff00 and 0x1fcf00 instead.
# Sys/GC/ only. With Load IPL dump on and a GC/<region>/IPL.bin found, the
# fonts are read out of the dump at 0x1aff00 and 0x1fcf00 instead.
- name: "font_western.bin"
path: "Sys/GC/font_western.bin"
description: "Windows-1252 font used by GameCube and Wii text rendering"
size: 9589
required: false
installed_on: [retrobat]
hle_fallback: true
source_ref: "source Source/Core/Common/CommonPaths.h:142, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:131, 203-247"
source_ref: "source Source/Core/Common/CommonPaths.h:142, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:131, 161-176, 203-247, 330-344"
note: >
Size is the official font length the code reads from an IPL dump, 0x2575
(Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:234-236). A standalone file is
read without any check. The fork's tree carries no font, RetroBat's
dolphin-triforce package installs the free replacement here.
Read without any size check into the IPL image at 0x1fcf00, keeping at
most 0x3100 bytes. The size is the IPL dump font's, 0x2575, the length
the code reads out of a dump (EXI_DeviceIPL.cpp:234-236). The fork's
tree carries no font, and RetroBat's dolphin-triforce package installs
Dolphin's free replacement here. Without a font a game that reads it
gets an alert that text may be missing or the game may crash, and runs
on.
- name: "font_japanese.bin"
path: "Sys/GC/font_japanese.bin"
@@ -301,9 +303,15 @@ files:
size: 303693
required: false
installed_on: [retrobat]
hle_fallback: true
source_ref: "source Source/Core/Common/CommonPaths.h:143, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:130, 203-247"
note: "Size is the official font length read from an IPL dump, 0x4a24d. The fork's tree carries no font, RetroBat's dolphin-triforce package installs the free replacement here."
source_ref: "source Source/Core/Common/CommonPaths.h:143, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:130, 161-176, 203-247, 330-344"
note: >
Read without any size check into the IPL image at 0x1aff00, keeping at
most 0x50100 bytes. The size is the IPL dump font's, 0x4a24d, the length
the code reads out of a dump (EXI_DeviceIPL.cpp:234-236). The fork's
tree carries no font, and RetroBat's dolphin-triforce package installs
Dolphin's free replacement here. Without a font a game that reads it
gets an alert that text may be missing or the game may crash, and runs
on.
# -- GBA BIOS --
- name: "gba_bios.bin"
+16 -21
View File
@@ -14,7 +14,6 @@ version_basis:
display_name: "The Ur-Quan Masters"
cores: [uqm]
systems: [ur-quan-masters, star-control-2]
verification: md5
notes: |
The Ur-Quan Masters (UQM) is the open-source port of Toys for Bob's
@@ -26,16 +25,18 @@ notes: |
prepareContentDir() in src/options.c:136 searches for content/
relative to the executable (default locations are CONTENTDIR, "",
"content", "../../content", while macOS also probes the app bundle). A
sentinel file content/version must exist (lines 138-150) or the game
sentinel file content/version must exist (lines 138-182) or the game
logs "Could not find content" and exits.
mountContentDir() (src/options.c:329) mounts content/ at the uio root
and then auto-mounts every .uqm file found under content/packages/ as
an overlay archive (lines 354-359). The engine itself does not treat
individual .uqm packages as mandatory: the fatal check is the
content/ tree. In practice content/packages/uqm-0.8.0-content.uqm is
"Core Data" in the Windows installer (uqm-installer.nsi:289-306,
SectionIn 1 2 3 4 6) and the game is unplayable without it.
mountContentDir() (src/options.c:330-361) mounts content/ at the uio
root and then mounts every .zip or .uqm file under content/packages/
below it (line 357, mountDirZips at 463-489). The archive name is not
read. LoadKernel then needs at least one .rmp index at the content
root (src/uqm/setup.c:113-115), and without one the game logs "Could
not load basic content", names uqm-0.8.0-content.uqm and exits
(src/uqm/starcon.c:194-204). The content pack carries uqm.rmp and
base/. A content/ tree that already holds them unpacked passes the
same check, as the tree at this pin does.
3DO music (uqm-0.8.0-3domusic.uqm) and voice overs
(uqm-0.8.0-voice.uqm) are optional sections (installer lines 315,
@@ -50,9 +51,10 @@ notes: |
(uqm.key, menu.key) are shipped verbatim in the source repository
and are not external data, so they are not listed here.
MD5 and size values come from build/win32_install/packages.nsh,
autogenerated by procpkgs.sh at release time. Sizes are the KiB
values the NSIS installer uses with AddSize.
The engine checks no hash. The MD5 values come from
build/win32_install/packages.nsh, autogenerated by procpkgs.sh at
release time, and only the Windows installer compares them, offering
a fresh download on a mismatch (uqm-installer.nsi:132-190).
files:
- name: uqm-0.8.0-content.uqm
@@ -62,10 +64,9 @@ files:
required: true
installed_on: [retropie]
md5: "6cbc9d51fa63e07c0f4d1d061136d816"
validation: [md5]
description: "UQM core game data archive"
note: "Published apart from the source release. The RetroPie scriptmodule downloads it into content/packages."
source_ref: "sc2/build/win32_install/packages.nsh:3-5; sc2/build/win32_install/uqm-installer.nsi:289-306"
note: "Published apart from the source release. Carries uqm.rmp and base/: without a .rmp index at the content root the game exits with \"Could not load basic content\". Any .zip or .uqm in content/packages is mounted, the name is not read. The RetroPie scriptmodule downloads it into content/packages."
source_ref: "sc2/src/uqm/starcon.c:194-204, sc2/src/uqm/setup.c:113-115, sc2/src/options.c:354-359, sc2/src/options.c:463-489, sc2/src/options.c:491-515, sc2/build/win32_install/packages.nsh:3-5"
- name: uqm-0.8.0-3domusic.uqm
path: uqm/content/addons/uqm-0.8.0-3domusic.uqm
@@ -74,7 +75,6 @@ files:
required: false
installed_on: [retropie]
md5: "9e5801d45ca12028b486cdeb83568c02"
validation: [md5]
description: "UQM 3DO music track pack"
note: "The RetroPie scriptmodule downloads it into content/addons."
source_ref: "sc2/build/win32_install/packages.nsh:6-8; sc2/build/win32_install/uqm-installer.nsi:315-327, sc2/src/options.c:393-402, 518-551, sc2/src/uqm/setup.c:118-132"
@@ -86,7 +86,6 @@ files:
required: false
installed_on: [retropie]
md5: "fc89f77d7b66c2669abca6c157f5259a"
validation: [md5]
description: "UQM alien-race voice-over pack"
note: "The RetroPie scriptmodule downloads it into content/addons."
source_ref: "sc2/build/win32_install/packages.nsh:9-11; sc2/build/win32_install/uqm-installer.nsi:329-341, sc2/src/options.c:393-402, 518-551, sc2/src/uqm/setup.c:118-132"
@@ -97,7 +96,6 @@ files:
category: game_data
required: false
md5: "09f242d8d72166d1d5ccbd3d99c93e7d"
validation: [md5]
description: "Precursor Remix disc 1 (modern remixes)"
source_ref: "sc2/build/win32_install/packages.nsh:12-14; sc2/build/win32_install/uqm-installer.nsi:345-358, sc2/src/options.c:393-402, 518-551, sc2/src/uqm/setup.c:118-132"
@@ -107,7 +105,6 @@ files:
category: game_data
required: false
md5: "fbc8bdcb709939d559d8c7216ad15cc2"
validation: [md5]
description: "Precursor Remix disc 2"
source_ref: "sc2/build/win32_install/packages.nsh:15-17, sc2/src/options.c:393-402, 518-551, sc2/src/uqm/setup.c:118-132"
@@ -117,7 +114,6 @@ files:
category: game_data
required: false
md5: "5ccc6d4ac301ae98e172ac6835dcdead"
validation: [md5]
description: "Precursor Remix disc 3"
source_ref: "sc2/build/win32_install/packages.nsh:18-20, sc2/src/options.c:393-402, 518-551, sc2/src/uqm/setup.c:118-132"
@@ -127,6 +123,5 @@ files:
category: game_data
required: false
md5: "3fb63f4ac514343ed4b4b5b194c413fb"
validation: [md5]
description: "Precursor Remix disc 4-1"
source_ref: "sc2/build/win32_install/packages.nsh:21-23, sc2/src/options.c:393-402, 518-551, sc2/src/uqm/setup.c:118-132"
+44 -25
View File
@@ -99,47 +99,67 @@ notes: |
files:
- name: mcpx_1.0.bin
path: "xemu/mcpx_1.0.bin"
standalone_path: mcpx_1.0.bin
required: true
mode: standalone
required: false
size: 512
validation: [size]
config_key: sys.files.bootrom_path
found_by: content
description: "MCPX boot ROM"
note: >-
Passed as the bootrom machine property and read over the last 512 bytes
of the flash image, which the machine maps as a writable overlay at the
top of the address space. qemu_init drops the path with an error when
the file cannot be opened or is not 512 bytes, and the machine then runs
the flash alone. The core reads system/xemu/mcpx_1.0.bin, else
mcpx_1.0.bin at the root of the system directory, and refuses to load
when neither is there.
top of the address space. bootrom_path has no default, so the name is a
label. qemu_init drops a path that cannot be opened or is not 512 bytes
and queues an error, and the machine then runs the flash alone, as it
does when the path is empty.
source_ref: "system/vl.c:2983-3006, hw/xbox/xbox.c:143-171, hw/xbox/xbox.c:468-470, config_spec.yml:362-366"
- name: mcpx_1.0.bin
mode: libretro
path: "xemu/mcpx_1.0.bin"
required: true
size: 512
validation: [size]
description: "MCPX boot ROM"
note: >-
Read from system/xemu/mcpx_1.0.bin, else mcpx_1.0.bin at the root of
the system directory. The core refuses to load when neither is there.
source_ref:
standalone: "system/vl.c:2983-3006, hw/xbox/xbox.c:143-171, hw/xbox/xbox.c:468-470"
libretro: "ui/libretro.c:3370-3415, ui/libretro.c:3418-3427"
- name: Complex_4627.bin
path: "xemu/Complex_4627.bin"
standalone_path: Complex_4627.bin
aliases: [Complex_4627v1.03.bin]
mode: standalone
required: true
size: [262144, 524288, 1048576]
validation: [size]
size_note: "Any size that is a positive multiple of 64 KiB is mapped, and the image is mirrored across the 16 MB flash window"
config_key: sys.files.flashrom_path
found_by: content
description: "Xbox flash ROM image"
note: >-
Passed as -bios and opened through qemu_find_file. An image whose size
is not a multiple of 65536 bytes counts as a failed load, like a missing
file: the 256 KB region is filled with 0xFF and the machine starts
anyway. An unreadable path clears autostart in the standalone, which
takes any file the settings name. The core tries
Complex_4627v1.03.bin, then Complex_4627.bin, in system/xemu/ and
then at the root of the system directory, and refuses to load when
none is there.
Passed as -bios and opened through qemu_find_file. flashrom_path has no
default, so the name is a label. A path that cannot be opened, an empty
one included, queues an error and clears autostart, so the machine does
not start. An image whose size is not a multiple of 65536 bytes counts
as a failed load in the machine: the 256 KB region is filled with 0xFF.
source_ref: "system/vl.c:2527-2535, system/vl.c:3041-3053, hw/xbox/xbox.c:63-123, config_spec.yml:362-366"
- name: Complex_4627.bin
mode: libretro
path: "xemu/Complex_4627.bin"
aliases: [Complex_4627v1.03.bin]
required: true
size: [262144, 524288, 1048576]
validation: [size]
size_note: "Any size that is a positive multiple of 64 KiB is mapped, and the image is mirrored across the 16 MB flash window"
description: "Xbox flash ROM image"
note: >-
The core tries Complex_4627v1.03.bin, then Complex_4627.bin, in
system/xemu/ and then at the root of the system directory, and refuses
to load when none is there.
source_ref:
standalone: "system/vl.c:3041-3053, hw/xbox/xbox.c:63-123"
libretro: "ui/libretro.c:3370-3415, ui/libretro.c:3429-3436"
libretro: "ui/libretro.c:3370-3415, ui/libretro.c:3429-3436, hw/xbox/xbox.c:63-123"
- name: xbox_eeprom.bin
path: "xemu/xbox_eeprom.bin"
@@ -167,8 +187,7 @@ files:
- name: xbox_hdd.qcow2
mode: standalone
path: xbox_hdd.qcow2
required: true
required: false
installed_on: [batocera, emudeck, recalbox, retrodeck, rocknix]
config_key: sys.files.hdd_path
found_by: content
@@ -176,7 +195,7 @@ files:
note: >-
Attached as the IDE drive at index 0 with locked=on when the path is set
and the file opens. An unreadable file only queues an error and an empty
path attaches no drive. Snapshots are stored inside the image.
path attaches no drive: the machine starts either way. Snapshots are stored inside the image.
hdd_path has no default, so the name is a label: it is the file of
the formatted image the project publishes apart from the xemu release
(xemu-hdd-image 1.0, xbox_hdd.qcow2.zip), which carries its own