mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-18 14:52:32 -05:00
feat: add 10 emulator profiles (batch 4)
blastem (MD, no BIOS needed), dosbox_pure (14 MT-32 ROMs + SF2), desmume (NDS, 3 files all HLE), cap32 (CPC, all embedded), mu (Palm OS, 5 ROMs), bk (Elektronika BK, 9 Soviet ROMs), gearsystem (SMS/GG, 2 optional boot ROMs), beetle_ngp (Neo Geo Pocket, pure HLE), beetle_wswan (WonderSwan, pure HLE), galaksija (Yugoslav computer, all embedded) 51 total profiles. Cross-reference: 658 undeclared, 177 in repo.
This commit is contained in:
33
emulators/beetle_ngp.yml
Normal file
33
emulators/beetle_ngp.yml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
emulator: Beetle NGP (Mednafen Neo Geo Pocket)
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/beetle-ngp-libretro"
|
||||||
|
systems: [snk-ngp, snk-ngpc]
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Beetle NGP is a fork of Mednafen's NeoPop module for Neo Geo Pocket
|
||||||
|
and Neo Geo Pocket Color emulation via libretro.
|
||||||
|
|
||||||
|
No external BIOS or firmware files are required. The core uses a
|
||||||
|
built-in High-Level Emulation (HLE) BIOS that is constructed at
|
||||||
|
runtime by bios_install() in mednafen/ngp/bios.c.
|
||||||
|
|
||||||
|
The HLE BIOS populates a 64KB array (ngpc_bios[0x10000]) with:
|
||||||
|
- A system call vector table at 0xFE00 (27 entries covering
|
||||||
|
clock, RTC, interrupts, font, flash read/write, comms)
|
||||||
|
- Each vector target contains an iBIOSHLE instruction (opcode 0x1F)
|
||||||
|
that traps into biosHLE.c for high-level handling
|
||||||
|
- A built-in system font (2048 bytes at 0x8DCF)
|
||||||
|
- A default interrupt handler (RETI at 0x23DF)
|
||||||
|
- An infinite loop at 0xFFFE as the idle entry point
|
||||||
|
|
||||||
|
The TLCS-900h CPU (main) and Z80 (sound) are both emulated in
|
||||||
|
software. Flash memory for game saves is handled internally via
|
||||||
|
flash.c without needing a separate firmware dump.
|
||||||
|
|
||||||
|
The only core option is ngp_language (english/japanese), which
|
||||||
|
controls the language flag passed to games. It does not affect
|
||||||
|
BIOS loading.
|
||||||
|
|
||||||
|
ROM extensions: .ngp, .ngc, .ngpc, .npc
|
||||||
|
|
||||||
|
files: []
|
||||||
31
emulators/beetle_wswan.yml
Normal file
31
emulators/beetle_wswan.yml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
emulator: Beetle WonderSwan (Mednafen WonderSwan)
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/beetle-wswan-libretro"
|
||||||
|
systems: [bandai-wswan, bandai-wswanc]
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Beetle WonderSwan is a fork of Mednafen's Cygne module for WonderSwan
|
||||||
|
and WonderSwan Color emulation via libretro.
|
||||||
|
|
||||||
|
No external BIOS or firmware files are required. The core bypasses the
|
||||||
|
original boot ROM entirely by hardcoding the initial I/O register state
|
||||||
|
in mednafen/wswan/start.inc (a 256-byte table of power-on defaults for
|
||||||
|
all hardware registers 0x00-0xFF). On reset, WSwan_MemoryReset() in
|
||||||
|
wswan-memory.c zeroes RAM and writes a fixed 8-byte identifier at
|
||||||
|
0x75AC, then the CPU starts executing the cartridge directly.
|
||||||
|
|
||||||
|
Internal EEPROM owner data (name, birthday, sex, blood type) is
|
||||||
|
configured through core options (wswan.name, wswan.byear, wswan.bmonth,
|
||||||
|
wswan.bday, wswan.sex, wswan.blood) and initialized at boot by
|
||||||
|
WSwan_EEPROMInit() without needing a real EEPROM dump.
|
||||||
|
|
||||||
|
The wswan.language core option selects English or Japanese, which is
|
||||||
|
returned via I/O port 0xC8+ as the hardware language flag. This
|
||||||
|
replaces the boot ROM's language selection screen.
|
||||||
|
|
||||||
|
The NEC V30MZ CPU is emulated in software (v30mz.c). Sound DMA,
|
||||||
|
cartridge banking, and RTC are all handled internally.
|
||||||
|
|
||||||
|
ROM extensions: .ws, .wsc, .pc2
|
||||||
|
|
||||||
|
files: []
|
||||||
149
emulators/bk.yml
Normal file
149
emulators/bk.yml
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
emulator: bk-emulator
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/bk-emulator"
|
||||||
|
cores:
|
||||||
|
- bk
|
||||||
|
systems:
|
||||||
|
- elektronika-bk
|
||||||
|
|
||||||
|
# BK-emulator is an Elektronika BK-0010/0011M emulator (Soviet PDP-11 based home
|
||||||
|
# computer). The libretro core supports six machine configurations selected via
|
||||||
|
# the "bk_model" core option:
|
||||||
|
# BK-0010 (model 0) - default
|
||||||
|
# BK-0010.01 (model 1)
|
||||||
|
# BK-0010.01 + FDD (model 2)
|
||||||
|
# BK-0011M + FDD (model 3)
|
||||||
|
# Slow BK-0011M (model 4) - same ROMs as model 3
|
||||||
|
# Terak 8510/a (model 9)
|
||||||
|
#
|
||||||
|
# ROM loading (boot.c:83-116):
|
||||||
|
# BK-0010 models use load_rom() which maps ROM into emulated memory at
|
||||||
|
# specific addresses: monitor at 0100000 (8 KB), BASIC/FOCAL at 0120000
|
||||||
|
# (24448-24576 bytes), disk controller at 0160000 (4 KB).
|
||||||
|
# BK-0011M uses load_rom11() which loads into separate ROM buffer arrays.
|
||||||
|
#
|
||||||
|
# ROM file resolution (libretro.c:1051-1108):
|
||||||
|
# Files are loaded from {system_dir}/bk/{filename} (libretro.c:724-726).
|
||||||
|
# If not found with original casing, the loader retries with lowercase
|
||||||
|
# filename (libretro.c:1074-1079).
|
||||||
|
#
|
||||||
|
# All ROM files are required for their respective model. The core calls
|
||||||
|
# environ_cb(RETRO_ENVIRONMENT_SHUTDOWN) if any ROM file is missing.
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Files go in {system_dir}/bk/.
|
||||||
|
Each BK model requires a specific set of ROMs. The default model is BK-0010
|
||||||
|
which needs MONIT10.ROM and FOCAL10.ROM. Changing the core option "bk_model"
|
||||||
|
changes which ROMs are loaded. The core shuts down if a required ROM is
|
||||||
|
missing (no fallback or pseudo-BIOS).
|
||||||
|
If a ROM file with uppercase name is not found, the core retries with
|
||||||
|
the filename lowercased.
|
||||||
|
|
||||||
|
files:
|
||||||
|
# -- BK-0010 Monitor ROM (all BK-0010 variants) --
|
||||||
|
|
||||||
|
- name: MONIT10.ROM
|
||||||
|
path: "bk/MONIT10.ROM"
|
||||||
|
size: 8192
|
||||||
|
required: true
|
||||||
|
note: "BK-0010 monitor ROM (8 KB). Loaded at address 0100000. Required for all BK-0010 models (0, 1, 2)."
|
||||||
|
source_ref: "main.c:53, boot.c:107"
|
||||||
|
aliases: ["monit10.rom"]
|
||||||
|
|
||||||
|
# -- BK-0010 language ROMs (model-dependent) --
|
||||||
|
|
||||||
|
- name: FOCAL10.ROM
|
||||||
|
path: "bk/FOCAL10.ROM"
|
||||||
|
size: 24576
|
||||||
|
required: false
|
||||||
|
note: "FOCAL interpreter ROM (24448-24576 bytes). Loaded at 0120000. Used by BK-0010 (model 0, default)."
|
||||||
|
source_ref: "libretro.c:15, boot.c:110"
|
||||||
|
aliases: ["focal10.rom"]
|
||||||
|
|
||||||
|
- name: BASIC10.ROM
|
||||||
|
path: "bk/BASIC10.ROM"
|
||||||
|
size: 24576
|
||||||
|
required: false
|
||||||
|
note: "BASIC interpreter ROM (24448-24576 bytes). Loaded at 0120000. Used by BK-0010.01 (model 1)."
|
||||||
|
source_ref: "libretro.c:16, boot.c:110"
|
||||||
|
aliases: ["basic10.rom"]
|
||||||
|
|
||||||
|
# -- Disk controller ROM (BK-0010.01+FDD and BK-0011M) --
|
||||||
|
|
||||||
|
- name: DISK_327.ROM
|
||||||
|
path: "bk/DISK_327.ROM"
|
||||||
|
size: 4096
|
||||||
|
required: false
|
||||||
|
note: "Floppy disk controller ROM (4 KB). Loaded at 0160000 for BK-0010.01+FDD (model 2), or into system_rom for BK-0011M (model 3/4)."
|
||||||
|
source_ref: "main.c:54, boot.c:99,113"
|
||||||
|
aliases: ["disk_327.rom"]
|
||||||
|
|
||||||
|
# -- BK-0011M ROMs --
|
||||||
|
|
||||||
|
- name: B11M_BOS.ROM
|
||||||
|
path: "bk/B11M_BOS.ROM"
|
||||||
|
size: 8192
|
||||||
|
required: false
|
||||||
|
note: "BK-0011M system ROM / BOS (8 KB). Loaded into system_rom at offset 0. Required for BK-0011M (model 3/4)."
|
||||||
|
source_ref: "main.c:55, boot.c:98"
|
||||||
|
aliases: ["b11m_bos.rom"]
|
||||||
|
|
||||||
|
- name: B11M_EXT.ROM
|
||||||
|
path: "bk/B11M_EXT.ROM"
|
||||||
|
size: 8192
|
||||||
|
required: false
|
||||||
|
note: "BK-0011M extended BOS ROM (8 KB). Loaded into rom[1] at offset 8192. Required for BK-0011M (model 3/4)."
|
||||||
|
source_ref: "main.c:56, boot.c:102"
|
||||||
|
aliases: ["b11m_ext.rom"]
|
||||||
|
|
||||||
|
- name: BAS11M_0.ROM
|
||||||
|
path: "bk/BAS11M_0.ROM"
|
||||||
|
size: 16384
|
||||||
|
required: false
|
||||||
|
note: "BK-0011M BASIC ROM part 0 (16 KB). Loaded into rom[0]. Required for BK-0011M (model 3/4)."
|
||||||
|
source_ref: "main.c:57, boot.c:100"
|
||||||
|
aliases: ["bas11m_0.rom"]
|
||||||
|
|
||||||
|
- name: BAS11M_1.ROM
|
||||||
|
path: "bk/BAS11M_1.ROM"
|
||||||
|
size: 8192
|
||||||
|
required: false
|
||||||
|
note: "BK-0011M BASIC ROM part 1 (8 KB). Loaded into rom[1] at offset 0. Required for BK-0011M (model 3/4)."
|
||||||
|
source_ref: "main.c:58, boot.c:101"
|
||||||
|
aliases: ["bas11m_1.rom"]
|
||||||
|
|
||||||
|
# -- Terak 8510/a ROM --
|
||||||
|
|
||||||
|
- name: TERAK.ROM
|
||||||
|
path: "bk/TERAK.ROM"
|
||||||
|
size: 128
|
||||||
|
required: false
|
||||||
|
note: "Terak 8510/a boot ROM (128 bytes). Only used when model is set to Terak 8510/a (model 9)."
|
||||||
|
source_ref: "boot.c:94"
|
||||||
|
aliases: ["terak.rom"]
|
||||||
|
|
||||||
|
platform_details:
|
||||||
|
bios_mapping:
|
||||||
|
source_ref: "libretro.c:718-760, boot.c:83-116"
|
||||||
|
notes: |
|
||||||
|
ROM directory is {system_dir}/bk/ (libretro.c:724-726).
|
||||||
|
Model selection via core option "bk_model" determines which ROMs are loaded.
|
||||||
|
The core shuts down immediately if any required ROM for the selected model
|
||||||
|
is not found.
|
||||||
|
|
||||||
|
model_rom_map:
|
||||||
|
source_ref: "libretro.c:734-756, boot.c:83-116"
|
||||||
|
notes: |
|
||||||
|
BK-0010: MONIT10.ROM + FOCAL10.ROM
|
||||||
|
BK-0010.01: MONIT10.ROM + BASIC10.ROM
|
||||||
|
BK-0010.01 + FDD: MONIT10.ROM + DISK_327.ROM
|
||||||
|
BK-0011M + FDD: B11M_BOS.ROM + DISK_327.ROM + BAS11M_0.ROM + BAS11M_1.ROM + B11M_EXT.ROM
|
||||||
|
Slow BK-0011M: same as BK-0011M + FDD
|
||||||
|
Terak 8510/a: TERAK.ROM
|
||||||
|
|
||||||
|
rom_loading:
|
||||||
|
source_ref: "libretro.c:1051-1108"
|
||||||
|
notes: |
|
||||||
|
load_rom_file() first tries {romdir}/{filename} with original casing.
|
||||||
|
If not found, retries with the filename converted to lowercase.
|
||||||
|
Returns NULL and shuts down the core on failure.
|
||||||
55
emulators/blastem.yml
Normal file
55
emulators/blastem.yml
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
emulator: BlastEm
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/blastem"
|
||||||
|
cores:
|
||||||
|
- blastem
|
||||||
|
systems:
|
||||||
|
- sega-megadrive
|
||||||
|
- sega-mastersystem
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
BlastEm is a cycle-accurate Sega Mega Drive/Genesis emulator with basic
|
||||||
|
Master System support. In standalone mode it supports TMSS ROM loading and
|
||||||
|
multiple hardware models (MD1 VA0 through MD3 VA2, Teradrive). The Jaguar
|
||||||
|
emulator (blastjag) is a separate standalone binary, not part of the
|
||||||
|
libretro core.
|
||||||
|
|
||||||
|
The libretro port (libblastem.c) does NOT expose any core options and
|
||||||
|
defaults to model md1va3 which has TMSS disabled. There is no way to
|
||||||
|
select a TMSS-enabled model through the libretro interface.
|
||||||
|
|
||||||
|
Even if a TMSS-enabled model were forced, read_bundled_file() in the
|
||||||
|
libretro build only serves rom.db and returns NULL for tmss.md, so TMSS
|
||||||
|
ROM loading would fail (fatal_error at genesis.c:1923).
|
||||||
|
|
||||||
|
Sega CD / Mega CD is not supported (only a TODO comment in system.c:16).
|
||||||
|
No BIOS files are required or loaded by the libretro core.
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
analysis:
|
||||||
|
tmss:
|
||||||
|
standalone_support: true
|
||||||
|
libretro_support: false
|
||||||
|
default_model: md1va3
|
||||||
|
default_tmss: "off"
|
||||||
|
rom_filename: tmss.md
|
||||||
|
rom_size: 2048 # 2 KB
|
||||||
|
config_path: "system\0tmss_path\0"
|
||||||
|
source_ref: "genesis.c:1910"
|
||||||
|
notes: |
|
||||||
|
TMSS ROM is loaded from tmss.md (configurable via system/tmss_path).
|
||||||
|
Models with tmss=on: md1va6, md2va1, md2va2, md3va1, md3va2.
|
||||||
|
Models with tmss=off: md1va0, md1va3 (default), teradrive.
|
||||||
|
The libretro build uses md1va3 (tmss off) with no option to change.
|
||||||
|
|
||||||
|
sega_cd:
|
||||||
|
supported: false
|
||||||
|
source_ref: "system.c:16"
|
||||||
|
notes: "TODO comment only: 'Differentiate between vanilla Genesis and Sega CD/32X games'"
|
||||||
|
|
||||||
|
jaguar_bios:
|
||||||
|
libretro_relevant: false
|
||||||
|
notes: |
|
||||||
|
blastjag (jaguar.c) is a separate standalone binary, not compiled
|
||||||
|
into the libretro core. Requires BIOS as first CLI argument.
|
||||||
70
emulators/cap32.yml
Normal file
70
emulators/cap32.yml
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
emulator: Caprice32
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/libretro-cap32"
|
||||||
|
cores:
|
||||||
|
- cap32
|
||||||
|
systems:
|
||||||
|
- amstrad-cpc
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Caprice32 is an Amstrad CPC emulator ported to libretro. Supports CPC 464,
|
||||||
|
CPC 664, CPC 6128, and CPC+ (Plus) models.
|
||||||
|
|
||||||
|
All system ROMs are compiled directly into the core binary as C header
|
||||||
|
arrays in cap32/rom/*.h. No external BIOS files are required.
|
||||||
|
|
||||||
|
Embedded ROMs (cap32/cap32.c:342-345):
|
||||||
|
- cap32/rom/464.h: OS_BASIC10[32768] - CPC 464 OS + BASIC 1.0
|
||||||
|
- cap32/rom/6128.h: OS_BASIC11[32768] - CPC 6128 OS + BASIC 1.1
|
||||||
|
- cap32/rom/amsdos.h: AMSDOS[16384] - AMSDOS disk controller ROM
|
||||||
|
- cap32/rom/6128p.h: OS_6128P - CPC+ system cartridge ROM
|
||||||
|
- cap32/rom/cpm.h: cpmROM - CP/M boot snapshot (128KB)
|
||||||
|
|
||||||
|
ROM selection in emulator_select_ROM() (cap32/cap32.c:1072-1100):
|
||||||
|
- CPC 464: OS_BASIC10 (32KB)
|
||||||
|
- CPC 664: OS_BASIC10 (32KB) + AMSDOS in slot 7
|
||||||
|
- CPC 6128: OS_BASIC11 (32KB) + AMSDOS in slot 7
|
||||||
|
- CPC+: OS_6128P loaded as system cartridge via cpr_load()
|
||||||
|
|
||||||
|
The standalone (non-libretro) version references external filenames
|
||||||
|
cpc464.rom, cpc664.rom, cpc6128.rom, amsdos.rom in cap32.c:349-352
|
||||||
|
via config file loading (cap32.c:1828-1840), but the libretro port
|
||||||
|
does not use this path. The libretro init (libretro-core.c:1512) has
|
||||||
|
a "TODO: future use to load custom bios" comment that is not
|
||||||
|
implemented.
|
||||||
|
|
||||||
|
Keyboard layout patches are applied to the ROM in memory for French
|
||||||
|
and Spanish layouts via rom_mods.h (cap32.c:1102-1126).
|
||||||
|
|
||||||
|
CP/M support loads a pre-built snapshot (cpm.h) into memory via
|
||||||
|
snapshot_load_mem() in slots.c:87.
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
platform_details:
|
||||||
|
bios_mapping:
|
||||||
|
source_ref: "cap32/cap32.c:1072-1100, cap32/cap32.c:342-345"
|
||||||
|
notes: |
|
||||||
|
All ROMs are embedded. emulator_select_ROM() copies the appropriate
|
||||||
|
ROM array into the pbROM buffer based on CPC.model. No filesystem
|
||||||
|
lookup occurs in the libretro port. The retro_system_bios_directory
|
||||||
|
variable is set up in libretro-core.c:1499-1510 but only used for
|
||||||
|
a future custom BIOS feature that is not yet implemented.
|
||||||
|
|
||||||
|
embedded_roms:
|
||||||
|
source_ref: "cap32/rom/464.h, cap32/rom/6128.h, cap32/rom/amsdos.h, cap32/rom/6128p.h, cap32/rom/cpm.h"
|
||||||
|
notes: |
|
||||||
|
5 ROM sets embedded as C arrays:
|
||||||
|
OS_BASIC10 (32KB) - CPC 464/664 OS + BASIC 1.0
|
||||||
|
OS_BASIC11 (32KB) - CPC 6128 OS + BASIC 1.1
|
||||||
|
AMSDOS (16KB) - Disk controller ROM, mapped to slot 7
|
||||||
|
OS_6128P - CPC+ system cartridge (White Label cartridge)
|
||||||
|
cpmROM (128KB+) - CP/M boot snapshot including SNA header
|
||||||
|
|
||||||
|
model_rom_map:
|
||||||
|
source_ref: "cap32/cap32.c:1072-1100"
|
||||||
|
notes: |
|
||||||
|
CPC 464: OS_BASIC10 only (no disk support)
|
||||||
|
CPC 664: OS_BASIC10 + AMSDOS in ROM slot 7
|
||||||
|
CPC 6128: OS_BASIC11 + AMSDOS in ROM slot 7
|
||||||
|
CPC+: 6128P system cartridge (or user-provided .cpr file)
|
||||||
41
emulators/desmume.yml
Normal file
41
emulators/desmume.yml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
emulator: DeSmuME
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/desmume"
|
||||||
|
cores: [desmume, desmume2015]
|
||||||
|
systems: [nintendo-ds]
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
DeSmuME provides full HLE (High-Level Emulation) of all ARM7/ARM9 SWI
|
||||||
|
routines, making BIOS files optional for most games. When external BIOS
|
||||||
|
is disabled, a minimal fake BIOS with exception vectors and IRQ handler
|
||||||
|
stubs is generated at runtime (NDSSystem.cpp:2208-2224, 2263-2278).
|
||||||
|
External BIOS enables SWI-from-BIOS mode and firmware boot animation.
|
||||||
|
Firmware boot requires both ARM7+ARM9 BIOS loaded AND interpreter mode
|
||||||
|
(JIT incompatible, see libretro.cpp:788).
|
||||||
|
ARM9 BIOS read size: 4096 bytes (0x1000). ARM7 BIOS read size: 16384
|
||||||
|
bytes (0x4000). No DSi support.
|
||||||
|
Libretro core option: desmume_use_external_bios (enabled/disabled).
|
||||||
|
|
||||||
|
files:
|
||||||
|
- name: "bios7.bin"
|
||||||
|
system: nintendo-ds
|
||||||
|
description: "ARM7 BIOS"
|
||||||
|
required: false
|
||||||
|
size: 16384
|
||||||
|
source_ref: "desmume/src/NDSSystem.cpp:2178-2182, frontend/libretro/libretro.cpp:763"
|
||||||
|
notes: "HLE fallback covers all SWI calls; native file needed for firmware boot and SWI-from-BIOS accuracy"
|
||||||
|
|
||||||
|
- name: "bios9.bin"
|
||||||
|
system: nintendo-ds
|
||||||
|
description: "ARM9 BIOS"
|
||||||
|
required: false
|
||||||
|
size: 4096
|
||||||
|
source_ref: "desmume/src/NDSSystem.cpp:2236-2239, frontend/libretro/libretro.cpp:764"
|
||||||
|
notes: "HLE fallback covers all SWI calls; native file needed for firmware boot and logo comparison (Pal Park)"
|
||||||
|
|
||||||
|
- name: "firmware.bin"
|
||||||
|
system: nintendo-ds
|
||||||
|
description: "NDS firmware image"
|
||||||
|
required: false
|
||||||
|
source_ref: "desmume/src/NDSSystem.cpp:2653-2655, frontend/libretro/libretro.cpp:765"
|
||||||
|
notes: "Dummy firmware generated when absent; native firmware needed for boot animation, wifi config, user settings"
|
||||||
139
emulators/dosbox_pure.yml
Normal file
139
emulators/dosbox_pure.yml
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
emulator: DOSBox Pure
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/dosbox-pure"
|
||||||
|
cores: [dosbox_pure]
|
||||||
|
systems: [dos]
|
||||||
|
verification: sha1
|
||||||
|
notes: >
|
||||||
|
No BIOS required. MT-32 and SoundFont support is optional for MIDI music.
|
||||||
|
The core scans the RetroArch system directory (and subdirectories) for files
|
||||||
|
ending in _CONTROL.ROM (MT-32/CM-32L) and .SF2/.SF3 (General MIDI SoundFont).
|
||||||
|
MT-32 requires a matched pair: *_CONTROL.ROM + *_PCM.ROM in the same directory.
|
||||||
|
Files can also be placed inside the game content as DOSBOX.SF2 or MT32_CONTROL.ROM
|
||||||
|
+ MT32_PCM.ROM on the mounted C: drive. ZIP archives containing both ROMs are
|
||||||
|
also supported (identified by file size, not name). A cache file
|
||||||
|
DOSBoxPureMidiCache.txt is written to system dir when scan takes >2s.
|
||||||
|
Uses bundled MUNT (mt32emu) for MT-32 emulation, TinySoundFont for SF2 playback.
|
||||||
|
No firmware entries in the .info file - all MIDI files are optional enhancements.
|
||||||
|
|
||||||
|
files:
|
||||||
|
# -- MT-32 Control ROMs (64 KB) --
|
||||||
|
|
||||||
|
- name: "MT32_CONTROL.ROM"
|
||||||
|
description: "MT-32 Control v1.04"
|
||||||
|
required: false
|
||||||
|
size: 65536
|
||||||
|
sha1: "5a5cb5a77d7d55ee69657c2f870416daed52dea7"
|
||||||
|
source_ref: "mt32emu.h:CTRL_MT32_V1_04"
|
||||||
|
|
||||||
|
- name: "MT32_CONTROL.ROM"
|
||||||
|
description: "MT-32 Control v1.05"
|
||||||
|
required: false
|
||||||
|
size: 65536
|
||||||
|
sha1: "e17a3a6d265bf1fa150312061134293d2b58288c"
|
||||||
|
source_ref: "mt32emu.h:CTRL_MT32_V1_05"
|
||||||
|
|
||||||
|
- name: "MT32_CONTROL.ROM"
|
||||||
|
description: "MT-32 Control v1.06"
|
||||||
|
required: false
|
||||||
|
size: 65536
|
||||||
|
sha1: "a553481f4e2794c10cfe597fef154eef0d8257de"
|
||||||
|
source_ref: "mt32emu.h:CTRL_MT32_V1_06"
|
||||||
|
|
||||||
|
- name: "MT32_CONTROL.ROM"
|
||||||
|
description: "MT-32 Control v1.07"
|
||||||
|
required: false
|
||||||
|
size: 65536
|
||||||
|
sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987"
|
||||||
|
source_ref: "mt32emu.h:CTRL_MT32_V1_07"
|
||||||
|
|
||||||
|
- name: "MT32_CONTROL.ROM"
|
||||||
|
description: "MT-32 Control BlueRidge"
|
||||||
|
required: false
|
||||||
|
size: 65536
|
||||||
|
sha1: "7b8c2a5ddb42fd0732e2f22b3340dcf5360edf92"
|
||||||
|
source_ref: "mt32emu.h:CTRL_MT32_BLUER"
|
||||||
|
|
||||||
|
# -- 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: "mt32emu.h:CTRL_MT32_V2_03"
|
||||||
|
|
||||||
|
- name: "MT32_CONTROL.ROM"
|
||||||
|
description: "MT-32 Control v2.04"
|
||||||
|
required: false
|
||||||
|
size: 131072
|
||||||
|
sha1: "2c16432b6c73dd2a3947cba950a0f4c19d6180eb"
|
||||||
|
source_ref: "mt32emu.h:CTRL_MT32_V2_04"
|
||||||
|
|
||||||
|
- name: "MT32_CONTROL.ROM"
|
||||||
|
description: "MT-32 Control v2.06"
|
||||||
|
required: false
|
||||||
|
size: 131072
|
||||||
|
sha1: "2869cf4c235d671668cfcb62415e2ce8323ad4ed"
|
||||||
|
source_ref: "mt32emu.h:CTRL_MT32_V2_06"
|
||||||
|
|
||||||
|
- name: "MT32_CONTROL.ROM"
|
||||||
|
description: "MT-32 Control v2.07"
|
||||||
|
required: false
|
||||||
|
size: 131072
|
||||||
|
sha1: "47b52adefedaec475c925e54340e37673c11707c"
|
||||||
|
source_ref: "mt32emu.h:CTRL_MT32_V2_07"
|
||||||
|
|
||||||
|
# -- CM-32L / LAPC-I Control ROMs (64 KB) --
|
||||||
|
|
||||||
|
- name: "CM32L_CONTROL.ROM"
|
||||||
|
description: "CM-32L/LAPC-I Control v1.00"
|
||||||
|
required: false
|
||||||
|
size: 65536
|
||||||
|
sha1: "73683d585cd6948cc19547942ca0e14a0319456d"
|
||||||
|
source_ref: "mt32emu.h:CTRL_CM32L_V1_00"
|
||||||
|
|
||||||
|
- name: "CM32L_CONTROL.ROM"
|
||||||
|
description: "CM-32L/LAPC-I Control v1.02"
|
||||||
|
required: false
|
||||||
|
size: 65536
|
||||||
|
sha1: "a439fbb390da38cada95a7cbb1d6ca199cd66ef8"
|
||||||
|
source_ref: "mt32emu.h:CTRL_CM32L_V1_02"
|
||||||
|
|
||||||
|
# -- CM-32LN / CM-500 / LAPC-N Control ROM (64 KB) --
|
||||||
|
|
||||||
|
- name: "CM32LN_CONTROL.ROM"
|
||||||
|
description: "CM-32LN/CM-500/LAPC-N Control v1.00"
|
||||||
|
required: false
|
||||||
|
size: 65536
|
||||||
|
sha1: "dc1c5b1b90a4646d00f7daf3679733c7badc7077"
|
||||||
|
source_ref: "mt32emu.h:CTRL_CM32LN_V1_00"
|
||||||
|
|
||||||
|
# -- PCM ROMs --
|
||||||
|
|
||||||
|
- name: "MT32_PCM.ROM"
|
||||||
|
description: "MT-32 PCM ROM"
|
||||||
|
required: false
|
||||||
|
size: 524288
|
||||||
|
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
|
||||||
|
source_ref: "mt32emu.h:PCM_MT32"
|
||||||
|
notes: "pairs with any MT-32 v1.x control ROM"
|
||||||
|
|
||||||
|
- name: "CM32L_PCM.ROM"
|
||||||
|
description: "CM-32L/CM-64/LAPC-I PCM ROM"
|
||||||
|
required: false
|
||||||
|
size: 1048576
|
||||||
|
sha1: "289cc298ad532b702461bfc738009d9ebe8025ea"
|
||||||
|
source_ref: "mt32emu.h:PCM_CM32L"
|
||||||
|
notes: "pairs with MT-32 v2.x or CM-32L control ROMs. Lower half aliases MT-32 PCM."
|
||||||
|
|
||||||
|
# -- General MIDI SoundFont --
|
||||||
|
|
||||||
|
- name: "DOSBOX.SF2"
|
||||||
|
description: "General MIDI SoundFont (any .sf2/.sf3 accepted)"
|
||||||
|
required: false
|
||||||
|
source_ref: "dosbox_pure_libretro.cpp:1375,2760"
|
||||||
|
notes: >
|
||||||
|
Any .SF2 or .SF3 file in the system directory works. The core lists all
|
||||||
|
found SoundFonts in the MIDI config dropdown. DOSBOX.SF2 is the conventional
|
||||||
|
name and is also auto-detected when placed inside game content on C: drive.
|
||||||
94
emulators/galaksija.yml
Normal file
94
emulators/galaksija.yml
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
emulator: galaksija
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/galaxy-libretro"
|
||||||
|
cores:
|
||||||
|
- galaksija
|
||||||
|
systems:
|
||||||
|
- galaksija
|
||||||
|
|
||||||
|
# Galaksija is a Yugoslav home computer (1983, designed by Voja Antonic) emulator.
|
||||||
|
# Z80-based at 3.072 MHz, PAL 50fps, character-mode display (32x16 chars, 256x208 px).
|
||||||
|
#
|
||||||
|
# The core embeds all three firmware files compressed in rom.c (LoadCHRGENBIN,
|
||||||
|
# LoadROM1BIN, LoadROM2BIN). External files are optional overrides -- if ANY of
|
||||||
|
# CHRGEN.BIN or ROM1.BIN is missing from <system_dir>/galaksija/, the core sets
|
||||||
|
# firmware_ignore=true and loads all ROMs from the embedded copies instead.
|
||||||
|
#
|
||||||
|
# Firmware loading (src/libretro.c:93-135):
|
||||||
|
# 1. retro_init() checks for galaksija/CHRGEN.BIN and galaksija/ROM1.BIN
|
||||||
|
# 2. If either is missing: firmware_ignore=true, load embedded compressed ROMs
|
||||||
|
# 3. If both present: galaxy_init() reads files from disk (init.c:46-105)
|
||||||
|
# 4. ROM2.BIN missing is a warning only, not fatal (init.c:84-85)
|
||||||
|
# 5. GAL_PLUS.BIN: referenced in a TODO comment but not implemented yet
|
||||||
|
#
|
||||||
|
# Memory map:
|
||||||
|
# 0x0000-0x0FFF: ROM1 (4096 bytes) - BASIC interpreter
|
||||||
|
# 0x1000-0x1FFF: ROM2 (4096 bytes) - math extension (optional)
|
||||||
|
# 0x2000-0x27FF: keyboard memory-mapped I/O
|
||||||
|
# 0x2800-0x29FF: screen RAM (32x16 characters)
|
||||||
|
# 0x2A00-0x3FFF: free RAM
|
||||||
|
# chargen: 2048-byte character generator ROM (separate, not memory-mapped)
|
||||||
|
#
|
||||||
|
# The included firmware is public domain per README.
|
||||||
|
|
||||||
|
files:
|
||||||
|
- name: "CHRGEN.BIN"
|
||||||
|
path: "galaksija/CHRGEN.BIN"
|
||||||
|
size: 2048
|
||||||
|
required: false
|
||||||
|
note: >
|
||||||
|
Character generator ROM. Defines the 128-character bitmap font (8x13 pixels
|
||||||
|
each). The core has this embedded compressed in rom.c and only loads the
|
||||||
|
external file if all firmware files are present in the system directory.
|
||||||
|
source_ref: "src/rom.h:5, src/libretro.c:95-99, src/external/galaksija-emulator/src/init.c:55-67"
|
||||||
|
|
||||||
|
- name: "ROM1.BIN"
|
||||||
|
path: "galaksija/ROM1.BIN"
|
||||||
|
size: 4096
|
||||||
|
required: false
|
||||||
|
note: >
|
||||||
|
System ROM / BASIC interpreter. Mapped at 0x0000-0x0FFF. Contains the
|
||||||
|
Galaksija BASIC language and boot routines. Embedded in rom.c as fallback.
|
||||||
|
source_ref: "src/rom.h:8, src/libretro.c:101-105, src/external/galaksija-emulator/src/init.c:69-81"
|
||||||
|
|
||||||
|
- name: "ROM2.BIN"
|
||||||
|
path: "galaksija/ROM2.BIN"
|
||||||
|
size: 4096
|
||||||
|
required: false
|
||||||
|
note: >
|
||||||
|
Math extension ROM. Mapped at 0x1000-0x1FFF. Adds floating-point math
|
||||||
|
functions (SIN, COS, TG, SQR, LN, EXP, POW, etc). Optional even when
|
||||||
|
loading from disk -- missing ROM2 only triggers a warning. Embedded in
|
||||||
|
rom.c as fallback.
|
||||||
|
source_ref: "src/rom.h:11, src/libretro.c:107-110, src/external/galaksija-emulator/src/init.c:83-92"
|
||||||
|
|
||||||
|
- name: "GAL_PLUS.BIN"
|
||||||
|
path: "galaksija/GAL_PLUS.BIN"
|
||||||
|
size: 4096
|
||||||
|
required: false
|
||||||
|
note: >
|
||||||
|
Galaksija Plus extension ROM. Would map at 0xE000-0xEFFF. Referenced in a
|
||||||
|
TODO comment in init.c but not yet implemented in the libretro core. The
|
||||||
|
original standalone emulator loaded it optionally with a Serbian message
|
||||||
|
on failure ("GAL_PLUS.BIN nije prisutan, idemo dalje bez njega!").
|
||||||
|
source_ref: "src/external/galaksija-emulator/src/init.c:94-104"
|
||||||
|
|
||||||
|
notes:
|
||||||
|
embedded_firmware: >
|
||||||
|
All three ROMs (CHRGEN.BIN, ROM1.BIN, ROM2.BIN) are embedded as compressed
|
||||||
|
blobs in src/rom.c using RLE compression. The core works out of the box
|
||||||
|
without any external firmware files. External files only serve as overrides
|
||||||
|
for users who want alternative ROM versions (e.g. different BASIC revisions
|
||||||
|
or character sets).
|
||||||
|
firmware_override_logic: >
|
||||||
|
The override is all-or-nothing for CHRGEN.BIN and ROM1.BIN. If either file
|
||||||
|
is missing from galaksija/, the core ignores all external firmware and uses
|
||||||
|
embedded copies. ROM2.BIN is handled separately and can be absent even when
|
||||||
|
loading from disk.
|
||||||
|
license: >
|
||||||
|
The emulator code and included firmware are public domain. External
|
||||||
|
dependencies (libz80, libretro-common, tinyfiledialogs) have separate
|
||||||
|
licenses (GPL2, MIT).
|
||||||
|
no_bios_required_for_pack: >
|
||||||
|
Since all firmware is embedded, this core does not need any BIOS files in
|
||||||
|
platform packs. The files listed above are optional overrides only.
|
||||||
68
emulators/gearsystem.yml
Normal file
68
emulators/gearsystem.yml
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
emulator: Gearsystem
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/drhelius/Gearsystem"
|
||||||
|
cores:
|
||||||
|
- gearsystem
|
||||||
|
systems:
|
||||||
|
- sega-mastersystem
|
||||||
|
- sega-gamegear
|
||||||
|
- sega-sg1000
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Gearsystem is a Sega Master System / Game Gear / SG-1000 emulator by
|
||||||
|
Ignacio Sanchez (drhelius). No BIOS is required for normal operation.
|
||||||
|
|
||||||
|
The core supports optional boot ROMs for Master System and Game Gear,
|
||||||
|
controlled by core options "gearsystem_bios_sms" and "gearsystem_bios_gg"
|
||||||
|
(both disabled by default). Boot ROMs are loaded in load_bootroms()
|
||||||
|
from the system directory with fixed filenames.
|
||||||
|
|
||||||
|
SG-1000 has no BIOS support. IsBootromEnabled() in Memory.cpp explicitly
|
||||||
|
returns false when a SG-1000 cartridge is detected.
|
||||||
|
|
||||||
|
When enabled, the boot ROM executes as on original hardware, which may
|
||||||
|
cause invalid ROMs to lock or fail to boot entirely.
|
||||||
|
|
||||||
|
Note: gearcoleco, geargrafx, and gearlynx are separate emulators by the
|
||||||
|
same author covering ColecoVision, PC Engine, and Atari Lynx respectively.
|
||||||
|
They are not part of Gearsystem.
|
||||||
|
|
||||||
|
files:
|
||||||
|
# --- Master System boot ROM (optional, behind gearsystem_bios_sms) ---
|
||||||
|
- name: "bios.sms"
|
||||||
|
system: sega-mastersystem
|
||||||
|
description: "Master System boot ROM"
|
||||||
|
required: false
|
||||||
|
source_ref: "platforms/libretro/libretro.cpp:414 (load_bootroms)"
|
||||||
|
notes: "Loaded from system directory. Core option gearsystem_bios_sms must be set to Enabled. No size or hash validation performed by the core."
|
||||||
|
|
||||||
|
# --- Game Gear boot ROM (optional, behind gearsystem_bios_gg) ---
|
||||||
|
- name: "bios.gg"
|
||||||
|
system: sega-gamegear
|
||||||
|
description: "Game Gear boot ROM"
|
||||||
|
required: false
|
||||||
|
source_ref: "platforms/libretro/libretro.cpp:415 (load_bootroms)"
|
||||||
|
notes: "Loaded from system directory. Core option gearsystem_bios_gg must be set to Enabled. No size or hash validation performed by the core."
|
||||||
|
|
||||||
|
platform_details:
|
||||||
|
mastersystem:
|
||||||
|
bios_filename: "bios.sms"
|
||||||
|
source_ref: "src/Memory.cpp:222-228"
|
||||||
|
notes: |
|
||||||
|
Boot ROM loaded via LoadBootromSMS() -> LoadBootroom(path, false).
|
||||||
|
Raw binary read, stored in m_pBootromSMS. Bank count computed as
|
||||||
|
Pow2Ceil(size / 0x4000). Memory mapping controlled by port 3E bit 3.
|
||||||
|
|
||||||
|
gamegear:
|
||||||
|
bios_filename: "bios.gg"
|
||||||
|
source_ref: "src/Memory.cpp:230-234"
|
||||||
|
notes: |
|
||||||
|
Boot ROM loaded via LoadBootromGG() -> LoadBootroom(path, true).
|
||||||
|
Raw binary read, stored in m_pBootromGG. Same bank computation.
|
||||||
|
Supports standard GG BIOS and Majesco 1KB variant.
|
||||||
|
|
||||||
|
sg1000:
|
||||||
|
bios_filename: null
|
||||||
|
notes: |
|
||||||
|
No BIOS support. Memory.cpp:291 returns false from IsBootromEnabled()
|
||||||
|
when IsSG1000() is true.
|
||||||
81
emulators/mu.yml
Normal file
81
emulators/mu.yml
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
emulator: Mu
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/Mu"
|
||||||
|
systems: [palm-os]
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Mu emulates Palm OS handhelds: Palm m500, Palm m515, and (if compiled
|
||||||
|
with EMU_SUPPORT_PALM_OS5) the Tungsten T3.
|
||||||
|
|
||||||
|
A Palm OS ROM dump is required. The core selects the ROM filename based
|
||||||
|
on the "OS Version" core option:
|
||||||
|
Palm m500 / Palm OS 4.0 -> palmos40-en-m500.rom
|
||||||
|
Palm m515 / Palm OS 4.1 -> palmos41-en-m515.rom (default)
|
||||||
|
Tungsten T3 / Palm OS 5.2 -> palmos52-en-t3.rom
|
||||||
|
Tungsten T3 / Palm OS 6.0 -> palmos60-en-t3.rom
|
||||||
|
|
||||||
|
ROM path construction: retro_load_game() joins
|
||||||
|
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY + "/" + osVersion + ".rom".
|
||||||
|
|
||||||
|
The bootloader (bootloader-dbvz.rom) is optional. It contains the
|
||||||
|
MC68VZ328 UART bootloader and is only relevant for m500/m515 devices.
|
||||||
|
For the Tungsten T3 it is ignored even if present.
|
||||||
|
|
||||||
|
The m500/m515 ROM is loaded into a 4 MB region (M5XX_ROM_SIZE),
|
||||||
|
padded with 0x00 if smaller, and byte-swapped on little-endian hosts.
|
||||||
|
The Tungsten T3 ROM maps into a 16 MB region (TUNGSTEN_T3_ROM_SIZE).
|
||||||
|
|
||||||
|
The core also supports no-game mode (supports_no_game = true). Without
|
||||||
|
content, it boots the standard Palm OS desktop from the ROM.
|
||||||
|
|
||||||
|
files:
|
||||||
|
# --- Palm m515 / Palm OS 4.1 (default device) ---
|
||||||
|
- name: "palmos41-en-m515.rom"
|
||||||
|
system: palm-os
|
||||||
|
description: "Palm m515 ROM, Palm OS 4.1 English"
|
||||||
|
required: true
|
||||||
|
note: "Default ROM. Selected when core option is 'Palm m515/Palm OS 4.1'. Max 4 MB, byte-swapped on LE."
|
||||||
|
source_ref: "libretroBuildSystem/libretro.c:173-176,744-763 (retro_load_game ROM loading)"
|
||||||
|
|
||||||
|
# --- Palm m500 / Palm OS 4.0 ---
|
||||||
|
- name: "palmos40-en-m500.rom"
|
||||||
|
system: palm-os
|
||||||
|
description: "Palm m500 ROM, Palm OS 4.0 English"
|
||||||
|
required: false
|
||||||
|
note: "Selected when core option is 'Palm m500/Palm OS 4.0'. Max 4 MB."
|
||||||
|
source_ref: "libretroBuildSystem/libretro.c:169-172"
|
||||||
|
|
||||||
|
# --- Tungsten T3 / Palm OS 5.2.1 (requires EMU_SUPPORT_PALM_OS5) ---
|
||||||
|
- name: "palmos52-en-t3.rom"
|
||||||
|
system: palm-os
|
||||||
|
description: "Tungsten T3 ROM, Palm OS 5.2.1 English"
|
||||||
|
required: false
|
||||||
|
note: "Selected when core option is 'Tungsten T3/Palm OS 5.2.1'. Max 16 MB. Only available if core compiled with EMU_SUPPORT_PALM_OS5."
|
||||||
|
source_ref: "libretroBuildSystem/libretro.c:178-181"
|
||||||
|
|
||||||
|
# --- Tungsten T3 / Palm OS 6.0 (requires EMU_SUPPORT_PALM_OS5) ---
|
||||||
|
- name: "palmos60-en-t3.rom"
|
||||||
|
system: palm-os
|
||||||
|
description: "Tungsten T3 ROM, Palm OS 6.0 English"
|
||||||
|
required: false
|
||||||
|
note: "Selected when core option is 'Tungsten T3/Palm OS 6.0'. Max 16 MB. Only available if core compiled with EMU_SUPPORT_PALM_OS5."
|
||||||
|
source_ref: "libretroBuildSystem/libretro.c:182-185"
|
||||||
|
|
||||||
|
# --- MC68VZ328 bootloader ---
|
||||||
|
- name: "bootloader-dbvz.rom"
|
||||||
|
system: palm-os
|
||||||
|
description: "MC68VZ328 UART bootloader"
|
||||||
|
required: false
|
||||||
|
note: "Optional for m500/m515. Ignored for Tungsten T3. Loads from system directory."
|
||||||
|
source_ref: "libretroBuildSystem/libretro.c:766-782"
|
||||||
|
|
||||||
|
platform_details:
|
||||||
|
palm_m5xx:
|
||||||
|
rom_size: 4194304 # 4 MB (M5XX_ROM_SIZE)
|
||||||
|
cpu: "MC68VZ328"
|
||||||
|
source_ref: "include/m5XXBus.h:23, src/emulator.c:191-212"
|
||||||
|
|
||||||
|
tungsten_t3:
|
||||||
|
rom_size: 16777216 # 16 MB (TUNGSTEN_T3_ROM_SIZE)
|
||||||
|
cpu: "PXA260 (ARM)"
|
||||||
|
source_ref: "include/tungstenT3Bus.h:17, src/emulator.c:158-164"
|
||||||
Reference in New Issue
Block a user