mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
feat: add 10 emulator profiles (119-series batch 3)
arduous (Arduboy AVR sim, no BIOS), boom3 (Doom 3, game data only), directxbox (Xbox, mcpx + cromwell), doukutsu_rs (Cave Story, no BIOS), meteor (GBA, full HLE), nxengine (Cave Story, Doukutsu.exe + data/), tgbdual (Game Boy link, HLE), tic80 (fantasy console), virtualxt (IBM XT, open BIOS embedded), sdlpal (Sword & Fairy, 13 .mkf) 125 total profiles.
This commit is contained in:
43
emulators/arduous.yml
Normal file
43
emulators/arduous.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
emulator: Arduous
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/arduous"
|
||||
cores:
|
||||
- arduous
|
||||
systems:
|
||||
- arduboy
|
||||
|
||||
notes: |
|
||||
Arduous is an Arduboy emulator built on simavr (ATmega32U4 AVR simulator)
|
||||
with SSD1306 OLED display emulation, ported to libretro. It is distinct
|
||||
from the Ardens core, which is a separate Arduboy emulator.
|
||||
|
||||
No BIOS, bootloader, or system files are required. The core operates as a
|
||||
pure AVR simulator:
|
||||
|
||||
- The game content (.hex Intel HEX format) is parsed at load time via an
|
||||
in-tree ihex reader (arduous.cpp:60-166) and written directly into the
|
||||
simavr flash memory at the address specified in the hex file
|
||||
(arduous.cpp:189). No separate bootloader is loaded.
|
||||
|
||||
- The MCU is hardcoded to atmega32u4 at 16 MHz (arduous.h:70-71).
|
||||
simavr handles CPU initialization internally via avr_make_mcu_by_name().
|
||||
|
||||
- A commented-out loadFirmware() function (arduous.cpp:22-29) suggests
|
||||
ELF firmware loading was considered but never implemented.
|
||||
|
||||
- EEPROM (1024 bytes), system RAM, and VRAM are exposed via the libretro
|
||||
memory interface (RETRO_MEMORY_SAVE_RAM, RETRO_MEMORY_SYSTEM_RAM,
|
||||
RETRO_MEMORY_VIDEO_RAM) but are not loaded from external files.
|
||||
|
||||
- The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. The
|
||||
retro_load_game() function only reads the content data buffer passed
|
||||
by the frontend (libretro.cpp:108-110).
|
||||
|
||||
- RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME is set to false (libretro.cpp:123),
|
||||
meaning a game ROM is always required.
|
||||
|
||||
Supported ROM format: Intel HEX (.hex) only. The valid_extensions field
|
||||
lists "hex". A TODO comment mentions .arduboy ZIP support but it is not
|
||||
implemented.
|
||||
|
||||
files: []
|
||||
24
emulators/boom3.yml
Normal file
24
emulators/boom3.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
emulator: boom3
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/boom3"
|
||||
cores: [boom3, boom3_xp]
|
||||
systems: [doom3]
|
||||
verification: existence
|
||||
notes: >
|
||||
Doom 3 source port based on dhewm3 (GPL Doom 3 engine). The core accepts
|
||||
.pk4 extensions (retro_get_system_info sets valid_extensions = "pk4").
|
||||
Content is loaded directly from the .pk4 file path - the engine extracts
|
||||
the grandparent directory as fs_basepath (libretro.cpp:1097,1135-1136
|
||||
via extract_directory called twice on info->path) and expects the standard
|
||||
Doom 3 directory layout with base/ containing pak000.pk4 through pak008.pk4.
|
||||
BASE_GAMEDIR is hardcoded to "base" (Licensee.h:58). The boom3_xp variant
|
||||
compiles with _D3XP defined, which passes "+set fs_game d3xp" at startup
|
||||
(libretro.cpp:538-544) to load the Resurrection of Evil expansion from a
|
||||
d3xp/ subdirectory alongside base/. The filesystem code (FileSystem.cpp:2125)
|
||||
scans for .pk4 files in the game directory and loads them in order, with
|
||||
higher-numbered paks overriding lower ones. The core requires OpenGL
|
||||
(RETRO_ENVIRONMENT_SET_HW_RENDER) and XRGB8888 pixel format. All required
|
||||
files are commercial Doom 3 game data, not engine firmware. No BIOS or
|
||||
system files are needed in the RetroArch system directory.
|
||||
|
||||
files: []
|
||||
73
emulators/directxbox.yml
Normal file
73
emulators/directxbox.yml
Normal file
@@ -0,0 +1,73 @@
|
||||
emulator: DirectXBox
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-directxbox"
|
||||
cores:
|
||||
- directxbox
|
||||
systems:
|
||||
- xbox
|
||||
|
||||
# DirectXBox is an experimental original Xbox emulator written from scratch for
|
||||
# libretro. Status: alpha. Cromwell BIOS boots but cannot run games. Microsoft
|
||||
# BIOS does not boot yet (ATA/OHCI unimplemented). No audio, no HW acceleration.
|
||||
#
|
||||
# BIOS loading (libretro.cpp:199-210):
|
||||
# Paths are hardcoded relative to the system directory:
|
||||
# mcpx_rom_str = <system_dir>/mcpx_1.0.bin
|
||||
# bios_rom_str = <system_dir>/cromwell_1024.bin
|
||||
# Both are passed to Xbox::LoadBootRoms(flash, mcpx).
|
||||
# A commented-out alternative exists: xbox-3944.bin (Microsoft retail BIOS).
|
||||
#
|
||||
# LoadBootRoms (xbox.cpp:143-210):
|
||||
# 1. Opens flash ROM, validates size is a multiple of 0x10000
|
||||
# 2. Maps flash ROM to 0xFF000000-0xFFFFFFFF (mirrored to fill 16 MB)
|
||||
# 3. Opens MCPX ROM, validates size is exactly 512 bytes
|
||||
# 4. Overlays MCPX at the last 512 bytes of flash region
|
||||
# If MCPX path is empty, step 3-4 are skipped (Debug/Chihiro machines).
|
||||
# retro_load_game returns false if either file fails to load.
|
||||
#
|
||||
# Machine type (libretro_core_options.h:67-81):
|
||||
# Core option "libretro-xbox_machine-type" selects hardware revision.
|
||||
# Default "auto" detects from BIOS. Retail v1.0 uses McpxRomVersion::Mcpx1_0,
|
||||
# all other retail revisions use Mcpx1_1. Debug and Chihiro use McpxRomVersion::None
|
||||
# (no MCPX ROM needed).
|
||||
#
|
||||
# The .info file declares no firmware_count. Both files are mandatory for retail
|
||||
# machine types. The core has no fallback or built-in replacement.
|
||||
|
||||
files:
|
||||
- name: "mcpx_1.0.bin"
|
||||
path: "mcpx_1.0.bin"
|
||||
size: 512
|
||||
required: true
|
||||
note: >
|
||||
Xbox MCPX ROM (secret boot ROM on the southbridge). Contains the initial
|
||||
boot vector that loads the flash BIOS. Overlaid at the last 512 bytes of
|
||||
the 16 MB flash region (0xFFFFFE00-0xFFFFFFFF). Only needed for retail
|
||||
machine types; Debug and Chihiro skip this file.
|
||||
source_ref: "src/xbox.cpp:186-206, src/libretro/libretro.cpp:202"
|
||||
|
||||
- name: "cromwell_1024.bin"
|
||||
path: "cromwell_1024.bin"
|
||||
required: true
|
||||
note: >
|
||||
Cromwell open-source Xbox BIOS (1024 KB variant). Loaded as the flash ROM
|
||||
and mirrored across the 16 MB flash region at 0xFF000000. Size must be a
|
||||
multiple of 0x10000. This is the only BIOS that currently boots in the
|
||||
emulator. The Microsoft retail BIOS (xbox-3944.bin) is referenced in
|
||||
commented-out code but does not work yet.
|
||||
source_ref: "src/xbox.cpp:143-178, src/libretro/libretro.cpp:203-204"
|
||||
|
||||
notes:
|
||||
status: >
|
||||
Alpha stage. Only Cromwell BIOS boots. No commercial game compatibility.
|
||||
Missing ATA (hard drive), OHCI (USB/controllers), audio, and GPU HW
|
||||
acceleration. The core requires libvirt86 for x86 virtualization.
|
||||
microsoft_bios: >
|
||||
The source references xbox-3944.bin as an alternative flash ROM (Microsoft
|
||||
retail BIOS, typically 256 KB). It is commented out in libretro.cpp:204
|
||||
because ATA and OHCI hardware are not yet implemented, preventing the
|
||||
Microsoft BIOS from completing boot.
|
||||
machine_types: >
|
||||
xbox_database.cpp defines retail v1.0 through v1.6, debug, and chihiro
|
||||
variants. Each has different TV encoder (Conexant/Focus/XCalibur) and MCPX
|
||||
revision (X2/X3) settings. The core option auto-detects from the loaded BIOS.
|
||||
54
emulators/doukutsu_rs.yml
Normal file
54
emulators/doukutsu_rs.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
emulator: "doukutsu-rs"
|
||||
type: libretro
|
||||
source: "https://github.com/DrGlaucous/doukutsu-rs-libretro"
|
||||
cores:
|
||||
- doukutsu_rs
|
||||
systems:
|
||||
- cavestory
|
||||
|
||||
# doukutsu-rs (d-rs) is an open-source reimplementation of the Cave Story
|
||||
# (Doukutsu Monogatari) engine in Rust, ported to libretro by Dr. Glaucous.
|
||||
# It plays the original freeware Cave Story and Cave Story+ (Steam/Switch).
|
||||
#
|
||||
# The core does NOT use RetroArch's system directory for any BIOS or firmware.
|
||||
# get_system_directory() is defined in libretro.rs:1255 but never called by
|
||||
# the core (the import is commented out in core.rs:28).
|
||||
#
|
||||
# Instead, the core loads game data relative to the content path provided by
|
||||
# the frontend. The target is either a Doukutsu.exe (freeware) or a directory
|
||||
# containing a data/ subfolder (core.rs:226-233):
|
||||
#
|
||||
# content_path = "/path/to/Doukutsu.exe" (or directory for CS Switch)
|
||||
# resource_dir = parent_of(content_path) + "/data/"
|
||||
#
|
||||
# The data/ directory must contain the freeware Cave Story game assets:
|
||||
# npc.tbl, mrmap.bin, *.png, Stage/, Npc/, org/ (music), *.tsc (scripts)
|
||||
#
|
||||
# These are the original Pixel game files from Doukutsu.exe, extracted by
|
||||
# the doukutsu-rs/game-data repo (CSE2E-converted freeware data). They are
|
||||
# copyrighted by Daisuke "Pixel" Amaya but freely redistributable for
|
||||
# non-commercial use.
|
||||
#
|
||||
# Internal engine data (fonts, organya wavetables, gamecontrollerdb.txt,
|
||||
# touch overlay, lightmap) is compiled into the core binary via
|
||||
# include_bytes! in builtin_fs.rs, so nothing extra is needed in system/.
|
||||
#
|
||||
# The .info file (doukutsu_rs_libretro.info) declares:
|
||||
# supported_extensions = "exe|dll|so"
|
||||
# needs_fullpath = true
|
||||
# supports_no_game = true
|
||||
# notes = "(!) drs requires data ROM 'Cave Story (en).zip'."
|
||||
# "|(!) Load Content 'Doukutsu.exe', Also works with all other ports of CS"
|
||||
#
|
||||
# No firmware entries are declared in the .info file.
|
||||
# Valid extensions: exe, dll, so (loads the original game binary as content path)
|
||||
|
||||
notes: |
|
||||
No BIOS or firmware files required in the system directory.
|
||||
The core reads game data from a data/ subfolder next to the loaded content.
|
||||
Users must provide the Cave Story freeware game files (Doukutsu.exe and its
|
||||
data/ directory) or a Cave Story+ installation as the content to load.
|
||||
All engine-internal resources (fonts, wavetables, controller mappings) are
|
||||
built into the core binary.
|
||||
|
||||
files: []
|
||||
55
emulators/meteor.yml
Normal file
55
emulators/meteor.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
emulator: Meteor GBA
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/meteor-libretro"
|
||||
cores:
|
||||
- meteor
|
||||
systems:
|
||||
- nintendo-gba
|
||||
|
||||
notes: |
|
||||
Meteor is a Game Boy Advance emulator by Philippe Daouadi (2009-2011).
|
||||
|
||||
The libretro port does NOT load or use any external BIOS file. The core has
|
||||
a complete HLE BIOS implementation (ameteor/source/bios.cpp) that handles
|
||||
GBA SWI calls directly in C++. When no real BIOS is loaded (HasBios() returns
|
||||
false), Cpu::SoftwareInterrupt() dispatches SWI calls to the HLE handlers
|
||||
instead of executing the BIOS ROM (ameteor/source/cpu.cpp:244-311).
|
||||
|
||||
The standalone frontends (GTK, text) expose LoadBios() for optional real BIOS
|
||||
loading, but the libretro port (libretro/libretro.cpp) never calls LoadBios()
|
||||
and never queries RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. The retro_load_game()
|
||||
function only loads the ROM via LoadRom().
|
||||
|
||||
HLE SWI coverage: SoftReset (0x00), RegisterRamReset (0x01), Halt (0x02),
|
||||
IntrWait (0x04), VBlankIntrWait (0x05), Div (0x06), DivArm (0x07),
|
||||
Sqrt (0x08), ArcTan (0x09), ArcTan2 (0x0A), CpuSet (0x0B),
|
||||
CpuFastSet (0x0C), BgAffineSet (0x0E), ObjAffineSet (0x0F),
|
||||
LZ77UnCompWram (0x11), LZ77UnCompVram (0x12), HuffUnComp (0x13),
|
||||
RLUnCompWram (0x14), RLUnCompVram (0x15).
|
||||
|
||||
Missing from HLE: Stop (0x03), BitUnPack (0x10), Diff8bitUnFilter (0x16-0x17),
|
||||
Diff16bitUnFilter (0x18), SoundBias (0x19), SoundDriverInit (0x1A-0x1F),
|
||||
MidiKey2Freq (0x1F), SoundDriverVSyncOff/On (0x28-0x29), GetBiosChecksum (0x0D).
|
||||
|
||||
The BIOS memory region (0x00000000-0x00003FFF, 16 KB) is allocated only if
|
||||
LoadBios() is called. Memory reads to this region return BIOS protection values
|
||||
(0x0E for 8-bit, 0xF00E for 16-bit, 0xE1B0F00E for 32-bit) when no BIOS is
|
||||
loaded and PC is outside the BIOS area.
|
||||
|
||||
Bios000h() (entry point) initializes stack pointers and jumps to 0x08000004,
|
||||
matching real GBA hardware boot sequence. In the libretro port, retro_reset()
|
||||
resets all units except BIOS and ROM memory.
|
||||
|
||||
files: []
|
||||
|
||||
platform_details:
|
||||
gba:
|
||||
bios_size: 16384 # 0x4000
|
||||
hle_bios: true
|
||||
source_ref: "ameteor/source/bios.cpp, ameteor/source/cpu.cpp:244-311"
|
||||
notes: |
|
||||
Full HLE BIOS. The libretro port never loads an external BIOS file.
|
||||
Cpu::SoftwareInterrupt() checks HasBios() -- if false (always in libretro),
|
||||
SWI calls are routed to C++ reimplementations. If a real BIOS were loaded
|
||||
(standalone only), execution would go through the actual BIOS ROM code via
|
||||
SoftwareInterrupt() -> branch to 0x08.
|
||||
64
emulators/nxengine.yml
Normal file
64
emulators/nxengine.yml
Normal file
@@ -0,0 +1,64 @@
|
||||
emulator: NXEngine
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/nxengine-libretro"
|
||||
systems: [cave-story]
|
||||
|
||||
notes: |
|
||||
NXEngine is an open-source reimplementation of the Cave Story (Doukutsu
|
||||
Monogatari) engine by Studio Pixel. It is not an emulator but a source port
|
||||
that loads the original freeware game data directly.
|
||||
|
||||
The core requires the original freeware Cave Story distribution placed in
|
||||
{system_dir}/nxengine/. When launched without a content file, it looks for
|
||||
Doukutsu.exe at that path (libretro.cpp:254-259). When launched with a .exe
|
||||
content file, it uses the parent directory of that file instead
|
||||
(libretro.cpp:244).
|
||||
|
||||
At startup (main.cpp:66-90), the core opens Doukutsu.exe and extracts from
|
||||
it: ORG music files (extractorg.c), PXT sound effects (extractpxt.c), stage
|
||||
tile attributes (extractstages.c), bitmap graphics, and the wavetable
|
||||
(cachefiles.c:484). These are kept in memory, not written to disk.
|
||||
|
||||
The data/ directory must exist alongside Doukutsu.exe with the full game
|
||||
asset tree: 30 root-level files (sprites, backgrounds, script tables),
|
||||
36 NPC sprite sheets in data/Npc/, and 333 stage files in data/Stage/
|
||||
(maps .pxm, tile attributes .pxa, entity lists .pxe, scripts .tsc, and
|
||||
tileset images via Prt*.pbm). The core verifies data/ exists by checking
|
||||
for data/npc.tbl (main.cpp:47-63).
|
||||
|
||||
The core also reads endpic/ bitmaps for ending sequences, extracted from
|
||||
Doukutsu.exe at runtime (cachefiles.c:460-484).
|
||||
|
||||
All required files ship in the datafiles/ directory of the libretro repo
|
||||
itself, since Cave Story is freeware. No separate BIOS or firmware is
|
||||
needed. The entire freeware distribution is the "system" requirement.
|
||||
|
||||
sprites.sif has a compiled-in fallback (sprites_sif.h) and is the only
|
||||
data file that can be missing without a fatal error (cachefiles.c:515-521).
|
||||
|
||||
Valid content extension: .exe (retro_get_system_info, libretro.cpp:96).
|
||||
|
||||
files:
|
||||
- name: "Doukutsu.exe"
|
||||
system: cave-story
|
||||
description: "Cave Story freeware executable (data source for music, sfx, bitmaps, wavetable)"
|
||||
required: true
|
||||
size: 1478656
|
||||
md5: "38695d3d69d7a0ada8178072dad4c58b"
|
||||
sha1: "bb2d0441e073da9c584f23c2ad8c7ab8aac293bf"
|
||||
source_ref: "main.cpp:77-78 (opened for extraction), libretro.cpp:258 (existence check)"
|
||||
notes: "Placed in system/nxengine/. The core extracts ORG music, PXT sounds, stage tile attributes, BMP graphics, and wavetable.dat from this binary at each launch."
|
||||
|
||||
- name: "data/npc.tbl"
|
||||
system: cave-story
|
||||
description: "NPC attribute table (entity behavior flags, HP, damage, display rect offsets)"
|
||||
required: true
|
||||
source_ref: "main.cpp:50 (existence check for data/ directory validation)"
|
||||
notes: "Located in system/nxengine/data/. The core uses this file to verify the data directory is present."
|
||||
|
||||
- name: "data/"
|
||||
system: cave-story
|
||||
description: "Full game asset directory tree (399 files: sprites, NPC sheets, stage maps, scripts, backgrounds)"
|
||||
required: true
|
||||
source_ref: "cachefiles.c:38-480 (complete file list loaded at init)"
|
||||
notes: "Must contain root assets (Arms.pbm, MyChar.pbm, etc.), Npc/ (36 sprite sheets), and Stage/ (333 map/script/tileset files). All files from the original freeware release."
|
||||
199
emulators/sdlpal.yml
Normal file
199
emulators/sdlpal.yml
Normal file
@@ -0,0 +1,199 @@
|
||||
emulator: SDLPAL
|
||||
type: libretro
|
||||
source: "https://github.com/sdlpal/sdlpal"
|
||||
cores:
|
||||
- sdlpal
|
||||
systems:
|
||||
- sdlpal
|
||||
|
||||
# SDLPAL is an open-source reimplementation of the classic Chinese RPG
|
||||
# "Xian Jian Qi Xia Zhuan" (Sword and Fairy / PAL) by SoftStar Inc.
|
||||
#
|
||||
# It does NOT include any game data. The original game files are proprietary
|
||||
# and must be obtained separately (e.g. from the Steam release).
|
||||
#
|
||||
# The core accepts a .cfg file pointing to the game directory (needs_fullpath).
|
||||
# When launched without a game (supports_no_game = true), it looks for data
|
||||
# in <system_dir>/sdlpal/ (libretro.c:201-204).
|
||||
#
|
||||
# Data file search (util.c:728-781, UTIL_CheckResourceFiles):
|
||||
# Required: 13 common .mkf archives + message file (word.dat or m.msg)
|
||||
# Optional: sound files (voc.mkf, sounds.mkf), music files (midi.mkf, mus.mkf)
|
||||
#
|
||||
# Additional optional files loaded at runtime:
|
||||
# desc.dat - object descriptions (global.c:204, DOS version only)
|
||||
# mus.mkf - MIDI music archive (audio.c:305)
|
||||
#
|
||||
# All files are game data, not BIOS or firmware. No system files are needed
|
||||
# beyond the original game resource files.
|
||||
|
||||
notes: |
|
||||
No BIOS or firmware required. SDLPAL is a game engine that needs the
|
||||
original PAL (Sword and Fairy) game data files to run.
|
||||
|
||||
Place game files in <system_dir>/sdlpal/ or point a .cfg file at the
|
||||
game directory. The game is available on Steam (app 1546570).
|
||||
|
||||
The core supports both DOS (original 1995) and Win95 (1998 remake)
|
||||
versions of the game data. It auto-detects which version is present.
|
||||
|
||||
files:
|
||||
# ================================================================
|
||||
# Required game data archives (proprietary, not distributable)
|
||||
# util.c:733-737 - UTIL_CheckResourceFiles common_files[]
|
||||
# ================================================================
|
||||
|
||||
- name: "abc.mkf"
|
||||
path: "sdlpal/abc.mkf"
|
||||
required: true
|
||||
source_ref: "util.c:734, battle.c:879, global.c:55"
|
||||
note: >
|
||||
Animation/battle character data archive. Required for battle scenes
|
||||
and character animations.
|
||||
|
||||
- name: "ball.mkf"
|
||||
path: "sdlpal/ball.mkf"
|
||||
required: true
|
||||
source_ref: "util.c:734, global.c:177"
|
||||
note: >
|
||||
Ball/magic effect graphics archive.
|
||||
|
||||
- name: "data.mkf"
|
||||
path: "sdlpal/data.mkf"
|
||||
required: true
|
||||
source_ref: "util.c:734, global.c:178"
|
||||
note: >
|
||||
Core game data archive containing scripts, events, and game logic.
|
||||
|
||||
- name: "f.mkf"
|
||||
path: "sdlpal/f.mkf"
|
||||
required: true
|
||||
source_ref: "util.c:734, global.c:179"
|
||||
note: >
|
||||
Face/portrait graphics archive for character dialog.
|
||||
|
||||
- name: "fbp.mkf"
|
||||
path: "sdlpal/fbp.mkf"
|
||||
required: true
|
||||
source_ref: "util.c:735, global.c:175"
|
||||
note: >
|
||||
Full-screen background picture archive (cutscenes, title screen).
|
||||
|
||||
- name: "fire.mkf"
|
||||
path: "sdlpal/fire.mkf"
|
||||
required: true
|
||||
source_ref: "util.c:735, global.c:180"
|
||||
note: >
|
||||
Fire/spell effect graphics archive.
|
||||
|
||||
- name: "gop.mkf"
|
||||
path: "sdlpal/gop.mkf"
|
||||
required: true
|
||||
source_ref: "util.c:735, res.c:234"
|
||||
note: >
|
||||
GOP (game object palette/graphics) archive.
|
||||
|
||||
- name: "map.mkf"
|
||||
path: "sdlpal/map.mkf"
|
||||
required: true
|
||||
source_ref: "util.c:735, res.c:233, global.c:55"
|
||||
note: >
|
||||
Map tile and layout data archive for all game locations.
|
||||
|
||||
- name: "mgo.mkf"
|
||||
path: "sdlpal/mgo.mkf"
|
||||
required: true
|
||||
source_ref: "util.c:736, global.c:176"
|
||||
note: >
|
||||
Map graphic object (sprite overlay) archive.
|
||||
|
||||
- name: "pat.mkf"
|
||||
path: "sdlpal/pat.mkf"
|
||||
required: true
|
||||
source_ref: "util.c:736, palette.c:53"
|
||||
note: >
|
||||
Palette data archive for color management.
|
||||
|
||||
- name: "rgm.mkf"
|
||||
path: "sdlpal/rgm.mkf"
|
||||
required: true
|
||||
source_ref: "util.c:736, global.c:181"
|
||||
note: >
|
||||
RGM graphics archive.
|
||||
|
||||
- name: "rng.mkf"
|
||||
path: "sdlpal/rng.mkf"
|
||||
required: true
|
||||
source_ref: "util.c:736, rngplay.c:402"
|
||||
note: >
|
||||
RNG animation/cutscene sequence archive.
|
||||
|
||||
- name: "sss.mkf"
|
||||
path: "sdlpal/sss.mkf"
|
||||
required: true
|
||||
source_ref: "util.c:737, global.c:182"
|
||||
note: >
|
||||
SSS data archive.
|
||||
|
||||
# ================================================================
|
||||
# Message/text data (one of these is required)
|
||||
# util.c:739-741 - msg_files[]
|
||||
# ================================================================
|
||||
|
||||
- name: "word.dat"
|
||||
path: "sdlpal/word.dat"
|
||||
required: true
|
||||
source_ref: "util.c:741, text.c:719, global.c:197"
|
||||
note: >
|
||||
Game text/dialog data file (DOS version). Contains all in-game text
|
||||
strings. Either word.dat or m.msg is needed depending on game version.
|
||||
|
||||
- name: "m.msg"
|
||||
path: "sdlpal/m.msg"
|
||||
required: false
|
||||
source_ref: "util.c:740"
|
||||
note: >
|
||||
Alternative message file format. Used by some game distributions
|
||||
instead of word.dat. The core checks for a configured message file
|
||||
first, then falls back to word.dat.
|
||||
|
||||
# ================================================================
|
||||
# Sound effect files (optional, at least one recommended)
|
||||
# util.c:743 - sound_files[]
|
||||
# ================================================================
|
||||
|
||||
- name: "voc.mkf"
|
||||
path: "sdlpal/voc.mkf"
|
||||
required: false
|
||||
source_ref: "util.c:743, sound.c:969"
|
||||
note: >
|
||||
VOC format sound effects archive (DOS version). One of voc.mkf or
|
||||
sounds.mkf is needed for sound effects.
|
||||
|
||||
- name: "sounds.mkf"
|
||||
path: "sdlpal/sounds.mkf"
|
||||
required: false
|
||||
source_ref: "util.c:743, sound.c:964"
|
||||
note: >
|
||||
WAV format sound effects archive (Win95 version). Alternative to
|
||||
voc.mkf with higher quality audio.
|
||||
|
||||
# ================================================================
|
||||
# Music files (optional, at least one recommended)
|
||||
# util.c:744 - music_files[]
|
||||
# ================================================================
|
||||
|
||||
- name: "midi.mkf"
|
||||
path: "sdlpal/midi.mkf"
|
||||
required: false
|
||||
source_ref: "util.c:744, midi.c:78, midi_tsf.c:68"
|
||||
note: >
|
||||
MIDI music archive. Used when Music type is set to MIDI.
|
||||
|
||||
- name: "mus.mkf"
|
||||
path: "sdlpal/mus.mkf"
|
||||
required: false
|
||||
source_ref: "util.c:744, audio.c:305"
|
||||
note: >
|
||||
RIX/OPL music archive. Default music source for the game. Contains
|
||||
FM synthesizer music data played through OPL emulation.
|
||||
29
emulators/tgbdual.yml
Normal file
29
emulators/tgbdual.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
emulator: TGB Dual
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/tgbdual-libretro"
|
||||
cores:
|
||||
- TGB Dual
|
||||
systems:
|
||||
- nintendo-gb
|
||||
- nintendo-gbc
|
||||
|
||||
notes: |
|
||||
TGB Dual is a Game Boy / Game Boy Color emulator by GIGO and Hii with
|
||||
link cable support for two Game Boy units side by side.
|
||||
|
||||
No BIOS or boot ROM files are required or supported. The core does not
|
||||
call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY for firmware loading and does
|
||||
not attempt to open any files from the system directory.
|
||||
|
||||
In cpu.cpp:57, the program counter is initialized to 0x100 (post-boot ROM
|
||||
entry point), and cpu::reset() sets all registers to their post-boot
|
||||
values directly (AF=0x01B0 for DMG, 0x11B0 for CGB). This means the
|
||||
core completely bypasses the boot ROM sequence via HLE register setup.
|
||||
|
||||
The load_rom() path in libretro.cpp passes ROM data directly to the gb
|
||||
class without any BIOS file concatenation or boot ROM mapping.
|
||||
|
||||
Supported extensions: gb, dmg, gbc, cgb, sgb.
|
||||
Library version: v0.8.3.
|
||||
|
||||
files: []
|
||||
44
emulators/tic80.yml
Normal file
44
emulators/tic80.yml
Normal file
@@ -0,0 +1,44 @@
|
||||
emulator: TIC-80
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/TIC-80"
|
||||
cores:
|
||||
- tic80
|
||||
systems:
|
||||
- tic80
|
||||
|
||||
notes: |
|
||||
TIC-80 is a fantasy computer for making, playing and sharing tiny games.
|
||||
The libretro port wraps the nesbox/TIC-80 engine as a submodule.
|
||||
|
||||
The core loads .tic cartridge files (and .png for cart-as-image format)
|
||||
entirely through the libretro data buffer (need_fullpath = false,
|
||||
tic80_libretro.c:340). Content bytes are passed directly to tic80_load()
|
||||
at retro_load_game() (tic80_libretro.c:1152).
|
||||
|
||||
The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. There is no
|
||||
code path that reads any file from the system directory. No BIOS, firmware,
|
||||
or boot ROM exists for this platform -- TIC-80 is a self-contained virtual
|
||||
machine with all system resources built into the engine binary.
|
||||
|
||||
The TIC-80 VM provides 80x45 tilemap, 240x136 screen, 256 8x8 sprites,
|
||||
4 channels of sound, and supports Lua, Moonscript, JavaScript, Wren,
|
||||
Fennel, Squirrel, Ruby, Python, and Janet as scripting languages.
|
||||
|
||||
files: []
|
||||
|
||||
platform_details:
|
||||
cartridge_format:
|
||||
extensions: "tic, png"
|
||||
source_ref: "tic80_libretro.c:339"
|
||||
notes: |
|
||||
.tic is the native cartridge format containing code, sprites, map,
|
||||
sound, and music data. .png support allows loading cartridges
|
||||
encoded as cover images (code stored in PNG metadata).
|
||||
|
||||
runtime:
|
||||
source_ref: "nesbox/TIC-80 (submodule at core/)"
|
||||
notes: |
|
||||
The entire TIC-80 runtime (CPU, GPU, APU, scripting engines) is
|
||||
compiled into the core binary. No external dependencies at runtime.
|
||||
State serialization uses TIC_PERSISTENT_SIZE * 4 bytes of pmem()
|
||||
data (tic80_libretro.c:1203-1243).
|
||||
52
emulators/virtualxt.yml
Normal file
52
emulators/virtualxt.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
emulator: VirtualXT
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/virtualxt"
|
||||
systems: [ibm-pc]
|
||||
|
||||
# VirtualXT is a Turbo PC/XT emulator (Intel 8088/186). Written in Odin.
|
||||
# All BIOS ROMs are embedded at compile time via #load() directives in
|
||||
# src/frontend/core.odin. No external BIOS files are required at runtime.
|
||||
|
||||
# The default machine setup (setup_default_machine) loads these embedded ROMs:
|
||||
# - BIOS: GLaBIOS 0.2.6 or Turbo XT BIOS 3.1 (user selects via core option)
|
||||
# - VGA BIOS: vgabios.bin (loaded when VGA video mode is selected)
|
||||
# - Disk Extension: vxtx.bin (always loaded)
|
||||
# - RTC BIOS: GLaTICK 0.8.4 (loaded when RTC is enabled)
|
||||
|
||||
# Core option "virtualxt_bios" selects between GLaBIOS and TurboXT at startup.
|
||||
# Core option "virtualxt_video" selects CGA or VGA (VGA loads vgabios.bin).
|
||||
# Core option "virtualxt_rtc" selects GLaTICK or none (loads GLaTICK_0.8.4_AT.ROM).
|
||||
|
||||
# INI config files (.ini extension) can reference external ROM paths, but the
|
||||
# standard usage path does not require any files in the system directory.
|
||||
|
||||
# Embedded BIOS files (shipped inside the compiled core binary):
|
||||
#
|
||||
# GLABIOS.ROM 8192 bytes md5:bbeb6f7e2175732eebc3f0b49976347a sha1:701bb8ab0f9797581f795394a5c09eb147ff93d2
|
||||
# pcxtbios.bin 8192 bytes md5:336bf8888a22075caa09e2e8e4d96a3b sha1:f7b73e441fd7b582a493837658fa17407e851d7c
|
||||
# vgabios.bin 32768 bytes md5:9c80b0a0784dcf80f84c35b1cc8db81b sha1:251d85a90d3df3d116c30568167587ee3819f623
|
||||
# vxtx.bin 2048 bytes md5:c6c7eef021e5e40503cb5ae860f02fde sha1:ccd27f24e5d7bd7d14b336be5b79b7ef8ba6e6be
|
||||
# GLaTICK_0.8.4_AT.ROM 2048 bytes md5:06ead46b977ffb4a056844e2965653eb sha1:025c5d6d9391698488cebad11623ee239ce070a2
|
||||
|
||||
# Source references:
|
||||
# src/frontend/core.odin:295-370 - BIOS embedding via #load("bios:...", []byte)
|
||||
# src/frontend/options.odin:55 - core option "virtualxt_bios" (GLaBIOS|TurboXT)
|
||||
# src/modules/rom/rom.odin:42-67 - load_from_file (INI path only)
|
||||
# bios/ - open-source BIOS files (GLaBIOS, TurboXT, vgabios)
|
||||
|
||||
files: []
|
||||
|
||||
notes:
|
||||
bios_approach: >
|
||||
VirtualXT embeds all BIOS ROMs into the core binary at compile time using
|
||||
Odin's #load() directive. The bios/ directory in the source tree contains
|
||||
open-source replacements: GLaBIOS (GPL), Turbo XT BIOS 3.1, and vgabios.
|
||||
No proprietary IBM PC/XT BIOS is needed.
|
||||
ini_config: >
|
||||
When loading an .ini file, the core can instantiate ROM modules with external
|
||||
file paths (rom.odin handles string values for "mem" via load_from_file).
|
||||
This is an advanced usage path; standard operation needs no external files.
|
||||
supported_extensions: "img, ini, exe, com"
|
||||
supported_features: >
|
||||
Intel 8088/186 CPU, CGA/VGA graphics, EMS memory, ethernet adapter,
|
||||
host file sharing (RIFS2), GDB server, floppy and hard disk images.
|
||||
Reference in New Issue
Block a user