mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
feat: complete all emulator profiles, 95 engines total
Final batch: scummvm (55 files, MT-32/engine data/themes/shaders), gearcoleco (colecovision.rom), geargrafx (4 syscard variants), gearlynx (lynxboot.img), dosbox_core (MT-32 + BASS libs), geolith (Neo Geo FPGA, aes.zip/neogeo.zip), retrodream (DC boot+flash), noods (NDS, full HLE), freej2me (JAR), jollycv (coleco+creativision), fixgb (gbc_bios), numero (TI-83), smsplus (SMS/GG/CV), vircon32 95 profiles covering every libretro core with firmware requirements. Cross-reference: 803 undeclared files, 249 in repo, 554 to source.
This commit is contained in:
171
emulators/dosbox_core.yml
Normal file
171
emulators/dosbox_core.yml
Normal file
@@ -0,0 +1,171 @@
|
||||
emulator: DOSBox-core
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/dosbox-core"
|
||||
cores: [dosbox_core]
|
||||
systems: [dos]
|
||||
verification: sha1
|
||||
notes: >
|
||||
No BIOS required. MT-32 and SoundFont support is optional for MIDI music.
|
||||
Unlike DOSBox Pure, this core expects MT-32 ROMs with exact filenames
|
||||
directly in the system directory (no recursive scan, no ZIP support).
|
||||
The mt32.romdir config option is set to the system directory by the
|
||||
libretro frontend. CM-32L is the default emulated hardware type.
|
||||
FluidSynth support reads .sf2/.sf3/.dls/.gig from system/soundfonts/.
|
||||
BASSMIDI support reads .sf2/.sfz from system/soundfonts/ but also
|
||||
requires the BASS and BASSMIDI shared libraries (downloaded separately
|
||||
from https://www.un4seen.com) placed in the system directory.
|
||||
Uses bundled MUNT (mt32emu) for MT-32 emulation, bundled FluidSynth
|
||||
for SF2 playback. BASSMIDI is optional and loaded at runtime via dlopen.
|
||||
The .info file declares firmware_count=10 (4 ROMs + 6 BASS libs).
|
||||
|
||||
files:
|
||||
# -- MT-32 Control ROM --
|
||||
# The core only loads MT32_CONTROL.ROM (not versioned filenames).
|
||||
# Any v1.x control ROM (64 KB) works. The .info references v1.07.
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.04"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "5a5cb5a77d7d55ee69657c2f870416daed52dea7"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.05"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "e17a3a6d265bf1fa150312061134293d2b58288c"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.06"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "a553481f4e2794c10cfe597fef154eef0d8257de"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.07"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987"
|
||||
source_ref: "midi_mt32.cpp:55, dosbox_core_libretro.info:firmware0"
|
||||
notes: "version referenced in .info file (md5: 5626206284b22c2734f3e9efefcd2675)"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control BlueRidge"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "7b8c2a5ddb42fd0732e2f22b3340dcf5360edf92"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
# -- MT-32 v2.x Control ROMs (128 KB) --
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.03 (new MT-32)"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "5837064c9df4741a55f7c4d8787ac158dff2d3ce"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.04"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "2c16432b6c73dd2a3947cba950a0f4c19d6180eb"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.06"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "2869cf4c235d671668cfcb62415e2ce8323ad4ed"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.07"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "47b52adefedaec475c925e54340e37673c11707c"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
# -- CM-32L / LAPC-I Control ROMs (64 KB) --
|
||||
# Loaded when mt32.type = "cm32l" (the default).
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
description: "CM-32L/LAPC-I Control v1.00"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "73683d585cd6948cc19547942ca0e14a0319456d"
|
||||
source_ref: "midi_mt32.cpp:53"
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
description: "CM-32L/LAPC-I Control v1.02"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "a439fbb390da38cada95a7cbb1d6ca199cd66ef8"
|
||||
source_ref: "midi_mt32.cpp:53, dosbox_core_libretro.info:firmware2"
|
||||
notes: "version referenced in .info file (md5: bfff32b6144c1d706109accb6e6b1113)"
|
||||
|
||||
# -- PCM ROMs --
|
||||
|
||||
- name: "MT32_PCM.ROM"
|
||||
description: "MT-32 PCM ROM"
|
||||
required: false
|
||||
size: 524288
|
||||
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
|
||||
source_ref: "midi_mt32.cpp:66, dosbox_core_libretro.info:firmware1"
|
||||
notes: "pairs with any MT-32 v1.x control ROM (md5: 89e42e386e82e0cacb4a2704a03706ca)"
|
||||
|
||||
- name: "CM32L_PCM.ROM"
|
||||
description: "CM-32L/CM-64/LAPC-I PCM ROM"
|
||||
required: false
|
||||
size: 1048576
|
||||
sha1: "289cc298ad532b702461bfc738009d9ebe8025ea"
|
||||
source_ref: "midi_mt32.cpp:64, dosbox_core_libretro.info:firmware3"
|
||||
notes: "pairs with MT-32 v2.x or CM-32L control ROMs (md5: 08cdcfa0ed93e9cb16afa76e6ac5f0a4)"
|
||||
|
||||
# -- BASS shared libraries (BASSMIDI driver) --
|
||||
# Downloaded from https://www.un4seen.com, placed in system directory.
|
||||
# Loaded at runtime via dlopen. Not redistributable ROMs.
|
||||
|
||||
- name: "libbass.so"
|
||||
description: "BASS audio library (Linux)"
|
||||
required: false
|
||||
source_ref: "midi_bassmidi.cpp:238, dosbox_core_libretro.info:firmware4"
|
||||
notes: "proprietary library from un4seen.com, not a ROM"
|
||||
|
||||
- name: "libbassmidi.so"
|
||||
description: "BASSMIDI addon library (Linux)"
|
||||
required: false
|
||||
source_ref: "midi_bassmidi.cpp:239, dosbox_core_libretro.info:firmware5"
|
||||
notes: "proprietary library from un4seen.com, not a ROM"
|
||||
|
||||
- name: "bass.dll"
|
||||
description: "BASS audio library (Windows)"
|
||||
required: false
|
||||
source_ref: "midi_bassmidi.cpp:232, dosbox_core_libretro.info:firmware6"
|
||||
notes: "proprietary library from un4seen.com, not a ROM"
|
||||
|
||||
- name: "bassmidi.dll"
|
||||
description: "BASSMIDI addon library (Windows)"
|
||||
required: false
|
||||
source_ref: "midi_bassmidi.cpp:233, dosbox_core_libretro.info:firmware7"
|
||||
notes: "proprietary library from un4seen.com, not a ROM"
|
||||
|
||||
- name: "libbass.dylib"
|
||||
description: "BASS audio library (macOS)"
|
||||
required: false
|
||||
source_ref: "midi_bassmidi.cpp:235, dosbox_core_libretro.info:firmware8"
|
||||
notes: "proprietary library from un4seen.com, not a ROM"
|
||||
|
||||
- name: "libbassmidi.dylib"
|
||||
description: "BASSMIDI addon library (macOS)"
|
||||
required: false
|
||||
source_ref: "midi_bassmidi.cpp:236, dosbox_core_libretro.info:firmware9"
|
||||
notes: "proprietary library from un4seen.com, not a ROM"
|
||||
|
||||
# -- General MIDI SoundFont --
|
||||
# Placed in system/soundfonts/ directory. Core scans for .sf2/.sf3/.sfz/.dls/.gig.
|
||||
# FluidSynth reads .sf2/.sf3/.dls/.gig; BASSMIDI reads .sf2/.sfz.
|
||||
# No specific filename required - all found files appear in the core option dropdown.
|
||||
42
emulators/fixgb.yml
Normal file
42
emulators/fixgb.yml
Normal file
@@ -0,0 +1,42 @@
|
||||
emulator: fixGB
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/fixGB"
|
||||
cores:
|
||||
- fixgb
|
||||
systems:
|
||||
- nintendo-gbc
|
||||
|
||||
notes: |
|
||||
fixGB is a Game Boy / Game Boy Color emulator by FIX94, currently at
|
||||
alpha v0.8.1. It supports .gb, .gbc, and .gbs (Game Boy Sound) files.
|
||||
|
||||
The core optionally loads "gbc_bios.bin" (CGB boot ROM) from the
|
||||
system directory. In the libretro port, doOpenCGBBootrom() in
|
||||
libretro.c:246-254 resolves the path via
|
||||
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY + "/gbc_bios.bin".
|
||||
|
||||
memInitCGBBootrom() in mem.c:567-586 validates the file: it must be
|
||||
at least 0x900 (2304) bytes. If present, 0x900 bytes are read into
|
||||
memCGBBootrom[] and cgbBootromEnabled is set to true. The boot ROM
|
||||
plays the Game Boy Color startup animation before handing off to the
|
||||
game.
|
||||
|
||||
If the file is missing or too small, the core skips the boot sequence
|
||||
and starts games directly. The BIOS is optional -- games run fine
|
||||
without it.
|
||||
|
||||
Despite the core name suggesting general Game Boy support, the only
|
||||
BIOS file referenced is the GBC boot ROM. There is no DMG (original
|
||||
Game Boy) boot ROM support in the source.
|
||||
|
||||
files:
|
||||
# --- GBC boot ROM (optional, enables startup animation) ---
|
||||
- name: "gbc_bios.bin"
|
||||
system: nintendo-gbc
|
||||
description: "Game Boy Color (CGB-001) boot ROM"
|
||||
required: false
|
||||
size: 2304
|
||||
md5: "dbfce9db9deaa2567f6a84fde55f9680"
|
||||
sha1: "1293d68bf9643bc4f36954c1e80e38f39864528d"
|
||||
source_ref: "libretro/libretro.c:246-254 (doOpenCGBBootrom), mem.c:567-586 (memInitCGBBootrom)"
|
||||
notes: "Must be at least 0x900 (2304) bytes. Only the first 0x900 bytes are read. Enables cgbBootromEnabled flag for boot animation. Disabled via memDisableCGBBootrom() when register write occurs."
|
||||
39
emulators/freej2me.yml
Normal file
39
emulators/freej2me.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
emulator: FreeJ2ME
|
||||
type: libretro
|
||||
source: "https://github.com/hex007/freej2me"
|
||||
cores:
|
||||
- freej2me
|
||||
systems:
|
||||
- j2me
|
||||
|
||||
notes: |
|
||||
FreeJ2ME is a Java ME (J2ME) emulator for libretro. The native .so/.dll
|
||||
core acts as a bridge that spawns a Java process running freej2me-lr.jar,
|
||||
which handles all actual J2ME emulation. Communication between the C
|
||||
frontend and Java backend happens over pipes (Linux) or named pipes
|
||||
(Windows).
|
||||
|
||||
The jar file is required: without it the core cannot start. It must be
|
||||
placed directly in the system directory (not a subdirectory). The core
|
||||
resolves it via RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY joined with
|
||||
"freej2me-lr.jar" using fill_pathname_join().
|
||||
|
||||
A working Java runtime (JRE/JDK 8+) must be installed on the host
|
||||
system. The core invokes "java -jar freej2me-lr.jar" with resolution,
|
||||
rotation, phone type, FPS, and sound arguments passed via argv.
|
||||
|
||||
freej2me-lr.jar is built from the project source via Apache Ant
|
||||
(build.xml target "lr"). It is not a traditional BIOS dump but a
|
||||
software component distributed with the emulator.
|
||||
|
||||
The project also produces freej2me.jar (standalone AWT frontend) and
|
||||
freej2me-sdl.jar (SDL2 frontend), but only freej2me-lr.jar is needed
|
||||
for the libretro core.
|
||||
|
||||
files:
|
||||
- name: "freej2me-lr.jar"
|
||||
system: j2me
|
||||
description: "FreeJ2ME libretro Java application"
|
||||
required: true
|
||||
source_ref: "src/libretro/freej2me_libretro.c:485 (fill_pathname_join with javapath)"
|
||||
notes: "Not a BIOS dump. This is the Java emulator itself, loaded by the native core at startup. Built from source via 'ant lr'. Must be in the system directory root."
|
||||
56
emulators/gearcoleco.yml
Normal file
56
emulators/gearcoleco.yml
Normal file
@@ -0,0 +1,56 @@
|
||||
emulator: Gearcoleco
|
||||
type: libretro
|
||||
source: "https://github.com/drhelius/Gearcoleco"
|
||||
cores:
|
||||
- gearcoleco
|
||||
systems:
|
||||
- colecovision
|
||||
|
||||
notes: |
|
||||
Gearcoleco is a ColecoVision emulator by Ignacio Sanchez (drhelius).
|
||||
The ColecoVision BIOS ROM is required to run games. Without it, the
|
||||
core displays a static "no BIOS" placeholder image (kNoBiosImage from
|
||||
no_bios.h) and games will not execute.
|
||||
|
||||
The BIOS is loaded in load_bootroms() (libretro.cpp:293-305) from the
|
||||
system directory. The core first tries "colecovision.rom", then falls
|
||||
back to "coleco.rom" if the first file is not found.
|
||||
|
||||
Memory.cpp:LoadBios() validates the file size must be exactly 8192
|
||||
bytes (0x2000). No hash check is performed by the core itself.
|
||||
|
||||
On reset, the BIOS byte at offset 0x69 is patched to select region:
|
||||
0x3C for NTSC, 0x32 for PAL (Memory.cpp:184-187).
|
||||
|
||||
The core also supports Super Game Module (SGM) expanded RAM but that
|
||||
requires no additional BIOS files.
|
||||
|
||||
files:
|
||||
# --- ColecoVision BIOS (required) ---
|
||||
- name: "colecovision.rom"
|
||||
system: colecovision
|
||||
description: "ColecoVision BIOS ROM"
|
||||
required: true
|
||||
size: 8192
|
||||
source_ref: "platforms/libretro/libretro.cpp:297 (load_bootroms)"
|
||||
notes: "Primary filename. Loaded via Memory::LoadBios(), must be exactly 8192 bytes."
|
||||
|
||||
- name: "coleco.rom"
|
||||
system: colecovision
|
||||
description: "ColecoVision BIOS ROM (legacy filename)"
|
||||
required: false
|
||||
size: 8192
|
||||
source_ref: "platforms/libretro/libretro.cpp:303 (load_bootroms fallback)"
|
||||
notes: "Fallback filename tried when colecovision.rom is not found."
|
||||
|
||||
platform_details:
|
||||
colecovision:
|
||||
bios_filename: "colecovision.rom"
|
||||
bios_fallback: "coleco.rom"
|
||||
bios_size: 8192
|
||||
source_ref: "src/Memory.cpp:228-258"
|
||||
notes: |
|
||||
LoadBios() reads the file as raw binary. Size must be exactly 0x2000
|
||||
(8192 bytes) or the load is rejected with a log message. The BIOS is
|
||||
mapped at address 0x0000-0x1FFF in the ColecoVision memory map. On
|
||||
reset, byte 0x69 is patched for NTSC/PAL region selection.
|
||||
128
emulators/geargrafx.yml
Normal file
128
emulators/geargrafx.yml
Normal file
@@ -0,0 +1,128 @@
|
||||
emulator: Geargrafx
|
||||
type: libretro
|
||||
source: "https://github.com/drhelius/Geargrafx"
|
||||
cores:
|
||||
- geargrafx
|
||||
systems:
|
||||
- nec-pc-engine
|
||||
- nec-supergrafx
|
||||
- nec-pc-engine-cd
|
||||
|
||||
notes: |
|
||||
Geargrafx is a PC Engine / TurboGrafx-16 / SuperGrafx / CD-ROM emulator by
|
||||
Ignacio Sanchez (drhelius). HuCard games (pce/sgx/hes) run without BIOS.
|
||||
|
||||
CD-ROM games require a System Card BIOS loaded from the system directory.
|
||||
The core option "geargrafx_cdrom_bios" selects which card image to use:
|
||||
Auto (default, maps to syscard3.pce), System Card 1, System Card 2,
|
||||
System Card 3, or Game Express. The load_bios() function in libretro.cpp
|
||||
builds the path as "{system_directory}/{filename}" and calls
|
||||
core->LoadBios(path, true) for the syscard, then always attempts to load
|
||||
gexpress.pce as the Game Express BIOS via core->LoadBios(path, false).
|
||||
|
||||
BIOS validation uses CRC32 against an internal game_db (game_db.h).
|
||||
The LoadBios() function in media.cpp reads the file, strips a 512-byte
|
||||
header if present, computes CRC32, and looks it up in k_game_database
|
||||
entries flagged with GG_GAMEDB_BIOS_SYSCARD or GG_GAMEDB_BIOS_GAME_EXPRESS.
|
||||
If the CRC32 is not found, the BIOS is marked as "Unknown" and invalid,
|
||||
but loading still proceeds (the file is kept in memory).
|
||||
|
||||
Expected BIOS sizes (from defines.h):
|
||||
- System Card: GG_BIOS_SYSCARD_SIZE = 0x40000 (256 KB)
|
||||
- Game Express: GG_BIOS_GAME_EXPRESS_SIZE = 0x8000 (32 KB)
|
||||
|
||||
Game Express CD-ROM games are auto-detected via CRC32 lookup in game_db.h
|
||||
(GG_GAMEDB_GAME_EXPRESS flag). When detected, the core uses the Game Express
|
||||
BIOS instead of the System Card for ROM bank mapping (media.cpp:649).
|
||||
|
||||
Arcade Card games are also detected from game_db.h and enable extra
|
||||
0x30000 bytes of Card RAM for Super CD-ROM mode.
|
||||
|
||||
Unlike beetle_pce, this core does NOT have separate US syscard3u.pce or
|
||||
syscard2u.pce options. The libretro frontend only references syscard1.pce,
|
||||
syscard2.pce, syscard3.pce, and gexpress.pce.
|
||||
|
||||
files:
|
||||
# -- CD-ROM System Card 3 (Japan) - default --
|
||||
|
||||
- name: "syscard3.pce"
|
||||
description: "Super CD-ROM System Card 3.0 (Japan)"
|
||||
region: "NTSC-J"
|
||||
required: true
|
||||
source_ref: "libretro.cpp:453,471-473, game_db.h:50 CRC32=0x6D9A73EF"
|
||||
notes: >
|
||||
Default BIOS for CD-ROM games (cdrom_bios=0 or 3). Recommended for
|
||||
most CD-ROM and Super CD-ROM titles. 256 KB expected size.
|
||||
|
||||
# -- CD-ROM System Card 2 (Japan) --
|
||||
|
||||
- name: "syscard2.pce"
|
||||
description: "CD-ROM System Card 2.0 (Japan)"
|
||||
region: "NTSC-J"
|
||||
required: false
|
||||
source_ref: "libretro.cpp:452,462-463, game_db.h:48-49"
|
||||
notes: >
|
||||
cdrom_bios = 'System Card 2'. For older CD-ROM2 titles. game_db.h lists
|
||||
two variants: v2.0 (CRC32=0x52520BC6) and v2.1 (CRC32=0x283B74E0).
|
||||
|
||||
# -- CD-ROM System Card 1 (Japan) --
|
||||
|
||||
- name: "syscard1.pce"
|
||||
description: "CD-ROM System Card 1.0 (Japan)"
|
||||
region: "NTSC-J"
|
||||
required: false
|
||||
source_ref: "libretro.cpp:451,459-460, game_db.h:47 CRC32=0x3F9F95A4"
|
||||
notes: >
|
||||
cdrom_bios = 'System Card 1'. Very early CD-ROM2 games only.
|
||||
|
||||
# -- TurboGrafx CD System Card 3 (US) --
|
||||
# Not directly selectable via core option, but game_db.h recognizes it.
|
||||
|
||||
- name: "syscard3.pce"
|
||||
sha1_note: "US variant"
|
||||
description: "TurboGrafx CD Super System Card 3.0 (US)"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
source_ref: "game_db.h:52 CRC32=0x2B5B75FE"
|
||||
notes: >
|
||||
The core does not have a separate syscard3u.pce option like beetle_pce.
|
||||
If using a US System Card 3, it must be named syscard3.pce and placed in
|
||||
the system directory. The game_db.h CRC32 validation will recognize it.
|
||||
|
||||
# -- TurboGrafx CD System Card 2 (US) --
|
||||
|
||||
- name: "syscard2.pce"
|
||||
sha1_note: "US variant"
|
||||
description: "TurboGrafx CD System Card 2.0 (US)"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
source_ref: "game_db.h:51 CRC32=0xFF2A5EC3"
|
||||
notes: >
|
||||
Same constraint as US System Card 3: must be named syscard2.pce.
|
||||
Recognized by game_db.h CRC32 validation.
|
||||
|
||||
# -- Game Express CD Card --
|
||||
|
||||
- name: "gexpress.pce"
|
||||
description: "Game Express CD Card"
|
||||
region: "NTSC-J"
|
||||
required: false
|
||||
source_ref: "libretro.cpp:454,468-469,481-482, game_db.h:53-54"
|
||||
notes: >
|
||||
Always loaded alongside the selected System Card BIOS (libretro.cpp:481).
|
||||
Required for unlicensed Game Express CD-ROM titles (AV Tanjou,
|
||||
Bishoujo Pachinko, etc). game_db.h lists two variants:
|
||||
Blue Version (CRC32=0x51A12D90) and Green Version (CRC32=0x16AAF05A).
|
||||
Expected size: 32 KB (0x8000).
|
||||
|
||||
valid_bios_crc32:
|
||||
syscard:
|
||||
- { crc32: "3F9F95A4", name: "CD-ROM System Card 1.0 (J)" }
|
||||
- { crc32: "52520BC6", name: "CD-ROM System Card 2.0 (J)" }
|
||||
- { crc32: "283B74E0", name: "CD-ROM System Card 2.1 (J)" }
|
||||
- { crc32: "6D9A73EF", name: "Super CD-ROM System 3.0 (J)" }
|
||||
- { crc32: "FF2A5EC3", name: "TurboGrafx CD System Card 2.0 (USA)" }
|
||||
- { crc32: "2B5B75FE", name: "TurboGrafx CD Super System 3.0 (USA)" }
|
||||
game_express:
|
||||
- { crc32: "51A12D90", name: "Game Express Card Blue Version (J)" }
|
||||
- { crc32: "16AAF05A", name: "Game Express Card Green Version (J)" }
|
||||
43
emulators/gearlynx.yml
Normal file
43
emulators/gearlynx.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
emulator: Gearlynx
|
||||
type: libretro
|
||||
source: "https://github.com/drhelius/Gearlynx"
|
||||
cores: [gearlynx]
|
||||
systems: [atari-lynx]
|
||||
verification: existence
|
||||
|
||||
notes: |
|
||||
Gearlynx is an Atari Lynx emulator by Ignacio Sanchez (drhelius).
|
||||
The libretro core loads lynxboot.img from the system directory at
|
||||
retro_load_game time (libretro.cpp:106-130, function load_bootroms).
|
||||
Path is built as: system_directory + "/lynxboot.img", no subdirectory.
|
||||
|
||||
LoadBios in media.cpp:274 reads exactly 512 bytes (GLYNX_BIOS_SIZE
|
||||
= 0x200, defines.h:52). If the file size is not 0x200, the load is
|
||||
rejected with BIOS_LOAD_INVALID_SIZE. After loading, bytes at offset
|
||||
0x1F8 and 0x1F9 are patched (RAM/MAPCTL registers), then CRC32 is
|
||||
computed and compared against GLYNX_DB_BIOS_CRC (0x0D973C9D,
|
||||
game_db.h:38). An invalid CRC triggers a warning log but the BIOS
|
||||
is still marked as loaded (m_is_bios_loaded = true).
|
||||
|
||||
Unlike Handy, Gearlynx has no HLE fallback. If the BIOS is not
|
||||
loaded (IsBiosLoaded() returns false), RunToVBlank in
|
||||
gearlynx_core_inline.h:31-37 renders a static "no bios" image
|
||||
and returns false, refusing to emulate. The BIOS is required for
|
||||
any ROM to run. Homebrew (.o, BS93 format) bypasses the normal
|
||||
boot sequence via PrepareForHomebrew() but still requires the BIOS
|
||||
to be loaded for the emulation loop to execute.
|
||||
|
||||
ROM extensions: .lnx, .lyx, .o
|
||||
Core options: none documented in the libretro port.
|
||||
|
||||
files:
|
||||
- name: "lynxboot.img"
|
||||
description: "Atari Lynx boot ROM"
|
||||
region: "World"
|
||||
required: true
|
||||
size: 512
|
||||
sha1: "e4ed47fae31693e016b081c6bda48da5b70d7ccb"
|
||||
md5: "fcd403db69f54290b51035d82f835e7b"
|
||||
crc32: "0d973c9d"
|
||||
source_ref: "libretro.cpp:106-130 (load_bootroms), media.cpp:274-329 (LoadBios), defines.h:52 (GLYNX_BIOS_SIZE=0x200), game_db.h:38 (GLYNX_DB_BIOS_CRC=0x0D973C9D), gearlynx_core_inline.h:33-37 (no-bios guard)"
|
||||
notes: "512-byte boot ROM validated by CRC32 after load. Invalid CRC logs a warning but still works. Missing or wrong-size file blocks emulation entirely (no HLE fallback)."
|
||||
145
emulators/geolith.yml
Normal file
145
emulators/geolith.yml
Normal file
@@ -0,0 +1,145 @@
|
||||
emulator: Geolith
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/geolith-libretro"
|
||||
systems:
|
||||
- snk-neogeo-mvs
|
||||
- snk-neogeo-aes
|
||||
|
||||
notes: |
|
||||
Geolith is a highly accurate Neo Geo AES and MVS emulator using .NEO format
|
||||
ROMs only. BIOS files must be provided as MAME-format ZIP archives in the
|
||||
system directory. The core selects which ZIP to open based on the
|
||||
"geolith_system_type" core option (libretro/libretro.c:1017-1018):
|
||||
- AES mode -> aes.zip
|
||||
- MVS mode -> neogeo.zip
|
||||
- Uni mode -> neogeo.zip (loads uni-bios_4_0.rom from it)
|
||||
|
||||
Inside the ZIP, specific ROM files are extracted by filename
|
||||
(src/geo.c:162-241):
|
||||
1. One 68K BIOS ROM, selected by system type + region:
|
||||
- AES Japan: neo-po.bin
|
||||
- AES other: neo-epo.bin
|
||||
- MVS US: sp-u2.sp1
|
||||
- MVS Japan: japan-j3.bin
|
||||
- MVS Asia: sp-45.sp1
|
||||
- MVS Europe: sp-s2.sp1
|
||||
- Universe: uni-bios_4_0.rom
|
||||
2. 000-lo.lo (zoom lookup table, always required)
|
||||
3. sfix.sfix (FIX layer tiles, required for MVS/Uni, not AES)
|
||||
4. sm1.sm1 (Z80 sound BIOS, required for MVS/Uni, not AES)
|
||||
|
||||
The AES mode only needs the 68K BIOS + 000-lo.lo. MVS and Universe BIOS
|
||||
modes additionally need sfix.sfix and sm1.sm1.
|
||||
|
||||
files:
|
||||
# -----------------------------------------------------------
|
||||
# neogeo.zip - MVS and Universe BIOS
|
||||
# -----------------------------------------------------------
|
||||
|
||||
# MVS 68K BIOS ROMs (one required per region)
|
||||
- name: "sp-u2.sp1"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "e72943de"
|
||||
note: "MVS USA ver. 5 (2 slot) - default for US region"
|
||||
source_ref: "src/geo.c:174"
|
||||
|
||||
- name: "japan-j3.bin"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: false
|
||||
size: 131072
|
||||
crc32: "dff6d41f"
|
||||
note: "MVS Japan (J3) - default for JP region"
|
||||
source_ref: "src/geo.c:177"
|
||||
|
||||
- name: "sp-45.sp1"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "03cc9f6a"
|
||||
note: "NEO-MVH MV1C (Asia) - default for AS region"
|
||||
source_ref: "src/geo.c:179"
|
||||
|
||||
- name: "sp-s2.sp1"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: false
|
||||
size: 131072
|
||||
crc32: "9036d879"
|
||||
note: "MVS Asia/Europe ver. 5 (1 slot) - default for EU region"
|
||||
source_ref: "src/geo.c:183"
|
||||
|
||||
# Universe BIOS (loaded from neogeo.zip when system type = uni)
|
||||
- name: "uni-bios_4_0.rom"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: false
|
||||
size: 131072
|
||||
crc32: "a7aab458"
|
||||
note: "Universe BIOS ver. 4.0 - only version supported by Geolith"
|
||||
source_ref: "src/geo.c:189"
|
||||
|
||||
# Shared ROMs (required for MVS and Universe modes)
|
||||
- name: "000-lo.lo"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "5a86cff2"
|
||||
note: "Zoom lookup table (vertical shrink ROM)"
|
||||
source_ref: "src/geo.c:207-208"
|
||||
|
||||
- name: "sfix.sfix"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "c2ea0cfd"
|
||||
note: "System FIX layer tiles (text layer)"
|
||||
source_ref: "src/geo.c:218-219"
|
||||
|
||||
- name: "sm1.sm1"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "94416d67"
|
||||
note: "Z80 sound BIOS"
|
||||
source_ref: "src/geo.c:229-230"
|
||||
|
||||
# -----------------------------------------------------------
|
||||
# aes.zip - AES (Home Console)
|
||||
# -----------------------------------------------------------
|
||||
|
||||
# AES 68K BIOS ROMs (one required per region)
|
||||
- name: "neo-epo.bin"
|
||||
archive: aes.zip
|
||||
system: snk-neogeo-aes
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "d27a71f1"
|
||||
note: "AES Asia/US/EU - default for non-JP regions"
|
||||
source_ref: "src/geo.c:168"
|
||||
|
||||
- name: "neo-po.bin"
|
||||
archive: aes.zip
|
||||
system: snk-neogeo-aes
|
||||
required: false
|
||||
size: 131072
|
||||
crc32: "16d0c132"
|
||||
note: "AES Japan - default for JP region"
|
||||
source_ref: "src/geo.c:167-168"
|
||||
|
||||
# Shared ROM (always required for AES)
|
||||
- name: "000-lo.lo"
|
||||
archive: aes.zip
|
||||
system: snk-neogeo-aes
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "5a86cff2"
|
||||
note: "Zoom lookup table (same ROM as in neogeo.zip)"
|
||||
source_ref: "src/geo.c:207-208"
|
||||
79
emulators/jollycv.yml
Normal file
79
emulators/jollycv.yml
Normal file
@@ -0,0 +1,79 @@
|
||||
emulator: JollyCV
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/jollycv"
|
||||
cores:
|
||||
- jollycv
|
||||
systems:
|
||||
- colecovision
|
||||
- creativision
|
||||
- myvision
|
||||
|
||||
notes: |
|
||||
JollyCV is a multi-system emulator by Rupert Carmichael supporting
|
||||
ColecoVision (with Super Game Module), CreatiVision, and My Vision.
|
||||
|
||||
BIOS handling depends on the detected system type (set via core option
|
||||
or auto-detected from ROM database via jcv_process_hash/jcv_get_dbflags):
|
||||
|
||||
- ColecoVision (JCV_SYS_COLECO): loads "coleco.rom" from system dir.
|
||||
BIOS is mapped at 0x0000-0x1FFF. Size must be exactly 8192 bytes
|
||||
(SIZE_CVBIOS = SIZE_8K = 0x2000). Load fails if size mismatches.
|
||||
Without the BIOS, ColecoVision games will not run (load returns false).
|
||||
|
||||
- CreatiVision (JCV_SYS_CRVISION): loads "bioscv.rom" from system dir.
|
||||
BIOS is mapped at 0xF800-0xFFFF. Size must be exactly 2048 bytes
|
||||
(SIZE_CRVBIOS = SIZE_2K = 0x800). Without the BIOS, CreatiVision
|
||||
games will not run.
|
||||
|
||||
- My Vision (JCV_SYS_MYVISION): no BIOS required.
|
||||
|
||||
The libretro port constructs paths via snprintf("%s%c%s", sysdir, pss,
|
||||
filename) in libretro.c:699-711. jcv_bios_load_file() opens the file,
|
||||
reads it fully, then delegates to jcv_coleco_bios_load() or
|
||||
jcv_crvision_bios_load() which validate size before copying.
|
||||
|
||||
ColecoVision cartridge header bytes at offset 0x0000-0x0001 control
|
||||
boot behavior: 0xAA55 shows the BIOS title screen, 0x55AA jumps
|
||||
directly to the game code vector.
|
||||
|
||||
The core includes a built-in ROM database with MD5 hashes (gamedb.h)
|
||||
for game-specific flags, but this is for game compatibility, not BIOS
|
||||
verification.
|
||||
|
||||
files:
|
||||
# --- ColecoVision BIOS (required for CV games) ---
|
||||
- name: "coleco.rom"
|
||||
system: colecovision
|
||||
description: "ColecoVision BIOS ROM"
|
||||
required: true
|
||||
size: 8192
|
||||
md5: "2c66f5911e5b42b8ebe113403548eee7"
|
||||
sha1: "4aa1d9b48f39b68bb17b3d6997b74850c6089dc3"
|
||||
source_ref: "libretro/libretro.c:701, src/jcv_coleco.c:402-406"
|
||||
notes: "Mapped at 0x0000-0x1FFF. Replaced by SGM lower RAM when Super Game Module is active. Must be exactly 8192 bytes."
|
||||
|
||||
# --- CreatiVision BIOS (required for CV games) ---
|
||||
- name: "bioscv.rom"
|
||||
system: creativision
|
||||
description: "VTech CreatiVision BIOS ROM"
|
||||
required: true
|
||||
size: 2048
|
||||
source_ref: "libretro/libretro.c:711, src/jcv_crvision.c:315-318"
|
||||
notes: "Mapped at 0xF800-0xFFFF. Must be exactly 2048 bytes."
|
||||
|
||||
platform_details:
|
||||
colecovision:
|
||||
bios_filename: "coleco.rom"
|
||||
bios_size: 8192
|
||||
memory_map: "0x0000-0x1FFF"
|
||||
source_ref: "src/jcv_coleco.c:269-281"
|
||||
|
||||
creativision:
|
||||
bios_filename: "bioscv.rom"
|
||||
bios_size: 2048
|
||||
memory_map: "0xF800-0xFFFF"
|
||||
source_ref: "src/jcv_crvision.c:315-337, 441"
|
||||
|
||||
myvision:
|
||||
bios_required: false
|
||||
notes: "No BIOS needed. My Vision games run without any system ROM."
|
||||
54
emulators/noods.yml
Normal file
54
emulators/noods.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
emulator: NooDS
|
||||
type: libretro
|
||||
source: "https://github.com/Hydr8gon/NooDS"
|
||||
cores: [noods]
|
||||
systems: [nintendo-ds, nintendo-gba]
|
||||
|
||||
notes: |
|
||||
NooDS includes full HLE BIOS for ARM9, ARM7 and GBA SWI routines, making
|
||||
all BIOS files optional when direct boot is enabled (default). HLE tables
|
||||
cover SWI 0x00-0x20 for each processor (hle_bios.cpp:24-62). When BIOS
|
||||
files are missing, a special opcode (0xFF at offset 3) is written for
|
||||
interrupt return and the HLE handler is activated (memory.cpp:130-169).
|
||||
Firmware is auto-generated (128KB non-bootable) if not provided, with
|
||||
default WiFi config, touch calibration and user settings (spi.cpp:90-160).
|
||||
Native BIOS+firmware required only for firmware boot (non-direct-boot mode).
|
||||
ARM9 BIOS read: 0x1000 bytes (4 KB), ARM7 BIOS read: 0x4000 bytes (16 KB),
|
||||
GBA BIOS read: 0x4000 bytes (16 KB). Firmware bootable threshold: >128 KB
|
||||
(spi.cpp:87). DSi mode supported but uses same BIOS files.
|
||||
Config: noods.ini keys bios9Path, bios7Path, firmwarePath, gbaBiosPath.
|
||||
|
||||
files:
|
||||
- name: "bios9.bin"
|
||||
system: nintendo-ds
|
||||
description: "ARM9 BIOS"
|
||||
required: false
|
||||
size: 4096
|
||||
md5: "a392174eb3e572fed6447e956bde4b25"
|
||||
source_ref: "src/memory.cpp:130-142, src/memory.h:73"
|
||||
notes: "HLE fallback for all SWI calls; native needed for firmware boot and logo verification (copyBiosLogo)"
|
||||
|
||||
- name: "bios7.bin"
|
||||
system: nintendo-ds
|
||||
description: "ARM7 BIOS"
|
||||
required: false
|
||||
size: 16384
|
||||
md5: "df692a80a5b1bc90728bc3dfc76cd948"
|
||||
source_ref: "src/memory.cpp:144-156, src/memory.h:74"
|
||||
notes: "HLE fallback for all SWI calls; native needed for firmware boot"
|
||||
|
||||
- name: "firmware.bin"
|
||||
system: nintendo-ds
|
||||
description: "NDS firmware image"
|
||||
required: false
|
||||
source_ref: "src/spi.cpp:62-160, src/settings.cpp:42"
|
||||
notes: "Auto-generated 128KB non-bootable firmware as fallback; native dump (>128KB) needed for firmware boot"
|
||||
|
||||
- name: "gba_bios.bin"
|
||||
system: nintendo-gba
|
||||
description: "GBA BIOS"
|
||||
required: false
|
||||
size: 16384
|
||||
md5: "a860e8c0b6d573d191e4ec7db1b1e4f6"
|
||||
source_ref: "src/memory.cpp:158-169, src/memory.h:75, src/core.cpp:244-252"
|
||||
notes: "HLE fallback via swiTableGba; native BIOS disables HLE and enables real GBA boot (core.cpp:244-247)"
|
||||
79
emulators/numero.yml
Normal file
79
emulators/numero.yml
Normal file
@@ -0,0 +1,79 @@
|
||||
emulator: Numero
|
||||
type: libretro
|
||||
source: "https://github.com/nbarkhina/numero"
|
||||
cores:
|
||||
- numero
|
||||
systems:
|
||||
- ti-83
|
||||
|
||||
notes: |
|
||||
Numero is a TI-83 family calculator emulator for libretro, based on the
|
||||
Wabbitemu emulator. Supports TI-83, TI-83 Plus and TI-83 Silver Edition.
|
||||
|
||||
A calculator ROM dump is required to run. The core searches for ROM files
|
||||
in the system directory root with a fixed priority order
|
||||
(libretronew.cpp:575-594):
|
||||
|
||||
1. ti83se.rom (TI-83 Silver Edition, recommended -- largest storage)
|
||||
2. ti83plus.rom (TI-83 Plus)
|
||||
3. ti83.rom (TI-83)
|
||||
|
||||
The first file found wins. file_present_in_system() checks existence only
|
||||
(libretronew.cpp:451-472), then rom_load() loads it (libretronew.cpp:608).
|
||||
|
||||
There is no fallback or built-in ROM. If none of the three files are found,
|
||||
the core starts without a BIOS and shows a blank screen with a status
|
||||
message listing the expected filenames (libretronew.cpp:1034-1041).
|
||||
|
||||
The core supports no-content launch (RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME
|
||||
is set to true, libretronew.cpp:555-556). Content files are .8xp/.8xk/.8xg
|
||||
calculator programs loaded on top of the running ROM.
|
||||
|
||||
The emulator auto-saves calculator state every 10 seconds to preserve RAM
|
||||
contents (the TI-83 has no persistent storage beyond battery-backed RAM).
|
||||
|
||||
files:
|
||||
- name: "ti83se.rom"
|
||||
system: ti-83
|
||||
description: "TI-83 Silver Edition ROM dump"
|
||||
required: false
|
||||
source_ref: "libretronew.cpp:576-578"
|
||||
notes: "Checked first. Recommended by the author for largest storage capacity."
|
||||
|
||||
- name: "ti83plus.rom"
|
||||
system: ti-83
|
||||
description: "TI-83 Plus ROM dump"
|
||||
required: false
|
||||
source_ref: "libretronew.cpp:583-585"
|
||||
notes: "Checked second, used if ti83se.rom is missing."
|
||||
|
||||
- name: "ti83.rom"
|
||||
system: ti-83
|
||||
description: "TI-83 ROM dump"
|
||||
required: false
|
||||
source_ref: "libretronew.cpp:591-593"
|
||||
notes: "Checked last. Original TI-83 (non-Plus) ROM."
|
||||
|
||||
platform_details:
|
||||
bios_search:
|
||||
source_ref: "libretronew.cpp:451-472, 575-608"
|
||||
notes: |
|
||||
file_present_in_system() opens a read handle via libretro VFS to
|
||||
test file existence. The search is sequential: ti83se.rom first,
|
||||
then ti83plus.rom, then ti83.rom. Only one ROM is loaded.
|
||||
|
||||
rom_loading:
|
||||
source_ref: "src/Interface/calc.cpp (rom_load)"
|
||||
notes: |
|
||||
rom_load() detects the calculator model from the ROM image header
|
||||
and initializes the appropriate hardware (83, 83+, 83SE). Each
|
||||
model gets its own progress/save directory via setProgressDir().
|
||||
|
||||
content_loading:
|
||||
formats: "8xp, 8xk, 8xg"
|
||||
source_ref: "libretronew.cpp:483, 769"
|
||||
notes: |
|
||||
Calculator programs (.8xp), apps (.8xk) and groups (.8xg) are
|
||||
loaded into the running calculator via the sendfile mechanism,
|
||||
simulating the link cable transfer. Multiple programs can be
|
||||
loaded sequentially onto the same ROM session.
|
||||
57
emulators/retrodream.yml
Normal file
57
emulators/retrodream.yml
Normal file
@@ -0,0 +1,57 @@
|
||||
emulator: RetroDream
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/redream-next"
|
||||
systems:
|
||||
- sega-dreamcast
|
||||
|
||||
notes: |
|
||||
Fork of the final open-source redream release (pre-relicense). Experimental
|
||||
core with no HLE BIOS -- real BIOS files are required to boot games.
|
||||
Flycast is recommended over this core for actual gameplay.
|
||||
|
||||
The libretro core sets appdir to the RetroArch system directory
|
||||
(src/host/retro_host.c:216-217). boot.bin and flash.bin are loaded
|
||||
directly from appdir (src/guest/rom/boot.c:17, src/guest/rom/flash.c:30).
|
||||
|
||||
The .info file declares paths as dc/boot.bin and dc/flash.bin, which means
|
||||
RetroArch resolves them under {system_dir}/dc/.
|
||||
|
||||
boot.bin is validated against four known MD5 hashes at load time
|
||||
(src/guest/rom/boot.c:25-30). If validation fails, the core logs a warning
|
||||
but still attempts to run via HLE syscall hooks (bios.c:440-447).
|
||||
|
||||
flash.bin is read/write -- the core saves modified flash data back to disk
|
||||
on shutdown (src/guest/rom/flash.c:197-199).
|
||||
|
||||
Boot ROM size: 2 MB (0x200000). Flash ROM size: 128 KB (0x20000).
|
||||
|
||||
files:
|
||||
- name: "boot.bin"
|
||||
system: sega-dreamcast
|
||||
path: "dc/boot.bin"
|
||||
required: true
|
||||
size: 2097152 # 2 MB (0x200000)
|
||||
md5:
|
||||
- e10c53c2f8b90bab96ead2d368858623 # original US/EU BIOS
|
||||
- a5c6a00818f97c5e3e91569ee22416dc # Chinese BIOS
|
||||
- 37c921eb47532cae8fb70e5d987ce91c # Japanese BIOS
|
||||
- f2cd29d09f3e29984bcea22ab2e006fe # revised BIOS without MIL-CD
|
||||
note: "Dreamcast boot ROM. Validated against known MD5 hashes at load."
|
||||
source_ref: "src/guest/rom/boot.c:12-80"
|
||||
|
||||
- name: "flash.bin"
|
||||
system: sega-dreamcast
|
||||
path: "dc/flash.bin"
|
||||
required: true
|
||||
size: 131072 # 128 KB (0x20000)
|
||||
md5:
|
||||
- 0a93f7940c455905bea6e392dfde92a4
|
||||
note: "Dreamcast flash memory (date, time, language). Written back on shutdown."
|
||||
source_ref: "src/guest/rom/flash.c:25-35"
|
||||
|
||||
platform_details:
|
||||
dreamcast:
|
||||
bios_size: 2097152 # 2 MB
|
||||
flash_size: 131072 # 128 KB
|
||||
hle_available: false
|
||||
source_ref: "src/guest/rom/boot.c, src/guest/rom/flash.c"
|
||||
445
emulators/scummvm.yml
Normal file
445
emulators/scummvm.yml
Normal file
@@ -0,0 +1,445 @@
|
||||
emulator: ScummVM
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/scummvm"
|
||||
systems: [scummvm]
|
||||
|
||||
# ScummVM is a multi-engine point-and-click adventure game interpreter.
|
||||
# The libretro port uses a specific directory layout under the RetroArch
|
||||
# system directory:
|
||||
#
|
||||
# <system>/scummvm/ - main ScummVM subdirectory
|
||||
# <system>/scummvm/extra/ - engine data files, soundfonts, shaders
|
||||
# <system>/scummvm/theme/ - GUI themes and related assets
|
||||
#
|
||||
# These paths are defined in Makefile.common:
|
||||
# SCUMMVM_SYSTEM_SUBDIR = scummvm
|
||||
# SCUMMVM_EXTRA_SUBDIR = extra
|
||||
# SCUMMVM_THEME_SUBDIR = theme
|
||||
#
|
||||
# The bundled scummvm.zip release artifact contains the full directory
|
||||
# tree pre-built. Extracting it into <system>/ is the easiest setup.
|
||||
#
|
||||
# MT-32/CM-32L ROM files go in scummvm/extra/ and are loaded by
|
||||
# audio/softsynth/mt32.cpp. The core tries CM-32L first, then MT-32.
|
||||
# These are NOT bundled (proprietary). Everything else is open-source
|
||||
# data shipped with ScummVM releases.
|
||||
|
||||
# ----- scummvm.ini (config, auto-created) -----
|
||||
# Stored at <system>/scummvm.ini. Created by the core on first run.
|
||||
# Not listed here since it's not a distributable data file.
|
||||
|
||||
files:
|
||||
# ================================================================
|
||||
# MT-32 / CM-32L ROM files (proprietary, not bundled)
|
||||
# Loaded from the extra path by audio/softsynth/mt32.cpp
|
||||
# CM-32L is tried first, falls back to MT-32.
|
||||
# ================================================================
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
path: "scummvm/extra/MT32_CONTROL.ROM"
|
||||
required: false
|
||||
size: 65536
|
||||
source_ref: "audio/softsynth/mt32.cpp:298,581"
|
||||
note: >
|
||||
Roland MT-32 control ROM. Required for MT-32 music emulation in games
|
||||
that use MT-32 MIDI (e.g. Monkey Island, Indiana Jones). Not bundled
|
||||
with ScummVM. Must be paired with MT32_PCM.ROM.
|
||||
|
||||
- name: "MT32_PCM.ROM"
|
||||
path: "scummvm/extra/MT32_PCM.ROM"
|
||||
required: false
|
||||
size: 524288
|
||||
source_ref: "audio/softsynth/mt32.cpp:298,581"
|
||||
note: >
|
||||
Roland MT-32 PCM ROM. Contains the sample data for MT-32 emulation.
|
||||
Must be paired with MT32_CONTROL.ROM.
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
path: "scummvm/extra/CM32L_CONTROL.ROM"
|
||||
required: false
|
||||
size: 65536
|
||||
source_ref: "audio/softsynth/mt32.cpp:293,582"
|
||||
note: >
|
||||
Roland CM-32L control ROM. Preferred over MT-32 ROMs when both are
|
||||
present. The CM-32L is a rack-mount version of the MT-32 with extra
|
||||
sound effects used by some LucasArts and Sierra games.
|
||||
|
||||
- name: "CM32L_PCM.ROM"
|
||||
path: "scummvm/extra/CM32L_PCM.ROM"
|
||||
required: false
|
||||
size: 1048576
|
||||
source_ref: "audio/softsynth/mt32.cpp:293,582"
|
||||
note: >
|
||||
Roland CM-32L PCM ROM. Contains sample data for CM-32L emulation.
|
||||
Must be paired with CM32L_CONTROL.ROM.
|
||||
|
||||
# ================================================================
|
||||
# SoundFont (bundled with ScummVM releases)
|
||||
# Default filename defined in libretro-defs.h:32
|
||||
# ================================================================
|
||||
|
||||
- name: "Roland_SC-55.sf2"
|
||||
path: "scummvm/extra/Roland_SC-55.sf2"
|
||||
required: false
|
||||
source_ref: "libretro-defs.h:32, libretro-os-utils.cpp:196"
|
||||
note: >
|
||||
Roland SC-55 SoundFont for General MIDI playback. This is the default
|
||||
soundfont (DEFAULT_SOUNDFONT_FILENAME). Bundled in official ScummVM
|
||||
releases. Used as fallback when no MT-32 ROMs are available.
|
||||
|
||||
# ================================================================
|
||||
# GUI themes - placed in scummvm/theme/
|
||||
# Listed in dists/scummvm.rc
|
||||
# ================================================================
|
||||
|
||||
- name: "scummmodern.zip"
|
||||
path: "scummvm/theme/scummmodern.zip"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:24"
|
||||
note: "Modern GUI theme for ScummVM launcher."
|
||||
|
||||
- name: "scummclassic.zip"
|
||||
path: "scummvm/theme/scummclassic.zip"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:23"
|
||||
note: "Classic GUI theme for ScummVM launcher."
|
||||
|
||||
- name: "scummremastered.zip"
|
||||
path: "scummvm/theme/scummremastered.zip"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:25"
|
||||
note: "Remastered GUI theme for ScummVM launcher."
|
||||
|
||||
- name: "residualvm.zip"
|
||||
path: "scummvm/theme/residualvm.zip"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:26"
|
||||
note: "ResidualVM theme for 3D adventure games (Grim Fandango, Myst III)."
|
||||
|
||||
- name: "gui-icons.dat"
|
||||
path: "scummvm/theme/gui-icons.dat"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:27"
|
||||
note: "GUI icon pack used by the ScummVM launcher interface."
|
||||
|
||||
- name: "shaders.dat"
|
||||
path: "scummvm/theme/shaders.dat"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:28"
|
||||
note: "Compiled shader pack for the GUI rendering pipeline."
|
||||
|
||||
- name: "translations.dat"
|
||||
path: "scummvm/theme/translations.dat"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:43"
|
||||
note: "GUI translation strings for ScummVM launcher localization."
|
||||
|
||||
# ================================================================
|
||||
# Core engine data - placed in scummvm/extra/
|
||||
# Listed in dists/engine-data/engine_data_core.mk (always included)
|
||||
# ================================================================
|
||||
|
||||
- name: "achievements.dat"
|
||||
path: "scummvm/extra/achievements.dat"
|
||||
required: false
|
||||
source_ref: "engine_data_core.mk"
|
||||
note: "Achievement definitions for supported games."
|
||||
|
||||
- name: "classicmacfonts.dat"
|
||||
path: "scummvm/extra/classicmacfonts.dat"
|
||||
required: false
|
||||
source_ref: "engine_data_core.mk"
|
||||
note: "Classic Macintosh bitmap fonts for Mac game rendering."
|
||||
|
||||
- name: "encoding.dat"
|
||||
path: "scummvm/extra/encoding.dat"
|
||||
required: false
|
||||
source_ref: "engine_data_core.mk"
|
||||
note: "Character encoding tables for text rendering across languages."
|
||||
|
||||
- name: "helpdialog.zip"
|
||||
path: "scummvm/extra/helpdialog.zip"
|
||||
required: false
|
||||
source_ref: "engine_data_core.mk"
|
||||
note: "Help dialog assets for the in-game help system."
|
||||
|
||||
- name: "macgui.dat"
|
||||
path: "scummvm/extra/macgui.dat"
|
||||
required: false
|
||||
source_ref: "engine_data_core.mk"
|
||||
note: "Macintosh GUI widget data for Mac-style game interfaces."
|
||||
|
||||
# ================================================================
|
||||
# Per-engine data files - placed in scummvm/extra/
|
||||
# Listed in dists/engine-data/engine_data.mk (conditionally included)
|
||||
# ================================================================
|
||||
|
||||
- name: "access.dat"
|
||||
path: "scummvm/extra/access.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_ACCESS)"
|
||||
note: "Engine data for Access Software games (e.g. Amazon, Martian Memorandum)."
|
||||
|
||||
- name: "bagel.dat"
|
||||
path: "scummvm/extra/bagel.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_BAGEL)"
|
||||
note: "Engine data for Bagel engine games."
|
||||
|
||||
- name: "cryo.dat"
|
||||
path: "scummvm/extra/cryo.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_CRYO)"
|
||||
note: "Engine data for Cryo Interactive games (e.g. Dune, Lost Eden)."
|
||||
|
||||
- name: "cryomni3d.dat"
|
||||
path: "scummvm/extra/cryomni3d.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_CRYOMNI3D)"
|
||||
note: "Engine data for CryOmni3D games (Versailles 1685)."
|
||||
|
||||
- name: "darkseed.dat"
|
||||
path: "scummvm/extra/darkseed.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_DARKSEED)"
|
||||
note: "Engine data for Dark Seed (H.R. Giger adventure game)."
|
||||
|
||||
- name: "drascula.dat"
|
||||
path: "scummvm/extra/drascula.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_DRASCULA)"
|
||||
note: "Engine data for Drascula: The Vampire Strikes Back."
|
||||
|
||||
- name: "freescape.dat"
|
||||
path: "scummvm/extra/freescape.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_FREESCAPE)"
|
||||
note: "Engine data for Freescape games (Driller, Dark Side, Total Eclipse)."
|
||||
|
||||
- name: "got.aud"
|
||||
path: "scummvm/extra/got.aud"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_GOT)"
|
||||
note: "Audio data for Game of Thrones engine."
|
||||
|
||||
- name: "got.gfx"
|
||||
path: "scummvm/extra/got.gfx"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_GOT)"
|
||||
note: "Graphics data for Game of Thrones engine."
|
||||
|
||||
- name: "hadesch_translations.dat"
|
||||
path: "scummvm/extra/hadesch_translations.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_HADESCH)"
|
||||
note: "Translation data for Hades Challenge."
|
||||
|
||||
- name: "hugo.dat"
|
||||
path: "scummvm/extra/hugo.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_HUGO)"
|
||||
note: "Engine data for Hugo's House of Horrors trilogy."
|
||||
|
||||
- name: "kyra.dat"
|
||||
path: "scummvm/extra/kyra.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_KYRA)"
|
||||
note: "Engine data for Kyrandia series (Legend of Kyrandia, Hand of Fate, Malcolm's Revenge)."
|
||||
|
||||
- name: "lure.dat"
|
||||
path: "scummvm/extra/lure.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_LURE)"
|
||||
note: "Engine data for Lure of the Temptress."
|
||||
|
||||
- name: "macventure.dat"
|
||||
path: "scummvm/extra/macventure.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_MACVENTURE)"
|
||||
note: "Engine data for MacVenture games (Shadowgate, Deja Vu, Uninvited)."
|
||||
|
||||
- name: "mm.dat"
|
||||
path: "scummvm/extra/mm.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_MM)"
|
||||
note: "Engine data for Might and Magic engine."
|
||||
|
||||
- name: "mort.dat"
|
||||
path: "scummvm/extra/mort.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_MORTEVIELLE)"
|
||||
note: "Engine data for Mortville Manor."
|
||||
|
||||
- name: "myst3.dat"
|
||||
path: "scummvm/extra/myst3.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_MYST3)"
|
||||
note: "Engine data for Myst III: Exile."
|
||||
|
||||
- name: "nancy.dat"
|
||||
path: "scummvm/extra/nancy.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_NANCY)"
|
||||
note: "Engine data for Nancy Drew adventure games."
|
||||
|
||||
- name: "neverhood.dat"
|
||||
path: "scummvm/extra/neverhood.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_NEVERHOOD)"
|
||||
note: "Engine data for The Neverhood."
|
||||
|
||||
- name: "prince_translation.dat"
|
||||
path: "scummvm/extra/prince_translation.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_PRINCE)"
|
||||
note: "Translation data for The Prince and the Coward."
|
||||
|
||||
- name: "queen.tbl"
|
||||
path: "scummvm/extra/queen.tbl"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_QUEEN)"
|
||||
note: "Resource table for Flight of the Amazon Queen."
|
||||
|
||||
- name: "sky.cpt"
|
||||
path: "scummvm/extra/sky.cpt"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_SKY)"
|
||||
note: "Compact table for Beneath a Steel Sky."
|
||||
|
||||
- name: "supernova.dat"
|
||||
path: "scummvm/extra/supernova.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_SUPERNOVA)"
|
||||
note: "Engine data for Mission Supernova."
|
||||
|
||||
- name: "teenagent.dat"
|
||||
path: "scummvm/extra/teenagent.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_TEENAGENT)"
|
||||
note: "Engine data for Teenagent."
|
||||
|
||||
- name: "titanic.dat"
|
||||
path: "scummvm/extra/titanic.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_TITANIC)"
|
||||
note: "Engine data for Starship Titanic."
|
||||
|
||||
- name: "tony.dat"
|
||||
path: "scummvm/extra/tony.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_TONY)"
|
||||
note: "Engine data for Tony Tough and the Night of Roasted Moths."
|
||||
|
||||
- name: "toon.dat"
|
||||
path: "scummvm/extra/toon.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_TOON)"
|
||||
note: "Engine data for Toonstruck."
|
||||
|
||||
- name: "ultima.dat"
|
||||
path: "scummvm/extra/ultima.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_ULTIMA)"
|
||||
note: "Engine data for Ultima series (Ultima IV-VIII, Savage Empire, Martian Dreams)."
|
||||
|
||||
- name: "ultima8.dat"
|
||||
path: "scummvm/extra/ultima8.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_ULTIMA)"
|
||||
note: "Engine data specific to Ultima VIII: Pagan."
|
||||
|
||||
- name: "wintermute.zip"
|
||||
path: "scummvm/extra/wintermute.zip"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_WINTERMUTE)"
|
||||
note: "Engine data for Wintermute engine games."
|
||||
|
||||
- name: "fonts.dat"
|
||||
path: "scummvm/extra/fonts.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (USE_FREETYPE2)"
|
||||
note: "FreeType2 font data for text rendering."
|
||||
|
||||
- name: "fonts-cjk.dat"
|
||||
path: "scummvm/extra/fonts-cjk.dat"
|
||||
required: false
|
||||
source_ref: "engine_data_big.mk (USE_FREETYPE2)"
|
||||
note: "CJK (Chinese/Japanese/Korean) font data. Large file, only for systems with enough memory."
|
||||
|
||||
- name: "fonts-imgui.dat"
|
||||
path: "scummvm/extra/fonts-imgui.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (USE_IMGUI)"
|
||||
note: "ImGui font data for debug overlay rendering."
|
||||
|
||||
- name: "grim-patch.lab"
|
||||
path: "scummvm/extra/grim-patch.lab"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_GRIM)"
|
||||
note: "Patch data for Grim Fandango."
|
||||
|
||||
- name: "monkey4-patch.m4b"
|
||||
path: "scummvm/extra/monkey4-patch.m4b"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_MONKEY4)"
|
||||
note: "Patch data for Escape from Monkey Island."
|
||||
|
||||
# ================================================================
|
||||
# AGI engine dictionary
|
||||
# ================================================================
|
||||
|
||||
- name: "pred.dic"
|
||||
path: "scummvm/extra/pred.dic"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_AGI)"
|
||||
note: "Predictive text dictionary for AGI engine text input (King's Quest, Space Quest, etc)."
|
||||
|
||||
# ================================================================
|
||||
# Virtual keyboard pack
|
||||
# ================================================================
|
||||
|
||||
- name: "vkeybd_default.zip"
|
||||
path: "scummvm/extra/vkeybd_default.zip"
|
||||
required: false
|
||||
source_ref: "bundle_datafiles.sh (hardcoded addition)"
|
||||
note: "Default virtual keyboard layout. Added to the extra path by the build script."
|
||||
|
||||
# ================================================================
|
||||
# Shaders - placed in scummvm/extra/shaders/
|
||||
# Grim Fandango, Escape from Monkey Island, Myst III, The Longest
|
||||
# Journey (Stark), Wintermute 3D, Freescape, HPL1 (Penumbra),
|
||||
# Playground3D test engine. Listed in dists/scummvm.rc.
|
||||
# Individual shader files are NOT listed here since they are
|
||||
# bundled in shaders.dat for the theme path and as individual
|
||||
# files in the extra/shaders/ directory. The build bundles them
|
||||
# automatically via bundle_datafiles.sh.
|
||||
# ================================================================
|
||||
|
||||
notes:
|
||||
directory_layout: >
|
||||
The libretro core expects: <system>/scummvm/extra/ for engine data and
|
||||
soundfonts, <system>/scummvm/theme/ for GUI themes. The bundled
|
||||
scummvm.zip release contains the full tree and can be extracted
|
||||
directly into the system directory. Individual shader files go in
|
||||
<system>/scummvm/extra/shaders/.
|
||||
mt32_emulation: >
|
||||
MT-32 emulation requires either MT32_CONTROL.ROM + MT32_PCM.ROM or
|
||||
CM32L_CONTROL.ROM + CM32L_PCM.ROM in the extra directory. These are
|
||||
proprietary Roland ROM dumps, not shipped with ScummVM. CM-32L ROMs
|
||||
are preferred when both sets are present. Without these, games that
|
||||
use MT-32 MIDI fall back to General MIDI with the Roland SC-55
|
||||
soundfont.
|
||||
scummvm_zip: >
|
||||
Official ScummVM libretro releases include scummvm.zip which bundles
|
||||
all themes, engine data, shaders, and the SC-55 soundfont. This
|
||||
single file extracted to <system>/ provides a complete setup minus
|
||||
the proprietary MT-32/CM-32L ROMs.
|
||||
config_file: >
|
||||
ScummVM stores its configuration in <system>/scummvm.ini. This file
|
||||
is auto-created on first launch and stores game entries, paths, and
|
||||
user preferences. Not a distributable data file.
|
||||
shaders: >
|
||||
OpenGL shaders for 3D engines (Grim Fandango, Myst III, The Longest
|
||||
Journey, Penumbra, Wintermute 3D, Freescape) are placed as individual
|
||||
.vertex/.fragment files in <system>/scummvm/extra/shaders/. There are
|
||||
roughly 130 shader files across all engines.
|
||||
81
emulators/smsplus.yml
Normal file
81
emulators/smsplus.yml
Normal file
@@ -0,0 +1,81 @@
|
||||
emulator: SMS Plus GX
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/smsplus-gx"
|
||||
cores:
|
||||
- smsplus
|
||||
systems:
|
||||
- sega-master-system
|
||||
- sega-game-gear
|
||||
- colecovision
|
||||
- sega-sg1000
|
||||
|
||||
notes: |
|
||||
SMS Plus GX is a Sega Master System / Game Gear emulator with additional
|
||||
support for ColecoVision, SG-1000 and Sord M5 via TMS9918 VDP emulation.
|
||||
|
||||
BIOS loading happens in bios_init() (smsplus_libretro.c:203-252).
|
||||
Two BIOS files are supported:
|
||||
|
||||
1. bios.sms -- Sega Master System boot ROM. Optional. Loaded for all
|
||||
console types. A core option "smsplus_sms_bios" (default: disabled)
|
||||
controls whether it is used. When set to "auto" and the file exists,
|
||||
bios.enabled is set and the SMS boot sequence plays before games.
|
||||
|
||||
2. BIOS.col -- ColecoVision BIOS. Required for ColecoVision ROMs only.
|
||||
Loaded into coleco.rom (0x2000 bytes = 8 KB). Without it, ColecoVision
|
||||
games will not start and the core logs an error. The filename is
|
||||
case-sensitive (uppercase BIOS, lowercase .col).
|
||||
|
||||
Both files are read from the system directory root (no subdirectory).
|
||||
Path is built as: system_dir + "/" + filename (smsplus_libretro.c:211,234).
|
||||
|
||||
Console type is auto-detected from ROM file extension:
|
||||
.col -> CONSOLE_COLECO
|
||||
.sg -> CONSOLE_SG1000
|
||||
Or forced via the "smsplus_hardware" core option.
|
||||
|
||||
files:
|
||||
- name: "bios.sms"
|
||||
system: sega-master-system
|
||||
description: "Sega Master System boot ROM"
|
||||
required: false
|
||||
source_ref: "smsplus_libretro.c:211-229"
|
||||
notes: |
|
||||
Loaded into bios.rom (up to 1 MB allocated). Only active when the
|
||||
core option smsplus_sms_bios is set to "auto". Displays the Sega
|
||||
Master System startup screen before game execution.
|
||||
|
||||
- name: "BIOS.col"
|
||||
system: colecovision
|
||||
description: "ColecoVision BIOS ROM"
|
||||
required: true
|
||||
size: 8192
|
||||
source_ref: "smsplus_libretro.c:232-248"
|
||||
notes: |
|
||||
Required for ColecoVision games. Read as 0x2000 (8192) raw bytes
|
||||
into coleco.rom. Without this file, retro_load_game() returns false
|
||||
when loading .col files. Filename is case-sensitive on Linux.
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
sms:
|
||||
target: "bios.rom buffer, mapped via slot system"
|
||||
source_ref: "smsplus_libretro.c:208-229, source/memz80.c"
|
||||
notes: |
|
||||
When bios.enabled has both bits set (file present + option enabled),
|
||||
the BIOS ROM is paged into the Z80 address space at startup. The
|
||||
BIOS executes the boot animation, then hands off to the cartridge.
|
||||
coleco:
|
||||
target: "coleco.rom, mapped at 0x0000-0x1FFF"
|
||||
source_ref: "smsplus_libretro.c:245, source/memz80.c"
|
||||
notes: |
|
||||
The ColecoVision BIOS provides the interrupt handler, I/O routines
|
||||
and startup code. Mapped into the first 8 KB of Z80 address space.
|
||||
|
||||
console_detection:
|
||||
source_ref: "smsplus_libretro.c:605-609, source/loadrom.c:402"
|
||||
notes: |
|
||||
File extension .col forces CONSOLE_COLECO with MAPPER_NONE.
|
||||
Extension .sg forces CONSOLE_SG1000.
|
||||
The core option smsplus_hardware can override to: master system,
|
||||
master system II, game gear, game gear (sms compatibility), coleco.
|
||||
80
emulators/vircon32.yml
Normal file
80
emulators/vircon32.yml
Normal file
@@ -0,0 +1,80 @@
|
||||
emulator: Vircon32
|
||||
type: libretro
|
||||
source: "https://github.com/vircon32/vircon32-libretro"
|
||||
cores:
|
||||
- vircon32
|
||||
systems:
|
||||
- vircon32
|
||||
|
||||
notes: |
|
||||
Vircon32 is a libretro core for the Vircon32 fantasy console, a 32-bit
|
||||
virtual game console with fixed hardware specs (60 fps, 640x360, 16
|
||||
sound channels, up to 4 gamepads).
|
||||
|
||||
The Standard BIOS v1.2 is embedded directly into the core binary as a
|
||||
C header (embedded/StandardBios.h), generated from Assets/StandardBios.v32
|
||||
at build time. The core never strictly requires an external BIOS file.
|
||||
|
||||
BIOS loading logic (libretro.cpp:416-429):
|
||||
1. Check if system_dir/Vircon32Bios.v32 exists on disk
|
||||
2. If found, load it via Console.LoadBiosFile() (external override)
|
||||
3. If not found, load the embedded BIOS via LoadEmbeddedBios()
|
||||
|
||||
This runs inside context_reset() (libretro.cpp:473-474), which is called
|
||||
whenever the OpenGL context is (re)created.
|
||||
|
||||
The BIOS file format is a V32 ROM with a specific signature
|
||||
(ROMFileFormat::BiosSignature). It must contain exactly 1 texture and
|
||||
1 sound. The loader validates the signature, file structure, and version
|
||||
compatibility before loading program ROM, video ROM and audio ROM
|
||||
(V32Console.cpp:259-431).
|
||||
|
||||
The external BIOS file allows users to replace the boot animation with
|
||||
a custom one. Game compatibility is not affected by BIOS choice.
|
||||
|
||||
files:
|
||||
- name: "Vircon32Bios.v32"
|
||||
system: vircon32
|
||||
description: "Vircon32 console BIOS (custom override)"
|
||||
required: false
|
||||
size: 1073060
|
||||
md5: "73f04397cbb2dafcf2047b19a856153a"
|
||||
sha1: "67ddbcd018f03ed74b6e013074d92cc5f1f51c80"
|
||||
source_ref: "libretro.cpp:423-426"
|
||||
notes: |
|
||||
Optional external BIOS placed in the system directory root.
|
||||
If present, overrides the embedded Standard BIOS v1.2.
|
||||
The hashes above correspond to the Standard BIOS v1.2 bundled
|
||||
in Assets/StandardBios.v32 of the source repo. Custom BIOSes
|
||||
will have different hashes but must follow the V32 BIOS format.
|
||||
|
||||
platform_details:
|
||||
embedded_bios:
|
||||
version: "Standard BIOS v1.2"
|
||||
source_ref: "libretro.cpp:28, Assets/StandardBios.v32"
|
||||
file_size: 1073060
|
||||
md5: "73f04397cbb2dafcf2047b19a856153a"
|
||||
sha1: "67ddbcd018f03ed74b6e013074d92cc5f1f51c80"
|
||||
notes: |
|
||||
The standard BIOS is compiled into the core binary as
|
||||
embedded_StandardBios[] via a generated header file. It provides
|
||||
the boot animation (Vircon32 logo + startup sound). LoadEmbeddedBios()
|
||||
writes the raw bytes into a stringstream and passes it to
|
||||
Console.LoadBiosData().
|
||||
|
||||
bios_format:
|
||||
source_ref: "VirconDefinitions/FileFormats.hpp, V32Console.cpp:259-431"
|
||||
notes: |
|
||||
A V32 BIOS ROM file must have:
|
||||
- BiosSignature in the header (distinct from CartridgeSignature)
|
||||
- Exactly 1 texture (boot screen graphics)
|
||||
- Exactly 1 sound (boot sound)
|
||||
- Program ROM, Video ROM and Audio ROM in sequential layout
|
||||
The loader validates all of this before accepting the file.
|
||||
|
||||
cartridge_format:
|
||||
extensions: "v32"
|
||||
source_ref: "V32Console.cpp:468-696"
|
||||
notes: |
|
||||
Cartridges use CartridgeSignature with up to 256 textures and
|
||||
1024 sounds. Program ROM can be up to 128M words (512 MB).
|
||||
Reference in New Issue
Block a user