diff --git a/emulators/x64sdl.yml b/emulators/x64sdl.yml index 3b5a91ae..6560a30c 100644 --- a/emulators/x64sdl.yml +++ b/emulators/x64sdl.yml @@ -1,20 +1,181 @@ emulator: x64sdl type: libretro -source: "https://github.com/libretro/vice-libretro" -profiled_date: "2026-03-18" -core_version: "v3.1" +core_classification: community_fork +source: "https://github.com/r-type/sdlvice-libretro" +upstream: "https://sourceforge.net/projects/vice-emu/" +profiled_date: "2026-03-25" +core_version: "3.1" display_name: "Commodore - C64 (VICE SDL)" -cores: - - vice_x64 -systems: - - commodore-c64 +cores: [x64sdl] +systems: [commodore-c64] +notes: > + Old port of VICE 3.1 using an SDL-to-libretro shim (r-type/sdlvice-libretro). + Separate codebase from the newer vice-libretro port. Marked experimental and + superseded. Unlike the newer port, this core does NOT embed system ROMs; all ROMs + must be on disk in /data/C64/ and /data/DRIVES/. + The .info declares firmware_count=0 which is incorrect. No JiffyDOS support. + No save states, no netplay, no cheats. -notes: | - Alias for the VICE x64 core. x64sdl is an alternate build name - referencing the SDL-based VICE x64 Commodore 64 emulator. In the - libretro ecosystem this maps to the same vice_x64 core binary. +files: + # C64 system ROMs (required, path: data/C64/) + - name: "kernal" + description: "C64 Kernal ROM" + required: true + size: 8192 + path: "data/C64/kernal" + source_ref: "src/c64/c64rom.c:133, src/c64/c64-resources.c:255" - See vice.yml for full ROM and BIOS details. All standard ROMs are - embedded in the core binary. + - name: "basic" + description: "C64 BASIC ROM" + required: true + size: 8192 + path: "data/C64/basic" + source_ref: "src/c64/c64rom.c:192, src/c64/c64-resources.c:258" -files: [] + - name: "chargen" + description: "C64 character generator ROM" + required: true + size: 4096 + path: "data/C64/chargen" + source_ref: "src/c64/c64rom.c:207, src/c64/c64-resources.c:252" + + # C64 variant kernals (optional, for alternate models via c64model.c) + - name: "sxkernal" + description: "SX-64 Kernal ROM" + required: false + size: 8192 + path: "data/C64/sxkernal" + source_ref: "src/c64/c64model.c:142,147" + notes: "Loaded when SX64 PAL or SX64 NTSC model selected." + + - name: "jpkernal" + description: "Japanese C64 Kernal ROM" + required: false + size: 8192 + path: "data/C64/jpkernal" + source_ref: "src/c64/c64model.c:152" + notes: "Loaded when C64 JAP NTSC model selected." + + - name: "jpchrgen" + description: "Japanese C64 character generator ROM" + required: false + size: 4096 + path: "data/C64/jpchrgen" + source_ref: "src/c64/c64model.c:152" + notes: "Loaded when C64 JAP NTSC model selected." + + - name: "gskernal" + description: "C64 Games System Kernal ROM" + required: false + size: 8192 + path: "data/C64/gskernal" + source_ref: "src/c64/c64model.c:157" + notes: "Loaded when C64 GS PAL model selected." + + - name: "edkernal" + description: "PET64/Educator64 Kernal ROM" + required: false + size: 8192 + path: "data/C64/edkernal" + source_ref: "src/c64/c64model.c:162,167" + notes: "Loaded when PET64 PAL or PET64 NTSC model selected." + + # IEC drive ROMs (optional, path: data/DRIVES/) + - name: "dos1540" + description: "1540 floppy drive ROM" + required: false + path: "data/DRIVES/dos1540" + source_ref: "src/drive/iec/iecrom.c:99, src/drive/iec/iec-resources.c:182" + notes: "Hardware-level 1540 drive emulation. Absence disables this drive type." + + - name: "dos1541" + description: "1541 floppy drive ROM" + required: false + path: "data/DRIVES/dos1541" + source_ref: "src/drive/iec/iecrom.c:106, src/drive/iec/iec-resources.c:185" + notes: "Hardware-level 1541 drive emulation. Most common C64 drive." + + - name: "d1541II" + description: "1541-II floppy drive ROM" + required: false + path: "data/DRIVES/d1541II" + source_ref: "src/drive/iec/iecrom.c:113, src/drive/iec/iec-resources.c:187" + + - name: "dos1570" + description: "1570 floppy drive ROM" + required: false + path: "data/DRIVES/dos1570" + source_ref: "src/drive/iec/iecrom.c:121, src/drive/iec/iec-resources.c:189" + + - name: "dos1571" + description: "1571 floppy drive ROM" + required: false + path: "data/DRIVES/dos1571" + source_ref: "src/drive/iec/iecrom.c:127, src/drive/iec/iec-resources.c:191" + + - name: "dos1581" + description: "1581 floppy drive ROM" + required: false + path: "data/DRIVES/dos1581" + source_ref: "src/drive/iec/iecrom.c:133, src/drive/iec/iec-resources.c:193" + + - name: "dos2000" + description: "CMD FD-2000 drive ROM" + required: false + path: "data/DRIVES/dos2000" + source_ref: "src/drive/iec/iecrom.c:139, src/drive/iec/iec-resources.c:195" + notes: "Not shipped with VICE 3.1 data files." + + - name: "dos4000" + description: "CMD FD-4000 drive ROM" + required: false + path: "data/DRIVES/dos4000" + source_ref: "src/drive/iec/iecrom.c:145, src/drive/iec/iec-resources.c:197" + notes: "Not shipped with VICE 3.1 data files." + + # IEEE drive ROMs (optional, path: data/DRIVES/) + - name: "dos2031" + description: "2031 IEEE drive ROM" + required: false + path: "data/DRIVES/dos2031" + source_ref: "src/drive/ieee/ieee.c:115, src/drive/ieee/ieee-resources.c:93" + notes: "IEEE488 interface drive. Requires parallel IEEE488 extension." + + - name: "dos2040" + description: "2040 IEEE drive ROM" + required: false + path: "data/DRIVES/dos2040" + source_ref: "src/drive/ieee/ieee.c:116, src/drive/ieee/ieee-resources.c:96" + + - name: "dos3040" + description: "3040 IEEE drive ROM" + required: false + path: "data/DRIVES/dos3040" + source_ref: "src/drive/ieee/ieee.c:117, src/drive/ieee/ieee-resources.c:98" + + - name: "dos4040" + description: "4040 IEEE drive ROM" + required: false + path: "data/DRIVES/dos4040" + source_ref: "src/drive/ieee/ieee.c:118, src/drive/ieee/ieee-resources.c:100" + + - name: "dos1001" + description: "1001/8050/8250 IEEE drive ROM" + required: false + path: "data/DRIVES/dos1001" + source_ref: "src/drive/ieee/ieee.c:119, src/drive/ieee/ieee-resources.c:102" + + # Printer ROMs (optional, path: data/PRINTER/) + - name: "mps803" + description: "MPS-803 printer character ROM" + required: false + path: "data/PRINTER/mps803" + source_ref: "src/printerdrv/drv-mps803.c:420" + notes: "Loaded on demand when MPS-803 printer opened." + + - name: "nl10-cbm" + description: "NL10 printer ROM" + required: false + path: "data/PRINTER/nl10-cbm" + source_ref: "src/printerdrv/drv-nl10.c:2210" + notes: "Loaded on demand when NL10 printer opened." diff --git a/emulators/xrick.yml b/emulators/xrick.yml index 324ea0ba..98601723 100644 --- a/emulators/xrick.yml +++ b/emulators/xrick.yml @@ -1,7 +1,9 @@ emulator: XRick type: libretro +core_classification: game_engine source: "https://github.com/libretro/xrick-libretro" -profiled_date: "2026-03-18" +upstream: "https://github.com/fabiensanglard/xrick" +profiled_date: "2026-03-25" core_version: "1.0.0.6" display_name: "Rick Dangerous (XRick)" cores: diff --git a/emulators/yabasanshiro.yml b/emulators/yabasanshiro.yml index 5a732252..ccf34707 100644 --- a/emulators/yabasanshiro.yml +++ b/emulators/yabasanshiro.yml @@ -1,8 +1,55 @@ -emulator: "yabasanshiro" -type: alias -alias_of: "kronos" -profiled_date: "2026-03-18" +emulator: yabasanshiro +type: libretro +core_classification: official_port +source: "https://github.com/libretro/yabause/tree/yabasanshiro" +upstream: "https://github.com/devmiyax/yabause" +profiled_date: "2026-03-25" core_version: "v2.6.8" display_name: "Sega - Saturn (YabaSanshiro)" -note: "This core uses the same BIOS/firmware as kronos. See emulators/kronos.yml for details." -files: [] +cores: + - yabasanshiro +systems: + - sega-saturn + +notes: | + YabaSanshiro is a Sega Saturn emulator by devmiyax, forked from Yabause. + Requires OpenGL 3.3 or OpenGL ES 3.0. + + Saturn BIOS search order: + 1. {system}/saturn_bios.bin + 2. {system}/sega_101.bin + 3. {system}/mpr-17933.bin + First file found wins. Real BIOS required for normal operation. + HLE available via yabasanshiro_force_hle_bios core option (deprecated, + debug only). + + Addon cartridges: 1M/4M RAM expansion via core option (no files needed). + ROM cartridge and MPEG card ROM loading disabled in libretro port + (cartpath = empty, mpegpath = NULL). + + BIOS loading: libretro.c retro_load_game() lines 1048-1069. + Core load: memory.c LoadBios() line 1353, T123Load() memory.h lines 219-280. + +files: + - name: "saturn_bios.bin" + system: sega-saturn + required: true + hle_fallback: true + note: "Primary Saturn BIOS. Any region accepted." + source_ref: "libretro.c:1048" + + - name: "sega_101.bin" + system: sega-saturn + region: [japan] + required: false + hle_fallback: true + note: "Saturn BIOS v1.01 (Japan). Fallback if saturn_bios.bin missing." + source_ref: "libretro.c:1052" + + - name: "mpr-17933.bin" + system: sega-saturn + region: [north-america, europe] + required: false + hle_fallback: true + note: "Saturn BIOS v1.003 (NA/EU). Last fallback." + source_ref: "libretro.c:1056" diff --git a/emulators/yabause.yml b/emulators/yabause.yml index 1251a980..f7a29a35 100644 --- a/emulators/yabause.yml +++ b/emulators/yabause.yml @@ -1,8 +1,61 @@ -emulator: "yabause" -type: alias -alias_of: "kronos" -profiled_date: "2026-03-18" +emulator: yabause +type: libretro +core_classification: community_fork +source: "https://github.com/libretro/yabause" +upstream: "https://github.com/Yabause/yabause" +profiled_date: "2026-03-25" core_version: "v0.9.15" display_name: "Sega - Saturn (Yabause)" -note: "This core uses the same BIOS/firmware as kronos. See emulators/kronos.yml for details." -files: [] +cores: + - yabause +systems: + - sega-saturn + +notes: | + Yabause is a software-rendered Sega Saturn emulator. Upstream project is + dead; libretro port maintained by the community on the master branch of + libretro/yabause. + + Saturn BIOS search order: + 1. {system}/saturn_bios.bin + 2. {system}/sega_101.bin + 3. {system}/mpr-17933.bin + First file found wins. HLE BIOS available via yabause_force_hle_bios core + option (reduced compatibility). Multi-disc (m3u) requires real BIOS. + + Addon cartridges: 1M/4M RAM expansion via core option (no files needed). + ROM cartridge loading, SH1 ROM (CD Block LLE), and MPEG card ROM are + standalone-only features disabled in the libretro port. + + BIOS loading: libretro.c retro_load_game() lines 1035-1049. + Core load: memory.c LoadBios() line 1260, T123Load() memory.h lines 196-264. + +files: + - name: "saturn_bios.bin" + system: sega-saturn + required: true + hle_fallback: true + max_size: 524288 + validation: [max_size] + note: "Primary Saturn BIOS. Any region accepted." + source_ref: "libretro.c:1035" + + - name: "sega_101.bin" + system: sega-saturn + region: [japan] + required: false + hle_fallback: true + max_size: 524288 + validation: [max_size] + note: "Saturn BIOS v1.01 (Japan). Fallback if saturn_bios.bin missing." + source_ref: "libretro.c:1039" + + - name: "mpr-17933.bin" + system: sega-saturn + region: [north-america, europe] + required: false + hle_fallback: true + max_size: 524288 + validation: [max_size] + note: "Saturn BIOS (NA/EU). Last fallback." + source_ref: "libretro.c:1043" diff --git a/emulators/ymir.yml b/emulators/ymir.yml new file mode 100644 index 00000000..375abc18 --- /dev/null +++ b/emulators/ymir.yml @@ -0,0 +1,72 @@ +emulator: ymir +type: standalone + libretro +core_classification: community_fork +source: "https://github.com/warmenhoven/Ymir/tree/libretro" +upstream: "https://github.com/StrikerX3/Ymir" +profiled_date: "2026-03-25" +core_version: "PR#746" +display_name: "Sega - Saturn (Ymir)" +cores: + - ymir +systems: + - sega-saturn + +notes: | + Ymir is a Sega Saturn emulator by StrikerX3. The libretro port by + warmenhoven wraps the shared ymir-core library (PR #746, not yet merged). + No .info file exists in libretro-core-info. + + Saturn BIOS search order: + 1. {system}/sega_101.bin + 2. {system}/mpr-17933.bin + 3. {system}/saturn_bios.bin + First file found with exact 512 KiB size wins. No HLE fallback for IPL. + + CD Block LLE: optional low-level CD drive emulation. Scans {system}/cdb/ + for any 64 KiB file. Falls back to HLE when disabled or no ROM found. + Known versions in upstream db: 1.04, 1.05, 1.06. + + ROM cartridges: KoF95 and Ultraman shipped with physical ROM carts. The + core auto-detects required cartridge from its game database. + + Addon cartridges: 1M/4M DRAM expansion handled via core option (no files). + + Upstream uses XXH128 hashes for ROM identification only, not validation. + All file loading validates size only. + +files: + - name: "sega_101.bin" + system: sega-saturn + required: true + size: 524288 + validation: [size] + aliases: [mpr-17933.bin, saturn_bios.bin] + description: "Saturn IPL ROM (BIOS). Any region accepted." + source_ref: "libretro.cpp:260-263,534-558" + + - name: "cdb/cdb_rom.bin" + system: sega-saturn + required: false + hle_fallback: true + size: 65536 + validation: [size] + description: "SH1 CD Block ROM for low-level CD drive emulation. Core scans cdb/ subdirectory for any matching file." + source_ref: "libretro.cpp:567-591" + + - name: "mpr-18811-mx.ic1" + system: sega-saturn + required: false + category: game_data + size: 2097152 + validation: [size] + description: "ROM cartridge for The King of Fighters '95." + source_ref: "libretro.cpp:619-620,597-616" + + - name: "mpr-19367-mx.ic1" + system: sega-saturn + required: false + category: game_data + size: 2097152 + validation: [size] + description: "ROM cartridge for Ultraman: Hikari no Kyojin Densetsu." + source_ref: "libretro.cpp:619,621,597-616"