mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-01 07:33:45 -06:00
chore: merge round 4 fixes (retrobat)
This commit is contained in:
commit
3e5deed8fd
5 files changed
+3114
-2
No files matched your search
+1
-1
@@ -75,7 +75,7 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
size: 524288
|
size: 524288
|
||||||
description: "Saturn BIOS"
|
description: "Saturn BIOS"
|
||||||
note: "Any dump of the 512 KiB console ROM, the compatible machines included. Area code is chosen by [Peripheral] Areacode and AutoAreacode, not by the image, so no region selects this file."
|
note: "Any dump of the 512 KiB console ROM, the compatible machines included. Area code is chosen by [Peripheral] Areacode and AutoAreacode, not by the image, so no region selects this file. Each alias labels one of those dumps: mpr-17933.bin, sega_100.bin, sega_100a.bin, sega1003.bin, hisaturn.bin and vsaturn.bin."
|
||||||
source_ref: "SSF.exe 0x43d770 (SaturnBIOS 0x129b1f8), SSF.exe 0x129a2f8 with the filter at 0x129a310, SSF.exe 0x43ff96 (NoBIOS 0x129b4cc), libnative-lib.so SSF::CStateSaveBase::_GetBIOSHash 0x134b8ec-0x134b924, SSF-archive Document/Readme.txt BIOSファイルについて"
|
source_ref: "SSF.exe 0x43d770 (SaturnBIOS 0x129b1f8), SSF.exe 0x129a2f8 with the filter at 0x129a310, SSF.exe 0x43ff96 (NoBIOS 0x129b4cc), libnative-lib.so SSF::CStateSaveBase::_GetBIOSHash 0x134b8ec-0x134b924, SSF-archive Document/Readme.txt BIOSファイルについて"
|
||||||
|
|
||||||
- name: "epr-20091.ic8"
|
- name: "epr-20091.ic8"
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ files:
|
|||||||
validation: [size]
|
validation: [size]
|
||||||
aliases: [mpr-17933.bin, saturn_bios.bin]
|
aliases: [mpr-17933.bin, saturn_bios.bin]
|
||||||
description: "Saturn IPL ROM (BIOS). Any region accepted."
|
description: "Saturn IPL ROM (BIOS). Any region accepted."
|
||||||
|
note: "The libretro port reads sega_101.bin, mpr-17933.bin and saturn_bios.bin from its system directory (kBiosFilenames)."
|
||||||
source_ref:
|
source_ref:
|
||||||
standalone: "apps/ymir-sdl3/src/util/rom_loader.cpp:9-22, apps/ymir-sdl3/src/app/rom_manager.cpp:14-53, libs/ymir-core/include/ymir/sys/memory_defs.hpp:9"
|
standalone: "apps/ymir-sdl3/src/util/rom_loader.cpp:9-22, apps/ymir-sdl3/src/app/rom_manager.cpp:14-53, libs/ymir-core/include/ymir/sys/memory_defs.hpp:9"
|
||||||
libretro: "apps/ymir-libretro/src/libretro.cpp:305-309, apps/ymir-libretro/src/libretro.cpp:651-690, apps/ymir-libretro/src/libretro.cpp:692-703"
|
libretro: "apps/ymir-libretro/src/libretro.cpp:305-309, apps/ymir-libretro/src/libretro.cpp:651-690, apps/ymir-libretro/src/libretro.cpp:692-703"
|
||||||
|
|||||||
@@ -3190,6 +3190,42 @@ launchers:
|
|||||||
fails_when_missing: warning, kickstart_ext_rom_file not written
|
fails_when_missing: warning, kickstart_ext_rom_file not written
|
||||||
source_ref: "emulatorLauncher/Generators/Amiberry.Generator.cs:147-154, 553-557,\
|
source_ref: "emulatorLauncher/Generators/Amiberry.Generator.cs:147-154, 553-557,\
|
||||||
\ 686-711"
|
\ 686-711"
|
||||||
|
- emulator: arcadeduck
|
||||||
|
build: standalone
|
||||||
|
kind: names_searched
|
||||||
|
names:
|
||||||
|
- <bios archive of the game's system in resources/arcadedb.yaml>
|
||||||
|
case_insensitive: false
|
||||||
|
search_dir: <rom directory>, then bios
|
||||||
|
passes_to: "settings.ini [BIOS] SearchDirectory = <folder found>"
|
||||||
|
fails_when_missing: "ApplicationException 'Missing BIOS '<biosArchive>' : place\
|
||||||
|
\ it next to the game or in the RetroBat bios folder.'"
|
||||||
|
source_ref: "emulatorLauncher/Generators/ArcadeDuck.Generator.cs:52, 102-122, 219,\
|
||||||
|
\ emulatorLauncher/Generators/ArcadeDuck.Database.cs:62, 221-222"
|
||||||
|
- emulator: arcadeduck
|
||||||
|
build: standalone
|
||||||
|
kind: names_searched
|
||||||
|
names:
|
||||||
|
- konamigv.zip
|
||||||
|
slot: konami_gv
|
||||||
|
case_insensitive: false
|
||||||
|
search_dir: <rom directory>, then bios
|
||||||
|
passes_to: "settings.ini [BIOS] SearchDirectory = <folder found>"
|
||||||
|
fails_when_missing: "ApplicationException 'Missing BIOS '<biosArchive>' : place\
|
||||||
|
\ it next to the game or in the RetroBat bios folder.'"
|
||||||
|
depends_on_option: resources/arcadedb.yaml names no archive for konami_gv
|
||||||
|
source_ref: "emulatorLauncher/Generators/ArcadeDuck.Generator.cs:52, 102-122, 219,\
|
||||||
|
\ emulatorLauncher/Generators/ArcadeDuck.Database.cs:62, 221-222"
|
||||||
|
- emulator: arcadeduck
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "settings.ini [BIOS] SearchDirectory = bios"
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: no bios archive known for the game's system
|
||||||
|
source_ref: "emulatorLauncher/Generators/ArcadeDuck.Generator.cs:52, 102-122, 219,\
|
||||||
|
\ emulatorLauncher/Generators/ArcadeDuck.Database.cs:62, 221-222"
|
||||||
- emulator: ares
|
- emulator: ares
|
||||||
build: standalone
|
build: standalone
|
||||||
kind: names_searched
|
kind: names_searched
|
||||||
@@ -3213,6 +3249,265 @@ launchers:
|
|||||||
passes_to: "settings.bml LaserActiveSEGAPAC/Firmware/BIOS.US (first found)"
|
passes_to: "settings.bml LaserActiveSEGAPAC/Firmware/BIOS.US (first found)"
|
||||||
fails_when_missing: false
|
fails_when_missing: false
|
||||||
source_ref: "emulatorLauncher/Generators/Ares.Generator.cs:524-531"
|
source_ref: "emulatorLauncher/Generators/Ares.Generator.cs:524-531"
|
||||||
|
- emulator: bizhawk
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- gb_bios.bin
|
||||||
|
slot: other systems
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: config.ini BizHawk.Emulation.Cores.Nintendo.Sameboy.Sameboy EnableBIOS
|
||||||
|
= true, only if the file exists, the path itself is not written
|
||||||
|
fails_when_missing: EnableBIOS = false
|
||||||
|
depends_on_option: core == "SameBoy", bizhawk_gb_bios on, system != "gbc"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Bizhawk.CoreOptions.cs:517-518, 524-531"
|
||||||
|
- emulator: bizhawk
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- gbc_bios.bin
|
||||||
|
slot: gbc
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: config.ini BizHawk.Emulation.Cores.Nintendo.Sameboy.Sameboy EnableBIOS
|
||||||
|
= true, only if the file exists, the path itself is not written
|
||||||
|
fails_when_missing: EnableBIOS = false
|
||||||
|
depends_on_option: core == "SameBoy", bizhawk_gb_bios on, system == "gbc"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Bizhawk.CoreOptions.cs:517-518, 524-531"
|
||||||
|
- emulator: bizhawk
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- gb_bios.bin
|
||||||
|
slot: other systems
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: config.ini BizHawk.Emulation.Cores.Nintendo.Gameboy.Gameboy EnableBIOS
|
||||||
|
= true, only if the file exists, the path itself is not written
|
||||||
|
fails_when_missing: EnableBIOS = false
|
||||||
|
depends_on_option: core == "Gambatte", bizhawk_gb_bios on, system != "gbc" && system
|
||||||
|
!= "gba"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Bizhawk.CoreOptions.cs:536-537, 543-552"
|
||||||
|
- emulator: bizhawk
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- gbc_bios.bin
|
||||||
|
slot: gbc
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: config.ini BizHawk.Emulation.Cores.Nintendo.Gameboy.Gameboy EnableBIOS
|
||||||
|
= true, only if the file exists, the path itself is not written
|
||||||
|
fails_when_missing: EnableBIOS = false
|
||||||
|
depends_on_option: core == "Gambatte", bizhawk_gb_bios on, system == "gbc"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Bizhawk.CoreOptions.cs:536-537, 543-552"
|
||||||
|
- emulator: bizhawk
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- gba_bios.bin
|
||||||
|
slot: gba
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: config.ini BizHawk.Emulation.Cores.Nintendo.Gameboy.Gameboy EnableBIOS
|
||||||
|
= true, only if the file exists, the path itself is not written
|
||||||
|
fails_when_missing: EnableBIOS = false
|
||||||
|
depends_on_option: core == "Gambatte", bizhawk_gb_bios on, system == "gba"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Bizhawk.CoreOptions.cs:536-537, 543-552"
|
||||||
|
- emulator: blastem
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- bios_CD_U.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: blastem.cfg system.scd_bios_us, only if the file exists
|
||||||
|
fails_when_missing: info log, scd_bios_us left as it is
|
||||||
|
source_ref: "emulatorLauncher/Generators/Blastem.Generator.cs:258, 262, 272-279"
|
||||||
|
- emulator: blastem
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- bios_CD_E.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: blastem.cfg system.scd_bios_eu, only if the file exists
|
||||||
|
fails_when_missing: info log, scd_bios_eu left as it is
|
||||||
|
source_ref: "emulatorLauncher/Generators/Blastem.Generator.cs:258, 263, 272-279"
|
||||||
|
- emulator: blastem
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- bios_CD_J.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: blastem.cfg system.scd_bios_jp, only if the file exists
|
||||||
|
fails_when_missing: info log, scd_bios_jp left as it is
|
||||||
|
source_ref: "emulatorLauncher/Generators/Blastem.Generator.cs:258, 264, 272-279"
|
||||||
|
- emulator: blastem
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- colecovision.rom
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: blastem.cfg system.coleco_bios_path, only if the file exists
|
||||||
|
fails_when_missing: info log, coleco_bios_path left as it is
|
||||||
|
source_ref: "emulatorLauncher/Generators/Blastem.Generator.cs:258, 265, 272-279"
|
||||||
|
- emulator: blastem
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- 32X_M_BIOS.BIN
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: blastem.cfg system.s32x_main_bios, only if the file exists
|
||||||
|
fails_when_missing: info log, s32x_main_bios left as it is
|
||||||
|
source_ref: "emulatorLauncher/Generators/Blastem.Generator.cs:258, 267, 272-279"
|
||||||
|
- emulator: blastem
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- 32X_S_BIOS.BIN
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: blastem.cfg system.s32x_sub_bios, only if the file exists
|
||||||
|
fails_when_missing: info log, s32x_sub_bios left as it is
|
||||||
|
source_ref: "emulatorLauncher/Generators/Blastem.Generator.cs:258, 268, 272-279"
|
||||||
|
- emulator: blastem
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- 32X_G_BIOS.BIN
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: blastem.cfg system.s32x_68k_bios, only if the file exists
|
||||||
|
fails_when_missing: info log, s32x_68k_bios left as it is
|
||||||
|
source_ref: "emulatorLauncher/Generators/Blastem.Generator.cs:258, 269, 272-279"
|
||||||
|
- emulator: bsyndrome
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/bsyndrome/MUSIC
|
||||||
|
passes_to: command line --musicpath=bios/bsyndrome/MUSIC
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: _emulator == "bsyndrome"
|
||||||
|
source_ref: "emulatorLauncher/Generators/PortsLauncher.Configuration.cs:133-134,\
|
||||||
|
\ 153, 157-158"
|
||||||
|
- emulator: amiberry, hatari, hatarib, puae
|
||||||
|
build: libretro
|
||||||
|
kind: copies
|
||||||
|
names:
|
||||||
|
- capsimg.dll
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: copied to <retroarch>/<name>, only when the target does not exist
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: core in capsimgCore, rom extension ".ipf"
|
||||||
|
source_ref: "emulatorLauncher/Generators/LibRetro.Generator.cs:1008-1017, 2659"
|
||||||
|
- emulator: demul
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/dc
|
||||||
|
passes_to: "Demul.ini [files] roms0 = bios/dc"
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/Demul.Generator.cs:106, 109-114, 123-124"
|
||||||
|
- emulator: demul
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "Demul.ini [files] roms1 = bios"
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/Demul.Generator.cs:106, 109-114, 123-124"
|
||||||
|
- emulator: desmume
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- bios7.bin
|
||||||
|
- bios9.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "desmume.ini [BIOS] ARM7BIOSFile, ARM9BIOSFile, only if every listed\
|
||||||
|
\ file exists"
|
||||||
|
fails_when_missing: UseExtBIOS left at 0
|
||||||
|
depends_on_option: desmume_UseExtBIOS on
|
||||||
|
source_ref: "emulatorLauncher/Generators/Desmume.Generator.cs:97-105"
|
||||||
|
- emulator: desmume
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- firmware.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "desmume.ini [Firmware] FirmwareFile, only if the file exists"
|
||||||
|
fails_when_missing: UseExtFirmware left at 0
|
||||||
|
depends_on_option: desmume_UseExtFirmware on, desmume_firmwareFile unset or not
|
||||||
|
an existing file
|
||||||
|
source_ref: "emulatorLauncher/Generators/Desmume.Generator.cs:111-123"
|
||||||
|
- emulator: dolphin
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- gba_bios.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "User/Config/Dolphin.ini [GBA] BIOS, written without an existence check"
|
||||||
|
fails_when_missing: path written without an existence check
|
||||||
|
source_ref: "emulatorLauncher/Generators/Dolphin.Generator.cs:742-743"
|
||||||
|
- emulator: dolphin
|
||||||
|
build: standalone
|
||||||
|
kind: copies
|
||||||
|
names:
|
||||||
|
- triforce/segaboot.gcm
|
||||||
|
- segaboot.gcm
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: first found copied to <emulator>/User/Triforce/segaboot.gcm, skipped
|
||||||
|
when the target is as large and not older
|
||||||
|
fails_when_missing: "warning '[WARNING] Triforce: segaboot.gcm not found in bios\\\
|
||||||
|
triforce, test menu will not be available.' when the target is absent too"
|
||||||
|
depends_on_option: _triforce, !_crediar
|
||||||
|
source_ref: "emulatorLauncher/Generators/Dolphin.Generator.cs:782-783, 1048-1083"
|
||||||
|
- emulator: dosbox-pure
|
||||||
|
build: standalone
|
||||||
|
kind: copies
|
||||||
|
names:
|
||||||
|
- MT32_CONTROL.ROM
|
||||||
|
- MT32_PCM.ROM
|
||||||
|
- Roland_SC-55.sf2
|
||||||
|
- Roland_SC-88.sf2
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios/scummvm/extra
|
||||||
|
passes_to: copied to <emulator>/system/<name>, only when the target does not exist
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/DosBoxPure.Generator.cs:132, 137-155"
|
||||||
|
- emulator: dosbox-staging
|
||||||
|
build: standalone
|
||||||
|
kind: copies
|
||||||
|
names:
|
||||||
|
- MT32_CONTROL.ROM
|
||||||
|
- MT32_PCM.ROM
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios/scummvm/extra
|
||||||
|
passes_to: copied to <emulator>/mt32-roms/<name>, only when the target does not
|
||||||
|
exist
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/DosBoxStaging.Generator.cs:328, 333-341"
|
||||||
|
- emulator: dosbox-staging
|
||||||
|
build: standalone
|
||||||
|
kind: copies
|
||||||
|
names:
|
||||||
|
- Roland_SC-55.sf2
|
||||||
|
- Roland_SC-88.sf2
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios/scummvm/extra
|
||||||
|
passes_to: copied to <emulator>/soundfonts/<name>, only when the target does not
|
||||||
|
exist
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/DosBoxStaging.Generator.cs:325, 343-351"
|
||||||
- emulator: duckstation
|
- emulator: duckstation
|
||||||
build: standalone
|
build: standalone
|
||||||
kind: passes_path
|
kind: passes_path
|
||||||
@@ -3238,6 +3533,62 @@ launchers:
|
|||||||
fails_when_missing: not checked by the launcher
|
fails_when_missing: not checked by the launcher
|
||||||
depends_on_option: duck_bios
|
depends_on_option: duck_bios
|
||||||
source_ref: "emulatorLauncher/Generators/Duckstation.Generator.cs:204-209, .emulationstation/es_features.cfg:11638-11646"
|
source_ref: "emulatorLauncher/Generators/Duckstation.Generator.cs:204-209, .emulationstation/es_features.cfg:11638-11646"
|
||||||
|
- emulator: eka2l1
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/eka2l1/data
|
||||||
|
passes_to: config.yml data-storage = bios/eka2l1/data
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/Eka2l1.Generator.cs:153, 156"
|
||||||
|
- emulator: fbneo
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "config/fbneo64.ini szAppRomPaths[1] = bios"
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "File.Exists(iniFile)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Fbneo.Generator.cs:111"
|
||||||
|
- emulator: fbneo
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/fbneo
|
||||||
|
passes_to: "config/fbneo64.ini szAppRomPaths[2] = bios/fbneo"
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "File.Exists(iniFile)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Fbneo.Generator.cs:113, 116"
|
||||||
|
- emulator: fbneo
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/fbneo/cheats
|
||||||
|
passes_to: config/fbneo64.ini szAppCheatsPath = bios/fbneo/cheats
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "File.Exists(iniFile)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Fbneo.Generator.cs:113, 118, 121"
|
||||||
|
- emulator: fbneo
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/fbneo/samples
|
||||||
|
passes_to: config/fbneo64.ini szAppSamplesPath = bios/fbneo/samples
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "File.Exists(iniFile)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Fbneo.Generator.cs:123, 126"
|
||||||
|
- emulator: gsplus
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- APPLE2GS.ROM
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: config.txt g_cfg_rom_path, written without an existence check
|
||||||
|
fails_when_missing: path written without an existence check
|
||||||
|
depends_on_option: "!string.IsNullOrEmpty(AppConfig[\"bios\"]) && Directory.Exists(AppConfig[\"\
|
||||||
|
bios\"])"
|
||||||
|
source_ref: "emulatorLauncher/Generators/GsPlus.Generator.cs:66-67"
|
||||||
- emulator: jgenesis
|
- emulator: jgenesis
|
||||||
build: standalone
|
build: standalone
|
||||||
kind: fixed_name
|
kind: fixed_name
|
||||||
@@ -3559,6 +3910,189 @@ launchers:
|
|||||||
fails_when_missing: option not written when the file is absent
|
fails_when_missing: option not written when the file is absent
|
||||||
depends_on_option: hatarib_tos
|
depends_on_option: hatarib_tos
|
||||||
source_ref: "emulatorLauncher/Generators/LibRetro.CoreOptions.cs:3184-3187, .emulationstation/es_features.cfg:6667-6676"
|
source_ref: "emulatorLauncher/Generators/LibRetro.CoreOptions.cs:3184-3187, .emulationstation/es_features.cfg:6667-6676"
|
||||||
|
- emulator: jzintv
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- exec.bin
|
||||||
|
- grom.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: command line -e <bios>/exec.bin -g <bios>/grom.bin
|
||||||
|
fails_when_missing: ApplicationException 'grom.bin or exec.bin not found in bios
|
||||||
|
folder!'
|
||||||
|
source_ref: "emulatorLauncher/Generators/Jzintv.Generator.cs:35-44"
|
||||||
|
- emulator: jzintv
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- ecs.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: command line -E <bios>/ecs.bin, only if the file exists
|
||||||
|
fails_when_missing: "warning '[WARN] ECS option enabled but ecs.bin not found in\
|
||||||
|
\ bios folder!', -s0 passed"
|
||||||
|
depends_on_option: jzintv_useECS on, no <rom>.commands and no roms/intellivision/default.commands
|
||||||
|
source_ref: "emulatorLauncher/Generators/Jzintv.Generator.cs:47-52, 65-79"
|
||||||
|
- emulator: mame64
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios;<rom directory>
|
||||||
|
passes_to: command line -rp bios;<rom directory>
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "messMode == null || messMode.Name == \"mame\" || messMode.Name\
|
||||||
|
\ == \"hbmame\", !string.IsNullOrEmpty(AppConfig[\"bios\"]) && Directory.Exists(AppConfig[\"\
|
||||||
|
bios\"])"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Mame64.Generator.cs:90-93"
|
||||||
|
- emulator: mame64
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/hbmame/samples when hbmame, else bios/mame/samples
|
||||||
|
passes_to: command line -sp bios/hbmame/samples when hbmame, else bios/mame/samples
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "messMode == null || messMode.Name == \"mame\" || messMode.Name\
|
||||||
|
\ == \"hbmame\", !string.IsNullOrEmpty(samplePath) && Directory.Exists(samplePath)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Mame64.Generator.cs:98, 103-104"
|
||||||
|
- emulator: mame64
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/mame/artwork
|
||||||
|
passes_to: command line -artpath bios/mame/artwork
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "messMode == null || messMode.Name == \"mame\" || messMode.Name\
|
||||||
|
\ == \"hbmame\", !string.IsNullOrEmpty(artPath) && Directory.Exists(artPath),\
|
||||||
|
\ disable_artwork on"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Mame64.Generator.cs:108, 115-117"
|
||||||
|
- emulator: mame64
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/mame/artwork;<emulator>/artwork;<saves>/hbmame/artwork when hbmame,
|
||||||
|
else <saves>/mame/artwork
|
||||||
|
passes_to: command line -artpath bios/mame/artwork;<emulator>/artwork;<saves>/hbmame/artwork
|
||||||
|
when hbmame, else <saves>/mame/artwork
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "messMode == null || messMode.Name == \"mame\" || messMode.Name\
|
||||||
|
\ == \"hbmame\", !string.IsNullOrEmpty(artPath) && Directory.Exists(artPath),\
|
||||||
|
\ not (disable_artwork on)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Mame64.Generator.cs:108-109, 115, 118-119"
|
||||||
|
- emulator: mame64
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/hbmame/ini when hbmame, else bios/mame/ini, or bios/groovymame/ini
|
||||||
|
when _groovy
|
||||||
|
passes_to: command line -inipath bios/hbmame/ini when hbmame, else bios/mame/ini,
|
||||||
|
or bios/groovymame/ini when _groovy
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "messMode == null || messMode.Name == \"mame\" || messMode.Name\
|
||||||
|
\ == \"hbmame\", !string.IsNullOrEmpty(iniPath) && Directory.Exists(iniPath)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Mame64.Generator.cs:71-73, 164-165"
|
||||||
|
- emulator: mame64
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/hbmame/hash when hbmame, else bios/mame/hash
|
||||||
|
passes_to: command line -hash bios/hbmame/hash when hbmame, else bios/mame/hash
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "messMode == null || messMode.Name == \"mame\" || messMode.Name\
|
||||||
|
\ == \"hbmame\", !string.IsNullOrEmpty(hashPath) && Directory.Exists(hashPath)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Mame64.Generator.cs:169, 174-175"
|
||||||
|
- emulator: mame64
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/mess;bios;<rom directory>
|
||||||
|
passes_to: command line -rp bios/mess;bios;<rom directory>
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "!string.IsNullOrEmpty(AppConfig[\"bios\"]) && Directory.Exists(AppConfig.GetFullPath(\"\
|
||||||
|
bios\")), Directory.Exists(Path.Combine(bios, \"mess\"))"
|
||||||
|
source_ref: "emulatorLauncher/Generators/MessSystem.cs:612, 660, 663-664"
|
||||||
|
- emulator: mame
|
||||||
|
build: libretro
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/mess;bios;<rom directory>
|
||||||
|
passes_to: command line -rp bios/mess;bios;<rom directory>
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "!string.IsNullOrEmpty(AppConfig[\"bios\"]) && Directory.Exists(AppConfig.GetFullPath(\"\
|
||||||
|
bios\")), Directory.Exists(Path.Combine(bios, \"mess\"))"
|
||||||
|
source_ref: "emulatorLauncher/Generators/MessSystem.cs:612, 660, 663-664"
|
||||||
|
- emulator: mame64
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios;<rom directory>
|
||||||
|
passes_to: command line -rp bios;<rom directory>
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "!string.IsNullOrEmpty(AppConfig[\"bios\"]) && Directory.Exists(AppConfig.GetFullPath(\"\
|
||||||
|
bios\")), !Directory.Exists(Path.Combine(bios, \"mess\"))"
|
||||||
|
source_ref: "emulatorLauncher/Generators/MessSystem.cs:612, 660, 665-666"
|
||||||
|
- emulator: mame
|
||||||
|
build: libretro
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios;<rom directory>
|
||||||
|
passes_to: command line -rp bios;<rom directory>
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "!string.IsNullOrEmpty(AppConfig[\"bios\"]) && Directory.Exists(AppConfig.GetFullPath(\"\
|
||||||
|
bios\")), !Directory.Exists(Path.Combine(bios, \"mess\"))"
|
||||||
|
source_ref: "emulatorLauncher/Generators/MessSystem.cs:612, 660, 665-666"
|
||||||
|
- emulator: mame64
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/mame/ini
|
||||||
|
passes_to: command line -inipath bios/mame/ini
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/MessSystem.cs:612, 702-703"
|
||||||
|
- emulator: mame64
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/mame/hash
|
||||||
|
passes_to: command line -hash bios/mame/hash
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/MessSystem.cs:612, 705-706"
|
||||||
|
- emulator: melonds
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- dsi_firmware.bin
|
||||||
|
- dsi_bios7.bin
|
||||||
|
- dsi_bios9.bin
|
||||||
|
- dsi_nand.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "melonDS.toml [DSi] FirmwarePath, BIOS7Path, BIOS9Path, NANDPath"
|
||||||
|
fails_when_missing: ApplicationException 'Cannot run dsi system, dsi bios files
|
||||||
|
are missing'
|
||||||
|
depends_on_option: melonds_console == "dsi" || rom extension ".bin"
|
||||||
|
source_ref: "emulatorLauncher/Generators/MelonDS.Generator.cs:34, 134-137, 187-191,\
|
||||||
|
\ 221-227"
|
||||||
|
- emulator: melonds
|
||||||
|
build: standalone
|
||||||
|
kind: scans_dir
|
||||||
|
names:
|
||||||
|
- "dsi_nand*{region}*.bin"
|
||||||
|
expands:
|
||||||
|
region:
|
||||||
|
- USA
|
||||||
|
- EUR
|
||||||
|
- JPN
|
||||||
|
- KOR
|
||||||
|
- AUS
|
||||||
|
- CHN
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "melonDS.toml [DSi] NANDPath, first file whose name holds the region"
|
||||||
|
fails_when_missing: falls back to dsi_nand.bin
|
||||||
|
depends_on_option: melonds_console == "dsi", melonds_nandregion set, rom extension
|
||||||
|
not ".bin"
|
||||||
|
source_ref: "emulatorLauncher/Generators/MelonDS.Generator.cs:193-202, .emulationstation/es_features.cfg:15797-15804"
|
||||||
- emulator: mesen
|
- emulator: mesen
|
||||||
build: standalone
|
build: standalone
|
||||||
kind: copies
|
kind: copies
|
||||||
@@ -3722,6 +4256,101 @@ launchers:
|
|||||||
fails_when_missing: ApplicationException '<machine> machine has missing BIOS file
|
fails_when_missing: ApplicationException '<machine> machine has missing BIOS file
|
||||||
'<c>' in 'bios\openmsx\share\systemroms' folder.'
|
'<c>' in 'bios\openmsx\share\systemroms' folder.'
|
||||||
source_ref: "emulatorLauncher/Generators/OpenMSX.Generator.cs:156-159, 467"
|
source_ref: "emulatorLauncher/Generators/OpenMSX.Generator.cs:156-159, 467"
|
||||||
|
- emulator: kronos
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- saturn_bios.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "kronos.ini [1.0] General\\Bios, only if the file exists"
|
||||||
|
fails_when_missing: General\Bios not written
|
||||||
|
depends_on_option: kronos_force_bios unset
|
||||||
|
source_ref: "emulatorLauncher/Generators/Kronos.Generator.cs:161, 169-170"
|
||||||
|
- emulator: kronos
|
||||||
|
build: standalone
|
||||||
|
kind: core_option
|
||||||
|
names:
|
||||||
|
- saturn_bios.bin
|
||||||
|
- sega_101.bin
|
||||||
|
- mpr-17933.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "kronos.ini [1.0] General\\Bios = <bios>/<value>, only if the file exists"
|
||||||
|
fails_when_missing: General\Bios not written
|
||||||
|
depends_on_option: kronos_force_bios
|
||||||
|
source_ref: "emulatorLauncher/Generators/Kronos.Generator.cs:162-170, .emulationstation/es_features.cfg:13529-13534"
|
||||||
|
- emulator: ssf
|
||||||
|
build: standalone
|
||||||
|
kind: core_option
|
||||||
|
names:
|
||||||
|
- saturn_bios.bin
|
||||||
|
- sega_101.bin
|
||||||
|
- mpr-17933.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "SSF.ini [Peripheral] SaturnBIOS = <bios>/<value>, only if the file exists"
|
||||||
|
fails_when_missing: SaturnBIOS not written
|
||||||
|
depends_on_option: use_external_bios
|
||||||
|
source_ref: "emulatorLauncher/Generators/SSF.Generator.cs:76-83, .emulationstation/es_features.cfg:19240-19245"
|
||||||
|
- emulator: yabasanshiro
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- saturn_bios.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "yabause.ini [0.9.11] General\\Bios, only if the file exists"
|
||||||
|
fails_when_missing: General\Bios not written
|
||||||
|
depends_on_option: yabasanshiro_force_bios unset
|
||||||
|
source_ref: "emulatorLauncher/Generators/Yabasanshiro.Generator.cs:122, 130-131"
|
||||||
|
- emulator: yabasanshiro
|
||||||
|
build: standalone
|
||||||
|
kind: core_option
|
||||||
|
names:
|
||||||
|
- saturn_bios.bin
|
||||||
|
- sega_101.bin
|
||||||
|
- mpr-17933.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "yabause.ini [0.9.11] General\\Bios = <bios>/<value>, only if the file\
|
||||||
|
\ exists"
|
||||||
|
fails_when_missing: General\Bios not written
|
||||||
|
depends_on_option: yabasanshiro_force_bios
|
||||||
|
source_ref: "emulatorLauncher/Generators/Yabasanshiro.Generator.cs:123-131, .emulationstation/es_features.cfg:21111-21116"
|
||||||
|
- emulator: ymir
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- saturn_bios.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "Ymir.toml [System.IPL] Path, written without an existence check"
|
||||||
|
fails_when_missing: path written without an existence check
|
||||||
|
depends_on_option: ymir_force_bios unset
|
||||||
|
source_ref: "emulatorLauncher/Generators/Ymir.Generator.cs:118, 125"
|
||||||
|
- emulator: ymir
|
||||||
|
build: standalone
|
||||||
|
kind: core_option
|
||||||
|
names:
|
||||||
|
- saturn_bios.bin
|
||||||
|
- sega_101.bin
|
||||||
|
- mpr-17933.bin
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "Ymir.toml [System.IPL] Path = <bios>/<value>, written without an existence\
|
||||||
|
\ check"
|
||||||
|
fails_when_missing: path written without an existence check
|
||||||
|
depends_on_option: ymir_force_bios
|
||||||
|
source_ref: "emulatorLauncher/Generators/Ymir.Generator.cs:120-125, .emulationstation/es_features.cfg:21170-21174"
|
||||||
|
- emulator: ymir
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "Ymir.toml [General.PathOverrides] IPLROMImages = bios"
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/Ymir.Generator.cs:143, 150"
|
||||||
- emulator: pcsx2
|
- emulator: pcsx2
|
||||||
build: standalone
|
build: standalone
|
||||||
kind: names_searched
|
kind: names_searched
|
||||||
@@ -3888,6 +4517,95 @@ launchers:
|
|||||||
passes_to: swanstation_BIOS_PathNTSCJ, swanstation_BIOS_PathNTSCU, swanstation_BIOS_PathPAL
|
passes_to: swanstation_BIOS_PathNTSCJ, swanstation_BIOS_PathNTSCU, swanstation_BIOS_PathPAL
|
||||||
fails_when_missing: names written without an existence check
|
fails_when_missing: names written without an existence check
|
||||||
source_ref: "emulatorLauncher/Generators/LibRetro.CoreOptions.cs:5982-6009"
|
source_ref: "emulatorLauncher/Generators/LibRetro.CoreOptions.cs:5982-6009"
|
||||||
|
- emulator: psxmame
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/psxmame/bios;<rom directory>
|
||||||
|
passes_to: command line -rompath bios/psxmame/bios;<rom directory>
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/PSXMame.Generator.cs:38, 42, 47-48"
|
||||||
|
- emulator: raine
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "config/raine32_sdl.cfg [Directories] rom_dir_1 = bios"
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "!string.IsNullOrEmpty(biosPath)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Raine.Generator.cs:87, 92"
|
||||||
|
- emulator: raine
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- neocdz.zip
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "config/raine32_sdl.cfg [neocd] neocd_bios, written without an existence\
|
||||||
|
\ check"
|
||||||
|
fails_when_missing: path written without an existence check
|
||||||
|
depends_on_option: "!string.IsNullOrEmpty(biosPath)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Raine.Generator.cs:87, 93"
|
||||||
|
- emulator: rpcs3
|
||||||
|
build: standalone
|
||||||
|
kind: fixed_name
|
||||||
|
names:
|
||||||
|
- PS3UPDAT.PUP
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: command line --installfw <bios>/PS3UPDAT.PUP, launched instead of the
|
||||||
|
game
|
||||||
|
fails_when_missing: ApplicationException 'PS3 firmware is not installed in rpcs3
|
||||||
|
emulator, either place it in \bios folder, or launch the emulator and install
|
||||||
|
the firware.'
|
||||||
|
depends_on_option: <emulator>/dev_flash/vsh/etc/version.txt absent
|
||||||
|
source_ref: "emulatorLauncher/Generators/Rpcs3.Generator.cs:195-218"
|
||||||
|
- emulator: snes9x
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios
|
||||||
|
passes_to: "snes9x.conf [Settings\\Win\\Files] Dir:Bios = bios"
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/Snes9x.Generator.cs:126-134"
|
||||||
|
- emulator: tsugaru
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names:
|
||||||
|
- FMT_SYS.ROM
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios/fmtowns, then bios/fmtownsux, then <emulator>/roms, then <emulator>/fmtownsux
|
||||||
|
passes_to: "command line: first argument <folder found>, -CMOS <folder found>/CMOS.DAT"
|
||||||
|
fails_when_missing: "info '[TsugaruGenerator] Bios path not found', no launch"
|
||||||
|
depends_on_option: "bios/fmtowns is a directory (biosPath stays null otherwise when\
|
||||||
|
\ FMT_SYS.ROM is checked)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Tsugaru.Generator.cs:37-56"
|
||||||
|
- emulator: flycast
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/dc
|
||||||
|
passes_to: "emu.cfg [config] Dreamcast.BiosPath = bios/dc"
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/Flycast.Generator.cs:149, 167"
|
||||||
|
- emulator: scummvm
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/scummvm/theme
|
||||||
|
passes_to: "<exe>.ini [scummvm] themepath = bios/scummvm/theme"
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "Directory.Exists(themePath)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/ScummVm.Generator.cs:265-266, 271"
|
||||||
|
- emulator: scummvm
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/scummvm/extra
|
||||||
|
passes_to: "<exe>.ini [scummvm] extrapath = bios/scummvm/extra"
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "Directory.Exists(extraPath)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/ScummVm.Generator.cs:265-267, 275"
|
||||||
- emulator: winuae
|
- emulator: winuae
|
||||||
build: standalone
|
build: standalone
|
||||||
kind: names_searched
|
kind: names_searched
|
||||||
@@ -4094,3 +4812,34 @@ launchers:
|
|||||||
fails_when_missing: "warning '[Generator] Chihiro media board flash missing next\
|
fails_when_missing: "warning '[Generator] Chihiro media board flash missing next\
|
||||||
\ to the BIOS.'"
|
\ to the BIOS.'"
|
||||||
source_ref: "emulatorLauncher/Generators/Xemu.Generator.cs:438-441"
|
source_ref: "emulatorLauncher/Generators/Xemu.Generator.cs:438-441"
|
||||||
|
- emulator: xm6pro
|
||||||
|
build: standalone
|
||||||
|
kind: copies
|
||||||
|
names:
|
||||||
|
- IPLROM.DAT
|
||||||
|
- CGROM.DAT
|
||||||
|
- IPLROMXV.DAT
|
||||||
|
- IPLROMCO.DAT
|
||||||
|
- IPLROM30.DAT
|
||||||
|
case_insensitive: true
|
||||||
|
search_dir: bios/keropi
|
||||||
|
passes_to: copied to <emulator>/<name>, only when the target does not exist
|
||||||
|
fails_when_missing: false
|
||||||
|
depends_on_option: "!string.IsNullOrEmpty(biosRoot), Directory.Exists(biosPath)"
|
||||||
|
source_ref: "emulatorLauncher/Generators/Xm6pro.Generator.cs:118-141"
|
||||||
|
- emulator: xroar
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/dragon, or bios/coco when system == "coco"
|
||||||
|
passes_to: command line -rompath bios/dragon, or bios/coco when system == "coco"
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/Xroar.Generator.cs:76-80"
|
||||||
|
- emulator: xroar
|
||||||
|
build: standalone
|
||||||
|
kind: passes_path
|
||||||
|
names: []
|
||||||
|
search_dir: bios/dragon
|
||||||
|
passes_to: xroar.conf rompath ".\\..\\..\\bios\\dragon"
|
||||||
|
fails_when_missing: false
|
||||||
|
source_ref: "emulatorLauncher/Generators/Xroar.Generator.cs:176, 191"
|
||||||
File diff suppressed because it is too large.
Load diff
@@ -464,6 +464,678 @@ class GuardedConfigWrites(unittest.TestCase):
|
|||||||
self.assertEqual(rl.GUARDED_WRITES[f"{G}/KegaFusion.Generator.cs"], "kega-fusion")
|
self.assertEqual(rl.GUARDED_WRITES[f"{G}/KegaFusion.Generator.cs"], "kega-fusion")
|
||||||
|
|
||||||
|
|
||||||
|
SATURN_FEATURES = """
|
||||||
|
<features>
|
||||||
|
<emulator name="kronos">
|
||||||
|
<feature name="FORCE BIOS" value="kronos_force_bios" order="103">
|
||||||
|
<choice name="Multi-region" value="saturn_bios.bin"/>
|
||||||
|
<choice name="JAP" value="sega_101.bin"/>
|
||||||
|
<choice name="HLE" value="hle"/>
|
||||||
|
</feature>
|
||||||
|
</emulator>
|
||||||
|
<emulator name="ymir">
|
||||||
|
<feature name="FORCE BIOS" value="ymir_force_bios" order="100">
|
||||||
|
<choice name="Multi-region" value="saturn_bios.bin"/>
|
||||||
|
<choice name="EUR/US" value="mpr-17933.bin"/>
|
||||||
|
</feature>
|
||||||
|
</emulator>
|
||||||
|
<emulator name="ssf">
|
||||||
|
<feature name="FORCE BIOS" value="use_external_bios" order="100">
|
||||||
|
<choice name="JAP" value="sega_101.bin"/>
|
||||||
|
<choice name="HLE" value="hle"/>
|
||||||
|
</feature>
|
||||||
|
</emulator>
|
||||||
|
</features>
|
||||||
|
"""
|
||||||
|
|
||||||
|
KRONOS = """
|
||||||
|
private void SetupConfig(string path)
|
||||||
|
{
|
||||||
|
string iniFile = Path.Combine(path, "kronos.ini");
|
||||||
|
using (var ini = new IniFile(iniFile, IniOptions.KeepEmptyValues))
|
||||||
|
{
|
||||||
|
string bios = Path.Combine(AppConfig.GetFullPath("bios"), "saturn_bios.bin");
|
||||||
|
if (SystemConfig.isOptSet("kronos_force_bios") && !string.IsNullOrEmpty(SystemConfig["kronos_force_bios"]))
|
||||||
|
{
|
||||||
|
if (SystemConfig["kronos_force_bios"] != "hle")
|
||||||
|
bios = Path.Combine(AppConfig.GetFullPath("bios"), SystemConfig["kronos_force_bios"]);
|
||||||
|
else
|
||||||
|
hleBios = true;
|
||||||
|
}
|
||||||
|
if (File.Exists(bios))
|
||||||
|
ini.WriteValue("1.0", "General\\\\Bios", bios.Replace("\\\\", "/"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
YMIR = """
|
||||||
|
private void SetupConfiguration(string path)
|
||||||
|
{
|
||||||
|
string iniFile = Path.Combine(path, "Ymir.toml");
|
||||||
|
using (var ini = new IniFile(iniFile))
|
||||||
|
{
|
||||||
|
string saturnBiosPath = Path.Combine(AppConfig.GetFullPath("bios"), "saturn_bios.bin");
|
||||||
|
|
||||||
|
if (SystemConfig.isOptSet("ymir_force_bios") && !string.IsNullOrEmpty(SystemConfig["ymir_force_bios"]))
|
||||||
|
{
|
||||||
|
saturnBiosPath = Path.Combine(AppConfig.GetFullPath("bios"), SystemConfig["ymir_force_bios"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
ini.WriteValue("System.IPL", "Path", "'" + saturnBiosPath + "'");
|
||||||
|
string iplPath = AppConfig.GetFullPath("bios");
|
||||||
|
ini.WriteValue("General.PathOverrides", "IPLROMImages", "'" + iplPath + "'");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
SSF = """
|
||||||
|
private void SetupConfiguration(string path)
|
||||||
|
{
|
||||||
|
string iniFile = Path.Combine(path, "SSF.ini");
|
||||||
|
using (var ini = IniFile.FromFile(iniFile, IniOptions.KeepEmptyValues))
|
||||||
|
{
|
||||||
|
if (SystemConfig.isOptSet("use_external_bios") && !string.IsNullOrEmpty(SystemConfig["use_external_bios"]))
|
||||||
|
{
|
||||||
|
string saturnBios = Path.Combine(AppConfig.GetFullPath("bios"), SystemConfig["use_external_bios"]);
|
||||||
|
if (File.Exists(saturnBios) && SystemConfig["use_external_bios"] != "hle")
|
||||||
|
ini.WriteValue("Peripheral", "SaturnBIOS", "\\"" + saturnBios + "\\"");
|
||||||
|
else
|
||||||
|
ini.WriteValue("Peripheral", "SaturnBIOS", "\\"" + "" + "\\"");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
DESMUME = """
|
||||||
|
private void SetupConfiguration(string path, string rom)
|
||||||
|
{
|
||||||
|
string settingsFile = Path.Combine(path, "desmume.ini");
|
||||||
|
using (IniFile ini = IniFile.FromFile(settingsFile, IniOptions.KeepEmptyValues))
|
||||||
|
{
|
||||||
|
ini.WriteValue("BIOS", "UseExtBIOS", "0");
|
||||||
|
if (SystemConfig.isOptSet("desmume_UseExtBIOS") && SystemConfig.getOptBoolean("desmume_UseExtBIOS"))
|
||||||
|
{
|
||||||
|
string bios7 = Path.Combine(AppConfig.GetFullPath("bios"), "bios7.bin");
|
||||||
|
string bios9 = Path.Combine(AppConfig.GetFullPath("bios"), "bios9.bin");
|
||||||
|
|
||||||
|
if (File.Exists(bios7) && File.Exists(bios9))
|
||||||
|
{
|
||||||
|
ini.WriteValue("BIOS", "ARM9BIOSFile", bios9);
|
||||||
|
ini.WriteValue("BIOS", "ARM7BIOSFile", bios7);
|
||||||
|
ini.WriteValue("BIOS", "UseExtBIOS", "1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SystemConfig.isOptSet("desmume_UseExtFirmware") && SystemConfig.getOptBoolean("desmume_UseExtFirmware"))
|
||||||
|
{
|
||||||
|
string firmware = Path.Combine(AppConfig.GetFullPath("bios"), "firmware.bin");
|
||||||
|
|
||||||
|
if (SystemConfig.isOptSet("desmume_firmwareFile") && !string.IsNullOrEmpty(SystemConfig["desmume_firmwareFile"]))
|
||||||
|
{
|
||||||
|
string newFirmware = SystemConfig["desmume_firmwareFile"];
|
||||||
|
if (File.Exists(newFirmware))
|
||||||
|
firmware = newFirmware;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (File.Exists(firmware))
|
||||||
|
{
|
||||||
|
ini.WriteValue("Firmware", "FirmwareFile", firmware);
|
||||||
|
ini.WriteValue("Firmware", "UseExtFirmware", "1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
MELONDS_DSI = """
|
||||||
|
bool bootToDSINand = Path.GetExtension(rom).ToLowerInvariant() == ".bin";
|
||||||
|
|
||||||
|
private void SetupConfiguration(string path, string rom, bool bootToDSINand = false)
|
||||||
|
{
|
||||||
|
string settingsFile = Path.Combine(path, "melonDS.toml");
|
||||||
|
using (IniTomlFile ini = IniTomlFile.FromFile(settingsFile, IniTomlOptions.UseSpaces))
|
||||||
|
{
|
||||||
|
bool dsi = SystemConfig.isOptSet("melonds_console") && SystemConfig["melonds_console"] == "dsi";
|
||||||
|
|
||||||
|
if (bootToDSINand)
|
||||||
|
dsi = true;
|
||||||
|
|
||||||
|
if (dsi)
|
||||||
|
{
|
||||||
|
string biosPath = AppConfig.GetFullPath("bios");
|
||||||
|
string dsibios9 = Path.Combine(biosPath, "dsi_bios9.bin");
|
||||||
|
string dsinand = Path.Combine(biosPath, "dsi_nand.bin");
|
||||||
|
|
||||||
|
if (SystemConfig.isOptSet("melonds_nandregion") && !string.IsNullOrEmpty(SystemConfig["melonds_nandregion"]))
|
||||||
|
{
|
||||||
|
string region = SystemConfig["melonds_nandregion"];
|
||||||
|
string match = Directory.GetFiles(biosPath, "dsi_nand*.bin")
|
||||||
|
.FirstOrDefault(f => Path.GetFileNameWithoutExtension(f)
|
||||||
|
.IndexOf(region, StringComparison.OrdinalIgnoreCase) >= 0);
|
||||||
|
|
||||||
|
if (match != null)
|
||||||
|
dsinand = match;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!File.Exists(dsibios9) || !File.Exists(dsinand))
|
||||||
|
throw new ApplicationException("Cannot run dsi system, dsi bios files are missing");
|
||||||
|
|
||||||
|
ini.WriteValue("DSi", "BIOS9Path", "\\"" + dsibios9.Replace("\\\\", "/") + "\\"");
|
||||||
|
ini.WriteValue("DSi", "NANDPath", "\\"" + dsinand.Replace("\\\\", "/") + "\\"");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
MELONDS_FEATURES = """
|
||||||
|
<emulator name="melonds">
|
||||||
|
<feature name="DSI NAND REGION" value="melonds_nandregion" order="103">
|
||||||
|
<choice name="USA" value="USA"/>
|
||||||
|
<choice name="Japan" value="JPN"/>
|
||||||
|
</feature>
|
||||||
|
</emulator>
|
||||||
|
"""
|
||||||
|
|
||||||
|
JZINTV = """
|
||||||
|
public override ProcessStartInfo Generate(string system, string rom)
|
||||||
|
{
|
||||||
|
string gromPath = Path.Combine(AppConfig.GetFullPath("bios"), "grom.bin");
|
||||||
|
string execPath = Path.Combine(AppConfig.GetFullPath("bios"), "exec.bin");
|
||||||
|
|
||||||
|
if (!File.Exists(gromPath) || !File.Exists(execPath))
|
||||||
|
throw new ApplicationException("grom.bin or exec.bin not found in bios folder!");
|
||||||
|
|
||||||
|
commandArray.Add("-e");
|
||||||
|
commandArray.Add("\\"" + execPath + "\\"");
|
||||||
|
commandArray.Add("-g");
|
||||||
|
commandArray.Add("\\"" + gromPath + "\\"");
|
||||||
|
|
||||||
|
string commandFile = rom.Replace(Path.GetExtension(rom), ".commands");
|
||||||
|
|
||||||
|
if (!File.Exists(commandFile))
|
||||||
|
commandFile = Path.Combine(AppConfig.GetFullPath("roms"),"intellivision", "default.commands");
|
||||||
|
|
||||||
|
if (File.Exists(commandFile))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (SystemConfig.getOptBoolean("jzintv_useECS"))
|
||||||
|
{
|
||||||
|
string ecsPath = Path.Combine(AppConfig.GetFullPath("bios"), "ecs.bin");
|
||||||
|
|
||||||
|
if (File.Exists(ecsPath))
|
||||||
|
{
|
||||||
|
commandArray.Add("-E");
|
||||||
|
commandArray.Add("\\"" + ecsPath + "\\"");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SimpleLogger.Instance.Warning("[WARN] ecs.bin not found in bios folder!");
|
||||||
|
commandArray.Add("-s0");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
BLASTEM = """
|
||||||
|
private void SetupConfiguration(string path)
|
||||||
|
{
|
||||||
|
string targetCfg = Path.Combine(path, "blastem.cfg");
|
||||||
|
var sys = cfg.GetOrCreateSection("system");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetupSystem(BlastemConfigNode sys, string path)
|
||||||
|
{
|
||||||
|
string bios = AppConfig.GetFullPath("bios");
|
||||||
|
SetBiosPath(sys, "scd_bios_us", bios, "bios_CD_U.bin");
|
||||||
|
SetBiosPath(sys, "coleco_bios_path", bios, "colecovision.rom");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void SetBiosPath(BlastemConfigNode sys, string key, string biosPath, string fileName)
|
||||||
|
{
|
||||||
|
string file = Path.Combine(biosPath, fileName);
|
||||||
|
if (File.Exists(file))
|
||||||
|
sys[key] = file;
|
||||||
|
else
|
||||||
|
SimpleLogger.Instance.Info("[Generator] BIOS not found, leaving " + key + " alone : " + file);
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
DOLPHIN = """
|
||||||
|
private void SetupGeneralConfig(string path)
|
||||||
|
{
|
||||||
|
string iniFile = Path.Combine(path, "User", "Config", "Dolphin.ini");
|
||||||
|
using (var ini = new IniFile(iniFile, IniOptions.UseSpaces))
|
||||||
|
{
|
||||||
|
string gbaBiosPath = Path.Combine(AppConfig.GetFullPath("bios"), "gba_bios.bin");
|
||||||
|
ini.WriteValue("GBA", "BIOS", gbaBiosPath);
|
||||||
|
|
||||||
|
if (_triforce)
|
||||||
|
{
|
||||||
|
if (!_crediar)
|
||||||
|
CopySegaBoot(path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CopySegaBoot(string path)
|
||||||
|
{
|
||||||
|
string target = Path.Combine(path, "User", "Triforce", "segaboot.gcm");
|
||||||
|
|
||||||
|
string[] candidates = new string[]
|
||||||
|
{
|
||||||
|
Path.Combine(AppConfig.GetFullPath("bios"), "triforce", "segaboot.gcm"),
|
||||||
|
Path.Combine(AppConfig.GetFullPath("bios"), "segaboot.gcm")
|
||||||
|
};
|
||||||
|
|
||||||
|
string source = candidates.FirstOrDefault(f => File.Exists(f));
|
||||||
|
if (source == null)
|
||||||
|
{
|
||||||
|
if (!File.Exists(target))
|
||||||
|
SimpleLogger.Instance.Warning("[WARNING] segaboot.gcm not found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dst.Exists && dst.Length == src.Length && dst.LastWriteTimeUtc >= src.LastWriteTimeUtc)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool GetRvzHash(string rvzPath)
|
||||||
|
{
|
||||||
|
string dolphinTool = Path.Combine(Program.AppConfig.GetFullPath("bios"), "dolphin-emu", "DolphinTool.exe");
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
DOSBOX = """
|
||||||
|
private void SearchAndCopySoundFiles(string path)
|
||||||
|
{
|
||||||
|
string targetPathFluidSynth = Path.Combine(path, "soundfonts");
|
||||||
|
string targetPathmt32 = Path.Combine(path, "mt32-roms");
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string mtcontrolsource = Path.Combine(AppConfig.GetFullPath("bios"), "scummvm", "extra", "MT32_CONTROL.ROM");
|
||||||
|
string mtcontroltarget = Path.Combine(targetPathmt32, "MT32_CONTROL.ROM");
|
||||||
|
if (!File.Exists(mtcontroltarget) && File.Exists(mtcontrolsource))
|
||||||
|
try { File.Copy(mtcontrolsource, mtcontroltarget); } catch { }
|
||||||
|
|
||||||
|
string roland55source = Path.Combine(AppConfig.GetFullPath("bios"), "scummvm", "extra", "Roland_SC-55.sf2");
|
||||||
|
string roland55target = Path.Combine(targetPathFluidSynth, "Roland_SC-55.sf2");
|
||||||
|
if (!File.Exists(roland55target) && File.Exists(roland55source))
|
||||||
|
try { File.Copy(roland55source, roland55target); } catch { }
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
TSUGARU = """
|
||||||
|
public override ProcessStartInfo Generate(string system, string rom)
|
||||||
|
{
|
||||||
|
string biosPath = null;
|
||||||
|
|
||||||
|
if (Directory.Exists(Path.Combine(AppConfig.GetFullPath("bios"), "fmtowns")))
|
||||||
|
biosPath = Path.Combine(AppConfig.GetFullPath("bios"), "fmtowns");
|
||||||
|
if (!File.Exists(Path.Combine(biosPath, "FMT_SYS.ROM")))
|
||||||
|
biosPath = Path.Combine(AppConfig.GetFullPath("bios"), "fmtownsux");
|
||||||
|
if (!File.Exists(Path.Combine(biosPath, "FMT_SYS.ROM")))
|
||||||
|
biosPath = Path.Combine(path, "roms");
|
||||||
|
if (!File.Exists(Path.Combine(biosPath, "FMT_SYS.ROM")))
|
||||||
|
{
|
||||||
|
SimpleLogger.Instance.Info("[TsugaruGenerator] Bios path not found");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
commandArray.Add(biosPath);
|
||||||
|
commandArray.Add("-CMOS");
|
||||||
|
commandArray.Add(Path.Combine(biosPath, "CMOS.DAT"));
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
EKA2L1 = """
|
||||||
|
public override ProcessStartInfo Generate(string system, string rom)
|
||||||
|
{
|
||||||
|
/*if (rom != null)
|
||||||
|
{
|
||||||
|
string bios = Path.Combine(AppConfig.GetFullPath("bios"), "N-Gage Installer.sis");
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetupConfiguration(string path)
|
||||||
|
{
|
||||||
|
var yml = YmlFile.Load(Path.Combine(path, "config.yml"));
|
||||||
|
string dataFolder = Path.Combine(AppConfig.GetFullPath("bios"), "eka2l1", "data").Replace("\\\\", "/");
|
||||||
|
yml["data-storage"] = dataFolder;
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
BIZHAWK_GB = """
|
||||||
|
private void ConfigureGambatte(DynamicJson coreSyncSettings, string core, string system)
|
||||||
|
{
|
||||||
|
if (core != "Gambatte")
|
||||||
|
return;
|
||||||
|
|
||||||
|
var gambatteSync = coreSyncSettings.GetOrCreateContainer("BizHawk.Emulation.Cores.Nintendo.Gameboy.Gameboy");
|
||||||
|
|
||||||
|
string gbBios = Path.Combine(AppConfig.GetFullPath("bios"), "gb_bios.bin");
|
||||||
|
if (system == "gbc")
|
||||||
|
gbBios = Path.Combine(AppConfig.GetFullPath("bios"), "gbc_bios.bin");
|
||||||
|
else if (system == "gba")
|
||||||
|
gbBios = Path.Combine(AppConfig.GetFullPath("bios"), "gba_bios.bin");
|
||||||
|
|
||||||
|
if (File.Exists(gbBios) && SystemConfig.getOptBoolean("bizhawk_gb_bios"))
|
||||||
|
gambatteSync["EnableBIOS"] = "true";
|
||||||
|
else
|
||||||
|
gambatteSync["EnableBIOS"] = "false";
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
BIZHAWK_CONFIG = """
|
||||||
|
string configFile = Path.Combine(path, "config.ini");
|
||||||
|
"""
|
||||||
|
|
||||||
|
MESS = """
|
||||||
|
public List<string> GetMameCommandLineArguments(string system, string rom, bool standalone = false)
|
||||||
|
{
|
||||||
|
string bios = AppConfig.GetFullPath("bios");
|
||||||
|
|
||||||
|
commandArray.Add("-rp");
|
||||||
|
if (!string.IsNullOrEmpty(AppConfig["bios"]) && Directory.Exists(AppConfig.GetFullPath("bios")))
|
||||||
|
{
|
||||||
|
if (Directory.Exists(Path.Combine(bios, "mess")))
|
||||||
|
commandArray.Add(Path.Combine(bios, "mess") + ";" + bios + ";" + Path.GetDirectoryName(rom));
|
||||||
|
else
|
||||||
|
commandArray.Add(bios + ";" + Path.GetDirectoryName(rom));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (standalone)
|
||||||
|
{
|
||||||
|
commandArray.Add("-hash");
|
||||||
|
commandArray.Add(EnsureDirectoryExists(Path.Combine(bios, "mame", "hash")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
MAME64 = """
|
||||||
|
public override ProcessStartInfo Generate(string system, string rom)
|
||||||
|
{
|
||||||
|
if (messMode == null)
|
||||||
|
{
|
||||||
|
List<string> commandArray = new List<string>
|
||||||
|
{
|
||||||
|
"-skip_gameinfo",
|
||||||
|
"-rp"
|
||||||
|
};
|
||||||
|
if (!string.IsNullOrEmpty(AppConfig["bios"]) && Directory.Exists(AppConfig["bios"]))
|
||||||
|
commandArray.Add(AppConfig.GetFullPath("bios") + ";" + Path.GetDirectoryName(rom));
|
||||||
|
|
||||||
|
string samplePath = hbmame? Path.Combine(AppConfig.GetFullPath("bios"), "hbmame", "samples") : Path.Combine(AppConfig.GetFullPath("bios"), "mame", "samples");
|
||||||
|
commandArray.Add("-sp");
|
||||||
|
commandArray.Add(samplePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
XROAR = """
|
||||||
|
public override ProcessStartInfo Generate(string system, string rom)
|
||||||
|
{
|
||||||
|
commandArray.Add("-rompath");
|
||||||
|
string romPath = Path.Combine(AppConfig.GetFullPath("bios"), "dragon");
|
||||||
|
if (system == "coco")
|
||||||
|
romPath = Path.Combine(AppConfig.GetFullPath("bios"), "coco");
|
||||||
|
commandArray.Add("\\"" + romPath + "\\"");
|
||||||
|
string setupPath = Path.Combine(path, "xroar.conf");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetupConfiguration(string setupPath)
|
||||||
|
{
|
||||||
|
string rompath = "rompath \\".\\\\\\\\..\\\\\\\\..\\\\\\\\bios\\\\\\\\dragon\\"";
|
||||||
|
for (int i = 0; i < lines.Count; i++)
|
||||||
|
{
|
||||||
|
if (lines[i].StartsWith("rompath "))
|
||||||
|
lines[i] = rompath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def _feature_sources(path: str, text: str, features: str) -> dict[str, rl.Source]:
|
||||||
|
return _sources(**{path: text, rl.FEATURES: features})
|
||||||
|
|
||||||
|
|
||||||
|
class OptionReplacesThePath(unittest.TestCase):
|
||||||
|
def test_kronos_default_then_option_without_hle(self):
|
||||||
|
path = f"{G}/Kronos.Generator.cs"
|
||||||
|
sources = _feature_sources(path, KRONOS, SATURN_FEATURES)
|
||||||
|
fixed, option = rl._option_path_in(sources[path], sources[rl.FEATURES], "kronos")
|
||||||
|
self.assertEqual(fixed["names"], ["saturn_bios.bin"])
|
||||||
|
self.assertEqual(fixed["depends_on_option"], "kronos_force_bios unset")
|
||||||
|
self.assertEqual(
|
||||||
|
fixed["passes_to"], "kronos.ini [1.0] General\\Bios, only if the file exists"
|
||||||
|
)
|
||||||
|
self.assertEqual(fixed["source_ref"], f"{path}:6, 14-15")
|
||||||
|
self.assertEqual(option["kind"], "core_option")
|
||||||
|
self.assertEqual(option["names"], ["saturn_bios.bin", "sega_101.bin"])
|
||||||
|
self.assertEqual(option["source_ref"], f"{path}:7-15, {rl.FEATURES}:3-7")
|
||||||
|
|
||||||
|
def test_ymir_writes_without_a_check_and_passes_the_folder(self):
|
||||||
|
path = f"{G}/Ymir.Generator.cs"
|
||||||
|
sources = _feature_sources(path, YMIR, SATURN_FEATURES)
|
||||||
|
fixed, option, folder = rl._option_path_in(sources[path], sources[rl.FEATURES], "ymir")
|
||||||
|
self.assertEqual(
|
||||||
|
fixed["passes_to"], "Ymir.toml [System.IPL] Path, written without an existence check"
|
||||||
|
)
|
||||||
|
self.assertEqual(option["names"], ["saturn_bios.bin", "mpr-17933.bin"])
|
||||||
|
self.assertEqual(folder["kind"], "passes_path")
|
||||||
|
self.assertEqual(
|
||||||
|
folder["passes_to"], "Ymir.toml [General.PathOverrides] IPLROMImages = bios"
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_ssf_has_no_default_name(self):
|
||||||
|
path = f"{G}/SSF.Generator.cs"
|
||||||
|
sources = _feature_sources(path, SSF, SATURN_FEATURES)
|
||||||
|
[option] = rl._option_path_in(sources[path], sources[rl.FEATURES], "ssf")
|
||||||
|
self.assertEqual(option["names"], ["sega_101.bin"])
|
||||||
|
self.assertEqual(
|
||||||
|
option["passes_to"],
|
||||||
|
"SSF.ini [Peripheral] SaturnBIOS = <bios>/<value>, only if the file exists",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class FilesNeededTogether(unittest.TestCase):
|
||||||
|
def test_desmume_pair_and_firmware_override(self):
|
||||||
|
pair, firmware = rl.desmume(_sources(**{f"{G}/Desmume.Generator.cs": DESMUME}))
|
||||||
|
self.assertEqual(pair["names"], ["bios7.bin", "bios9.bin"])
|
||||||
|
self.assertEqual(
|
||||||
|
pair["passes_to"],
|
||||||
|
"desmume.ini [BIOS] ARM7BIOSFile, ARM9BIOSFile, only if every listed file exists",
|
||||||
|
)
|
||||||
|
self.assertEqual(pair["fails_when_missing"], "UseExtBIOS left at 0")
|
||||||
|
self.assertEqual(pair["depends_on_option"], "desmume_UseExtBIOS on")
|
||||||
|
self.assertEqual(firmware["names"], ["firmware.bin"])
|
||||||
|
self.assertEqual(
|
||||||
|
firmware["depends_on_option"],
|
||||||
|
"desmume_UseExtFirmware on, desmume_firmwareFile unset or not an existing file",
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_melonds_dsi_files_and_nand_region(self):
|
||||||
|
fixed, region = rl.melonds_dsi(
|
||||||
|
_sources(**{f"{G}/MelonDS.Generator.cs": MELONDS_DSI, rl.FEATURES: MELONDS_FEATURES})
|
||||||
|
)
|
||||||
|
self.assertEqual(fixed["names"], ["dsi_bios9.bin", "dsi_nand.bin"])
|
||||||
|
self.assertEqual(fixed["passes_to"], "melonDS.toml [DSi] BIOS9Path, NANDPath")
|
||||||
|
self.assertEqual(
|
||||||
|
fixed["fails_when_missing"],
|
||||||
|
"ApplicationException 'Cannot run dsi system, dsi bios files are missing'",
|
||||||
|
)
|
||||||
|
self.assertEqual(
|
||||||
|
fixed["depends_on_option"], 'melonds_console == "dsi" || rom extension ".bin"'
|
||||||
|
)
|
||||||
|
self.assertEqual(region["kind"], "scans_dir")
|
||||||
|
self.assertEqual(region["names"], ["dsi_nand*{region}*.bin"])
|
||||||
|
self.assertEqual(region["expands"], {"region": ["USA", "JPN"]})
|
||||||
|
self.assertEqual(region["fails_when_missing"], "falls back to dsi_nand.bin")
|
||||||
|
|
||||||
|
def test_jzintv_flags_in_command_line_order(self):
|
||||||
|
both, ecs = rl.jzintv(_sources(**{f"{G}/Jzintv.Generator.cs": JZINTV}))
|
||||||
|
self.assertEqual(both["names"], ["exec.bin", "grom.bin"])
|
||||||
|
self.assertEqual(both["passes_to"], "command line -e <bios>/exec.bin -g <bios>/grom.bin")
|
||||||
|
self.assertEqual(ecs["names"], ["ecs.bin"])
|
||||||
|
self.assertEqual(
|
||||||
|
ecs["depends_on_option"],
|
||||||
|
"jzintv_useECS on, no <rom>.commands and no roms/intellivision/default.commands",
|
||||||
|
)
|
||||||
|
self.assertEqual(
|
||||||
|
ecs["fails_when_missing"],
|
||||||
|
"warning '[WARN] ecs.bin not found in bios folder!', -s0 passed",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class HelpersAndCopies(unittest.TestCase):
|
||||||
|
def test_blastem_one_record_per_helper_call(self):
|
||||||
|
records = rl.blastem(_sources(**{f"{G}/Blastem.Generator.cs": BLASTEM}))
|
||||||
|
self.assertEqual(
|
||||||
|
[(r["names"], r["passes_to"]) for r in records],
|
||||||
|
[
|
||||||
|
(["bios_CD_U.bin"], "blastem.cfg system.scd_bios_us, only if the file exists"),
|
||||||
|
(
|
||||||
|
["colecovision.rom"],
|
||||||
|
"blastem.cfg system.coleco_bios_path, only if the file exists",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self.assertEqual(records[0]["source_ref"], f"{G}/Blastem.Generator.cs:9-10, 14-21")
|
||||||
|
|
||||||
|
def test_dolphin_unchecked_write_and_segaboot_candidates(self):
|
||||||
|
gba, segaboot = rl.dolphin(_sources(**{f"{G}/Dolphin.Generator.cs": DOLPHIN}))
|
||||||
|
self.assertEqual(gba["names"], ["gba_bios.bin"])
|
||||||
|
self.assertEqual(
|
||||||
|
gba["passes_to"],
|
||||||
|
"User/Config/Dolphin.ini [GBA] BIOS, written without an existence check",
|
||||||
|
)
|
||||||
|
self.assertEqual(segaboot["kind"], "copies")
|
||||||
|
self.assertEqual(segaboot["names"], ["triforce/segaboot.gcm", "segaboot.gcm"])
|
||||||
|
self.assertEqual(segaboot["depends_on_option"], "_triforce, !_crediar")
|
||||||
|
|
||||||
|
def test_dosbox_copies_grouped_by_target_folder(self):
|
||||||
|
sources = _sources(
|
||||||
|
**{f"{G}/DosBoxPure.Generator.cs": DOSBOX, f"{G}/DosBoxStaging.Generator.cs": DOSBOX}
|
||||||
|
)
|
||||||
|
records = rl.dosbox_copies(sources)
|
||||||
|
self.assertEqual(
|
||||||
|
[(r["emulator"], r["names"], r["passes_to"]) for r in records[:2]],
|
||||||
|
[
|
||||||
|
(
|
||||||
|
"dosbox-pure",
|
||||||
|
["MT32_CONTROL.ROM"],
|
||||||
|
"copied to <emulator>/mt32-roms/<name>, only when the target does not exist",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"dosbox-pure",
|
||||||
|
["Roland_SC-55.sf2"],
|
||||||
|
"copied to <emulator>/soundfonts/<name>, only when the target does not exist",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self.assertEqual(records[0]["search_dir"], "bios/scummvm/extra")
|
||||||
|
|
||||||
|
def test_tsugaru_folder_chain(self):
|
||||||
|
[record] = rl.tsugaru(_sources(**{f"{G}/Tsugaru.Generator.cs": TSUGARU}))
|
||||||
|
self.assertEqual(record["names"], ["FMT_SYS.ROM"])
|
||||||
|
self.assertEqual(
|
||||||
|
record["search_dir"], "bios/fmtowns, then bios/fmtownsux, then <emulator>/roms"
|
||||||
|
)
|
||||||
|
self.assertEqual(
|
||||||
|
record["fails_when_missing"], "info '[TsugaruGenerator] Bios path not found', no launch"
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_commented_code_is_not_read(self):
|
||||||
|
[record] = rl.eka2l1(_sources(**{f"{G}/Eka2l1.Generator.cs": EKA2L1}))
|
||||||
|
self.assertEqual(record["passes_to"], "config.yml data-storage = bios/eka2l1/data")
|
||||||
|
|
||||||
|
def test_bizhawk_gb_one_slot_per_system(self):
|
||||||
|
records = rl.bizhawk_gb(
|
||||||
|
_sources(
|
||||||
|
**{
|
||||||
|
f"{G}/Bizhawk.CoreOptions.cs": BIZHAWK_GB,
|
||||||
|
f"{G}/Bizhawk.Generator.cs": BIZHAWK_CONFIG,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
self.assertEqual(
|
||||||
|
[(r["slot"], r["names"]) for r in records],
|
||||||
|
[
|
||||||
|
("other systems", ["gb_bios.bin"]),
|
||||||
|
("gbc", ["gbc_bios.bin"]),
|
||||||
|
("gba", ["gba_bios.bin"]),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self.assertEqual(
|
||||||
|
records[0]["depends_on_option"],
|
||||||
|
'core == "Gambatte", bizhawk_gb_bios on, system != "gbc" && system != "gba"',
|
||||||
|
)
|
||||||
|
self.assertEqual(records[0]["fails_when_missing"], "EnableBIOS = false")
|
||||||
|
|
||||||
|
|
||||||
|
class FolderArguments(unittest.TestCase):
|
||||||
|
def test_mess_folders_shared_with_the_libretro_core(self):
|
||||||
|
sources = _sources(**{f"{G}/MessSystem.cs": MESS, f"{G}/Mame64.Generator.cs": MAME64})
|
||||||
|
records = rl.mame(sources)
|
||||||
|
mess = [r for r in records if r["source_ref"].startswith(f"{G}/MessSystem.cs")]
|
||||||
|
self.assertEqual(
|
||||||
|
[(r["emulator"], r["passes_to"]) for r in mess],
|
||||||
|
[
|
||||||
|
("mame64", "command line -rp bios/mess;bios;<rom directory>"),
|
||||||
|
("mame", "command line -rp bios/mess;bios;<rom directory>"),
|
||||||
|
("mame64", "command line -rp bios;<rom directory>"),
|
||||||
|
("mame", "command line -rp bios;<rom directory>"),
|
||||||
|
("mame64", "command line -hash bios/mame/hash"),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self.assertTrue(
|
||||||
|
mess[2]["depends_on_option"].endswith('!Directory.Exists(Path.Combine(bios, "mess"))')
|
||||||
|
)
|
||||||
|
self.assertNotIn("depends_on_option", mess[4])
|
||||||
|
|
||||||
|
def test_mame64_ternary_folder(self):
|
||||||
|
sources = _sources(**{f"{G}/MessSystem.cs": MESS, f"{G}/Mame64.Generator.cs": MAME64})
|
||||||
|
own = [r for r in rl.mame(sources) if r["source_ref"].startswith(f"{G}/Mame64")]
|
||||||
|
self.assertEqual(own[0]["passes_to"], "command line -rp bios;<rom directory>")
|
||||||
|
self.assertEqual(
|
||||||
|
own[1]["search_dir"], "bios/hbmame/samples when hbmame, else bios/mame/samples"
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_xroar_reassigned_folder_and_config_line(self):
|
||||||
|
argument, config = rl.xroar(_sources(**{f"{G}/Xroar.Generator.cs": XROAR}))
|
||||||
|
self.assertEqual(argument["search_dir"], 'bios/dragon, or bios/coco when system == "coco"')
|
||||||
|
self.assertEqual(config["search_dir"], "bios/dragon")
|
||||||
|
self.assertEqual(
|
||||||
|
config["passes_to"], 'xroar.conf rompath ".\\\\..\\\\..\\\\bios\\\\dragon"'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class EveryBiosReferenceIsRead(unittest.TestCase):
|
||||||
|
def test_unread_reference_stops_the_scrape(self):
|
||||||
|
extra = EKA2L1 + (
|
||||||
|
"\n private void Other()\n {\n"
|
||||||
|
' string other = Path.Combine(AppConfig.GetFullPath("bios"), "other.bin");\n'
|
||||||
|
" }\n"
|
||||||
|
)
|
||||||
|
with self.assertRaises(rl.LauncherPatternMissing) as caught:
|
||||||
|
rl.eka2l1(_sources(**{f"{G}/Eka2l1.Generator.cs": extra}))
|
||||||
|
self.assertIn("bios reference at line", str(caught.exception))
|
||||||
|
|
||||||
|
def test_semicolon_inside_a_string_does_not_end_the_value(self):
|
||||||
|
src = rl.Source(
|
||||||
|
"x.cs",
|
||||||
|
'void f(string rom)\n{\n string p = AppConfig.GetFullPath("bios") + ";" + Path.GetDirectoryName(rom);\n}\n',
|
||||||
|
)
|
||||||
|
self.assertEqual(rl._render(src, "p", 0, len(src.text))[0], "bios;<rom directory>")
|
||||||
|
|
||||||
|
|
||||||
class AbsentConstructStopsTheScrape(unittest.TestCase):
|
class AbsentConstructStopsTheScrape(unittest.TestCase):
|
||||||
def test_each_extractor_raises_on_an_empty_source(self):
|
def test_each_extractor_raises_on_an_empty_source(self):
|
||||||
empty = {path: rl.Source(path, "") for path in rl.SOURCE_FILES}
|
empty = {path: rl.Source(path, "") for path in rl.SOURCE_FILES}
|
||||||
|
|||||||
Reference in new issue
Block a user