From ac9ce4d2cc8c8ea2d1c07b6250cfd7c312dd92e0 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Wed, 12 Aug 2026 03:11:47 +0200 Subject: [PATCH] feat: realign prose refs across fourteen profiles --- emulators/amiberry.yml | 18 +++++++++++------- emulators/beetle_saturn.yml | 2 +- emulators/cannonball.yml | 31 ++++++------------------------- emulators/dosbox-staging.yml | 9 +++++---- emulators/dosbox-x.yml | 2 +- emulators/fbneo.yml | 14 ++++++++------ emulators/fbneo_neogeo.yml | 14 ++++++++------ emulators/gpsp.yml | 4 ++-- emulators/parallel_n64.yml | 2 +- emulators/sdl2trs.yml | 16 ++++++++-------- emulators/solarus.yml | 5 +++-- emulators/swanstation.yml | 16 +++++++++++----- emulators/vba_next.yml | 13 +++++-------- emulators/vita3k.yml | 2 +- 14 files changed, 71 insertions(+), 77 deletions(-) diff --git a/emulators/amiberry.yml b/emulators/amiberry.yml index 9dcc958d..72b87d53 100644 --- a/emulators/amiberry.yml +++ b/emulators/amiberry.yml @@ -23,9 +23,13 @@ notes: | kick40068.A4000, cd32.rom, cdtv.rom. "auto" selects per model. ref: libretro/libretro.cpp:679,745-764 - Libretro ROM search directories (in order): save_dir/Kickstarts, - system_dir/Kickstarts, system_dir/save-data/Kickstarts, system_dir. - ref: libretro/libretro.cpp:2722-2742 + Libretro Kickstart directory detection (in order): save_dir/Kickstarts, + save_dir/whdboot/save-data/Kickstarts, system_dir/Kickstarts, + system_dir/whdboot/save-data/Kickstarts, + system_dir/amiberry/whdboot/save-data/Kickstarts, + system_dir/save-data/Kickstarts, else system_dir. system_dir stays first + in the ROM multipath, the detected directory follows it. + ref: libretro/libretro.cpp:4088-4126 Standalone ROM path: configurable via amiberry.conf "rom_path" setting. Batocera sets this to /userdata/bios/amiga/. Fallback search order: @@ -33,14 +37,14 @@ notes: | ../System/rom/kick.rom, then ROM database guess. ref: src/memory.cpp:2104-2146 - ROM identification uses SHA1 against WinUAE database (340+ entries) but does + ROM identification uses SHA1 against the WinUAE ROM database but does not reject unknown ROMs. Cloanto encrypted ROMs supported with rom.key. - ref: src/rommgr.cpp:111-1100,1731-1787 + ref: src/rommgr.cpp:121-1109,1745-1801 Munt MT-32/CM-32L emulation compiled in (WITH_MIDIEMU). ROMs loaded from mt32-roms/ subdirectory of the ROM path. Split ROM pairs supported (e.g. pcm_mt32_l.rom + pcm_mt32_h.rom). - ref: src/midiemu.cpp:82-157 + ref: src/midiemu.cpp:82-165 Keyboard MCU emulation (keyboard_mode setting) loads MCU ROMs via ROM database scanning. Three MCU types supported: 6570-036 (A500/A600/A1000), @@ -51,7 +55,7 @@ notes: | WHDLoad autoboot requires whdboot/ directory with boot-data.zip, WHDLoad, AmiQuit, JST, whdload_db.xml. These ship with the standalone build but must be obtained separately for the libretro core. - ref: src/osdep/amiberry_whdbooter.cpp:1380-1565 + ref: src/osdep/amiberry_whdbooter.cpp:1601-1873 files: # --- Kickstart ROMs --- diff --git a/emulators/beetle_saturn.yml b/emulators/beetle_saturn.yml index ee2194fd..2d31886a 100644 --- a/emulators/beetle_saturn.yml +++ b/emulators/beetle_saturn.yml @@ -65,5 +65,5 @@ files: system: sega-saturn required: false size: 262144 - note: "Action Replay 4M Plus firmware. Unfinished in source (ar4mp.cpp:22-24), needs CPU UBC emulation. Cart type not exposed in core options." + note: "Action Replay 4M Plus firmware. Unfinished in source (ar4mp.c:22-24), needs CPU UBC emulation. Cart type not exposed in core options." source_ref: "mednafen/ss/cart.c:218 (CART_AR4MP case), mednafen/ss/cart/ar4mp.c:150 (CART_AR4MP_Init)" diff --git a/emulators/cannonball.yml b/emulators/cannonball.yml index d221b390..b5d3ace9 100644 --- a/emulators/cannonball.yml +++ b/emulators/cannonball.yml @@ -18,20 +18,20 @@ notes: | that loads the original ROM data for graphics, sound, and gameplay logic. The core looks for ROM files in one of two locations - (src/main/libretro/main.cpp:945-967): + (src/main/libretro/main.c:1009-1020): 1. The directory containing a loaded .game content file 2. {system_dir}/cannonball/ - ROM loading is in src/main/roms.cpp. Each file is verified by CRC32 at load - time (src/main/romloader.cpp:70-76). Files are loaded as raw ROM chips, not + ROM loading is in src/main/roms.c. Each file is located by CRC32 first, + canonical filename as fallback (src/main/romloader.c:168-201). Files are + loaded as raw ROM chips, not inside ZIP archives. The Rev B ROM set is always required. Japanese ROM variants are loaded on demand when the "Japanese Tracks" core option is enabled. - Two optional widescreen tilemap patches are loaded from a res/ subdirectory - (src/main/engine/omusic.cpp:42-51). These are Cannonball-specific data files, - not original arcade ROMs. + The widescreen tilemap patches are compiled into the binary + (tilemap_data.h) and loaded from memory (src/main/engine/omusic.c:50-67). The fixed PCM sample variant (opr-10188.71f) replaces opr-10188.71 when the "Fix Broken Samples" core option is enabled. @@ -414,25 +414,6 @@ files: note: "PCM sample bank 5, fixed version (replaces opr-10188.71)" source_ref: "src/main/roms.cpp:123" - # ------------------------------------------------------- - # Optional: widescreen tilemap patches - # ------------------------------------------------------- - - name: "res/tilemap.bin" - path: "cannonball/res/tilemap.bin" - system: sega-outrun - category: game_data - required: false - note: "Widescreen tilemap patch, Cannonball-specific" - source_ref: "src/main/engine/omusic.cpp:42-44" - - - name: "res/tilepatch.bin" - path: "cannonball/res/tilepatch.bin" - system: sega-outrun - category: game_data - required: false - note: "Widescreen tile patch, Cannonball-specific" - source_ref: "src/main/engine/omusic.cpp:49-51" - # ------------------------------------------------------- # Japanese ROM variants (loaded when jap option enabled) # ------------------------------------------------------- diff --git a/emulators/dosbox-staging.yml b/emulators/dosbox-staging.yml index 1e183332..70d98994 100644 --- a/emulators/dosbox-staging.yml +++ b/emulators/dosbox-staging.yml @@ -21,7 +21,7 @@ notes: | from vcpkg. The machine setting selects a video adapter (hercules, cga, cga_mono, ega, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe) or a machine (pcjr, tandy). - ref: dosbox.cpp:1317-1329, vcpkg.json + ref: src/dosbox.cpp:1317-1329, vcpkg.json No system BIOS: the PC BIOS, video BIOS fonts, keyboard layouts and codepage tables are implemented in code. @@ -62,8 +62,9 @@ notes: | SOUNDCANVAS_ROM_PATH; the plugin appends the per-model subdirectory, hashes every file under 4 MB it finds there and matches SHA256 against its table. ref: soundcanvas.cpp:326-373, support.cpp:351-379, - Nuked-SC55-CLAP nuked_sc55.cpp:117-215, rom_loader.cpp:32-63, - rom_io.cpp:271-564 + Nuked-SC55-CLAP nuked_sc55.cpp:117-215, + Nuked-SC55-CLAP rom_loader.cpp:32-63, + Nuked-SC55-CLAP rom_io.cpp:271-564 soundcanvas_model = auto resolves sc55_121, sc55_120, sc55_110, sc55_100, sc55_200, sc55mk2_101, sc55mk2_100 in that order by matching plugin names. The plugin publishes six descriptors: SC-55 v1.00, v1.10, v1.20, v1.21, @@ -87,7 +88,7 @@ notes: | BIOSTEST.COM loads an arbitrary BIOS image at F000:0 and is compiled only when the debugger is enabled, which is off by default. - ref: dos/CMakeLists.txt:81-83, biostest.h + ref: src/dos/CMakeLists.txt:81-83, biostest.h files: # File names are documentation only: libmt32emu and the Sound Canvas plugin diff --git a/emulators/dosbox-x.yml b/emulators/dosbox-x.yml index 183e4d41..669913be 100644 --- a/emulators/dosbox-x.yml +++ b/emulators/dosbox-x.yml @@ -31,7 +31,7 @@ notes: | tables, the Z: drive utilities including GLIDE2X.OVL, and the TTF text font are compiled in. ref: int10_memory.cpp, dos_keyboard_layout_data.h, dos_codepages.h, - builtin/glide2x.cpp:2861, output_ttf.cpp:664 + src/builtin/glide2x.cpp:2861, output_ttf.cpp:664 Files named without a directory are searched in the working directory, the program directory, the user configuration directory and the resource diff --git a/emulators/fbneo.yml b/emulators/fbneo.yml index b2e8890c..1e52bfe4 100644 --- a/emulators/fbneo.yml +++ b/emulators/fbneo.yml @@ -48,12 +48,14 @@ notes: | FinalBurn Neo is a multi-system arcade and console emulator. BIOS files are expected as MAME-format ZIP archives containing individual ROM chips. The libretro core searches for BIOS ZIPs in this order - (src/burner/libretro/libretro.cpp:922-1030): - 1. {rom_dir}/{romName} - 2. {rom_dir}/arcade/{romName} - 3. {system_dir}/fbneo/{romName} - 4. {system_dir}/fbneo/arcade/{romName} - 5. {system_dir}/{romName} + (src/burner/libretro/libretro.cpp:930-1083): + 1. {system_dir}/fbneo/patched/{romName} + 2. {rom_dir}/{romName} + 3. {rom_dir}/{arcade|consoles}/{romName} + 4. {system_dir}/fbneo/{romName} + 5. {system_dir}/fbneo/{arcade|consoles}/{romName} + 6. {system_dir}/{romName} + 7. directories listed in rom_path.opt, plain then per-type subdirectories Each game driver specifies a parent BIOS set via BurnDriver. The BIOS ZIP must contain the individual ROM chip files listed below. CRC32 values from diff --git a/emulators/fbneo_neogeo.yml b/emulators/fbneo_neogeo.yml index 36527513..dcd4b9b8 100644 --- a/emulators/fbneo_neogeo.yml +++ b/emulators/fbneo_neogeo.yml @@ -21,12 +21,14 @@ notes: | Neo Geo games reference "neogeo" as parent ROM set. The BIOS ZIP must be alongside game ZIPs or in system_dir/fbneo/. - Search order (libretro.cpp:922-1030): - 1. {rom_dir}/{romName} - 2. {rom_dir}/arcade/{romName} - 3. {system_dir}/fbneo/{romName} - 4. {system_dir}/fbneo/arcade/{romName} - 5. {system_dir}/{romName} + Search order (libretro.cpp:930-1083): + 1. {system_dir}/fbneo/patched/{romName} + 2. {rom_dir}/{romName} + 3. {rom_dir}/{arcade|consoles}/{romName} + 4. {system_dir}/fbneo/{romName} + 5. {system_dir}/fbneo/{arcade|consoles}/{romName} + 6. {system_dir}/{romName} + 7. directories listed in rom_path.opt, plain then per-type subdirectories neogeo.zip contains multiple selectable 68K BIOS variants (MVS, AES, Universe BIOS). One 68K BIOS active at a time (dipswitch). Z80 BIOS, diff --git a/emulators/gpsp.yml b/emulators/gpsp.yml index 7ac4ae52..f9e2010a 100644 --- a/emulators/gpsp.yml +++ b/emulators/gpsp.yml @@ -23,7 +23,7 @@ notes: | builtin - always use the built-in open-source BIOS official - try gba_bios.bin, warn and fall back to built-in if missing - BIOS loading path (libretro/libretro.c:1100-1131): + BIOS loading path (libretro/libretro.c:1200-1236): 1. Resolve system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY) 2. Append "/gba_bios.bin" 3. load_bios() reads 0x4000 (16 KB) into bios_rom[] @@ -50,7 +50,7 @@ platform_details: gba: bios_size: 16384 hle_bios: true - source_ref: "libretro/libretro.c:1100-1131, bios/source/" + source_ref: "libretro/libretro.c:1200-1236, bios/source/core.s" note: | The built-in BIOS (open_gba_bios_rom, 16 KB) is an open-source reimplementation compiled from bios/source/. It implements most diff --git a/emulators/parallel_n64.yml b/emulators/parallel_n64.yml index 9d83e963..c38a6489 100644 --- a/emulators/parallel_n64.yml +++ b/emulators/parallel_n64.yml @@ -21,7 +21,7 @@ files: notes: hle_available: true hle_note: > - PIF boot ROM is fully HLE'd (pifbootrom/pifbootrom.c:57). CIC + PIF boot ROM is fully HLE'd (mupen64plus-core/src/device/pif/bootrom_hle.c:48). CIC challenge/response handled in software (n64_cic_nus_6105.c). No BIOS files needed for standard cartridge games. dd_note: > diff --git a/emulators/sdl2trs.yml b/emulators/sdl2trs.yml index 2cb1539b..351a21fe 100644 --- a/emulators/sdl2trs.yml +++ b/emulators/sdl2trs.yml @@ -25,14 +25,14 @@ notes: | Three ROM slots exist, one per model family, and trs_rom_init picks one from trs_model. Model I takes romfile1, Model III and Model 4 share romfile3, and Model 4P takes romfile4p (trs_cmd_rom.c:868-894). The defaults are level2.rom, - model3.rom and model4p.rom, each prefixed by ROM_PATH (trs_options.c:900-902). + model3.rom and model4p.rom, each prefixed by ROM_PATH (trs_options.c:896-898). ROM_PATH is a build define left empty unless a packager sets it (trs_options.c:53-54, CMakeLists.txt:42), so a stock build resolves the names against the working directory. -rom, -r and -romfile write to the slot of the model selected at the moment - they are parsed (trs_options.c:611-622). Options are applied in command-line - order after the config file has been read (trs_options.c:1020-1040), so -m has + they are parsed (trs_options.c:609-619). Options are applied in command-line + order after the config file has been read (trs_options.c:1016-1036), so -m has to come first to redirect them, and a model key in the config file otherwise decides. -rom1, -rom3 and -rom4p address a slot directly. The GUI ROM browser filters on .bin, .hex, .iii and .rom (trs_sdl_gui.h:63, trs_sdl_gui.c:2591-2597). @@ -65,7 +65,7 @@ files: max_size: 18432 source_ref: "src/trs_options.c:81 (romfile1), src/trs_options.c:896 (default name), src/trs_cmd_rom.c:871-884 (trs_model 1)" note: > - Model I is the model a stock configuration selects (trs_options.c:927), so + Model I is the model a stock configuration selects (trs_options.c:923), so this is the slot an unconfigured run reads. Without it the machine runs the compiled-in diagnostic stub and nothing else. max_size is the shared ROM buffer ceiling: a longer file is truncated, never rejected, and only the @@ -216,17 +216,17 @@ analysis: belong to the platform layer. entries: - frontend: ES-DE - source_ref: "resources/systems/linux/es_systems.xml:2211-2213, USERGUIDE.md:3334-3362" + source_ref: "ES-DE resources/systems/linux/es_systems.xml:2211-2213, ES-DE USERGUIDE.md:3334-3362" note: > Passes -rom %ROMPATH%/trs-80/level2.rom on all three launch commands and -disk0 %ROMPATH%/trs-80/boot.dsk on the DOS Diskette one, with boot.dsk documented as a copy of a TRS-80 DOS, NewDos/80 v2.0 recommended. No command passes -m, so the slot -rom writes to follows the config file, which is Model I unless the user changed it, and - model3.rom and model4p.rom are never named. USERGUIDE.md:3338 records - that both filenames are case sensitive. + model3.rom and model4p.rom are never named. The ES-DE user guide + records that both filenames are case sensitive. - frontend: RetroDECK - source_ref: "RetroDECK/components archive_later/sdl2trs/component_manifest.json" + source_ref: "RetroDECK archive_later/sdl2trs/component_manifest.json" note: > Declares level1.rom, level2.rom, level3.rom, level4.rom, level4p.rom and boot.dsk under $roms_path/trs-80. Of those the emulator opens only diff --git a/emulators/solarus.yml b/emulators/solarus.yml index 1fec4df9..18e63c99 100644 --- a/emulators/solarus.yml +++ b/emulators/solarus.yml @@ -24,8 +24,9 @@ notes: | The quest arrives as the content argument. get_quest_path takes the last non-option argv and otherwise falls back to SOLARUS_DEFAULT_QUEST, which defaults to "." (MainLoop.cpp:108-121, cmake/AddOptions.cmake:8, - Common.h:119-123). open_quest mounts that path through PhysFS directly, then - tries /data, /data.solarus and /data.solarus.zip, each both + include/solarus/core/Common.h:119-123). open_quest mounts that path through + PhysFS directly, then tries /data, /data.solarus and + /data.solarus.zip, each both relative and under PHYSFS_getBaseDir (QuestFiles.cpp:151-165), and the quest counts as found once quest.dat resolves (QuestFiles.cpp:228-233). The rest comes out of that mount: quest.dat and project_db.dat diff --git a/emulators/swanstation.yml b/emulators/swanstation.yml index 302cf6d1..e16a8f34 100644 --- a/emulators/swanstation.yml +++ b/emulators/swanstation.yml @@ -13,17 +13,18 @@ notes: | Fork of DuckStation maintained by the libretro community after stenzek removed libretro support. Frozen at an early DuckStation state. - BIOS is required to boot. No HLE fallback. - ref: src/core/system.cpp:667-674 (GetBIOSImage fails = Shutdown) + Boot loads a BIOS image; when none is found a built-in OpenBIOS copy + (dep/openbios) boots instead. + ref: src/core/system.cpp:650,678-682 Auto-detects BIOS by scanning system_dir for files of known sizes. - ref: src/core/host_interface.cpp:183-243 (FindBIOSImageInDirectory) + ref: src/core/host_interface.cpp:136-194 (FindBIOSImageInDirectory) Accepts PS1 (512 KB), PS2 (4 MB), and PS3 (0x3E66F0) BIOS images. Only the first 512 KB are loaded (bios.cpp:84, Image(BIOS_SIZE)). ref: src/core/bios.h:9 (BIOS_SIZE=0x80000, BIOS_SIZE_PS2=0x400000, BIOS_SIZE_PS3=0x3E66F0) - 27 known BIOS entries identified by MD5 hash (all PS1 variants). - ref: src/core/bios.cpp:27-70 (s_image_infos) + 27 known BIOS entries identified by MD5 hash. + ref: src/core/bios.cpp:28-71 (s_image_infos) Each entry has: description, region, hash, patch_compatible flag. Upstream DuckStation has evolved significantly (105 entries, PS2 BIOS, OpenBIOS, @@ -34,6 +35,7 @@ files: description: "SCPH-5500 (v3.0 09-09-96 J)" region: [japan] required: false + hle_fallback: true md5: "8dd7d5296a650fac7319bce665a6a53c" size: 524288 validation: [size, md5] @@ -44,6 +46,7 @@ files: description: "SCPH-5501, 5503, 7003 (v3.0 11-18-96 A)" region: [north-america] required: false + hle_fallback: true md5: "490f666e1afb15b7362b406ed1cea246" size: 524288 validation: [size, md5] @@ -54,6 +57,7 @@ files: description: "SCPH-5502, 5552 (v3.0 01-06-97 E)" region: [europe] required: false + hle_fallback: true md5: "32736f17079d0b2b7024407c39bd3050" size: 524288 validation: [size, md5] @@ -64,6 +68,7 @@ files: description: "PSP, SCPH-1000R (v4.5 05-25-00 J)" region: [world] required: false + hle_fallback: true md5: "c53ca5908936d412331790f4426c6c33" size: 524288 validation: [size, md5] @@ -74,6 +79,7 @@ files: description: "PS3 embedded PS1 BIOS (v5.0 06-23-03 A)" region: [world] required: false + hle_fallback: true md5: "81bbe60ba7a3d1cea1d48c14cbcc647b" size: [524288, 4194304, 4089584] validation: [size, md5] diff --git a/emulators/vba_next.yml b/emulators/vba_next.yml index 3394a2ad..d2180848 100644 --- a/emulators/vba_next.yml +++ b/emulators/vba_next.yml @@ -15,21 +15,18 @@ systems: notes: | Frozen snapshot of VBA-M circa 2011, optimized for libretro by Squarepusher. - Built-in HLE BIOS (myROM array, src/gba.cpp:8423) handles all standard SWI + Built-in HLE BIOS (myROM array, src/gba.c:8930) handles all standard SWI calls. No external BIOS file needed for most games. BIOS loading gated by HAVE_HLE_BIOS (build/Makefile.common:3) and core option vbanext_bios (default: enabled). When enabled, retro_init resolves gba_bios.bin - in system_dir (libretro/libretro.cpp:198-202). CPUInit loads via utilLoad(), - validates size == 0x4000, sets useBios = true (src/gba.cpp:12430-12438). On - failure, myROM is memcpy'd as HLE fallback (src/gba.cpp:12443). + in system_dir (libretro/libretro.c:213-218). CPUInit loads via utilLoad(), + validates size == 0x4000, sets useBios = true (src/gba.c:12943-12950). On + failure, myROM is memcpy'd as HLE fallback (src/gba.c:12954-12956). With real BIOS, execution starts at 0x00000000 (BIOS entry point). Without, jumps to 0x08000000 (ROM entry), skipping boot animation - (src/gba.cpp:12657-12675). - - CPUIsGBABios accepts extensions: .gba, .agb, .bin, .bios, .rom - (src/gba.cpp:8851-8873). + (src/gba.c:13134-13151). Upstream VBA-M CPUInit (src/core/gba/gba.cpp:3674-3702) is functionally identical. No divergences in BIOS handling. diff --git a/emulators/vita3k.yml b/emulators/vita3k.yml index 3ff60e2a..7a4a7842 100644 --- a/emulators/vita3k.yml +++ b/emulators/vita3k.yml @@ -53,6 +53,6 @@ notes: | vs0:sys/external/{name}.suprx (firmware). Auto-LLE modules include libhttp, libssl, libult, libsas, libpgf, libfios2, libsystemgesture, libSceXml, libSceSqlite, librudp, libatrac, libface, libsmart, - libsceavplayer, libSceJson, and more (load_module.cpp:142-161). + libsceavplayer, libSceJson, and more (load_module.cpp:142-162). A third optional preinst firmware PUP (pd0 partition: system BGM, resources) is available from Sony but not commonly required for game compatibility.