mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-21 08:12:34 -05:00
feat: add 10 emulator profiles (batch 6)
gpsp (GBA, open BIOS fallback), ecwolf (ecwolf.pk3), prboom (prboom.wad), x1 (Sharp X1, 5 files in xmil/), minivmac (MacII.ROM/MacIIx.ROM), theodore (Thomson, all embedded), crocods (CPC 6128, all embedded), vba_next (GBA, HLE fallback), same_cdi (CD-i, 3 MAME ZIPs + 2 undeclared), beetle_lynx (lynxboot.img) 71 total profiles. Cross-reference: 690 undeclared, 186 in repo.
This commit is contained in:
@@ -0,0 +1,32 @@
|
|||||||
|
emulator: Beetle Lynx (Mednafen Lynx)
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/beetle-lynx-libretro"
|
||||||
|
cores: [mednafen_lynx]
|
||||||
|
systems: [atari-lynx]
|
||||||
|
verification: existence
|
||||||
|
|
||||||
|
notes: >
|
||||||
|
Fork of Mednafen's Handy module for Atari Lynx emulation via libretro.
|
||||||
|
The core loads lynxboot.img from the system directory at game load time
|
||||||
|
(libretro.cpp:191). CRom constructor in rom.cpp reads exactly 512 bytes
|
||||||
|
from the file. If the file is missing or undersized, the ROM array is
|
||||||
|
filled with 0x88 (DEFAULT_ROM_CONTENTS) and the core continues without
|
||||||
|
error, but games will not boot correctly without the real boot ROM.
|
||||||
|
The cart database in cart.cpp identifies the BIOS by CRC32 0x0d973c9d
|
||||||
|
("[BIOS] Atari Lynx (USA, Europe)", size 512).
|
||||||
|
No hash validation is performed on the BIOS at load time.
|
||||||
|
Core options: lynx_rot_screen (screen rotation), lynx_pix_format
|
||||||
|
(pixel format), lynx_force_60hz (force 60Hz refresh).
|
||||||
|
ROM extensions: .lnx, .lyx, .bll, .o
|
||||||
|
|
||||||
|
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:191, rom.cpp:50-78, cart.cpp:67"
|
||||||
|
notes: "512-byte boot ROM. Core silently degrades without it but games will not run."
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
emulator: CrocoDS
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/libretro-crocods"
|
||||||
|
cores:
|
||||||
|
- crocods
|
||||||
|
systems:
|
||||||
|
- amstrad-cpc
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
CrocoDS is an Amstrad CPC 6128 emulator ported to libretro. Supports
|
||||||
|
.dsk, .sna, and .kcr file formats.
|
||||||
|
|
||||||
|
All system ROMs are compiled directly into the core binary as C byte
|
||||||
|
arrays. No external BIOS files are required.
|
||||||
|
|
||||||
|
Embedded ROMs (crocods-core/):
|
||||||
|
- cpc6128.bin.c: cpc6128_bin[32768] - CPC 6128 OS (16KB) + BASIC 1.1 (16KB)
|
||||||
|
- romdisc.bin.c: romdisc_bin[16384] - AMSDOS disk controller ROM (16KB)
|
||||||
|
|
||||||
|
ROM initialization in InitMemCPC() (crocods-core/vga.c:185-200):
|
||||||
|
- ROMINF (lower ROM, 16KB): first half of cpc6128_bin (OS)
|
||||||
|
- ROMEXT[0] (upper ROM slot 0, 16KB): second half of cpc6128_bin (BASIC)
|
||||||
|
- ROMEXT[7] (upper ROM slot 7, 16KB): romdisc_bin (AMSDOS)
|
||||||
|
|
||||||
|
Called from HardResetCPC() (crocods-core/platform.c:1009-1020) using
|
||||||
|
the extern byte arrays directly. No filesystem ROM loading exists in
|
||||||
|
the libretro path.
|
||||||
|
|
||||||
|
A Multiface ROM loader exists (crocods-core/multiface.c:51-61) that
|
||||||
|
reads LocRomMulti via fopen(), but InitMultiface() is never called
|
||||||
|
from the libretro build or platform.c. Dead code in libretro context.
|
||||||
|
|
||||||
|
The core does not request retro_system_directory or declare any
|
||||||
|
firmware entries in the .info file. need_fullpath is false.
|
||||||
|
|
||||||
|
Only the CPC 6128 model is emulated (no CPC 464/664 selection).
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
platform_details:
|
||||||
|
bios_mapping:
|
||||||
|
source_ref: "crocods-core/vga.c:185-200, crocods-core/platform.c:1009-1020"
|
||||||
|
notes: |
|
||||||
|
All ROMs are embedded. InitMemCPC() copies cpc6128_bin and romdisc_bin
|
||||||
|
into ROMINF and ROMEXT arrays via memcpy. No filesystem lookup occurs.
|
||||||
|
retro_set_environment() does not request system_directory.
|
||||||
|
|
||||||
|
embedded_roms:
|
||||||
|
source_ref: "crocods-core/cpc6128.bin.c, crocods-core/romdisc.bin.c"
|
||||||
|
notes: |
|
||||||
|
2 ROM sets embedded as C byte arrays:
|
||||||
|
cpc6128_bin (32KB) - CPC 6128 OS (lower 16KB) + BASIC 1.1 (upper 16KB)
|
||||||
|
romdisc_bin (16KB) - AMSDOS disk controller ROM, mapped to slot 7
|
||||||
|
|
||||||
|
model_rom_map:
|
||||||
|
source_ref: "crocods-core/vga.c:189-192"
|
||||||
|
notes: |
|
||||||
|
CPC 6128 only: OS in ROMINF, BASIC in ROMEXT[0], AMSDOS in ROMEXT[7]
|
||||||
|
emulator_patch_ROM() applies language patches to ROMINF after loading
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
emulator: ECWolf
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/ecwolf"
|
||||||
|
cores: [ecwolf]
|
||||||
|
systems: [wolfenstein3d]
|
||||||
|
verification: md5
|
||||||
|
notes: >
|
||||||
|
Wolfenstein 3D source port. Plays Wolf3D (wl6/wl1), Spear of Destiny (sod/sdm),
|
||||||
|
Super 3D Noah's Ark (n3d), and community pk3 mods. The core requires ecwolf.pk3
|
||||||
|
in the system directory - this is the engine data package built from wadsrc/static/
|
||||||
|
containing IWADINFO definitions, palettes, sprites, map configs, and lump remappers.
|
||||||
|
Game data files (vswap, gamemaps, vgagraph, audiot) are loaded from the content
|
||||||
|
directory, not the system directory. The core auto-detects the game variant by
|
||||||
|
scanning lump contents against IWADINFO MustContain rules. Spear of Destiny
|
||||||
|
mission packs (sd2/sd3) and Mac Wolfenstein variants are also supported.
|
||||||
|
Blake Stone and Rise of the Triad support is flagged as Preview.
|
||||||
|
The SelectGame path searches: content directory, system directory, BaseDataPaths
|
||||||
|
config, then platform-specific paths (Steam, GOG installs on desktop).
|
||||||
|
|
||||||
|
files:
|
||||||
|
- name: "ecwolf.pk3"
|
||||||
|
description: "ECWolf engine data package"
|
||||||
|
required: true
|
||||||
|
md5: "c011b428819eea4a80b455c245a5a04d"
|
||||||
|
source_ref: "ecwolf_libretro.info:firmware0, version.h:MAIN_PK3, wl_iwad.cpp:SelectGame"
|
||||||
|
notes: >
|
||||||
|
Built from wadsrc/static/ via zipdir. Contains IWADINFO (game detection rules),
|
||||||
|
palettes (wolfpal, spearpal, blakepal, noahpal), map lump remappers (wl6map,
|
||||||
|
sodmap, etc.), DECORATE actor definitions, MAPINFO, SNDINFO, SNDSEQ, textures,
|
||||||
|
sprites, fonts, and localization strings. Without this file the core errors
|
||||||
|
with "Could not open ecwolf.pk3!". The md5 corresponds to the version shipped
|
||||||
|
with the current libretro buildbot release.
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
emulator: gpSP
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/gpsp"
|
||||||
|
cores:
|
||||||
|
- gpsp
|
||||||
|
systems:
|
||||||
|
- nintendo-gba
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
gpSP is a Game Boy Advance emulator originally by Exophase, ported to
|
||||||
|
libretro. Historically it required the official GBA BIOS to run. Current
|
||||||
|
versions ship a built-in open-source BIOS (bios/open_gba_bios.bin) compiled
|
||||||
|
from bios/source/ that covers most games.
|
||||||
|
|
||||||
|
The core option gpsp_bios controls BIOS selection:
|
||||||
|
auto (default) - try official gba_bios.bin, fall back to built-in
|
||||||
|
builtin - always use the built-in open-source BIOS
|
||||||
|
official - try gba_bios.bin, warn and fall back to built-in if missing
|
||||||
|
|
||||||
|
A second option gpsp_boot_mode selects startup behavior:
|
||||||
|
game (default) - skip BIOS intro, boot directly into game
|
||||||
|
bios - run the BIOS boot animation before launching
|
||||||
|
|
||||||
|
BIOS loading path (libretro/libretro.c:1093-1131):
|
||||||
|
1. Resolve system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY)
|
||||||
|
2. Append "/gba_bios.bin"
|
||||||
|
3. load_bios() reads 0x4000 (16 KB) into bios_rom[]
|
||||||
|
4. Sanity check: bios_rom[0] must be 0x18 (ARM branch opcode)
|
||||||
|
5. On failure, memcpy open_gba_bios_rom[] as fallback
|
||||||
|
|
||||||
|
The official BIOS improves compatibility for a few games that rely on
|
||||||
|
precise SWI behavior or BIOS checksum verification. The built-in BIOS
|
||||||
|
works for the vast majority of the GBA library.
|
||||||
|
|
||||||
|
files:
|
||||||
|
# -------------------------------------------------------
|
||||||
|
# Game Boy Advance - BIOS (optional, built-in fallback)
|
||||||
|
# -------------------------------------------------------
|
||||||
|
- name: gba_bios.bin
|
||||||
|
system: nintendo-gba
|
||||||
|
required: false
|
||||||
|
size: 16384 # 16 KB (0x4000)
|
||||||
|
note: "Official GBA BIOS. Built-in open-source BIOS used as fallback. Real BIOS needed for full SWI accuracy and boot logo."
|
||||||
|
source_ref: "libretro/libretro.c:1111"
|
||||||
|
|
||||||
|
platform_details:
|
||||||
|
gba:
|
||||||
|
bios_size: 16384 # 16 KB
|
||||||
|
hle_bios: true
|
||||||
|
source_ref: "libretro/libretro.c:1107-1131, bios/source/"
|
||||||
|
notes: |
|
||||||
|
The built-in BIOS (open_gba_bios_rom, 16 KB) is an open-source
|
||||||
|
reimplementation compiled from bios/source/. It implements most
|
||||||
|
SWI calls (SoftReset, RegisterRamReset, Halt, VBlankIntrWait,
|
||||||
|
arithmetic, decompression, sound, multiboot).
|
||||||
|
|
||||||
|
Validation is minimal: load_bios() in gba_memory.c reads exactly
|
||||||
|
0x4000 bytes. The libretro frontend checks bios_rom[0] == 0x18
|
||||||
|
(ARM branch instruction at reset vector) to reject garbage files.
|
||||||
|
No hash or checksum verification is performed.
|
||||||
|
|
||||||
|
The bios_type enum (main.h:56-61) defines three modes:
|
||||||
|
auto_detect - try official first, fall back to built-in
|
||||||
|
builtin_bios - skip file load entirely, use open_gba_bios_rom
|
||||||
|
official_bios - try file, warn on failure, still fall back
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
emulator: Mini vMac
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/libretro-minivmac"
|
||||||
|
systems: [macintosh-ii]
|
||||||
|
|
||||||
|
# Mini vMac is a Macintosh II emulator. The libretro port is hardcoded for
|
||||||
|
# Mac II emulation (CurEmMd = kEmMd_II) with 68020 CPU, FPU, ADB, VIA2, ASC.
|
||||||
|
# ROM is loaded from the RetroArch system directory.
|
||||||
|
|
||||||
|
# ROM loading order (OSGLUERETRO.c LoadMacRom):
|
||||||
|
# 1. <system>/MacIIx.ROM (tried first, same 256 KB size)
|
||||||
|
# 2. <system>/MacII.ROM (defined as RomFileName in CNFGRAPI.h)
|
||||||
|
# 3. --rom command line arg (if provided)
|
||||||
|
# 4. ~/.gryphel/mnvm_rom/MacII.ROM
|
||||||
|
# 5. app parent directory
|
||||||
|
# 6. current directory
|
||||||
|
|
||||||
|
# ROM size: kROM_Size = 0x00040000 = 262144 bytes (256 KB)
|
||||||
|
# ROM checksums defined in CNFGRAPI.h:
|
||||||
|
# kRomCheckSum1 = 0x9779D2C4 (Mac II v1)
|
||||||
|
# kRomCheckSum2 = 0x97221136 (Mac II v2)
|
||||||
|
# Note: DisableRomCheck = 1, so checksum validation is skipped at runtime
|
||||||
|
# (ROMEMDEV.c patches the ROM check jump). Any 256 KB Mac II ROM works.
|
||||||
|
|
||||||
|
files:
|
||||||
|
# -- MacII.ROM (primary, required) --
|
||||||
|
# Standard Macintosh II ROM image. This is the hardcoded RomFileName.
|
||||||
|
# The core reads exactly kROM_Size (262144) bytes from this file.
|
||||||
|
|
||||||
|
- name: "MacII.ROM"
|
||||||
|
path: "MacII.ROM"
|
||||||
|
required: true
|
||||||
|
size: 262144
|
||||||
|
source_ref: "minivmac/cfg/CNFGRAPI.h:32, minivmac/src/OSGLUERETRO.c:781"
|
||||||
|
note: >
|
||||||
|
Macintosh II ROM image (256 KB). The core loads this from the system
|
||||||
|
directory. Must be exactly 262144 bytes. ROM checksum verification is
|
||||||
|
disabled in the libretro build, so either Mac II ROM revision works.
|
||||||
|
|
||||||
|
# -- MacIIx.ROM (alternative, optional) --
|
||||||
|
# Tried before MacII.ROM in the loading sequence. The Mac IIx ROM is the
|
||||||
|
# same 256 KB size and is compatible with the Mac II emulation mode.
|
||||||
|
|
||||||
|
- name: "MacIIx.ROM"
|
||||||
|
path: "MacIIx.ROM"
|
||||||
|
required: false
|
||||||
|
size: 262144
|
||||||
|
source_ref: "minivmac/src/OSGLUERETRO.c:778"
|
||||||
|
note: >
|
||||||
|
Macintosh IIx ROM image (256 KB). Checked first in the ROM loading
|
||||||
|
sequence. If present, it takes priority over MacII.ROM. The Mac IIx
|
||||||
|
uses the same 68020-class architecture as the Mac II.
|
||||||
|
|
||||||
|
notes:
|
||||||
|
emulation_target: >
|
||||||
|
The libretro build is configured exclusively for Macintosh II emulation
|
||||||
|
(kEmMd_II). Build options: 68020 CPU, FPU enabled, ADB keyboard/mouse,
|
||||||
|
VIA2, ASC sound chip. Screen: 640x480, 8-bit color depth.
|
||||||
|
disk_formats: >
|
||||||
|
Supported disk image formats: .dsk, .img, .zip, .hvf, .cmd
|
||||||
|
The core auto-inserts the loaded content as a floppy disk.
|
||||||
|
Supports up to NumDrives simultaneous disk images.
|
||||||
|
rom_checksum_note: >
|
||||||
|
DisableRomCheck is set to 1 in ROMEMDEV.c, meaning the core patches out
|
||||||
|
the ROM checksum verification at boot. This allows any valid Mac II era
|
||||||
|
ROM to work regardless of exact revision.
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
emulator: PrBoom
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/libretro-prboom"
|
||||||
|
systems: [doom]
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
PrBoom is a Doom source port based on MBF (Marine's Best Friend), itself
|
||||||
|
derived from Boom. The libretro port plays Doom, Doom II, Final Doom,
|
||||||
|
FreeDoom, and custom WADs/PWADs.
|
||||||
|
|
||||||
|
The core requires prboom.wad, a small engine data WAD containing internal
|
||||||
|
resources: font glyphs, palette, colormaps, sine/tangent tables, gamma
|
||||||
|
tables, menu graphics, and a null sprite (TNT1A0). It is NOT a game WAD.
|
||||||
|
The file is generated at build time by the rdatawad tool from raw PPM
|
||||||
|
graphics and LMP lumps (see Makefile.prboomdata), but ships pre-built
|
||||||
|
in the repository root.
|
||||||
|
|
||||||
|
Without prboom.wad the core falls back to hardcoded internal defaults
|
||||||
|
(d_main.c:1073-1074), so the file is technically optional but expected
|
||||||
|
for correct rendering of menus, HUD digits, and extended features.
|
||||||
|
|
||||||
|
File search order (libretro.c I_FindFile, line 1743):
|
||||||
|
1. WAD directory (same folder as the loaded game WAD)
|
||||||
|
2. system/prboom/ subdirectory
|
||||||
|
3. system/ directory directly
|
||||||
|
4. Parent folders of WAD directory (recursive, if enabled)
|
||||||
|
|
||||||
|
The core accepts .wad, .iwad, .pwad, and .lmp extensions. Game IWADs
|
||||||
|
it recognizes (d_main.c:133-145): doom2f.wad, doom2.wad, plutonia.wad,
|
||||||
|
tnt.wad, freedoom2.wad, doom.wad, doomu.wad, freedoom1.wad,
|
||||||
|
freedoom.wad, doom1.wad.
|
||||||
|
|
||||||
|
The src/ directory contains a second, larger prboom.wad (228743 bytes,
|
||||||
|
md5 23afd6143cb1ffec99a46755f9209ea6) which is the upstream PrBoom
|
||||||
|
original. The root copy (143312 bytes) is the libretro-specific build.
|
||||||
|
|
||||||
|
files:
|
||||||
|
- name: "prboom.wad"
|
||||||
|
system: doom
|
||||||
|
description: "PrBoom engine data WAD (fonts, palette, colormaps, tables, menu graphics)"
|
||||||
|
required: false
|
||||||
|
size: 143312
|
||||||
|
md5: "72ae1b47820fcc93cc0df9c428d0face"
|
||||||
|
sha1: "5f4aed208301449c2e9514edfd325fe9dead76fa"
|
||||||
|
crc32: "a5751b99"
|
||||||
|
source_ref: "d_main.c:1069-1078 (PACKAGE .wad load), libretro.c:1743-1780 (I_FindFile search), config.h:46 (PACKAGE=prboom)"
|
||||||
|
notes: "Searched in system/prboom/ then system/. Falls back to internal defaults if missing, but menus and HUD may render incorrectly without it."
|
||||||
@@ -0,0 +1,232 @@
|
|||||||
|
emulator: SAME CDi
|
||||||
|
type: libretro
|
||||||
|
cores: [same_cdi, cdi2015]
|
||||||
|
source: "https://github.com/libretro/same_cdi"
|
||||||
|
systems:
|
||||||
|
- cdi
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
SAME CDi is a Single Arcade Machine Emulator fork of MAME libretro, stripped
|
||||||
|
down to just the Philips CD-i driver. The core hardcodes "cdimono1" as the
|
||||||
|
forced system (retro_init.cpp:86) and searches for MAME ROM ZIPs in:
|
||||||
|
<system_dir>/same_cdi/bios/
|
||||||
|
|
||||||
|
The ROM path (-rp) is built at retro_init.cpp:534 as:
|
||||||
|
<game_path>;<system_dir>/same_cdi/bios/
|
||||||
|
|
||||||
|
MAME expects each romset as a ZIP containing the individual ROM files listed
|
||||||
|
below. The ZIP filenames (cdimono1.zip, cdimono2.zip, cdibios.zip) match
|
||||||
|
the MAME driver names. Only cdimono1.zip is required for consumer CD-i games;
|
||||||
|
cdimono2.zip and cdibios.zip are optional (Mono-II and Quizard arcade).
|
||||||
|
|
||||||
|
cdi2015 is an older MAME 2015-based CD-i core with the same BIOS layout.
|
||||||
|
|
||||||
|
ROM definitions: src/mame/drivers/cdi.cpp lines 574-650.
|
||||||
|
System forced: src/osd/libretro/libretro-internal/retro_init.cpp:86.
|
||||||
|
BIOS path: src/osd/libretro/libretro-internal/retro_init.cpp:534.
|
||||||
|
Firmware list: same_cdi_libretro.info firmware0-2.
|
||||||
|
|
||||||
|
files:
|
||||||
|
# =====================================================
|
||||||
|
# cdimono1.zip - Philips CD-i Mono-I (PAL) - REQUIRED
|
||||||
|
# Contains main CPU BIOS + servo/slave MCU dumps
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
|
# Main CPU BIOS (one of three, selected via MAME BIOS switch)
|
||||||
|
- name: "cdi200.rom"
|
||||||
|
zip: "cdimono1.zip"
|
||||||
|
system: cdi
|
||||||
|
region: [north-america]
|
||||||
|
required: true
|
||||||
|
size: 524288 # 0x80000
|
||||||
|
crc32: "40c4e6b9"
|
||||||
|
sha1: "d961de803c89b3d1902d656ceb9ce7c02dccb40a"
|
||||||
|
note: "Magnavox CD-i 200 BIOS. Default BIOS for cdimono1."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:577"
|
||||||
|
|
||||||
|
- name: "cdi220b.rom"
|
||||||
|
zip: "cdimono1.zip"
|
||||||
|
system: cdi
|
||||||
|
region: [europe]
|
||||||
|
required: true
|
||||||
|
size: 524288 # 0x80000
|
||||||
|
crc32: "279683ca"
|
||||||
|
sha1: "53360a1f21ddac952e95306ced64186a3fc0b93e"
|
||||||
|
note: "Philips CD-i 220 F2 BIOS. Alternate BIOS for cdimono1."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:579"
|
||||||
|
|
||||||
|
- name: "cdi220.rom"
|
||||||
|
zip: "cdimono1.zip"
|
||||||
|
system: cdi
|
||||||
|
region: [europe]
|
||||||
|
required: false
|
||||||
|
size: 524288 # 0x80000
|
||||||
|
crc32: "584c0af8"
|
||||||
|
sha1: "5d757ab46b8c8fc36361555d978d7af768342d47"
|
||||||
|
note: "Philips CD-i 220 BIOS (alternate, does not boot). Marked non-working."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:581"
|
||||||
|
|
||||||
|
# Servo MCU (MC68HC705C8A) - shared with cdi910 dump, BAD_DUMP
|
||||||
|
- name: "zx405037p__cdi_servo_2.1__b43t__llek9215.mc68hc705c8a_withtestrom.7201"
|
||||||
|
zip: "cdimono1.zip"
|
||||||
|
system: cdi
|
||||||
|
required: true
|
||||||
|
size: 8192 # 0x2000
|
||||||
|
crc32: "7a3af407"
|
||||||
|
sha1: "fdf8d78d6a0df4a56b5b963d72eabd39fcec163f"
|
||||||
|
note: "Servo MCU 2.1, taken from cdi910 (BAD_DUMP, no Mono-I specific dump)."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:584"
|
||||||
|
|
||||||
|
# Slave MCU (MC68HC705C8A) - shared with cdi910 dump, BAD_DUMP
|
||||||
|
- name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
|
||||||
|
zip: "cdimono1.zip"
|
||||||
|
system: cdi
|
||||||
|
required: true
|
||||||
|
size: 8192 # 0x2000
|
||||||
|
crc32: "688cda63"
|
||||||
|
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
|
||||||
|
note: "Slave MCU 2.0, taken from cdi910 (BAD_DUMP, no Mono-I specific dump)."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:587"
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# cdimono2.zip - Philips CD-i Mono-II (NTSC) - OPTIONAL
|
||||||
|
# MACHINE_NOT_WORKING in MAME
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
|
- name: "philips__cdi-220_ph3_r1.2__mb834200b-15__02f_aa__9402_z04.tc574200-le._1.7211"
|
||||||
|
zip: "cdimono2.zip"
|
||||||
|
system: cdi
|
||||||
|
required: false
|
||||||
|
size: 524288 # 0x80000
|
||||||
|
crc32: "17d723e7"
|
||||||
|
sha1: "6c317a82e35d60ca5e7a74fc99f665055693169d"
|
||||||
|
note: "Mono-II main CPU BIOS. Philips CDI-220 PH3 R1.2."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:623"
|
||||||
|
|
||||||
|
- name: "zc405351p__servo_cdi_4.1__0d67p__lluk9404.mc68hc705c8a.7490"
|
||||||
|
zip: "cdimono2.zip"
|
||||||
|
system: cdi
|
||||||
|
required: false
|
||||||
|
size: 8192 # 0x2000
|
||||||
|
crc32: "2bc8e4e9"
|
||||||
|
sha1: "8cd052b532fc052d6b0077261c12f800e8655bb1"
|
||||||
|
note: "Mono-II servo MCU 4.1."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:626"
|
||||||
|
|
||||||
|
- name: "zc405352p__slave_cdi_4.1__0d67p__lltr9403.mc68hc705c8a.7206"
|
||||||
|
zip: "cdimono2.zip"
|
||||||
|
system: cdi
|
||||||
|
required: false
|
||||||
|
size: 8192 # 0x2000
|
||||||
|
crc32: "5b19da07"
|
||||||
|
sha1: "cf02d84977050c71e87a38f1249e83c43a93949b"
|
||||||
|
note: "Mono-II slave MCU 4.1."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:629"
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# cdibios.zip - CD-i BIOS for Quizard arcade - OPTIONAL
|
||||||
|
# Subset of cdimono1 ROMs + slave MCU, used by Quizard games
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
|
# cdibios reuses cdi200.rom and cdi220b.rom (same hashes as cdimono1)
|
||||||
|
# plus the slave MCU. Listed here for completeness of the ZIP contents.
|
||||||
|
|
||||||
|
- name: "cdi200.rom"
|
||||||
|
zip: "cdibios.zip"
|
||||||
|
system: cdi
|
||||||
|
required: false
|
||||||
|
size: 524288 # 0x80000
|
||||||
|
crc32: "40c4e6b9"
|
||||||
|
sha1: "d961de803c89b3d1902d656ceb9ce7c02dccb40a"
|
||||||
|
note: "Magnavox CD-i 200 BIOS (same as cdimono1). For Quizard arcade."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:639"
|
||||||
|
|
||||||
|
- name: "cdi220b.rom"
|
||||||
|
zip: "cdibios.zip"
|
||||||
|
system: cdi
|
||||||
|
required: false
|
||||||
|
size: 524288 # 0x80000
|
||||||
|
crc32: "279683ca"
|
||||||
|
sha1: "53360a1f21ddac952e95306ced64186a3fc0b93e"
|
||||||
|
note: "Philips CD-i 220 F2 BIOS (same as cdimono1). For Quizard arcade."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:641"
|
||||||
|
|
||||||
|
- name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
|
||||||
|
zip: "cdibios.zip"
|
||||||
|
system: cdi
|
||||||
|
required: false
|
||||||
|
size: 8192 # 0x2000
|
||||||
|
crc32: "688cda63"
|
||||||
|
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
|
||||||
|
note: "Slave MCU 2.0 (BAD_DUMP, same as cdimono1). For Quizard arcade."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:645"
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# Additional MAME romsets (not in libretro .info firmware list)
|
||||||
|
# These are part of the MAME driver but not declared as
|
||||||
|
# required firmware by the libretro core.
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
|
# cdi910 - CD-i 910-17P Mini-MMC (PAL) - MACHINE_NOT_WORKING
|
||||||
|
- name: "philips__cd-i_2.1__mb834200b-15__26b_aa__9224_z01.tc574200.7211"
|
||||||
|
zip: "cdi910.zip"
|
||||||
|
system: cdi
|
||||||
|
required: false
|
||||||
|
size: 524288 # 0x80000
|
||||||
|
crc32: "4ae3bee3"
|
||||||
|
sha1: "9729b4ee3ce0c17172d062339c47b1ab822b222b"
|
||||||
|
note: "CD-i 910-17P Mini-MMC BIOS. Not listed in libretro firmware."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:594"
|
||||||
|
|
||||||
|
- name: "cdi910.rom"
|
||||||
|
zip: "cdi910.zip"
|
||||||
|
system: cdi
|
||||||
|
required: false
|
||||||
|
size: 524288 # 0x80000
|
||||||
|
crc32: "2f3048d2"
|
||||||
|
sha1: "11c4c3e602060518b52e77156345fa01f619e793"
|
||||||
|
note: "CD-i 910 alternate BIOS. Not listed in libretro firmware."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:596"
|
||||||
|
|
||||||
|
# cdi490a - CD-i 490 - MACHINE_NOT_WORKING
|
||||||
|
- name: "cdi490a.rom"
|
||||||
|
zip: "cdi490a.zip"
|
||||||
|
system: cdi
|
||||||
|
required: false
|
||||||
|
size: 524288 # 0x80000
|
||||||
|
crc32: "e2f200f6"
|
||||||
|
sha1: "c9bf3c4c7e4fe5cbec3fe3fc993c77a4522ca547"
|
||||||
|
note: "CD-i 490 BIOS. Not listed in libretro firmware."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:633"
|
||||||
|
|
||||||
|
- name: "impega.rom"
|
||||||
|
zip: "cdi490a.zip"
|
||||||
|
system: cdi
|
||||||
|
required: false
|
||||||
|
size: 262144 # 0x40000
|
||||||
|
crc32: "84d6f6aa"
|
||||||
|
sha1: "02526482a0851ea2a7b582d8afaa8ef14a8bd914"
|
||||||
|
note: "CD-i 490 MPEG audio decoder ROM."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:636"
|
||||||
|
|
||||||
|
- name: "vmpega.rom"
|
||||||
|
zip: "cdi490a.zip"
|
||||||
|
system: cdi
|
||||||
|
required: false
|
||||||
|
size: 262144 # 0x40000
|
||||||
|
crc32: "db264e8b"
|
||||||
|
sha1: "be407fbc102f1731a0862554855e963e5a47c17b"
|
||||||
|
note: "CD-i 490 MPEG video decoder ROM."
|
||||||
|
source_ref: "src/mame/drivers/cdi.cpp:637"
|
||||||
|
|
||||||
|
platform_details:
|
||||||
|
cdi:
|
||||||
|
bios_path: "same_cdi/bios/"
|
||||||
|
forced_system: "cdimono1"
|
||||||
|
primary_zip: "cdimono1.zip"
|
||||||
|
optional_zips: ["cdimono2.zip", "cdibios.zip"]
|
||||||
|
mame_romsets: ["cdimono1", "cdimono2", "cdibios", "cdi910", "cdi490a"]
|
||||||
|
rom_path_flag: "-rp"
|
||||||
|
rom_search_path: "<game_path>;<system_dir>/same_cdi/bios/"
|
||||||
|
supported_extensions: ["chd", "iso", "cue"]
|
||||||
|
source_ref: "retro_init.cpp:86,534 same_cdi_libretro.info"
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
# Theodore - Thomson MO/TO computer emulator
|
||||||
|
# https://github.com/Zlika/theodore
|
||||||
|
# Emulates: TO7, TO7/70, TO8, TO8D, TO9, TO9+, MO5, MO6, PC128 (Olivetti Prodest)
|
||||||
|
# Based on Daniel Coulom's DCTO8D, DCTO9P, and DCMO5 emulators
|
||||||
|
|
||||||
|
core_name: theodore
|
||||||
|
systems:
|
||||||
|
- Thomson MO5
|
||||||
|
- Thomson MO6
|
||||||
|
- Thomson TO7
|
||||||
|
- Thomson TO7/70
|
||||||
|
- Thomson TO8
|
||||||
|
- Thomson TO8D
|
||||||
|
- Thomson TO9
|
||||||
|
- Thomson TO9+
|
||||||
|
- Olivetti Prodest PC128
|
||||||
|
|
||||||
|
bios_files: []
|
||||||
|
# All system ROMs are embedded directly in the source code as C arrays:
|
||||||
|
# rom_to7.inc, rom_to770.inc, rom_to8.inc, rom_to8d.inc,
|
||||||
|
# rom_to9.inc, rom_to9p.inc, rom_mo5.inc, rom_mo6.inc,
|
||||||
|
# rom_pc128.inc, basic-1_memo7.inc, basic-128_memo7.inc
|
||||||
|
# No external BIOS or firmware files are required.
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Theodore embeds all Thomson monitor ROMs and BASIC ROMs at compile time.
|
||||||
|
The core option "theodore_rom" selects the emulated model (Auto by default).
|
||||||
|
TO7 and TO7/70 auto-load the BASIC 1 cartridge when no cartridge is provided.
|
||||||
|
Supported file formats: fd, sap, k7, m7, m5, rom.
|
||||||
|
The core can run without any game loaded (SET_SUPPORT_NO_GAME = true).
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
emulator: VBA-Next
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/vba-next"
|
||||||
|
cores:
|
||||||
|
- vba_next
|
||||||
|
systems:
|
||||||
|
- nintendo-gba
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
VBA-Next is a Game Boy Advance emulator forked from VBA-M, optimized for
|
||||||
|
libretro. It includes a built-in HLE BIOS (myROM array in src/gba.cpp:8423)
|
||||||
|
that handles all standard SWI calls, so no external BIOS file is needed for
|
||||||
|
most games.
|
||||||
|
|
||||||
|
BIOS loading is gated behind HAVE_HLE_BIOS (defined in build/Makefile.common)
|
||||||
|
and controlled by core option vbanext_bios (default: enabled). When enabled,
|
||||||
|
the libretro port looks for gba_bios.bin in RetroArch's system directory
|
||||||
|
(libretro/libretro.cpp:198-203). CPUInit() loads the file via utilLoad(),
|
||||||
|
validates it is exactly 0x4000 bytes (16 KB), and sets useBios = true
|
||||||
|
(src/gba.cpp:12413-12443). If loading fails or the option is off, the HLE
|
||||||
|
BIOS (myROM) is memcpy'd into the bios buffer instead.
|
||||||
|
|
||||||
|
CPUIsGBABios() accepts extensions: .gba, .agb, .bin, .bios, .rom
|
||||||
|
(src/gba.cpp:8851-8873).
|
||||||
|
|
||||||
|
When useBios is true and skipBios is false, execution starts at 0x00000000
|
||||||
|
(real BIOS entry). Otherwise it jumps straight to 0x08000000 (ROM entry),
|
||||||
|
skipping the boot animation (src/gba.cpp:12657-12675).
|
||||||
|
|
||||||
|
The HLE BIOS covers: SoftReset, RegisterRamReset, Halt, VBlankIntrWait,
|
||||||
|
Div, Sqrt, ArcTan, ArcTan2, CpuSet, CpuFastSet, GetBiosChecksum,
|
||||||
|
BgAffineSet, ObjAffineSet, BitUnPack, LZ77UnComp (WRAM/VRAM),
|
||||||
|
HuffUnComp, RLUnComp (WRAM/VRAM), Diff8bitUnFilter (WRAM/VRAM),
|
||||||
|
Diff16bitUnFilter, MidiKey2Freq, SndDriverJmpTableCopy
|
||||||
|
(src/gba.cpp:2369-2578).
|
||||||
|
|
||||||
|
Some per-game overrides in gbaover[] (libretro/libretro.cpp:235) have a
|
||||||
|
useBios field, but all entries currently set it to 0 (no game forces BIOS).
|
||||||
|
|
||||||
|
files:
|
||||||
|
# -------------------------------------------------------
|
||||||
|
# Game Boy Advance - BIOS (optional, HLE fallback)
|
||||||
|
# -------------------------------------------------------
|
||||||
|
- name: gba_bios.bin
|
||||||
|
system: nintendo-gba
|
||||||
|
required: false
|
||||||
|
size: 16384 # 16 KB (0x4000)
|
||||||
|
note: "GBA BIOS. Optional -- HLE replacement (myROM) handles all standard SWI calls. Real BIOS adds startup logo and may improve edge-case accuracy."
|
||||||
|
source_ref: "libretro/libretro.cpp:198-203, src/gba.cpp:12413-12443"
|
||||||
|
|
||||||
|
platform_details:
|
||||||
|
gba:
|
||||||
|
bios_size: 16384 # 0x4000
|
||||||
|
hle_bios: true
|
||||||
|
source_ref: "src/gba.cpp:8423 (myROM), src/gba.cpp:2369-2578 (SWI handlers)"
|
||||||
|
notes: |
|
||||||
|
BIOS buffer is always allocated at 0x4000 bytes (src/gba.cpp:8963).
|
||||||
|
If the real BIOS loads successfully (exactly 0x4000 bytes), useBios is
|
||||||
|
set to true and CPUReset starts at address 0x00000000 with IRQ disabled.
|
||||||
|
Otherwise myROM (built-in HLE stub) is copied in and execution starts
|
||||||
|
at 0x08000000 with standard register init.
|
||||||
|
|
||||||
|
The core option vbanext_bios defaults to "enabled", so if gba_bios.bin
|
||||||
|
is present in the system directory it will be loaded automatically.
|
||||||
|
|
||||||
|
BIOS reads at runtime go through the memory map (src/gba.cpp:792-1076).
|
||||||
|
Address range 0x0000-0x3FFF maps to the bios buffer. A biosProtected[4]
|
||||||
|
array at 0x00f029e1 is returned when reading outside the current PC
|
||||||
|
region, matching real GBA BIOS protection behavior.
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
emulator: "X Millennium"
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/xmil-libretro"
|
||||||
|
cores:
|
||||||
|
- x1
|
||||||
|
systems:
|
||||||
|
- sharp-x1
|
||||||
|
|
||||||
|
# X Millennium (XMIL) is a Sharp X1 series emulator by yui. The libretro port
|
||||||
|
# supports X1, X1 Turbo, and X1 TurboZ models via the "X1_ROMTYPE" core option
|
||||||
|
# (values: X1, TURBO, TURBOZ; default: X1 = ROM_TYPE 1).
|
||||||
|
#
|
||||||
|
# All system files go under: <system_dir>/xmil/
|
||||||
|
# (libretro.c:597 builds the path as "<system_dir>/xmil")
|
||||||
|
#
|
||||||
|
# IPL ROM loading (memio.c:88-116):
|
||||||
|
# ROM_TYPE 0: uses built-in default IPL (575 bytes, basic boot stub from defipl.res)
|
||||||
|
# ROM_TYPE 1 (X1): loads xmil/IPLROM.X1 (32 KB)
|
||||||
|
# ROM_TYPE 2 (Turbo): loads xmil/IPLROM.X1T (32 KB)
|
||||||
|
# ROM_TYPE 3 (TurboZ): loads xmil/IPLROM.X1T (32 KB, same file as Turbo)
|
||||||
|
# If the file is missing, the core falls back to the built-in default IPL.
|
||||||
|
#
|
||||||
|
# Font loading (font.c:90-127, fontx1.c:70-123):
|
||||||
|
# font_load() calls x1fontread() which looks for font files using fontopen().
|
||||||
|
# fontopen() resolves paths relative to the working directory (file_getcd()),
|
||||||
|
# which in libretro context is the xmil subdirectory.
|
||||||
|
# Built-in defaults (defrom_ank, defrom_txt) are used for basic ASCII rendering.
|
||||||
|
# External font ROMs add full Japanese character support.
|
||||||
|
#
|
||||||
|
# The .info file only lists IPLROM.X1 and IPLROM.X1T as required BIOS files.
|
||||||
|
# Font ROMs are optional -- the core renders basic text without them but Japanese
|
||||||
|
# kanji display requires the external font files.
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Place all files in: <system_dir>/xmil/
|
||||||
|
The core selects between IPLROM.X1 and IPLROM.X1T based on the "X1_ROMTYPE"
|
||||||
|
core option. A built-in fallback IPL exists but lacks full boot functionality.
|
||||||
|
Font files are optional; without them, kanji/JIS characters won't render.
|
||||||
|
|
||||||
|
files:
|
||||||
|
# -- IPL ROMs --
|
||||||
|
|
||||||
|
- name: IPLROM.X1
|
||||||
|
path: xmil/IPLROM.X1
|
||||||
|
size: 32768
|
||||||
|
md5: eeeea1cd29c6e0e8b094790ae969bfa7
|
||||||
|
required: true
|
||||||
|
note: "X1 IPL ROM (32 KB). Loaded when ROM_TYPE=1 (X1 model). Listed in .info."
|
||||||
|
source_ref: "io/memio.c:82,96-103"
|
||||||
|
|
||||||
|
- name: IPLROM.X1T
|
||||||
|
path: xmil/IPLROM.X1T
|
||||||
|
size: 32768
|
||||||
|
md5: 851e4a5936f17d13f8c39a980cf00d77
|
||||||
|
required: true
|
||||||
|
note: "X1 Turbo/TurboZ IPL ROM (32 KB). Loaded when ROM_TYPE=2 or 3. Listed in .info."
|
||||||
|
source_ref: "io/memio.c:83,97-99"
|
||||||
|
|
||||||
|
# -- Font ROMs (optional, for Japanese text rendering) --
|
||||||
|
|
||||||
|
- name: FNT0808.X1
|
||||||
|
path: xmil/FNT0808.X1
|
||||||
|
size: 2048
|
||||||
|
required: false
|
||||||
|
note: "8x8 ANK font ROM (2 KB). Provides half-width ASCII/kana characters."
|
||||||
|
source_ref: "font/fontdata.c:6, font/fontx1.c:79-87"
|
||||||
|
|
||||||
|
- name: FNT0816.X1
|
||||||
|
path: xmil/FNT0816.X1
|
||||||
|
size: 4096
|
||||||
|
required: false
|
||||||
|
note: "8x16 ANK font ROM (4 KB). Provides taller half-width characters for text mode."
|
||||||
|
source_ref: "font/fontdata.c:7, font/fontx1.c:89-103"
|
||||||
|
|
||||||
|
- name: FNT1616.X1
|
||||||
|
path: xmil/FNT1616.X1
|
||||||
|
size: 306176
|
||||||
|
required: false
|
||||||
|
note: "16x16 Kanji font ROM (~299 KB). Full JIS kanji character set for Japanese text."
|
||||||
|
source_ref: "font/fontdata.c:8, font/fontx1.c:105-120"
|
||||||
Reference in New Issue
Block a user