mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
feat: add 10 emulator profiles (batch 5)
snes9x (BS-X + STBIOS, HLE coprocessors), mupen64plus (64DD IPL), pcsx_rearmed (7 BIOS + dynamic scan fallback), stella (no BIOS), fmsx (12 MSX ROMs), virtualjaguar (6 BIOS embedded), sameboy (8 boot ROM types, all built-in), beetle_vb (no BIOS), handy (lynxboot.img 512B), pokemini (bios.min + FreeBIOS fallback) 61 total profiles. Cross-reference: 667 undeclared, 182 in repo.
This commit is contained in:
26
emulators/beetle_vb.yml
Normal file
26
emulators/beetle_vb.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
emulator: Beetle VB (Mednafen Virtual Boy)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/beetle-vb-libretro"
|
||||
systems: [nintendo-virtualboy]
|
||||
|
||||
notes: |
|
||||
Beetle VB is a port of Mednafen's Virtual Boy emulation module to
|
||||
libretro. Based on Mednafen v0.9.36.1.
|
||||
|
||||
No external BIOS or firmware files are required. The Virtual Boy
|
||||
hardware did not use a traditional boot ROM or BIOS in the way
|
||||
that consoles like PlayStation or Saturn do. The V810 CPU starts
|
||||
execution directly from the game ROM mapped at 0x07000000.
|
||||
|
||||
The core loads the ROM into GPROM (Game Pak ROM), mirrors it if
|
||||
smaller than 64KB, and initializes 64KB of WRAM and optional
|
||||
GPRAM (Game Pak RAM/SRAM for saves). The VIP (Virtual Image
|
||||
Processor), VSU (Virtual Sound Unit), and hardware timer are all
|
||||
emulated in software with no firmware dependencies.
|
||||
|
||||
The libretro .info file (mednafen_vb_libretro.info) declares no
|
||||
firmware entries and no system files.
|
||||
|
||||
ROM extensions: .vb, .vboy, .bin
|
||||
|
||||
files: []
|
||||
185
emulators/fmsx.yml
Normal file
185
emulators/fmsx.yml
Normal file
@@ -0,0 +1,185 @@
|
||||
emulator: fMSX
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/fmsx-libretro"
|
||||
cores:
|
||||
- fmsx
|
||||
systems:
|
||||
- msx
|
||||
- msx2
|
||||
- msx2plus
|
||||
|
||||
# fMSX is a standalone MSX emulator by Marat Fayzullin, ported to libretro.
|
||||
# Supports MSX1, MSX2, and MSX2+ hardware models. Default model is MSX2+.
|
||||
#
|
||||
# ROM loading (fMSX/MSX.c:688-750, ResetMSX):
|
||||
# The core sets ProgDir = RetroArch system_directory, then chdir(ProgDir)
|
||||
# before calling LoadROM(). All BIOS files must be placed directly in the
|
||||
# system directory root (no subdirectories).
|
||||
#
|
||||
# Model selection (libretro.c:731-757):
|
||||
# Core option "fmsx_machine_type" picks MSX1/MSX2/MSX2+. Default is MSX2+.
|
||||
# MSX1 loads MSX.ROM (32 KB main BIOS).
|
||||
# MSX2 loads MSX2.ROM (32 KB) + MSX2EXT.ROM (16 KB extension).
|
||||
# MSX2+ loads MSX2P.ROM (32 KB) + MSX2PEXT.ROM (16 KB extension).
|
||||
#
|
||||
# Disk support (fMSX/MSX.c:780):
|
||||
# DISK.ROM is loaded when "fmsx_simbdos" option is enabled (MSX_PATCHBDOS).
|
||||
# Without it, .dsk files won't boot. The core shows a warning if DISK.ROM
|
||||
# is missing when loading disk content.
|
||||
#
|
||||
# Optional ROMs (fMSX/MSX.c:526-582):
|
||||
# KANJI.ROM - Kanji font (128 KB), loaded unconditionally if present
|
||||
# FMPAC.ROM - FM-PAC cartridge (64 KB), loaded into first free slot
|
||||
# MSXDOS2.ROM - MSX-DOS 2 (64 KB), loaded when "fmsx_dos2" enabled and MSX2+
|
||||
# PAINTER.ROM - Paint utility (64 KB), loaded for MSX2/MSX2+
|
||||
# RS232.ROM - RS-232C serial (16 KB + 256 B), loaded into slot 3:3
|
||||
# GMASTER2.ROM - Konami GameMaster2 cart, loaded when "fmsx_game_master" enabled
|
||||
# GMASTER.ROM - Konami GameMaster (fallback if GMASTER2.ROM missing)
|
||||
# CMOS.ROM - RTC settings persistence, saved/loaded automatically
|
||||
#
|
||||
# All ROMs listed below are bundled in fMSX/ROMs/ inside the repo source.
|
||||
# They are the standard C-BIOS-compatible generic MSX BIOS set from fMSX.
|
||||
|
||||
notes: |
|
||||
Place all ROM files directly in the RetroArch system directory. No subdirectory
|
||||
needed. The core does chdir() to system_dir before loading.
|
||||
|
||||
The default model is MSX2+, which needs MSX2P.ROM and MSX2PEXT.ROM. If you only
|
||||
play cartridge ROMs, these two files are sufficient. For disk games (.dsk), also
|
||||
add DISK.ROM and enable "Simulate DiskROM" in core options.
|
||||
|
||||
KANJI.ROM and FMPAC.ROM are loaded automatically when present, no option needed.
|
||||
|
||||
files:
|
||||
# -- MSX1 BIOS --
|
||||
|
||||
- name: MSX.ROM
|
||||
size: 32768
|
||||
md5: aa95aea2563cd5ec0a0919b44cc17d47
|
||||
sha1: 409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498
|
||||
required: true
|
||||
system: msx
|
||||
bundled: true
|
||||
note: "MSX1 main BIOS (32 KB). Loaded for MSX1 model (fMSX/MSX.c:693)."
|
||||
source_ref: "fMSX/ROMs/MSX.ROM"
|
||||
|
||||
# -- MSX2 BIOS --
|
||||
|
||||
- name: MSX2.ROM
|
||||
size: 32768
|
||||
md5: ec3a01c91f24fbddcbcab0ad301bc9ef
|
||||
sha1: 6103b39f1e38d1aa2d84b1c3219c44f1abb5436e
|
||||
required: true
|
||||
system: msx2
|
||||
bundled: true
|
||||
note: "MSX2 main BIOS (32 KB). Loaded for MSX2 model (fMSX/MSX.c:709)."
|
||||
source_ref: "fMSX/ROMs/MSX2.ROM"
|
||||
|
||||
- name: MSX2EXT.ROM
|
||||
size: 16384
|
||||
md5: 2183c2aff17cf4297bdb496de78c2e8a
|
||||
sha1: 5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02
|
||||
required: true
|
||||
system: msx2
|
||||
bundled: true
|
||||
note: "MSX2 extension BIOS (16 KB). Loaded alongside MSX2.ROM (fMSX/MSX.c:710)."
|
||||
source_ref: "fMSX/ROMs/MSX2EXT.ROM"
|
||||
|
||||
# -- MSX2+ BIOS (default model) --
|
||||
|
||||
- name: MSX2P.ROM
|
||||
size: 32768
|
||||
md5: 6d8c0ca64e726c82a4b726e9b01cdf1e
|
||||
sha1: e2fbd56e42da637609d23ae9df9efd1b4241b18a
|
||||
required: true
|
||||
system: msx2plus
|
||||
bundled: true
|
||||
note: "MSX2+ main BIOS (32 KB). Loaded for MSX2+ model, the default (fMSX/MSX.c:731)."
|
||||
source_ref: "fMSX/ROMs/MSX2P.ROM"
|
||||
|
||||
- name: MSX2PEXT.ROM
|
||||
size: 16384
|
||||
md5: 7c8243c71d8f143b2531f01afa6a05dc
|
||||
sha1: fe0254cbfc11405b79e7c86c7769bd6322b04995
|
||||
required: true
|
||||
system: msx2plus
|
||||
bundled: true
|
||||
note: "MSX2+ extension BIOS (16 KB). Loaded alongside MSX2P.ROM (fMSX/MSX.c:732)."
|
||||
source_ref: "fMSX/ROMs/MSX2PEXT.ROM"
|
||||
|
||||
# -- Disk support --
|
||||
|
||||
- name: DISK.ROM
|
||||
size: 16384
|
||||
md5: 80dcd1ad1a4cf65d64b7ba10504e8190
|
||||
sha1: 032cb1c1c75b9a191fa1230978971698d9d2a17f
|
||||
required: false
|
||||
bundled: true
|
||||
note: "Disk controller BIOS (16 KB). Needed for .dsk content. Enable 'Simulate DiskROM' option (fMSX/MSX.c:780)."
|
||||
source_ref: "fMSX/ROMs/DISK.ROM"
|
||||
|
||||
# -- Optional expansion ROMs --
|
||||
|
||||
- name: FMPAC.ROM
|
||||
size: 65536
|
||||
md5: 6f69cc8b5ed761b03afd78000dfb0e19
|
||||
sha1: 9d789166e3caf28e4742fe933d962e99618c633d
|
||||
required: false
|
||||
bundled: true
|
||||
note: "FM-PAC cartridge ROM (64 KB, YM2413 FM synthesis). Auto-loaded into first free slot (fMSX/MSX.c:557)."
|
||||
source_ref: "fMSX/ROMs/FMPAC.ROM"
|
||||
|
||||
- name: KANJI.ROM
|
||||
size: 131072
|
||||
md5: febe8782b466d7c3b16de6d104826b34
|
||||
sha1: 84a645becec0a25d3ab7a909cde1b242699a8662
|
||||
required: false
|
||||
bundled: true
|
||||
note: "Kanji font ROM (128 KB). Auto-loaded if present, no option needed (fMSX/MSX.c:530)."
|
||||
source_ref: "fMSX/ROMs/KANJI.ROM"
|
||||
|
||||
- name: MSXDOS2.ROM
|
||||
size: 65536
|
||||
md5: 6418d091cd6907bbcf940324339e43bb
|
||||
sha1: c36c9e0f96738a340381e23b4f97245388801a46
|
||||
required: false
|
||||
bundled: true
|
||||
note: "MSX-DOS 2 ROM (64 KB). Loaded when 'fmsx_dos2' option enabled and model is MSX2+ (fMSX/MSX.c:545)."
|
||||
source_ref: "fMSX/ROMs/MSXDOS2.ROM"
|
||||
|
||||
- name: PAINTER.ROM
|
||||
size: 65536
|
||||
md5: 403cdea1cbd2bb24fae506941f8f655e
|
||||
sha1: 7fd2a28c4fdaeb140f3c8c8fb90271b1472c97b9
|
||||
required: false
|
||||
bundled: true
|
||||
note: "Paint utility ROM (64 KB). Auto-loaded for MSX2 and MSX2+ models (fMSX/MSX.c:552)."
|
||||
source_ref: "fMSX/ROMs/PAINTER.ROM"
|
||||
|
||||
- name: RS232.ROM
|
||||
size: 16640
|
||||
md5: 279efd1eae0d358eecd4edc7d9adedf3
|
||||
sha1: 7aec0134ad6a5177f4056fcb6047083e8e00529b
|
||||
required: false
|
||||
bundled: true
|
||||
note: "RS-232C serial interface ROM (16 KB + 256 B). Loaded into slot 3:3 (fMSX/MSX.c:533)."
|
||||
source_ref: "fMSX/ROMs/RS232.ROM"
|
||||
|
||||
# -- GameMaster (not bundled, requires core option) --
|
||||
|
||||
- name: GMASTER2.ROM
|
||||
required: false
|
||||
bundled: false
|
||||
note: "Konami GameMaster2 cartridge ROM. Loaded when 'fmsx_game_master' option enabled (fMSX/MSX.c:576)."
|
||||
|
||||
- name: GMASTER.ROM
|
||||
required: false
|
||||
bundled: false
|
||||
note: "Konami GameMaster cartridge ROM. Fallback if GMASTER2.ROM is missing (fMSX/MSX.c:580)."
|
||||
|
||||
# -- CMOS persistence (auto-generated, not a BIOS) --
|
||||
|
||||
- name: CMOS.ROM
|
||||
required: false
|
||||
bundled: false
|
||||
note: "RTC/CMOS settings. Auto-saved by the core on exit, auto-loaded on start (fMSX/MSX.c:526)."
|
||||
39
emulators/handy.yml
Normal file
39
emulators/handy.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
emulator: Handy
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-handy"
|
||||
systems: [atari-lynx]
|
||||
|
||||
notes: |
|
||||
Handy is an Atari Lynx emulator. The core loads lynxboot.img from
|
||||
the system directory and validates it by CRC32 (0x0D973C9D). If the
|
||||
file is missing or the CRC does not match, the core falls back to an
|
||||
internal HLE BIOS that replicates the boot sequence in software
|
||||
(ram clear, cart loader decrypt, jump to $0200).
|
||||
|
||||
The HLE path intercepts CPU calls to ROM addresses FE00, FE19, FE4A
|
||||
and FF80 via a Mikie register write trap (address 0xFD97). When
|
||||
useEmu is true (no valid BIOS loaded), CRom initialises mRomData
|
||||
with a default fill byte (0x88) plus reset vectors pointing to
|
||||
the HLE entry points. The cart decryption uses a hardcoded RSA
|
||||
public key (lynxdec.cpp) identical to the real hardware.
|
||||
|
||||
With the real BIOS, the first frame has unusually high cycle counts
|
||||
because hardware timers start from the boot ROM rather than being
|
||||
set artificially. Blip_Buffer::end_frame() caps the audio buffer
|
||||
to handle this overflow.
|
||||
|
||||
File path: libretro.cpp retro_load_game() joins
|
||||
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY with "lynxboot.img".
|
||||
No subdirectory.
|
||||
|
||||
files:
|
||||
- name: "lynxboot.img"
|
||||
system: atari-lynx
|
||||
description: "Atari Lynx boot ROM (Mikie internal 512B ROM)"
|
||||
required: false
|
||||
size: 512
|
||||
md5: "fcd403db69f54290b51035d82f835e7b"
|
||||
sha1: "e4ed47fae31693e016b081c6bda48da5b70d7ccb"
|
||||
crc32: "0d973c9d"
|
||||
source_ref: "rom.h:48-49 (ROM_SIZE=0x200, ROM_CRC32=0xD973C9D), rom.cpp:76-128 (CRom constructor), libretro.cpp:1231-1258 (bios path + CSystem init)"
|
||||
notes: "Validated by CRC32 at load time. If invalid or missing, core uses HLE fallback (system.cpp HLE_BIOS_* functions). Games work without it but the real boot ROM provides accurate startup timing."
|
||||
48
emulators/mupen64plus.yml
Normal file
48
emulators/mupen64plus.yml
Normal file
@@ -0,0 +1,48 @@
|
||||
emulator: Mupen64Plus-Next
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/mupen64plus-libretro-nx"
|
||||
systems: [nintendo-64, nintendo-64dd]
|
||||
cores: [mupen64plus_next, mupen64plus_next_gles3, mupen64plus_next_gles2, parallel_n64]
|
||||
|
||||
# PIF boot ROM is fully HLE'd (bootrom_hle.c), no external PIF ROM needed.
|
||||
# CIC emulation is also handled internally (n64_cic_nus_6105.c).
|
||||
# The only optional firmware is the 64DD IPL ROM for N64 Disk Drive games.
|
||||
|
||||
# mupen64plus_next cores use: system/Mupen64plus/IPL.n64
|
||||
# parallel_n64 uses: system/64DD_IPL.bin
|
||||
# Both expect the same ROM, different path.
|
||||
|
||||
files:
|
||||
# -- 64DD IPL ROM (mupen64plus_next variants) --
|
||||
- name: "IPL.n64"
|
||||
path: "Mupen64plus/IPL.n64"
|
||||
size: 4194304 # 0x400000 (4 MB)
|
||||
md5: "8d3d9f294b6e174bc7b1d2fd1c727530"
|
||||
required: false
|
||||
note: "64DD IPL ROM for N64 Disk Drive games. Only needed for .ndd disk images via subsystem API"
|
||||
source_ref: "mupen64plus-core/src/main/main.c:959-961, libretro/libretro.c:641"
|
||||
cores: [mupen64plus_next, mupen64plus_next_gles3, mupen64plus_next_gles2]
|
||||
|
||||
# -- 64DD IPL ROM (parallel_n64) --
|
||||
- name: "64DD_IPL.bin"
|
||||
path: "64DD_IPL.bin"
|
||||
md5: "8d3d9f294b6e174bc7b1d2fd1c727530"
|
||||
required: false
|
||||
note: "Same 64DD IPL ROM, different path expected by parallel_n64"
|
||||
cores: [parallel_n64]
|
||||
|
||||
notes:
|
||||
hle_available: true
|
||||
hle_note: >
|
||||
N64 does not require any BIOS or firmware files for standard cartridge games.
|
||||
The PIF boot ROM is fully emulated via HLE (bootrom_hle.c). CIC chip
|
||||
challenge/response is handled in software (n64_cic_nus_6105.c).
|
||||
dd_note: >
|
||||
The 64DD IPL ROM is only needed to run N64 Disk Drive games (.ndd).
|
||||
It is loaded via the retro subsystem API (RETRO_GAME_TYPE_DD), which
|
||||
takes both a disk image and an optional cartridge ROM.
|
||||
The core accepts Z64 (big-endian), N64 (little-endian), and V64
|
||||
(byte-swapped) formats and converts internally.
|
||||
transferpak_note: >
|
||||
Transfer Pak support (GB/GBC games on N64) is handled via subsystem API.
|
||||
No additional firmware files needed, just the GB ROM and save file.
|
||||
89
emulators/pcsx_rearmed.yml
Normal file
89
emulators/pcsx_rearmed.yml
Normal file
@@ -0,0 +1,89 @@
|
||||
emulator: PCSX-ReARMed
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/pcsx_rearmed"
|
||||
cores: [pcsx_rearmed, pcsx_rearmed_neon, pcsx_rearmed_interpreter]
|
||||
systems: [sony-playstation]
|
||||
bios_size: 524288 # 512 KB (0x80000); also accepts 4 MB psxonpsp combo (reads first 512 KB)
|
||||
verification: crc32
|
||||
notes: >
|
||||
HLE BIOS built-in: core option pcsx_rearmed_bios = "HLE" bypasses real BIOS entirely.
|
||||
Default is "auto" which searches system dir for listed filenames, then scans all files.
|
||||
Region detection reads bytes at offset 0x7ff51: " E" = EU, " J" = JP, else US.
|
||||
Three CRC32 hardcoded as JP override: 0x18D0F7D8, 0x3B601FC8, 0x3539DEF6 (psxonpsp, scph1000).
|
||||
BIOS validity check: byte pattern at offset 1 (\x00\x08\x3c\x3f) or string "PS compatible" at 0x12c.
|
||||
Files named "unirom" (case-insensitive) are explicitly skipped.
|
||||
Region fallback: if the matching-region BIOS is missing, any available region BIOS is used over HLE.
|
||||
Three region slots: US (index 0), JP (index 1), EU (index 2) stored in Config.Bios[].
|
||||
All firmware is optional per libretro-core-info; HLE works but real BIOS improves compatibility.
|
||||
|
||||
files:
|
||||
# -- Region: Japan (PSX_REGION_JP = 1) --
|
||||
|
||||
- name: "scph5500.bin"
|
||||
description: "SCPH-5500 (v3.0 09-09-96 J)"
|
||||
region: "NTSC-J"
|
||||
required: false
|
||||
md5: "8dd7d5296a650fac7319bce665a6a53c"
|
||||
source_ref: "frontend/libretro.c:3710 (listed_bios[0])"
|
||||
notes: "Preferred JP BIOS, searched first by exact filename."
|
||||
|
||||
# -- Region: North America (PSX_REGION_US = 0) --
|
||||
|
||||
- name: "scph5501.bin"
|
||||
description: "SCPH-5501 (v3.0 11-18-96 A)"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
md5: "490f666e1afb15b7362b406ed1cea246"
|
||||
source_ref: "frontend/libretro.c:3710 (listed_bios[1])"
|
||||
notes: "Preferred US BIOS, searched first by exact filename."
|
||||
|
||||
# -- Region: Europe (PSX_REGION_EU = 2) --
|
||||
|
||||
- name: "scph5502.bin"
|
||||
description: "SCPH-5502 (v3.0 01-06-97 E)"
|
||||
region: "PAL"
|
||||
required: false
|
||||
md5: "32736f17079d0b2b7024407c39bd3050"
|
||||
source_ref: "frontend/libretro.c:3710 (listed_bios[2])"
|
||||
notes: "Preferred EU BIOS, searched first by exact filename."
|
||||
|
||||
# -- Fallback BIOS filenames (searched in order after scph550x) --
|
||||
|
||||
- name: "psxonpsp660.bin"
|
||||
description: "PSP embedded PS1 BIOS (region-free, 512 KB or 4 MB accepted)"
|
||||
region: "Auto"
|
||||
required: false
|
||||
md5: "c53ca5908936d412331790f4426c6c33"
|
||||
source_ref: "frontend/libretro.c:3711 (listed_bios[3])"
|
||||
notes: "Region detected from content at runtime. 4 MB combo image accepted but only first 512 KB read."
|
||||
|
||||
- name: "scph101.bin"
|
||||
description: "SCPH-101 (v4.4 03-24-00 A) - PSone US"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
md5: "6e3735ff4c7dc899ee98981c18c3666d"
|
||||
source_ref: "frontend/libretro.c:3711 (listed_bios[4])"
|
||||
notes: "PSone slim model. Searched by filename after scph550x and psxonpsp660."
|
||||
|
||||
- name: "scph7001.bin"
|
||||
description: "SCPH-7001 (v4.1 12-16-97 A)"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
md5: "1e68c231d0896b7eadcad1d7d8e76129"
|
||||
source_ref: "frontend/libretro.c:3711 (listed_bios[5])"
|
||||
notes: "Searched by filename after psxonpsp660 and scph101."
|
||||
|
||||
- name: "scph1001.bin"
|
||||
description: "SCPH-1001 (v2.2 12-04-95 A)"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
md5: "924e392ed05558ffdb115408c263dccf"
|
||||
source_ref: "frontend/libretro.c:3711 (listed_bios[6])"
|
||||
notes: "Original US model. Last in the explicit filename search list."
|
||||
|
||||
# -- Dynamic scan fallback --
|
||||
# After exhausting listed_bios[], the core calls find_any_bios() which scans
|
||||
# the entire system directory via opendir/readdir. Any 512 KB file passing the
|
||||
# validity check (magic bytes or "PS compatible" string) is accepted and assigned
|
||||
# to the detected region slot. This means scph1000.bin, scph3000.bin, scph7002.bin,
|
||||
# scph7502.bin, etc. all work without being explicitly listed.
|
||||
88
emulators/pokemini.yml
Normal file
88
emulators/pokemini.yml
Normal file
@@ -0,0 +1,88 @@
|
||||
emulator: PokeMini
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/PokeMini"
|
||||
cores:
|
||||
- pokemini
|
||||
systems:
|
||||
- nintendo-pokemon-mini
|
||||
|
||||
notes: |
|
||||
PokeMini is a Pokemon Mini handheld emulator ported to libretro.
|
||||
|
||||
The core has an embedded FreeBIOS (open-source replacement) compiled
|
||||
directly into the binary from freebios/freebios.c. This means the
|
||||
real BIOS is never strictly required -- games will run with FreeBIOS
|
||||
alone, though compatibility may differ from the original firmware.
|
||||
|
||||
BIOS loading sequence in the libretro port:
|
||||
|
||||
1. PokeMini_Create() clears PM_BIOS (4096 bytes at $000000-$000FFF),
|
||||
then loads FreeBIOS into it via memcpy (source/PokeMini.c:116).
|
||||
PokeMini_FreeBIOS is set to 1.
|
||||
|
||||
2. retro_load_game() calls PokeMini_Reset(0) after loading the ROM.
|
||||
|
||||
3. PokeMini_Reset() checks forcefreebios (hardcoded to 0 in the
|
||||
libretro port, libretro.c:499). Since FreeBIOS is currently loaded
|
||||
and forcefreebios is 0, it enters the real-BIOS path
|
||||
(source/PokeMini.c:518-523):
|
||||
- Reloads FreeBIOS as a safety fallback
|
||||
- Checks if CommandLine.bios_file exists on disk
|
||||
- If found, overwrites PM_BIOS with the real BIOS via
|
||||
PokeMini_LoadBIOSFile(), sets PokeMini_FreeBIOS to 0
|
||||
|
||||
4. If bios.min is missing, FreeBIOS stays loaded and emulation
|
||||
proceeds normally.
|
||||
|
||||
File path construction (libretro.c:565):
|
||||
sprintf(CommandLine.bios_file, "%s%cbios.min", g_system_dir, slash)
|
||||
The core looks for bios.min directly in the system directory root,
|
||||
no subdirectory.
|
||||
|
||||
There is no core option to toggle FreeBIOS in the libretro port.
|
||||
The standalone PokeMini has a forcefreebios setting, but the libretro
|
||||
wrapper hardcodes it to 0 (always prefer real BIOS when available).
|
||||
|
||||
FreeBIOS (freebios/freebios.min) is 4096 bytes, a clean-room
|
||||
reimplementation. It is NOT the official Nintendo Pokemon Mini BIOS.
|
||||
|
||||
files:
|
||||
- name: "bios.min"
|
||||
system: nintendo-pokemon-mini
|
||||
description: "Pokemon Mini official BIOS"
|
||||
required: false
|
||||
size: 4096
|
||||
md5: "1e4fb124a3a886865acb574f388c803d"
|
||||
sha1: "daad4113713ed776fbd47727762bca81ba74915f"
|
||||
source_ref: "source/PokeMini.c:189-206 (PokeMini_LoadBIOSFile), libretro/libretro.c:565 (path)"
|
||||
notes: "Mapped at $000000-$000FFF (4 KB). Read via Hardware.c:144-145. Falls back to embedded FreeBIOS if missing."
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
target: "$000000-$000FFF in Pokemon Mini address space (4 KB)"
|
||||
source_ref: "source/PokeMini.h:38, source/Hardware.c:144-145"
|
||||
notes: |
|
||||
PM_BIOS is a 4096-byte array. CPU reads from address range
|
||||
$000000-$000FFF are served directly from this buffer. The BIOS
|
||||
handles interrupt vectors, hardware init, and the startup logo.
|
||||
|
||||
freebios_fallback:
|
||||
source_ref: "freebios/freebios.c, source/PokeMini.c:209-214"
|
||||
notes: |
|
||||
FreeBIOS is a 4096-byte open-source replacement embedded in the
|
||||
binary as a C array. It provides basic interrupt vectors and
|
||||
startup code. Loaded by default at PokeMini_Create() and used
|
||||
as fallback when bios.min is not found on disk.
|
||||
freebios_hashes:
|
||||
md5: "d6c3ff5abc88f7c42f1a5edd6889f9cf"
|
||||
sha1: "b40421defb005e836913e4e39dc1a18aa3b8887e"
|
||||
size: 4096
|
||||
|
||||
load_priority:
|
||||
source_ref: "source/PokeMini.c:515-523"
|
||||
notes: |
|
||||
During PokeMini_Reset(), the core first reloads FreeBIOS as a
|
||||
safe baseline, then attempts to load bios.min from disk. If
|
||||
the file exists and is exactly 4096 bytes, it replaces FreeBIOS.
|
||||
The forcefreebios flag (hardcoded 0 in libretro) controls this:
|
||||
when 0, the core always prefers real BIOS over FreeBIOS.
|
||||
149
emulators/sameboy.yml
Normal file
149
emulators/sameboy.yml
Normal file
@@ -0,0 +1,149 @@
|
||||
emulator: SameBoy
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/SameBoy"
|
||||
cores:
|
||||
- sameboy
|
||||
systems:
|
||||
- nintendo-gb
|
||||
- nintendo-gbc
|
||||
- nintendo-sgb
|
||||
|
||||
notes: |
|
||||
SameBoy is a high-accuracy Game Boy, Game Boy Color and Super Game Boy
|
||||
emulator written by Lior Halphon (LIJI32).
|
||||
|
||||
All boot ROMs are optional. SameBoy ships its own open-source boot ROM
|
||||
replacements compiled from BootROMs/*.asm and embedded directly into
|
||||
the libretro core binary (extern arrays dmg_boot, cgb_boot, agb_boot,
|
||||
sgb_boot, sgb2_boot in libretro.c:129-130). These built-in boot ROMs
|
||||
are SameBoy-authored replacements, not Nintendo originals.
|
||||
|
||||
The libretro port (libretro.c boot_rom_load(), line 513) tries to load
|
||||
an external boot ROM from the system directory first. The filename is
|
||||
constructed as "{model}_boot.bin" where model is one of: dmg0, dmg,
|
||||
mgb, sgb, sgb2, cgb0, cgb, agb. If the file is missing or unreadable,
|
||||
the embedded boot ROM is used as fallback.
|
||||
|
||||
Boot ROM type selection depends on the emulated model configured via
|
||||
the sameboy_model core option (request_boot_rom in Core/gb.c:1588):
|
||||
DMG_B -> GB_BOOT_ROM_DMG -> dmg_boot.bin
|
||||
MGB -> GB_BOOT_ROM_MGB -> mgb_boot.bin
|
||||
SGB/SGB_NTSC -> GB_BOOT_ROM_SGB -> sgb_boot.bin
|
||||
SGB2 -> GB_BOOT_ROM_SGB2 -> sgb2_boot.bin
|
||||
CGB_0 -> GB_BOOT_ROM_CGB_0 -> cgb0_boot.bin
|
||||
CGB_A..CGB_E -> GB_BOOT_ROM_CGB -> cgb_boot.bin
|
||||
AGB_A (GBA) -> GB_BOOT_ROM_AGB -> agb_boot.bin
|
||||
|
||||
Built-in fallback mapping (some models share a boot ROM):
|
||||
DMG_0 and MGB reuse dmg_boot (not yet separately implemented)
|
||||
CGB_0 reuses cgb_boot (not yet separately implemented)
|
||||
|
||||
The boot ROM buffer is 0x900 (2304) bytes. DMG/MGB/SGB/SGB2 boot ROMs
|
||||
are 256 bytes (mapped at 0x0000-0x00FF). CGB/AGB boot ROMs are 2304
|
||||
bytes (mapped at 0x0000-0x00FF and 0x0200-0x08FF).
|
||||
|
||||
SameDuck (MegaDuck emulator) is a separate project, not part of this
|
||||
core.
|
||||
|
||||
files:
|
||||
# --- DMG boot ROM (optional, built-in fallback) ---
|
||||
- name: "dmg_boot.bin"
|
||||
system: nintendo-gb
|
||||
description: "Original Game Boy (DMG) boot ROM"
|
||||
required: false
|
||||
size: 256
|
||||
source_ref: "libretro.c:519,530,556 (boot_rom_load)"
|
||||
notes: "Also used as fallback for DMG_0 and MGB models when dedicated boot ROMs are absent."
|
||||
|
||||
# --- MGB boot ROM (optional, built-in fallback) ---
|
||||
- name: "mgb_boot.bin"
|
||||
system: nintendo-gb
|
||||
description: "Game Boy Pocket (MGB) boot ROM"
|
||||
required: false
|
||||
size: 256
|
||||
source_ref: "libretro.c:520,531,556"
|
||||
notes: "Built-in fallback reuses dmg_boot (mgb not separately implemented yet)."
|
||||
|
||||
# --- SGB boot ROM (optional, built-in fallback) ---
|
||||
- name: "sgb_boot.bin"
|
||||
system: nintendo-sgb
|
||||
description: "Super Game Boy (SGB) boot ROM"
|
||||
required: false
|
||||
size: 256
|
||||
source_ref: "libretro.c:521,532,556"
|
||||
notes: "Used for SGB and SGB_NTSC models. Also loaded temporarily when borrowing SGB border for non-SGB games."
|
||||
|
||||
# --- SGB2 boot ROM (optional, built-in fallback) ---
|
||||
- name: "sgb2_boot.bin"
|
||||
system: nintendo-sgb
|
||||
description: "Super Game Boy 2 (SGB2) boot ROM"
|
||||
required: false
|
||||
size: 256
|
||||
source_ref: "libretro.c:522,533,556"
|
||||
notes: "Separate from sgb_boot.bin, unlike some other cores that merge SGB/SGB2."
|
||||
|
||||
# --- CGB boot ROM (optional, built-in fallback) ---
|
||||
- name: "cgb_boot.bin"
|
||||
system: nintendo-gbc
|
||||
description: "Game Boy Color (CGB) boot ROM"
|
||||
required: false
|
||||
size: 2304
|
||||
source_ref: "libretro.c:524,535,556"
|
||||
notes: "Also used as fallback for CGB_0 model (not separately implemented yet)."
|
||||
|
||||
# --- CGB0 boot ROM (optional, built-in fallback) ---
|
||||
- name: "cgb0_boot.bin"
|
||||
system: nintendo-gbc
|
||||
description: "Game Boy Color early revision (CGB-0) boot ROM"
|
||||
required: false
|
||||
size: 2304
|
||||
source_ref: "libretro.c:523,534,556"
|
||||
notes: "Built-in fallback reuses cgb_boot (cgb0 not separately implemented yet)."
|
||||
|
||||
# --- AGB boot ROM (optional, built-in fallback) ---
|
||||
- name: "agb_boot.bin"
|
||||
system: nintendo-gbc
|
||||
description: "Game Boy Advance in GBC mode (AGB) boot ROM"
|
||||
required: false
|
||||
size: 2304
|
||||
source_ref: "libretro.c:525,536,556"
|
||||
notes: "Used when emulating a GBA running GB/GBC software. Enables GBA-enhanced palettes in compatible GBC games."
|
||||
|
||||
# --- DMG0 boot ROM (optional, built-in fallback) ---
|
||||
- name: "dmg0_boot.bin"
|
||||
system: nintendo-gb
|
||||
description: "Original Game Boy early revision (DMG-0) boot ROM"
|
||||
required: false
|
||||
size: 256
|
||||
source_ref: "SDL/main.c:640 (standalone), libretro.c:518,529"
|
||||
notes: "Only referenced in standalone SDL build filename list. Built-in fallback reuses dmg_boot."
|
||||
|
||||
builtin_boot_roms:
|
||||
description: |
|
||||
SameBoy includes open-source boot ROM replacements compiled from
|
||||
assembly source in BootROMs/ directory. These are NOT Nintendo
|
||||
originals. They reproduce the boot animation and hardware
|
||||
initialization but are clean-room implementations.
|
||||
sources:
|
||||
- "BootROMs/dmg_boot.asm -> dmg_boot (256 bytes)"
|
||||
- "BootROMs/sgb_boot.asm -> sgb_boot (256 bytes)"
|
||||
- "BootROMs/sgb2_boot.asm -> sgb2_boot (256 bytes)"
|
||||
- "BootROMs/cgb_boot.asm -> cgb_boot (2304 bytes)"
|
||||
- "BootROMs/agb_boot.asm -> agb_boot (2304 bytes)"
|
||||
prebuilt_hashes:
|
||||
dmg_boot.bin:
|
||||
md5: "60f1d849a435e9053b8ac0fd5776804a"
|
||||
sha1: "da853c8102acfff6b8e5a973ce0cd181f3dbb709"
|
||||
sgb_boot.bin:
|
||||
md5: "be77bbd03f8675478f6e3d2176f3cb56"
|
||||
sha1: "27267e45c8408857267231ba6c18bfbd052536e2"
|
||||
sgb2_boot.bin:
|
||||
md5: "b4331a9e612b4738867a30af9c96df52"
|
||||
sha1: "576678d0fc3892b80471d7067ce6014e6af77ed5"
|
||||
cgb_boot.bin:
|
||||
md5: "6b68be48dab6a7298a8c07e00c136b4e"
|
||||
sha1: "9884b972110a63c9e86fb3bd241bd2e39ca82bb9"
|
||||
agb_boot.bin:
|
||||
md5: "7e095aa30941da3086fa0e9221335370"
|
||||
sha1: "3b6231bdf840fb889f402d0ae89f21adb077323a"
|
||||
notes: "These are SameBoy's own boot ROMs, not Nintendo originals. The hashes above identify the built-in versions."
|
||||
132
emulators/snes9x.yml
Normal file
132
emulators/snes9x.yml
Normal file
@@ -0,0 +1,132 @@
|
||||
emulator: snes9x
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/snes9x"
|
||||
systems: [nintendo-snes, nintendo-satellaview, nintendo-sufami-turbo]
|
||||
|
||||
# snes9x uses HLE for all coprocessors: DSP1-4, ST010, ST011, ST018, CX4.
|
||||
# No external firmware files are needed for these chips - the emulation
|
||||
# logic and lookup tables are hardcoded in dsp1.cpp, dsp2.cpp, dsp3.cpp,
|
||||
# dsp4.cpp, seta010.cpp, seta011.cpp, seta018.cpp, c4emu.cpp.
|
||||
#
|
||||
# Unlike bsnes, snes9x does NOT support LLE coprocessor firmware.
|
||||
# It also does NOT support Super Game Boy (RETRO_GAME_TYPE_SUPER_GAME_BOY
|
||||
# is defined but never loads a SGB BIOS or boot ROM).
|
||||
#
|
||||
# The only external BIOS files used are for Satellaview (BS-X) and
|
||||
# Sufami Turbo, loaded by LoadBIOS() in libretro/libretro.cpp and
|
||||
# BSX_LoadBIOS() in bsx.cpp.
|
||||
#
|
||||
# BIOS lookup order (LoadBIOS):
|
||||
# 1. ROM directory (same folder as the game)
|
||||
# 2. RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY (system dir)
|
||||
|
||||
cores:
|
||||
snes9x:
|
||||
source: "https://github.com/libretro/snes9x"
|
||||
firmware_loading: true
|
||||
hle_only: true
|
||||
notes: |
|
||||
Current snes9x. Loads BS-X.bin (tries BS-X.bios as fallback)
|
||||
and STBIOS.bin via LoadBIOS() in libretro.cpp.
|
||||
Auto-detects Sufami Turbo carts (is_SufamiTurbo_Cart) and
|
||||
BS-X games (is_bsx) when loading via retro_load_game().
|
||||
Also handles retro_load_game_special() for multi-cart and
|
||||
subsystem types (RETRO_GAME_TYPE_BSX, RETRO_GAME_TYPE_SUFAMI_TURBO,
|
||||
RETRO_GAME_TYPE_MULTI_CART).
|
||||
|
||||
snes9x2010:
|
||||
source: "https://github.com/libretro/snes9x2010"
|
||||
firmware_loading: true
|
||||
hle_only: true
|
||||
notes: |
|
||||
Based on snes9x 1.52. Same BIOS loading as snes9x current.
|
||||
BSX_LoadBIOS() in src/bsx.c loads BS-X.bin (fallback BS-X.bios).
|
||||
STBIOS.bin loaded in src/memmap.c for Sufami Turbo.
|
||||
|
||||
snes9x2005:
|
||||
source: "https://github.com/libretro/snes9x2005"
|
||||
firmware_loading: false
|
||||
hle_only: true
|
||||
notes: |
|
||||
Based on snes9x 1.43. Detects BS-X and Sufami Turbo ROM headers
|
||||
in source/memmap.c but has no LoadBIOS function - does not load
|
||||
external BIOS files. No firmware needed.
|
||||
|
||||
snes9x2005_plus:
|
||||
source: "https://github.com/libretro/snes9x2005"
|
||||
firmware_loading: false
|
||||
hle_only: true
|
||||
notes: |
|
||||
Same codebase as snes9x2005 with video enhancements.
|
||||
No external BIOS loading. No firmware needed.
|
||||
|
||||
snes9x2002:
|
||||
source: "https://github.com/libretro/snes9x2002"
|
||||
firmware_loading: false
|
||||
hle_only: true
|
||||
notes: |
|
||||
Based on snes9x 1.39 (PocketSNES). Minimal core for low-end
|
||||
devices. No BS-X, no Sufami Turbo, no external BIOS loading.
|
||||
No firmware needed.
|
||||
|
||||
files:
|
||||
# -- BS-X Satellaview BIOS --
|
||||
# Required by: snes9x, snes9x2010
|
||||
# Loaded by: LoadBIOS() in libretro.cpp (snes9x) / BSX_LoadBIOS() in bsx.c (snes9x2010)
|
||||
# Auto-detected when game ROM header matches BS-X signature at 0x7FC0 or 0xFFC0.
|
||||
# Size validated: must be exactly BIOS_SIZE (0x100000 = 1048576 bytes).
|
||||
# Filename fallback: BS-X.bin -> BS-X.bios (bsx.cpp:1209-1215)
|
||||
|
||||
- name: "BS-X.bin"
|
||||
system: nintendo-satellaview
|
||||
description: "Satellaview BS-X BIOS (Japanese)"
|
||||
required: false
|
||||
size: 1048576
|
||||
md5: "fed4d8242cfbed61343d53d48432aced"
|
||||
sha1: "604556b2e62860af18db5a77f2956ebc75450020"
|
||||
source_ref: "libretro.cpp:1209 (LoadBIOS, 'BS-X.bin'), bsx.cpp:1209-1215 (BSX_LoadBIOS)"
|
||||
notes: "Needed for Satellaview (.bs) game support. Core also accepts BS-X.bios as filename. Without this file, BS-X games will fail to load."
|
||||
|
||||
# -- Sufami Turbo BIOS --
|
||||
# Required by: snes9x, snes9x2010
|
||||
# Loaded by: LoadBIOS() in libretro.cpp (snes9x) / memmap.c (snes9x2010)
|
||||
# Auto-detected when cart has "BANDAI SFC-ADX" at offset 0, without "SFC-ADX BACKUP" at 0x10.
|
||||
# Size: 0x40000 (262144 bytes). Validated by is_SufamiTurbo_BIOS().
|
||||
|
||||
- name: "STBIOS.bin"
|
||||
system: nintendo-sufami-turbo
|
||||
description: "Bandai SuFami Turbo BIOS (Mini Cartridge add-on)"
|
||||
required: false
|
||||
size: 262144
|
||||
md5: "d3a44ba7d42a74d3ac58cb9c14c6a5ca"
|
||||
sha1: "ef86ea192eed03d5c413fdbbfd46043be1d7a127"
|
||||
source_ref: "libretro.cpp:1203,1317,1348 (LoadBIOS, 'STBIOS.bin'), memmap.cpp:1672"
|
||||
notes: "Needed for Sufami Turbo multi-cart games. Validated by is_SufamiTurbo_BIOS() which checks for 'BANDAI SFC-ADX' + 'SFC-ADX BACKUP' headers."
|
||||
|
||||
notes:
|
||||
coprocessor_hle: |
|
||||
All SNES coprocessor chips are emulated in software (HLE) across
|
||||
every snes9x variant. No external firmware files are needed for:
|
||||
- DSP1/DSP1B (dsp1.cpp, static DSP1ROM[1024] lookup table)
|
||||
- DSP2 (dsp2.cpp)
|
||||
- DSP3 (dsp3.cpp)
|
||||
- DSP4 (dsp4.cpp)
|
||||
- ST010 (seta010.cpp, static ST010_SinTable)
|
||||
- ST011 (seta011.cpp)
|
||||
- ST018 (seta018.cpp)
|
||||
- CX4/Cx4 (c4.cpp, c4emu.cpp, math-based HLE)
|
||||
This is the key difference from bsnes, which supports both HLE and
|
||||
LLE (with optional external firmware ROM files).
|
||||
sgb_status: |
|
||||
RETRO_GAME_TYPE_SUPER_GAME_BOY (0x104) is defined in libretro.cpp
|
||||
but no actual SGB emulation exists. No SGB BIOS or boot ROM is
|
||||
loaded or used by any snes9x variant.
|
||||
bsx_detection: |
|
||||
BS-X games are auto-detected by is_bsx() which checks for the
|
||||
"Satellaview BS-X" signature in the ROM header. When detected,
|
||||
the BIOS is loaded automatically without user intervention.
|
||||
sufami_detection: |
|
||||
Sufami Turbo carts are auto-detected by is_SufamiTurbo_Cart()
|
||||
which checks for "BANDAI SFC-ADX" at ROM offset 0 and absence
|
||||
of "SFC-ADX BACKUP" at offset 0x10 (which would indicate BIOS,
|
||||
not cart). Multi-cart support uses retro_load_game_special().
|
||||
54
emulators/stella.yml
Normal file
54
emulators/stella.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
emulator: Stella
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/stella2014-libretro"
|
||||
cores:
|
||||
- stella
|
||||
- stella2014
|
||||
- stella2023
|
||||
systems:
|
||||
- atari-2600
|
||||
|
||||
notes: |
|
||||
Stella is an Atari 2600 (VCS) emulator. The libretro port available is
|
||||
stella2014, which is a fork frozen at the 2014 codebase. The upstream
|
||||
"stella-libretro" repo redirects to stella2014-libretro. There is no
|
||||
separate stella2023 libretro core published at this time.
|
||||
|
||||
The Atari 2600 console has no BIOS ROM. Games run directly on the
|
||||
hardware with no boot firmware.
|
||||
|
||||
The Starpath/Arcadia Supercharger add-on had a 2K BIOS ROM on the
|
||||
physical hardware. Stella does NOT load this BIOS from an external
|
||||
file. Instead, the core contains a built-in dummy BIOS
|
||||
(ourDummyROMCode, 294 bytes in CartAR.cxx) that simulates the
|
||||
Supercharger load sequence. The initializeROM() function copies this
|
||||
dummy code into the ROM bank (bank 3) at reset, sets up the 6502
|
||||
reset vector to 0xF80A, and handles multiload via a hotspot at
|
||||
address 0x1850.
|
||||
|
||||
The "fastscbios" setting (offset 109 in the dummy ROM) controls
|
||||
whether the SC load progress bars are shown (0x00) or skipped
|
||||
(0xFF). This is toggled automatically during ROM format detection
|
||||
(Console.cxx:119-120).
|
||||
|
||||
The real Supercharger BIOS ROM (MD5 4565c1a7abce773e53c75b35414adefd)
|
||||
is recognized in DefProps.hxx as a known cartridge entry but is not
|
||||
required or loaded as a system file.
|
||||
|
||||
The libretro interface (retro_set_environment) does not call
|
||||
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY and declares no firmware
|
||||
requirements. No core option references BIOS loading.
|
||||
|
||||
files: []
|
||||
|
||||
platform_details:
|
||||
supercharger_emulation:
|
||||
source_ref: "stella/src/emucore/CartAR.cxx, CartAR.hxx"
|
||||
notes: |
|
||||
The Supercharger (type AR) uses 4 banks: 3x 2K RAM + 1x 2K ROM.
|
||||
The ROM bank is filled with ourDummyROMCode at reset. SC games
|
||||
are multi-load images (8448 bytes per load: 8192 data + 256 header).
|
||||
loadIntoRAM() handles loading game data when the hotspot at 0x1850
|
||||
is accessed with the ROM bank mapped. The bank switching byte and
|
||||
start address are written to zero-page RAM (0xFE, 0xFF, 0x80) for
|
||||
the dummy BIOS to read.
|
||||
112
emulators/virtualjaguar.yml
Normal file
112
emulators/virtualjaguar.yml
Normal file
@@ -0,0 +1,112 @@
|
||||
emulator: Virtual Jaguar
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/virtualjaguar-libretro"
|
||||
cores:
|
||||
- virtualjaguar
|
||||
systems:
|
||||
- atari-jaguar
|
||||
|
||||
notes: |
|
||||
Virtual Jaguar embeds all BIOS ROMs directly in the source code as C arrays
|
||||
(bin2c generated). No external BIOS files are loaded at runtime. The core
|
||||
selects between K-series and M-series boot ROMs based on vjs.biosType,
|
||||
then copies 0x20000 bytes to jagMemSpace + 0xE00000 (libretro.c:902-904).
|
||||
|
||||
The "BIOS" core option (virtualjaguar_bios, disabled by default) controls
|
||||
whether the embedded boot ROM is executed at startup. When enabled, the
|
||||
boot ROM entry point is copied to jaguarMainRAM (jaguar.c:644-645).
|
||||
When disabled, jaguarRunAddress is written directly, skipping the boot
|
||||
animation. Either way the embedded ROM data is always present in memory.
|
||||
|
||||
The jagBootPath and CDBootPath fields in VJSettings exist in the struct
|
||||
(settings.h:36-37) but are never populated or used in the libretro port.
|
||||
No call to RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY or fopen for BIOS files.
|
||||
|
||||
Jaguar CD emulation: the CD boot ROM (jaguarCDBootROM, 0x40000 bytes) is
|
||||
also embedded but Jaguar CD support is incomplete in this core. The
|
||||
cdrom.c references "CD BIOS" in comments only.
|
||||
|
||||
No external BIOS files are required or loaded by this core.
|
||||
|
||||
files: []
|
||||
|
||||
analysis:
|
||||
embedded_bios:
|
||||
k_series_boot_rom:
|
||||
source_file: src/jagbios.c
|
||||
header: src/jagbios.h
|
||||
symbol: jaguarBootROM
|
||||
size: 131072 # 0x20000, 128 KB
|
||||
description: "Jaguar K-series boot ROM"
|
||||
filedb_crc: "0xFB731AAA"
|
||||
filedb_name: "[BIOS] Atari Jaguar (World)"
|
||||
|
||||
m_series_boot_rom:
|
||||
source_file: src/jagbios2.c
|
||||
header: src/jagbios2.h
|
||||
symbol: jaguarBootROM2
|
||||
size: 131072 # 0x20000, 128 KB
|
||||
description: "Jaguar M-series boot ROM"
|
||||
|
||||
cd_boot_rom:
|
||||
source_file: src/jagcdbios.c
|
||||
header: src/jagcdbios.h
|
||||
symbol: jaguarCDBootROM
|
||||
size: 262144 # 0x40000, 256 KB
|
||||
description: "Jaguar CD boot ROM"
|
||||
filedb_crc: "0x687068D5"
|
||||
filedb_name: "[BIOS] Atari Jaguar CD (World)"
|
||||
|
||||
stubulator_93:
|
||||
source_file: src/jagstub1bios.c
|
||||
header: src/jagstub1bios.h
|
||||
symbol: jaguarDevBootROM1
|
||||
size: 131072 # 0x20000, 128 KB
|
||||
description: "Jaguar Stubulator '93 dev BIOS"
|
||||
filedb_crc: "0xE60277BB"
|
||||
filedb_name: "[BIOS] Atari Jaguar Stubulator '93 (World)"
|
||||
|
||||
stubulator_94:
|
||||
source_file: src/jagstub2bios.c
|
||||
header: src/jagstub2bios.h
|
||||
symbol: jaguarDevBootROM2
|
||||
size: 131072 # 0x20000, 128 KB
|
||||
description: "Jaguar Stubulator '94 dev BIOS"
|
||||
filedb_crc: "0x8D15DBC6"
|
||||
filedb_name: "[BIOS] Atari Jaguar Stubulator '94 (World)"
|
||||
|
||||
dev_cd_boot_rom:
|
||||
source_file: src/jagdevcdbios.c
|
||||
header: src/jagdevcdbios.h
|
||||
symbol: jaguarDevCDBootROM
|
||||
size: 262144 # 0x40000, 256 KB
|
||||
description: "Jaguar Developer CD boot ROM"
|
||||
filedb_crc: "0x55A0669C"
|
||||
filedb_name: "[BIOS] Atari Jaguar Developer CD (World)"
|
||||
|
||||
bios_type_enum:
|
||||
source_ref: "settings.h:46"
|
||||
values:
|
||||
- BT_K_SERIES
|
||||
- BT_M_SERIES
|
||||
- BT_STUBULATOR_1
|
||||
- BT_STUBULATOR_2
|
||||
|
||||
core_option:
|
||||
key: virtualjaguar_bios
|
||||
label: "BIOS"
|
||||
description: "Use the Jaguar BIOS, required for some games."
|
||||
default: disabled
|
||||
source_ref: "libretro_core_options.h:123"
|
||||
|
||||
bios_loading:
|
||||
mechanism: embedded
|
||||
load_address: "0xE00000"
|
||||
load_size: "0x20000"
|
||||
source_ref: "libretro.c:902-904"
|
||||
selection_logic: "biosType == BT_K_SERIES ? jaguarBootROM : jaguarBootROM2"
|
||||
external_loading: false
|
||||
notes: |
|
||||
jagBootPath and CDBootPath struct fields are never set in the libretro
|
||||
port. The standalone Virtual Jaguar GUI uses them but that code path
|
||||
is not compiled into the libretro core.
|
||||
Reference in New Issue
Block a user