feat: extract retrobat guarded bios ini writes

emulatorLauncher writes a BIOS path into an emulator's configuration
only when the file exists: string x = Path.Combine(bios, "name");
if (File.Exists(x)) ini.WriteValue(section, key, x). The extractor now
records each such write as a fixed_name launcher record, with the
enclosing if and early-return conditions, and a key that receives the
bios folder itself as passes_path. A path reassigned before the check,
or a write under a loop or an else, is not read.

Generators read at 48cdc616: KegaFusion (SCD and 32X keys, GenesisBIOS
given the folder), Jgenesis, MelonDS (DS), Mupen64, Project64, mGBA.
The RetroBat paragraph of the Kega Fusion profile now lives in the
launcher layer.
This commit is contained in:
Abdessamad Derraz committed 2026-10-21 10:42:09 +02:00
1 parent fd1d1b7b96
commit 448540dced
4 files changed
+634 -7

No files matched your search

-7
View File
@@ -37,13 +37,6 @@ notes: |
file names the binary fixes. Each file is opened with fopen "rb" and read
with a fixed count, no length, checksum or header is compared.
RetroBat's generator writes SCDEURBIOS, SCDUSABIOS and SCDJAPBIOS as
bios_CD_E.bin, bios_CD_U.bin and bios_CD_J.bin, and the three 32X keys as
32X_G_BIOS.BIN, 32X_M_BIOS.BIN and 32X_S_BIOS.BIN in its bios folder, each
only when the file exists. GenesisBIOS receives the bios folder itself, so
the fopen fails and no TMSS ROM is loaded. The 8-bit keys are not written.
ref: emulatorlauncher Generators/KegaFusion.Generator.cs:99-128
CDTray.raw, Cursor_8.raw, STATIC_8.RAW and gg_nor.all are looked up by name
in an archive embedded in the executable (0x47a530), not on disk. Plugins
(*.rpi) and the KGV1 video codec ship with the program. Fusion.ini, battery