feat: add 10 emulator profiles (119-series batch 4)

bennugd (game engine, no BIOS), cruzes (puzzle game, no BIOS),
dice (discrete arcade, no BIOS), ishiiruka (Dolphin fork, same BIOS),
mkxp_z (RPG Maker, 3 RTP dirs), onscripter (VN engine, no BIOS),
qemu (55 firmware files! SeaBIOS/VGA/iPXE/OpenBIOS/OpenSBI),
rustation (PS1 Rust, 22 BIOS by SHA-256), rvvm (RISC-V, OpenSBI),
reminiscence (Flashback engine, game data only)

135 total profiles.
This commit is contained in:
Abdessamad Derraz
2026-03-17 20:28:05 +01:00
parent 6a778a09a3
commit 31501211de
10 changed files with 1368 additions and 0 deletions

31
emulators/bennugd.yml Normal file
View File

@@ -0,0 +1,31 @@
emulator: BennuGD
type: libretro
source: "https://github.com/diekleinekuh/BennuGD_libretro"
cores:
- bennugd
systems:
- bennugd
# BennuGD is an open-source interpreter for BennuGD (.dcb/.dat) game files,
# running as a libretro core. It is a successor to DIV Games Studio / Fenix.
# Notable game: Streets of Rage Remake.
#
# The official libretro .info file (bennugd_libretro.info) declares zero
# firmware entries. The core loads content directly via bgdi_main() and does
# not reference any files from the system directory.
#
# retro_load_game() in libretro.c:888-911 only reads the content path and
# the save directory. RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY is called once
# (libretro.c:899) solely as a fallback for the save directory, never to
# load BIOS or firmware.
#
# Supported extensions: dcb, dat, exe (Windows BennuGD executables)
# Valid extensions in libretro.c: dat, dcb
# Valid extensions in .info: dcb, dat, exe
notes: |
No BIOS or firmware required. BennuGD is a self-contained game interpreter.
Games are loaded as .dcb or .dat bytecode files compiled by the BennuGD
toolchain. All game assets are bundled with the content.
files: []

36
emulators/cruzes.yml Normal file
View File

@@ -0,0 +1,36 @@
emulator: Cruzes
type: libretro
source: "https://github.com/libretro/libretro-samples/tree/master/tests/cruzes"
cores:
- cruzes
systems:
- game
notes: |
Cruzes is an unfinished Picross puzzle game implemented as a libretro core,
part of the libretro-samples repository. It is not an emulator -- it is a
standalone game that runs directly within RetroArch.
The core sets supports_no_game to true (cruzes.c:772) and valid_extensions
to an empty string (cruzes.c:749). The puzzle grid is hardcoded in
retro_init (cruzes.c:706-717) via a string literal passed to load_challenge.
retro_load_game (cruzes.c:728-732) only sets the pixel format to RGB565
and returns true. It never reads from the game_info pointer, never calls
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, and never opens any file from disk.
The font data (Carlito-Regular.ttf) is converted to C header files at build
time by the ttf2c tool (font10.h, font16.h, font24.h) and compiled in.
No external BIOS, firmware, or system files are needed.
files: []
analysis:
file_loading: none
system_directory_used: false
supports_no_game: true
need_fullpath: false
is_experimental: true
license: 2-clause BSD
author: Higor Euripedes

67
emulators/dice.yml Normal file
View File

@@ -0,0 +1,67 @@
emulator: DICE
type: libretro
source: "https://github.com/mittonk/dice-libretro"
cores:
- dice
systems:
- discrete-arcade
notes: |
DICE (Discrete Integrated Circuit Emulator) emulates early arcade hardware
built entirely from discrete logic components, with no CPU. dice-libretro is
a libretro port by Ken Mitton, based on upstream DICE by Adam B.
No BIOS or firmware files required. The .info file declares firmware_count = 0.
Games fall into two categories:
- ROM-based: shipped as MAME-style ZIP archives (filename matters).
The core loads the ZIP passed by the frontend and matches individual ROM
chips by CRC32 (chips/rom.cpp:41-218, RomDesc::get_data). If a chip's
CRC does not match, the core walks all entries in the archive looking for
a CRC match or alt_crc match.
- ROM-less: games like Pong, Breakout, Rebound whose original PCBs had no
ROM at all. These use .dmy dummy launcher files (empty placeholders) to
tell RetroArch which game to start.
retro_get_system_info (libretro.cpp:122-137) sets need_fullpath = true,
block_extract = true, valid_extensions = "zip|dmy|k1|a1|6c|c6|d2|s1|f4|a4|
1da|da1|C4|4c|4d|d7|d4". The unusual extensions are raw ROM chip dumps for
individual games (e.g. .k1 for antiaircraft, .a1 for attack).
dice.cpp:42-66 strips any "#inner.rom" suffix from the path (for ROM
managers that expose zip contents) and passes the zip path to
RomDesc::set_zip_filename.
retro_init (libretro.cpp:50-63) retrieves RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
but uses it only for the retro_base_directory variable, not for loading any
system files.
Games with ROMs (10 titles):
antiaircraft.zip - 1 ROM chip (k1)
attack.zip - 6 ROM chips (a1, b1, c1, d1, j6, k6), each with alt_crc
cleansweep.zip - 3 ROM chips (6c, d7, k3)
crashnscore.zip - 6 ROM chips (d2, e2, f6, f7, p6, p7)
indy4.zip - 4 ROM chips (s1, s2, c1, c2)
jetfighter.zip - 6 ROM chips (a4, j1, j5, k5, m1, r5)
sharkjaws.zip - 2 ROM chips (1da/da1, 1db/db1)
steeplechase.zip - 2 ROM chips (C4, D4); bugle ROM c8 dump missing
stuntcycle.zip - 2 ROM chips (4d, 1fh)
wipeout.zip - 2 ROM chips (d4, g7)
ROM-less games (11 titles, use .dmy dummy files):
breakout, crossfire, gotcha, hiway, pinpong, pong, pongdoubles,
quadrapong, rebound, spacerace, tvbasketball
files: []
analysis:
rom_loading:
method: "MAME-style ZIP, matched by CRC32 per RomDesc"
source_ref: "chips/rom.cpp:41-218"
zip_handling: "unzip library (unzip/), opened via libretro_zip_filename"
game_count: 21
rom_games: 10
romless_games: 11
filesystem_access: false
system_directory_used: false
bios_required: false

93
emulators/ishiiruka.yml Normal file
View File

@@ -0,0 +1,93 @@
emulator: Ishiiruka
type: libretro
source: "https://github.com/libretro/ishiiruka"
fork_of: Dolphin
systems: [nintendo-gamecube, nintendo-wii]
# Ishiiruka is a performance-focused Dolphin fork with custom GPU backends.
# As a Dolphin fork, it shares the exact same BIOS file requirements and paths.
# DSP HLE is enabled by default (ishiiruka_dsp_hle option), so DSP ROMs are
# only needed when switching to LLE audio for accuracy.
# Libretro paths (from Boot.cpp):
# Sys directory: system/dolphin-emu/Sys/
# User directory: saves/User/ (fallback: system/dolphin-emu/User/)
# Same as dolphin_libretro - uses "dolphin-emu" subdirectory, not "ishiiruka".
# Core options use "ishiiruka_" prefix (ishiiruka_dsp_hle, ishiiruka_efb_scale, etc.)
files:
# -- GameCube IPL (Boot ROM) --
# Region-specific, placed in GC/<region>/IPL.bin
# Searched in User/GC/ then Sys/GC/
- name: "IPL.bin"
path: "GC/USA/IPL.bin"
size: 2097152
required: false
note: "GC NTSC-U boot ROM, same as Dolphin. HLE available"
source_ref: "Source/Core/Common/CommonPaths.h:115"
- name: "IPL.bin"
path: "GC/EUR/IPL.bin"
size: 2097152
required: false
note: "GC PAL boot ROM"
- name: "IPL.bin"
path: "GC/JAP/IPL.bin"
size: 2097152
required: false
note: "GC NTSC-J boot ROM"
# -- DSP ROMs --
# Only needed if DSP LLE is selected (ishiiruka_dsp_hle = disabled)
# Searched in User/GC/ then Sys/GC/
- name: "dsp_rom.bin"
path: "GC/dsp_rom.bin"
size: 8192
required: false
note: "DSP instruction ROM for LLE audio. Free replacement included, real dump more accurate"
source_ref: "Source/Core/Common/CommonPaths.h:112, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:142-150"
- name: "dsp_coef.bin"
path: "GC/dsp_coef.bin"
size: 4096
required: false
note: "DSP coefficient ROM for LLE audio. Free replacement included"
source_ref: "Source/Core/Common/CommonPaths.h:113, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:143-152"
# -- GameCube Fonts --
# Loaded from Sys/GC/, free alternatives bundled
- name: "font_western.bin"
path: "GC/font_western.bin"
required: false
note: "Windows-1252 font for GC/Wii text. Free alternative bundled"
source_ref: "Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:123"
- name: "font_japanese.bin"
path: "GC/font_japanese.bin"
required: false
note: "Shift-JIS font for Japanese text. Free alternative bundled"
source_ref: "Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:122"
notes:
dolphin_fork: true
fork_differences: >
Ishiiruka is a Dolphin fork focused on GPU performance (custom texture cache,
asynchronous shader compilation, post-processing). The BIOS/firmware handling
is identical to upstream Dolphin - same files, same paths, same HLE fallbacks.
hle_available: true
hle_note: >
DSP HLE is the default (ishiiruka_dsp_hle = enabled). No BIOS files are
required for most games. All files are optional with HLE/free replacements.
libretro_path: "system/dolphin-emu/"
libretro_note: >
Despite being named Ishiiruka, the libretro core uses "dolphin-emu" as its
system subdirectory (Boot.cpp:46,49). Users with existing Dolphin BIOS files
already have everything Ishiiruka needs.
data_dir_standalone: "ishiiruka"
data_dir_note: >
Standalone builds use "ishiiruka" as DOLPHIN_DATA_DIR (CommonPaths.h:24,27),
but the libretro core overrides this to use "dolphin-emu" paths.
library_name: "Ishiiruka"
valid_extensions: "elf|dol|gcm|iso|tgc|wbfs|ciso|gcz|wad"

118
emulators/mkxp_z.yml Normal file
View File

@@ -0,0 +1,118 @@
emulator: mkxp-z
type: libretro
source: "https://github.com/mkxp-z/mkxp-z"
cores:
- mkxp-z
systems:
- rpgmaker
# mkxp-z is an open-source player for RPG Maker XP, VX and VX Ace games.
# Heavily modified fork of mkxp implementing the RGSS (Ruby Game Scripting
# System) interface versions 1, 2 and 3.
#
# The libretro .info file (mkxp-z_libretro.info) declares 3 firmware entries,
# all optional. These are RTP (Run-Time Package) directories, not individual
# files. Each RTP contains default assets (tilesets, sprites, music, sound
# effects, fonts) shared by games that don't bundle their own.
#
# Games that ship all assets internally need no RTP at all.
#
# firmware0: mkxp-z/RTP/Standard (RPG Maker XP RTP) optional
# firmware1: mkxp-z/RTP/RPGVX (RPG Maker VX RTP) optional
# firmware2: mkxp-z/RTP/RPGVXAce (RPG Maker VX Ace RTP) optional
#
# Directory layout under <system_dir>:
# mkxp-z/RTP/Standard/ RPG Maker XP RTP
# Audio/ BGM, BGS, ME, SE in ogg/midi/wav
# Graphics/ tilesets, characters, battlers, etc.
# mkxp-z/RTP/RPGVX/ RPG Maker VX RTP
# Audio/
# Fonts/
# Graphics/
# mkxp-z/RTP/RPGVXAce/ RPG Maker VX Ace RTP
# Audio/
# Fonts/
# Graphics/
#
# RTP installers are available from https://www.rpgmakerweb.com/run-time-package
# On non-Windows, use innoextract to unpack the Windows installers.
#
# RTP path resolution (sharedstate.cpp:144-145, config.cpp:326):
# config.rtps[] is populated from the "RTP" JSON array in mkxp.json.
# The libretro port sets these to <system_dir>/mkxp-z/RTP/<name>.
# Each path is added to PhysFS search path via fileSystem.addPath().
#
# Additional optional directories:
# mkxp-z/Fonts/ custom fallback fonts (.otf/.ttf)
# mkxp-z/Scripts/Preload/ Ruby scripts run before game scripts
# mkxp-z/Scripts/Postload/ Ruby scripts run before rgss_main (RGSS3)
#
# MIDI playback: mkxp-z uses FluidSynth internally. A soundfont can be
# specified per-game in mkxp.json via "midiSoundFont". No global soundfont
# file is declared as firmware.
#
# Supported extensions: ini, json, rxproj, rvproj, rvproj2, mkxp, mkxpz, zip, 7z
# Required GPU: OpenGL Core >= 2.0 or OpenGL ES >= 2.0
notes: |
No individual BIOS or firmware files required. The three RTP directories
listed below are optional collections of default game assets. Only needed
when a game references stock RPG Maker assets instead of bundling them.
RPG Maker XP uses RGSS1 (Ruby Game Scripting System 1).
RPG Maker VX uses RGSS2.
RPG Maker VX Ace uses RGSS3.
Each RTP is a directory tree containing Audio/ and Graphics/ subdirs,
plus Fonts/ for VX and VX Ace. These are not hashable single files.
files:
# ================================================================
# RPG Maker XP RTP (optional, game-dependent)
# mkxp-z_libretro.info firmware0
# ================================================================
- name: "RPG Maker XP RTP (Standard)"
path: "mkxp-z/RTP/Standard/"
required: false
type: directory
source_ref: "mkxp-z_libretro.info:firmware0, sharedstate.cpp:144-145"
note: >
Run-Time Package for RPG Maker XP (RGSS1) games. Contains default
tilesets, character sprites, battle animations, panoramas, windowskins,
BGM, BGS, ME and SE audio files. Only needed by games that reference
stock XP assets. Distributed by Enterbrain as a Windows installer,
extractable with innoextract on other platforms.
# ================================================================
# RPG Maker VX RTP (optional, game-dependent)
# mkxp-z_libretro.info firmware1
# ================================================================
- name: "RPG Maker VX RTP (RPGVX)"
path: "mkxp-z/RTP/RPGVX/"
required: false
type: directory
source_ref: "mkxp-z_libretro.info:firmware1, sharedstate.cpp:144-145"
note: >
Run-Time Package for RPG Maker VX (RGSS2) games. Contains default
tilesets, character sprites, face graphics, battle animations, fonts
and audio assets. VX uses a different tileset format than XP. Only
needed by games that reference stock VX assets.
# ================================================================
# RPG Maker VX Ace RTP (optional, game-dependent)
# mkxp-z_libretro.info firmware2
# ================================================================
- name: "RPG Maker VX Ace RTP (RPGVXAce)"
path: "mkxp-z/RTP/RPGVXAce/"
required: false
type: directory
source_ref: "mkxp-z_libretro.info:firmware2, sharedstate.cpp:144-145"
note: >
Run-Time Package for RPG Maker VX Ace (RGSS3) games. Largest of the
three RTPs with expanded tilesets, character generators, battle system
assets, fonts and audio. VX Ace is the most commonly used RPG Maker
version on the RGSS engine. Only needed by games that reference stock
VX Ace assets.

36
emulators/onscripter.yml Normal file
View File

@@ -0,0 +1,36 @@
emulator: ONScripter
type: libretro
source: "https://github.com/iyzsong/onscripter-libretro"
cores:
- onscripter
systems:
- onscripter
notes: |
ONScripter is a clone of NScripter, a Japanese visual novel engine by
Naoki Takahashi. The libretro port by iyzsong wraps the upstream engine
(ogapee/onscripter, tag 20230825) with an SDL-to-libretro shim layer.
No BIOS or system files are required. The .info file declares no
firmware entries and the core never calls
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY.
Game content is loaded directly from the archive path containing the
script file. The core opens txt, dat, ___, or ons script files via
ONScripter::openScript() and reads all game assets (graphics, audio,
fonts) from the same directory.
The engine looks for a font file named default.ttf in the game
directory. This is a per-game asset shipped with each visual novel,
not a system-level file managed by RetroArch.
Dependencies (bundled at build time via Guix): freetype, libjpeg,
libogg, libvorbis, libmad, bzip2, SDL (shimmed to libretro).
The core is marked is_experimental = true. It does not support
save states (retro_serialize_size returns 0).
Supported script formats: .txt, .dat, .___, .ons
needs_fullpath = true, block_extract = false.
files: []

611
emulators/qemu.yml Normal file
View File

@@ -0,0 +1,611 @@
emulator: QEMU
type: libretro
source: "https://github.com/io12/qemu-libretro"
systems: [ibm-pc, x86, x86-64, ppc, sparc, sparc64, arm, aarch64, mips, riscv, s390x, m68k, alpha, hppa]
# QEMU (Quick Emulator) libretro core, based on QEMU 9.0.50.
# Supports x86_64, i386, PPC, Sparc, ARM, AArch64, MIPS, RISC-V, S390x, M68K, Alpha, HPPA.
# Opens .iso, .img, .qcow, .qcow2 files or custom .qemu_cmd_line for any architecture.
# Default architecture is x86_64 when loading .iso/.img/.qcow directly.
#
# All BIOS/firmware files are loaded from {retroarch_system_dir}/qemu/
# via qemu_add_data_dir(system_dir + "/qemu") in ui/libretro.c:659-660.
# QEMU resolves firmware by name through its data directory search path.
files:
# ========================================================
# x86 SYSTEM BIOS (SeaBIOS)
# ========================================================
- name: "SeaBIOS (128 KB)"
path: "qemu/bios.bin"
sha1: "f402170ee4f374c304a7ce0b139d6cecb1732aff"
md5: "e9ca30100c47a26b66488444c5b0bd15"
size: 131072
required: true
note: >
SeaBIOS legacy BIOS for x86/x86_64 PC emulation. Default firmware
loaded by pc_sysfw.c for standard PC machine types.
source_ref: "hw/i386/pc_sysfw.c:222,243"
- name: "SeaBIOS (256 KB)"
path: "qemu/bios-256k.bin"
sha1: "5fe6078506094333106e6b3f33c7185dea7f0268"
md5: "d3dab3095c73cad67afd3cc16a88479c"
size: 262144
required: false
note: >
SeaBIOS 256 KB variant. Some machine types or configurations
may prefer this larger image.
source_ref: "pc-bios/meson.build:30"
- name: "SeaBIOS microvm"
path: "qemu/bios-microvm.bin"
sha1: "56f33ced7ea0f7581d776396a0ac6cfe2c7c9257"
md5: "9f0ddaf6f3b213798bd414273505f2ff"
size: 131072
required: false
note: >
Minimal SeaBIOS for the microvm machine type, a stripped-down
x86 virtual machine with reduced device set.
source_ref: "hw/i386/microvm.c:58"
- name: "qboot ROM"
path: "qemu/qboot.rom"
sha1: "339d3a93c967491c9f1fffe963484386f48bd22c"
md5: "387c48aef9497c6c2b914b1e6b9bc7aa"
size: 16384
required: false
note: >
Minimal x86 firmware for fast Linux kernel booting.
Alternative to SeaBIOS for Linux-only workloads.
source_ref: "pc-bios/meson.build:32"
# ========================================================
# x86 VGA BIOS (SeaVGABIOS / LGPL VGA BIOS)
# ========================================================
- name: "VGA BIOS (ISA)"
path: "qemu/vgabios.bin"
sha1: "63d87e2a6618c3a9b2aabecf03ac2456e5e63410"
md5: "ecef0b49f8f4e61874f012eb12ba0e36"
size: 38912
required: true
note: >
Standard VGA BIOS from LGPL VGA BIOS project. Loaded by ISA VGA
device (vga-isa). Default VGA for older machine types.
source_ref: "hw/display/vga-isa.c:88, hw/display/vga_int.h:191"
- name: "VGA BIOS Cirrus"
path: "qemu/vgabios-cirrus.bin"
sha1: "883eb2657ce29661a0466b6b41ce75411f37aad9"
md5: "fcd3d3c0b07a9096693d69425cd940f6"
size: 38912
required: false
note: >
Cirrus Logic GD5446 VGA BIOS. Used by the cirrus-vga PCI
device and cirrus-vga-isa ISA device.
source_ref: "hw/display/cirrus_vga.c:3001, hw/display/cirrus_vga_isa.c:67"
- name: "VGA BIOS stdvga"
path: "qemu/vgabios-stdvga.bin"
sha1: "87fbc0ecb1ee7d4d8c8c88c7d8a2fb3ec8f99ea5"
md5: "8117c3fd986fbbe327badfe38e77db1d"
size: 39424
required: false
note: >
Standard VGA PCI BIOS (Bochs VBE extensions). Used by the
VGA PCI device, the most common display adapter for x86.
source_ref: "hw/display/vga-pci.c:387"
- name: "VGA BIOS bochs-display"
path: "qemu/vgabios-bochs-display.bin"
sha1: "9e2edd3d835219cde63a20e2cd58107d7e96ef5b"
md5: "83e39bd3e056291ee50d2b5d937bab3e"
size: 28672
required: false
note: "Bochs display device VGA BIOS. Simpler non-VGA display adapter."
source_ref: "hw/display/bochs-display.c:365"
- name: "VGA BIOS ramfb"
path: "qemu/vgabios-ramfb.bin"
sha1: "49df9be557f0f0277c8fedb889257e279586d536"
md5: "c55512e313c4cb08ec5a36198fdfef33"
size: 28672
required: false
note: "RAM framebuffer VGA BIOS for simple display output."
source_ref: "hw/display/ramfb.c:150"
- name: "VGA BIOS ATI"
path: "qemu/vgabios-ati.bin"
sha1: "ded141cacdebf557ec552597cbf57cd989cec3e2"
md5: "013cb287a295dc6c039921c6883a767e"
size: 39424
required: false
note: "ATI VGA BIOS for emulated ATI display adapter."
source_ref: "hw/display/ati.c:1066"
- name: "VGA BIOS QXL"
path: "qemu/vgabios-qxl.bin"
sha1: "527227abd5f3348c382d4b02703389fbeb83b067"
md5: "558420a5ad839b10906d5d73e92a4160"
size: 39424
required: false
note: "QXL paravirtual display VGA BIOS."
source_ref: "hw/display/qxl.c:2512"
- name: "VGA BIOS VirtIO"
path: "qemu/vgabios-virtio.bin"
sha1: "cddc53b94793609d1e837d78cd5468fcc1ed9164"
md5: "8f1e5e497342c503f62a50912f0447e0"
size: 39424
required: false
note: "VirtIO GPU VGA BIOS."
source_ref: "hw/display/virtio-vga.c:233"
- name: "VGA BIOS VMware"
path: "qemu/vgabios-vmware.bin"
sha1: "c54901ab8f526ab201ebf1b3ecdf711e38e6c259"
md5: "6635fe944eab228ae01c814107674199"
size: 39424
required: false
note: "VMware SVGA II display VGA BIOS."
source_ref: "hw/display/vmware_vga.c:1349"
# ========================================================
# x86 OPTION ROMs (loaded on demand)
# ========================================================
- name: "KVM VAPIC"
path: "qemu/kvmvapic.bin"
sha1: "670c9cc79b4859944705eece710dc332188b79b4"
md5: "b8cec9572e408a3259914f9aba8664cb"
size: 9216
required: false
note: >
KVM virtual APIC option ROM. Loaded as option ROM for
APIC acceleration on x86.
source_ref: "hw/i386/vapic.c:733"
- name: "Linux boot ROM"
path: "qemu/linuxboot.bin"
sha1: "fd19bef7f5647960952520389f448364762ed948"
md5: "ab40dea9ff35ec29b506fdae5bf11463"
size: 1024
required: false
note: "Option ROM for direct Linux kernel booting via -kernel."
source_ref: "hw/i386/x86-common.c:964"
- name: "Linux boot DMA ROM"
path: "qemu/linuxboot_dma.bin"
sha1: "0bff50c10727bd9c85c831ea92b7a52699959992"
md5: "8cb622dc1c9290a019a801e972c9e4f9"
size: 1536
required: false
note: "DMA-capable option ROM for direct Linux kernel booting."
source_ref: "hw/i386/x86-common.c:966"
- name: "Multiboot ROM"
path: "qemu/multiboot.bin"
sha1: "a8b58ae464fc6fb26799432ae867bf57c546ff80"
md5: "552a0c03c40bb3ec292f5349ea29cf86"
size: 1024
required: false
note: "Option ROM for Multiboot kernel loading."
source_ref: "hw/i386/multiboot.c:408"
- name: "Multiboot DMA ROM"
path: "qemu/multiboot_dma.bin"
sha1: "32ab1cf336b674bfb154eb7a939a3e3275a92647"
md5: "e942cc4f612050c7331d33a34b0d5192"
size: 1024
required: false
note: "DMA-capable option ROM for Multiboot kernel loading."
source_ref: "hw/i386/multiboot.c:406"
- name: "PVH boot ROM"
path: "qemu/pvh.bin"
sha1: "c2191e6495103c1f43e9b6ca8930e44c2245e476"
md5: "bb045d6f0380ad2af3531edeff92a117"
size: 2048
required: false
note: "Option ROM for PVH (paravirtualized hardware) ELF booting."
source_ref: "hw/i386/x86-common.c:735"
# ========================================================
# PXE NETWORK BOOT ROMs (iPXE)
# ========================================================
- name: "PXE e1000"
path: "qemu/pxe-e1000.rom"
sha1: "368e8e9827ae8757a7449319831078b6d5efb83f"
md5: "898d7d0b3ed4a030c877b9185b4ef6be"
size: 67072
required: false
note: "iPXE PXE boot ROM for Intel e1000 NIC (8086:100e)."
source_ref: "pc-bios/README"
- name: "PXE eepro100"
path: "qemu/pxe-eepro100.rom"
sha1: "b19572c9c2a11f03282df81c0397aceed409a86c"
md5: "2f8279177fdc2ce5abc47d9f1e303db1"
size: 61440
required: false
note: "iPXE PXE boot ROM for Intel eepro100 NIC (8086:1209)."
source_ref: "pc-bios/README"
- name: "PXE ne2k_pci"
path: "qemu/pxe-ne2k_pci.rom"
sha1: "f37f43f89dc99afe0442ee0b7a431ee790ad6bf6"
md5: "095cdf2b26084ce22adb883e9c43fc5a"
size: 61440
required: false
note: "iPXE PXE boot ROM for NE2000 PCI NIC (1050:0940)."
source_ref: "pc-bios/README"
- name: "PXE pcnet"
path: "qemu/pxe-pcnet.rom"
sha1: "13a039bf9916f1db42d3a019591d372b4cf4aee9"
md5: "15e38b82922a058c6df6eaffbad1b916"
size: 61440
required: false
note: "iPXE PXE boot ROM for AMD PCnet NIC (1022:2000)."
source_ref: "pc-bios/README"
- name: "PXE rtl8139"
path: "qemu/pxe-rtl8139.rom"
sha1: "7b512c0a7a13bc3c254a25237e4d4612170f4391"
md5: "22f4b6ae5650988f999ee651a3734462"
size: 61440
required: false
note: "iPXE PXE boot ROM for Realtek RTL8139 NIC (10ec:8139)."
source_ref: "pc-bios/README"
- name: "PXE virtio"
path: "qemu/pxe-virtio.rom"
sha1: "3e3f77cfe70af904133db94f27ec24e3c9c43648"
md5: "91ad9770f5717a89d518534f45f1332d"
size: 60416
required: false
note: "iPXE PXE boot ROM for VirtIO NIC (1af4:1000)."
source_ref: "pc-bios/README"
# ========================================================
# EFI NETWORK BOOT ROMs (iPXE UEFI)
# ========================================================
- name: "EFI e1000"
path: "qemu/efi-e1000.rom"
sha1: "a3df5fc33ab0190f470b34104ff3c0679cecbab6"
md5: "d8330b99643e31b51e7710fa26c7e859"
size: 159232
required: false
note: "iPXE EFI boot ROM for Intel e1000 NIC."
source_ref: "hw/net/e1000.c:1708"
- name: "EFI e1000e"
path: "qemu/efi-e1000e.rom"
sha1: "1d37f3ae6748d4deefe9fd5188a2f557bf265d61"
md5: "a55bf3f4988d4a736c71a1300636cd69"
size: 159232
required: false
note: "iPXE EFI boot ROM for Intel e1000e NIC."
source_ref: "hw/net/e1000e.c:689"
- name: "EFI eepro100"
path: "qemu/efi-eepro100.rom"
sha1: "956d9592fea33374ef0f1900a185b6e1109ea765"
md5: "d2a2f92710f5a9f77281e9492a249afb"
size: 159232
required: false
note: "iPXE EFI boot ROM for Intel eepro100 NIC."
source_ref: "hw/net/eepro100.c:2077"
- name: "EFI ne2k_pci"
path: "qemu/efi-ne2k_pci.rom"
sha1: "adb7199f545fdb66c325b142c8dbc4cddb99a20d"
md5: "10b66275b3644af301c64a3c545c3daf"
size: 157696
required: false
note: "iPXE EFI boot ROM for NE2000 PCI NIC."
source_ref: "hw/net/ne2000-pci.c:111"
- name: "EFI pcnet"
path: "qemu/efi-pcnet.rom"
sha1: "9e5a4bb247c6a1777c89117ca091f94342b9046d"
md5: "374696f4fffa83c9cf18272212c21d83"
size: 157696
required: false
note: "iPXE EFI boot ROM for AMD PCnet NIC."
source_ref: "hw/net/pcnet-pci.c:267"
- name: "EFI rtl8139"
path: "qemu/efi-rtl8139.rom"
sha1: "99a1e431cc0cb0a78d5803875dfa687e12a947f4"
md5: "f81dbbd7001a8db631f2a548b7d08c4e"
size: 160768
required: false
note: "iPXE EFI boot ROM for Realtek RTL8139 NIC."
source_ref: "hw/net/rtl8139.c:3423"
- name: "EFI virtio"
path: "qemu/efi-virtio.rom"
sha1: "1596e9b97f0bc8b5ff3e444235690a549ee982c6"
md5: "d3887f04c23035cae3f0e1075deea459"
size: 160768
required: false
note: "iPXE EFI boot ROM for VirtIO NIC."
source_ref: "pc-bios/meson.build:58"
- name: "EFI vmxnet3"
path: "qemu/efi-vmxnet3.rom"
sha1: "6557242402387a6319a0db6abb916ada48e1391c"
md5: "ea1ba222dbd5aa356ea1f29393ae55e1"
size: 156672
required: false
note: "iPXE EFI boot ROM for VMware vmxnet3 NIC."
source_ref: "hw/net/vmxnet3.c:2508"
# ========================================================
# POWERPC FIRMWARE
# ========================================================
- name: "OpenBIOS PowerPC"
path: "qemu/openbios-ppc"
sha1: "0ef5051dcb318c0bc45d1908f8318d6eece8686a"
md5: ""
size: 677196
required: false
note: >
OpenBIOS (IEEE 1275 Open Firmware) for PowerPC emulation.
Required for -M mac99, -M g3beige and other PPC machines.
source_ref: "pc-bios/README"
- name: "SLOF (Slimline Open Firmware)"
path: "qemu/slof.bin"
sha1: "a03a94acfe555804d66cc6c74760ae1375a71a64"
md5: ""
size: 995000
required: false
note: >
IBM SLOF firmware for pSeries (POWER) machine type.
Built from qemu-slof-20230918 tag.
source_ref: "pc-bios/README"
- name: "skiboot"
path: "qemu/skiboot.lid"
sha1: "8052069aa9714c23be05b4e62fb245a3d572cb0f"
md5: ""
size: 2527328
required: false
note: >
OPAL firmware for OpenPOWER PowerNV (non-virtualized) machine type.
source_ref: "pc-bios/README"
- name: "VOF (Virtual Open Firmware)"
path: "qemu/vof.bin"
sha1: "fc737b34a390f5752cb7e35b33d71f4f438ab607"
md5: ""
size: 3456
required: false
note: "Minimal Open Firmware shim for -machine pseries,x-vof=on."
source_ref: "pc-bios/README"
- name: "VOF NVRAM"
path: "qemu/vof-nvram.bin"
sha1: "5d1184609b87f78635f0575467a1c3f440900ff0"
md5: ""
size: 16384
required: false
note: "NVRAM template for VOF (Virtual Open Firmware)."
source_ref: "pc-bios/meson.build:83"
- name: "U-Boot e500"
path: "qemu/u-boot.e500"
sha1: "9ea03f249f856cdcb4399cc1f5a5031729379911"
md5: ""
size: 421720
required: false
note: >
U-Boot for PowerPC e500 (qemu-ppce500 target).
Built from upstream denx u-boot, commit 2072e72.
source_ref: "pc-bios/README"
- name: "U-Boot SAM460"
path: "qemu/u-boot-sam460-20100605.bin"
sha1: "0399a79ac0cf77f0da70af9baec7548a3b368f0a"
md5: ""
size: 524288
required: false
note: "U-Boot for Sam460ex (AmigaOne) PowerPC board."
source_ref: "pc-bios/meson.build:74"
- name: "QEMU VGA Mac driver"
path: "qemu/qemu_vga.ndrv"
sha1: "638c6262a6eb579ec3d1c9292566ac94c942dc15"
md5: ""
size: 18752
required: false
note: "QemuMacDrivers VGA driver for PPC MacOS guests."
source_ref: "pc-bios/README"
# ========================================================
# SPARC FIRMWARE
# ========================================================
- name: "OpenBIOS Sparc32"
path: "qemu/openbios-sparc32"
sha1: "5a4f2124c8f093f8aee99fbcebcf5d17d789ff26"
md5: ""
size: 382080
required: false
note: >
OpenBIOS for Sparc32 emulation. Includes QEMU,tcx.bin
and QEMU,cgthree.bin display drivers.
source_ref: "pc-bios/README"
- name: "OpenBIOS Sparc64"
path: "qemu/openbios-sparc64"
sha1: "c6e215fe460629d35688ab8e51faf6f765827cd6"
md5: ""
size: 1593408
required: false
note: "OpenBIOS for Sparc64 (UltraSPARC) emulation."
source_ref: "pc-bios/README"
- name: "QEMU TCX display"
path: "qemu/QEMU,tcx.bin"
sha1: ""
md5: ""
required: false
note: "TCX framebuffer FCode driver for Sparc32 OpenBIOS."
source_ref: "pc-bios/meson.build:45"
- name: "QEMU cgthree display"
path: "qemu/QEMU,cgthree.bin"
sha1: ""
md5: ""
required: false
note: "CG3 framebuffer FCode driver for Sparc32 OpenBIOS."
source_ref: "pc-bios/meson.build:46"
# ========================================================
# ALPHA FIRMWARE
# ========================================================
- name: "Alpha PALcode"
path: "qemu/palcode-clipper"
sha1: "47b0870aaa45a7aa0d48847fd905908fb06f3e9f"
md5: ""
size: 153728
required: false
note: "PALcode firmware for Alpha (Clipper/DP264) machine emulation."
source_ref: "pc-bios/README"
# ========================================================
# RISC-V FIRMWARE
# ========================================================
- name: "OpenSBI RISC-V 32"
path: "qemu/opensbi-riscv32-generic-fw_dynamic.bin"
sha1: "7a23dfdeef3d78ffc89d86e89fc06a36f1e4386f"
md5: ""
size: 268312
required: false
note: >
OpenSBI (Supervisor Binary Interface) firmware for RISC-V 32-bit.
Required for riscv32-softmmu machine types.
source_ref: "pc-bios/README"
- name: "OpenSBI RISC-V 64"
path: "qemu/opensbi-riscv64-generic-fw_dynamic.bin"
sha1: "6883bfd1991c0ef0d67b0967e7dcbd60420dd480"
md5: ""
size: 272504
required: false
note: >
OpenSBI firmware for RISC-V 64-bit.
Required for riscv64-softmmu machine types.
source_ref: "pc-bios/README"
# ========================================================
# S390X FIRMWARE
# ========================================================
- name: "S390 CCW firmware"
path: "qemu/s390-ccw.img"
sha1: "7b4fa888d32ca8ddbc752f7442e4d055cee1871a"
md5: ""
size: 42608
required: false
note: "Channel Command Word boot firmware for s390x emulation."
source_ref: "pc-bios/meson.build:68"
- name: "S390 network boot"
path: "qemu/s390-netboot.img"
sha1: "f6cec671408117bd9a31e982682662f27ef4fb2c"
md5: ""
size: 67232
required: false
note: "Network boot firmware for s390x emulation."
source_ref: "pc-bios/meson.build:69"
# ========================================================
# HP-PA FIRMWARE
# ========================================================
- name: "HP-PA firmware (32-bit)"
path: "qemu/hppa-firmware.img"
sha1: "605c36ede6c120c6cc7efe147a75a3dc4b7e4fb0"
md5: ""
size: 167820
required: false
note: "SeaBIOS-hppa firmware for 32-bit HP-PARISC emulation."
source_ref: "pc-bios/README"
- name: "HP-PA firmware (64-bit)"
path: "qemu/hppa-firmware64.img"
sha1: "b42f6d4ca74073de6c038579b4a9323ad0a6b398"
md5: ""
size: 206024
required: false
note: "SeaBIOS-hppa firmware for 64-bit HP-PARISC emulation."
source_ref: "pc-bios/README"
# ========================================================
# DEVICE TREE BLOBS
# ========================================================
- name: "Bamboo DTB (PPC)"
path: "qemu/bamboo.dtb"
sha1: "ebdf1745479f4ec88459bbd9ef16ee1114018508"
md5: ""
size: 3211
required: false
note: "Device tree blob for PowerPC Bamboo (440EP) board."
source_ref: "pc-bios/meson.build:88"
- name: "Canyonlands DTB (PPC)"
path: "qemu/canyonlands.dtb"
sha1: "8a2fda0b4f23a92eb44776b5d7ffe951987062da"
md5: ""
size: 9779
required: false
note: "Device tree blob for PowerPC Canyonlands (460EX) board."
source_ref: "pc-bios/meson.build:89"
- name: "Petalogix ML605 DTB (MicroBlaze)"
path: "qemu/petalogix-ml605.dtb"
sha1: "892d265838866869b8a8ef104252ff5b2fda156f"
md5: ""
size: 9882
required: false
note: "Device tree blob for Xilinx Petalogix ML605 MicroBlaze board."
source_ref: "pc-bios/meson.build:91"
- name: "Petalogix S3ADSP1800 DTB (MicroBlaze)"
path: "qemu/petalogix-s3adsp1800.dtb"
sha1: "976600e3f89ecc1f3564b7077f53c58e0b565280"
md5: ""
size: 8161
required: false
note: "Device tree blob for Xilinx Petalogix S3ADSP1800 MicroBlaze board."
source_ref: "pc-bios/meson.build:90"
# ========================================================
# OTHER
# ========================================================
- name: "NPCM7xx boot ROM"
path: "qemu/npcm7xx_bootrom.bin"
sha1: "22a75d26a0591d2c7763765b6381fa2f73de43e1"
md5: ""
size: 768
required: false
note: "Boot ROM for Nuvoton NPCM7xx BMC (ARM Cortex-A9)."
source_ref: "pc-bios/README"
notes:
bios_directory: >
All files go in {retroarch_system_dir}/qemu/. The libretro core adds
this path via qemu_add_data_dir() in ui/libretro.c:659-660.
default_usage: >
For typical x86/x86_64 usage (loading .iso/.img/.qcow files directly),
only bios.bin (or bios-256k.bin) and vgabios.bin are strictly needed.
Other VGA BIOS variants are loaded depending on the emulated GPU.
PXE/EFI ROMs are only needed for network booting.
multi_arch: >
The libretro build supports 16 target architectures. Non-x86 firmware
is only needed when using .qemu_cmd_line files that invoke a different
qemu-system-* binary (e.g. qemu-system-ppc for MacOS 9).
experimental: >
This core is marked is_experimental=true in its .info file.
Savestates are not supported.
version: "Based on QEMU 9.0.50 (io12/qemu-libretro)"

View File

@@ -0,0 +1,85 @@
emulator: REminiscence
type: libretro
source: "https://github.com/libretro/REminiscence"
cores:
- reminiscence
systems:
- flashback
notes: |
REminiscence is a re-implementation of the Flashback (Delphine Software, 1992) game engine,
ported to libretro. Version 0.3.6. It is not a general-purpose emulator; it only runs the
original Flashback game data files.
The core sets need_fullpath = true and valid_extensions = "map" (libretro.cpp:67-68).
Content loading (retro_load_game) extracts the parent directory from the provided .MAP
file path and uses it as the data root via FileSystem (libretro.cpp:194-196).
Version detection (libretro.cpp:126-149) probes for these files in order:
DEMO_UK.ABA -> DOS Demo
INTRO.SEQ -> DOS CD
LEVEL1.MAP -> DOS
LEVEL1.LEV -> Amiga
DEMO.LEV -> Amiga Demo
Only kResourceTypeDOS is accepted by retro_load_game (line 199); Amiga data is rejected.
Language detection (libretro.cpp:151-175) probes for:
ENGCINE.TXT -> English
FR_CINE.TXT -> French
GERCINE.TXT -> German
SPACINE.TXT -> Spanish
ITACINE.TXT -> Italian
FRCINE.TXT -> French (Amiga)
Falls back to English if none found.
All game data files are loaded from the content directory at runtime via FileSystem
(fs.cpp), which recursively scans the directory and matches filenames case-insensitively
(strcasecmp at fs.cpp:52). The resource system (resource.cpp) loads files by constructing
names like "LEVEL1.MAP", "GLOBAL.ICN", "PERSO.SPR", "FB_TXT.FNT", etc.
The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. All data files must live
alongside the loaded .MAP content file (or in subdirectories of its parent). There are
no BIOS or firmware files; the required files are the original Flashback game data.
Music is loaded from .mod files or Amiga-format module files (mod_player.cpp, staticres.cpp
lines 3198-3225). These are optional; the core has a built-in SFX player for in-game
action music (sfx_player.cpp with embedded music data in staticres.cpp).
VOICE.VCE from the SegaCD version can optionally be placed in the data directory for
in-game voice playback (resource.cpp:910).
INTRO.SEQ and other .SEQ files from the DOS CD version provide FMV cutscenes
(seq_player.cpp). Without them, the core falls back to polygon-based cutscenes.
files: []
analysis:
content_type: game_data
content_extensions: ["map"]
system_directory_used: false
filesystem_access: true
data_files_location: "same directory as loaded content"
game_data_files:
dos_floppy:
required:
- "LEVEL1.MAP through LEVEL7.MAP (level map data)"
- "LEVEL1.* (MBK, PGE, PAL, CT, SPC, RP, ANI, OBJ, TBN, SGD, BNQ, LEV)"
- "GLOBAL.ICN, GLOBAL.SPC, GLOBAL.FIB"
- "PERSO.SPR, PERSO.OFF"
- "FB_TXT.FNT"
- "ENGCINE.TXT or equivalent language file"
- "ENGCINE.BIN or equivalent"
optional:
- "intro, options, journal, etc. (.mod files for cutscene music)"
- "VOICE.VCE (SegaCD voice data)"
dos_cd:
additional:
- "INTRO.SEQ, CREDITS.SEQ, and other .SEQ cutscene videos"
demo:
archive: "DEMO_UK.ABA (contains all demo data in a single archive)"
detection_order:
- { file: "DEMO_UK.ABA", type: "DOS Demo" }
- { file: "INTRO.SEQ", type: "DOS CD" }
- { file: "LEVEL1.MAP", type: "DOS Floppy" }
- { file: "LEVEL1.LEV", type: "Amiga (rejected by libretro port)" }
- { file: "DEMO.LEV", type: "Amiga Demo (rejected by libretro port)" }

191
emulators/rustation.yml Normal file
View File

@@ -0,0 +1,191 @@
emulator: Rustation
type: libretro
source: "https://github.com/libretro/rustation-libretro"
cores: [rustation]
systems: [sony-playstation]
bios_size: 524288 # 512 KB, enforced before SHA-256 check
verification: sha256
notes: >
No filename requirement: the core scans every file in the system directory,
filters by exact 512 KB size, then validates the full binary against an internal
SHA-256 database (lifted from Mednafen). Region must match the loaded disc
(Japan, NorthAmerica, Europe). Known-bad dumps are rejected even if hash matches.
"Boot to BIOS menu" option allows booting without a disc.
No HLE fallback: a real, database-matched BIOS is mandatory.
Database contains 24 entries (22 good, 2 known_bad) covering BIOS versions 1.0 through 4.5.
files:
# -- Region: Japan --
- name: "scph5500.bin"
description: "SCPH-5500 (v3.0 J)"
region: "NTSC-J"
required: true
md5: "8dd7d5296a650fac7319bce665a6a53c"
sha256: "9c0421858e217805f4abe18698afea8d5aa36ff0727eb8484944e00eb5e7eadb"
source_ref: "rustation/src/bios/db.rs:226-232 (v3.0 Japan)"
notes: "Any filename works. Core matches by SHA-256, not name. v3.0 is the standard JP BIOS."
# -- Region: North America --
- name: "scph5501.bin"
description: "SCPH-5501 (v3.0 A)"
region: "NTSC-U"
required: true
md5: "490f666e1afb15b7362b406ed1cea246"
sha256: "11052b6499e466bbf0a709b1f9cb6834a9418e66680387912451e971cf8a1fef"
source_ref: "rustation/src/bios/db.rs:234-244 (v3.0 NorthAmerica)"
notes: "Any filename works. Only NA BIOS with animation_jump_hook and debug UART patch support."
# -- Region: Europe --
- name: "scph5502.bin"
description: "SCPH-5502 (v3.0 E)"
region: "PAL"
required: true
md5: "32736f17079d0b2b7024407c39bd3050"
sha256: "1faaa18fa820a0225e488d9f086296b8e6c46df739666093987ff7d8fd352c09"
source_ref: "rustation/src/bios/db.rs:246-256 (v3.0 Europe)"
notes: "Any filename works. Core matches by SHA-256, not name."
# -- Additional accepted BIOS versions (all validated by SHA-256 scan) --
# The core accepts any of the 22 good entries below. Only one per region is needed.
# Listed here for completeness; scph5500/5501/5502 above are the standard choices.
# Japan alternatives
- name: "scph1000.bin"
description: "SCPH-1000 (v1.0 J)"
region: "NTSC-J"
required: false
sha256: "cfc1fc38eb442f6f80781452119e931bcae28100c1c97e7e6c5f2725bbb0f8bb"
source_ref: "rustation/src/bios/db.rs:77-88 (v1.0 Japan)"
- name: "scph_v11j.bin"
description: "v1.1 J"
region: "NTSC-J"
required: false
sha256: "5eb3aee495937558312b83b54323d76a4a015190decd4051214f1b6df06ac34b"
source_ref: "rustation/src/bios/db.rs:89-100 (v1.1 Japan)"
- name: "scph3000.bin"
description: "SCPH-3000 (v2.1 J)"
region: "NTSC-J"
required: false
sha256: "6f71ca1e716da761dc53187bd39e00c213f566e55090708fd3e2b4b425c8c989"
source_ref: "rustation/src/bios/db.rs:126-136 (v2.1 Japan)"
- name: "scph3500.bin"
description: "SCPH-3500 (v2.2 J)"
region: "NTSC-J"
required: false
sha256: "0c8359870cbac0ea091f1c87f188cd332dcc709753b91cafd9fd44a4a6188197"
source_ref: "rustation/src/bios/db.rs:162-172 (v2.2 Japan, good)"
notes: "A known-bad v2.2 J dump also exists in the DB but is rejected."
- name: "scph5000.bin"
description: "v2.2 J (alt)"
region: "NTSC-J"
required: false
sha256: "4018749b3698b8694387beebcbabfb48470513066840f9441459ee4c9f0f39bc"
source_ref: "rustation/src/bios/db.rs:209-220 (v2.2 Japan, alt)"
- name: "scph7000.bin"
description: "SCPH-7000 (v4.0 J)"
region: "NTSC-J"
required: false
sha256: "e900504d1755f021f861b82c8258c5e6658c7b592f800cccd91f5d32ea380d28"
source_ref: "rustation/src/bios/db.rs:269-281 (v4.0 Japan)"
notes: "Shares animation_jump_hook patch with NA v3.0."
- name: "scph7500.bin"
description: "SCPH-7500 (v4.1 J)"
region: "NTSC-J"
required: false
sha256: "b3aa63cf30c81e0a40641740f4a43e25fda0b21b792fa9aaef60ce1675761479"
source_ref: "rustation/src/bios/db.rs:283-293 (v4.1 Japan)"
- name: "scph9000.bin"
description: "SCPH-9000 (v4.3 J)"
region: "NTSC-J"
required: false
sha256: "b29b4b5fcddef369bd6640acacda0865e0366fcf7ea54e40b2f1a8178004f89a"
source_ref: "rustation/src/bios/db.rs:318-329 (v4.3 Japan)"
# North America alternatives
- name: "scph1001.bin"
description: "SCPH-1001 (v2.0 A)"
region: "NTSC-U"
required: false
sha256: "42e4124be7623e2e28b1db0d8d426539646faee49d74b71166d8ba5bd7c472ed"
source_ref: "rustation/src/bios/db.rs:101-112 (v2.0 NorthAmerica)"
- name: "scph5001.bin"
description: "SCPH-5001 (v2.1 A)"
region: "NTSC-U"
required: false
sha256: "6ad5521d105a6b86741f1af8da2e6ea1c732d34459940618c70305a105e8ec10"
source_ref: "rustation/src/bios/db.rs:138-148 (v2.1 NorthAmerica)"
- name: "scph_v22a.bin"
description: "v2.2 A"
region: "NTSC-U"
required: false
sha256: "71af94d1e47a68c11e8fdb9f8368040601514a42a5a399cda48c7d3bff1e99d3"
source_ref: "rustation/src/bios/db.rs:186-196 (v2.2 NorthAmerica)"
- name: "scph7001.bin"
description: "SCPH-7001 (v4.1 A)"
region: "NTSC-U"
required: false
sha256: "39dcc1a0717036c9b6ac52fefd1ee7a57d3808e8cfbc755879fa685a0a738278"
source_ref: "rustation/src/bios/db.rs:294-305 (v4.1 NorthAmerica)"
- name: "scph101.bin"
description: "SCPH-101 (v4.5 A)"
region: "NTSC-U"
required: false
sha256: "aca9cbfa974b933646baad6556a867eca9b81ce65d8af343a7843f7775b9ffc8"
source_ref: "rustation/src/bios/db.rs:342-353 (v4.5 NorthAmerica)"
# Europe alternatives
- name: "scph1002.bin"
description: "SCPH-1002 (v2.0 E)"
region: "PAL"
required: false
sha256: "0af2be3468d30b6018b3c3b0d98b8b64347e255e16d874d55f0363648973dbf0"
source_ref: "rustation/src/bios/db.rs:113-124 (v2.0 Europe)"
- name: "scph_v21e.bin"
description: "v2.1 E"
region: "PAL"
required: false
sha256: "1efb0cfc5db8a8751a884c5312e9c6265ca1bc580dc0c2663eb2dea3bde9fcf7"
source_ref: "rustation/src/bios/db.rs:149-160 (v2.1 Europe)"
- name: "scph_v22e.bin"
description: "v2.2 E"
region: "PAL"
required: false
sha256: "3d06d2c469313c2a2128d24fe2e0c71ff99bc2032be89a829a62337187f500b7"
source_ref: "rustation/src/bios/db.rs:198-208 (v2.2 Europe)"
- name: "scph7002.bin"
description: "SCPH-7002 (v4.1 E)"
region: "PAL"
required: false
sha256: "5e84a94818cf5282f4217591fefd88be36b9b174b3cc7cb0bcd75199beb450f1"
source_ref: "rustation/src/bios/db.rs:306-317 (v4.1 Europe)"
- name: "scph102.bin"
description: "SCPH-102 (v4.4 E)"
region: "PAL"
required: false
sha256: "5c0166da24e27deaa82246de8ff0108267fe4bb59f6df0fdec50e05e62448ca4"
source_ref: "rustation/src/bios/db.rs:330-341 (v4.4 Europe)"
- name: "scph102_v45.bin"
description: "v4.5 E"
region: "PAL"
required: false
sha256: "42244b0c650821519751b7e77ad1d3222a0125e75586df2b4e84ba693b9809dc"
source_ref: "rustation/src/bios/db.rs:354-365 (v4.5 Europe)"

100
emulators/rvvm.yml Normal file
View File

@@ -0,0 +1,100 @@
emulator: RVVM
type: libretro
source: "https://github.com/LekKit/RVVM"
systems: [riscv]
# RVVM is a RISC-V virtual machine / emulator. The libretro core loads a
# ".rvvm" config file that specifies bootrom, kernel, nvme drives, memory,
# CPU mode (rv32/rv64), cmdline, and framebuffer resolution.
#
# The core itself does NOT bundle any firmware. Users must supply:
# 1. A bootrom (M-mode firmware): typically OpenSBI fw_payload.bin or fw_jump.bin
# 2. Optionally a kernel payload (S-mode): Linux Image, U-Boot, etc.
# 3. Optionally a custom DTB (the core auto-generates one if not provided)
#
# The .rvvm file is a plain-text key=value config parsed by retro_load_game():
# bootrom=/path/to/fw_payload.bin
# kernel=/path/to/Image
# nvme=/path/to/rootfs.img
# mem=512
# smp=2
# rv64
# cmdline=root=/dev/nvme0n1 rootflags=discard rw console=tty0
#
# Paths in the .rvvm file are resolved relative to the .rvvm file's directory
# (the core chdir()s there before vm_init). The bootrom is mandatory - the core
# shows "RVVM: No bootrom" if missing.
# Source references:
# libretro binding: src/bindings/libretro/libretro.c
# firmware loading: src/rvvm.c:rvvm_load_firmware()
# kernel loading: src/rvvm.c:rvvm_load_kernel() (offset 0x200000 rv64, 0x400000 rv32)
# FDT generation: src/rvvm.c:rvvm_init_fdt() (auto-generated if not provided)
# CLI help: src/main.c:rvvm_print_help()
files:
# -- OpenSBI firmware (required) --
# M-mode firmware loaded at RESET_PC (0x80000000). This is the first code
# executed by the virtual machine. The standard choice is OpenSBI with
# U-Boot as payload (fw_payload.bin) or OpenSBI standalone (fw_jump.bin).
# The core calls rvvm_load_bootrom() which maps to rvvm_load_firmware().
- name: "fw_payload.bin"
path: "rvvm/fw_payload.bin"
required: true
source_ref: "libretro.c:309-315, rvvm.c:621-628"
note: >
OpenSBI firmware with U-Boot payload. This is the M-mode bootrom
loaded at physical address 0x80000000. Without this file, the VM
cannot start. Common builds: opensbi fw_payload (includes U-Boot),
or fw_jump.bin (jumps to kernel directly). The file is referenced
by the bootrom= key in the .rvvm config file.
# -- Kernel image (optional) --
# S-mode kernel loaded at offset 0x200000 (rv64) or 0x400000 (rv32) from
# RAM base. Used with fw_jump.bin to boot Linux directly without U-Boot.
- name: "Image"
path: "rvvm/Image"
required: false
source_ref: "libretro.c:316-318, rvvm.c:630-638"
note: >
Linux kernel image or other S-mode payload. Loaded at a fixed offset
from RAM base (0x200000 for rv64, 0x400000 for rv32). Only needed
when using fw_jump.bin as bootrom. Referenced by the kernel= key
in the .rvvm config file.
# -- Device Tree Blob (optional) --
# Custom FDT passed to the guest. The core auto-generates a complete DTB
# with cpu topology, memory map, and all attached devices if not provided.
- name: "machine.dtb"
path: "rvvm/machine.dtb"
required: false
source_ref: "rvvm.c:641-648, main.c:230"
note: >
Custom Flattened Device Tree. The core generates a DTB automatically
based on the machine configuration (cpus, memory, devices), so this
is only needed for special setups. The FDT address is passed to the
firmware in register a1 at boot.
notes:
emulation_target: >
RVVM emulates a RISC-V machine with rv64imafdcb (or rv32ima) ISA,
SiFive PLIC interrupt controller, NVMe storage, RTL8169 networking,
framebuffer display, HID keyboard/mouse, UART, Goldfish RTC, and
PCI bus. It includes a tracing JIT with x86_64/ARM64/RISC-V backends.
firmware_sources: >
OpenSBI builds: https://github.com/riscv-software-src/opensbi/releases
Pre-built fw_payload.bin (OpenSBI + U-Boot) for RVVM:
https://github.com/LekKit/RVVM/wiki/Running
config_format: >
The .rvvm file is a plain-text key=value config. Supported keys:
bootrom, kernel, nvme (up to 4), mem (MB), smp, cmdline, rv64/rv32.
Default: rv64, 256 MB RAM, 1 core, 640x480 framebuffer.
libretro_info: >
Core name: rvvm_libretro. Extension: .rvvm. Experimental: yes.
No save states, no cheats, needs_fullpath=true.
The core does not use the RetroArch system directory for firmware -
all paths are specified in the .rvvm config file relative to its
own directory.