diff --git a/emulators/b2.yml b/emulators/b2.yml new file mode 100644 index 00000000..100178fb --- /dev/null +++ b/emulators/b2.yml @@ -0,0 +1,103 @@ +emulator: b2 +type: standalone +source: "https://github.com/tom-seddon/b2" +cores: [] +systems: + - bbc-micro-b + - bbc-micro-bplus + - bbc-master-128 + - bbc-master-compact + +# b2 is a standalone BBC Micro emulator by Tom Seddon. It is NOT a libretro +# core -- there is no libretro port. The emulator uses SDL2 and Dear ImGui. +# +# Emulated models (src/b2/BeebConfig.cpp:211-433): +# - BBC Model B (with various disc interfaces: Acorn 1770, Watford, Opus) +# - BBC Model B+ / B+128 +# - BBC Master 128 (MOS 3.20 and 3.50) +# - BBC Master Turbo (MOS 3.20 and 3.50, with 65C102 parasite) +# - BBC Model B + 6502 second processor +# - BBC Master Compact (MOS 5.00, 5.10, I5.10C) +# - Olivetti PC 128 S (Master Compact variant) +# +# ROM handling: +# All ROMs ship in the repo under etc/roms/. The emulator loads them via +# GetAssetPath("roms", path) at runtime. No external BIOS files needed. +# ROM paths are defined in src/b2/roms.cpp as BeebROM structs with +# {filename, display_name, StandardROM_enum}. +# +# ROM inventory (etc/roms/): +# +# BBC Model B: +# OS12.ROM 16384 md5:0a59a5ba15fe8557b5f7fee32bbd393a OS 1.20 +# BASIC2.ROM 16384 md5:2cc67be4624df4dc66617742571a8e3d BASIC II +# +# BBC Model B+: +# B+MOS.rom 16384 md5:47a1eff6c7fbb47be780c87dfd50ece1 B+ MOS +# BASIC2.ROM 16384 (shared with Model B) +# +# Disc interfaces (sideways ROMs, slot 14): +# acorn/DFS-2.26.rom 16384 md5:f083f49d6fe66344c650d7e74249cb96 Acorn 1770 DFS +# watford/DDFS-1.53.rom 16384 md5:d2b71fa664f6cdf8c24b9b304777998c Watford DDFS (DDB2) +# watford/DDFS-1.54T.rom 16384 md5:e73a0417278504a6dfac2ccd9a73e9a9 Watford DDFS (DDB3) +# opus/OPUS-DDOS-3.45.rom 16384 md5:d98316eaff56ceab4fe3bfe54d2f92b2 Opus DDOS +# opus/challenger-1.01.rom 16384 md5:67e086a11834f8cc69175b601c4e5a5f Opus Challenger +# +# BBC Master 128 MOS 3.20 (M128/3.20/): +# mos.rom 16384 md5:9087f772447038a00178488b3591347b MOS 3.20 OS +# terminal.rom 16384 md5:7e053353b78b4631c274280931d96f02 Terminal (slot f) +# view.rom 16384 md5:178d09285727d596f8863f94a2fc8dad View (slot e) +# adfs.rom 16384 md5:10f08b255d6a6e3e888631946b628f1a ADFS (slot d) +# basic4.rom 16384 md5:63a6f43cbf491533cb03ceca2d2728d4 BASIC IV (slot c) +# edit.rom 16384 md5:cb3d762eaab6130d1360e1ac575589de Edit (slot b) +# viewsht.rom 16384 md5:7d5a80a8ce929d0a0f6ca8626cb9f436 Viewsheet (slot a) +# dfs.rom 16384 md5:865a0f7a5d6f10f48798801bf514d761 DFS (slot 9) +# +# BBC Master 128 MOS 3.50 (M128/3.50/): +# mos.rom 16384 md5:d7a046b1e6a9991748cee05332f1e258 MOS 3.50 OS +# terminal.rom 16384 md5:b1fa51fd49d31224ecb7e10e6908ec01 Terminal (slot f) +# view.rom 16384 md5:1566fab2f1827fb7ba61b283b828731d View (slot e) +# adfs.rom 16384 md5:fb8ceb72c5fbd9dd80eedd10d076b1a2 ADFS (slot d) +# basic4.rom 16384 md5:e11eed95d1caba8aa9772e9001590585 BASIC IV (slot c) +# edit.rom 16384 md5:8c72c7f24567cb4a2fb15eb0b0aeb55b Edit (slot b) +# viewsht.rom 16384 md5:1bc68b7c5eba6a2de2a43c9d1d9d983b Viewsheet (slot a) +# dfs.rom 16384 md5:22c2b7f14f244da21d630a7828541c79 DFS (slot 9) +# +# Parasite processors: +# MasterTurboParasite.rom 2048 md5:83d73e0e78693bb4b43e7cb18e58d556 65C102 TUBE 1.20 +# TUBE110.rom 2048 md5:a77c7946128ca0b2c5e5a66b17c99dae 6502 TUBE 1.10 +# +# BBC Master Compact MOS 5.00 (MCompact/5.00/): +# mos.rom 16384 md5:5d1b635e39aa461f17db2344870dda36 MOS 5.00 OS +# utils.rom 16384 md5:4f9ded16f44278a4ca0ef4e66822e316 UTILS (slot f) +# basic4.rom 16384 md5:64b3cd52e36b5262ac6ca3a9823c6ee2 BASIC IV (slot e) +# adfs.rom 16384 md5:bfbd0a7dbbfb1f1f4ba5ac0343c1f8ce ADFS (slot d) +# +# BBC Master Compact MOS 5.10 (MCompact/5.10/): +# mos.rom 16384 md5:f65eb89c7044e328b79f2ef8e51b7fd8 MOS 5.10 OS +# utils.rom 16384 md5:48a197850113b00a1eb141fb6d3ea135 UTILS (slot f) +# basic4.rom 16384 md5:64b3cd52e36b5262ac6ca3a9823c6ee2 BASIC IV (slot e, same as 5.00) +# adfs.rom 16384 md5:c2afc1cabb135e6f2254bcf9300a9b83 ADFS (slot d) +# +# Olivetti PC 128 S / MOS I5.10C (MCompact/I5.10C/): +# mos.rom 16384 md5:5e16a38bd7fd6f07f26b5a64826e4ec6 MOS I5.10C OS +# utils.rom 16384 md5:75364aa6fd5e134a40051d9ee772df37 UTILS (slot f) +# basic4.rom 16384 md5:717df34edae5b6bf5bbd8879c0d13022 BASIC IV (slot e) +# adfs.rom 16384 md5:10f23a239dde39b7fe09d72083709e93 ADFS (slot d) +# +# ROM type system (src/beeb/include/beeb/roms.inl): +# Sideways ROMs support banked mappers: 16KB (standard), CCIWORD (32KB), +# CCIBASE (64KB), CCISPELL (128KB), PALQST/PALWAP/PALTED, ABEP, ABE, +# Trilogy (64KB), MO2 (128KB). OS ROM types: 16KB, Compact (64KB), +# MegaROM (128KB), Multi-OS (512KB with 4 banks). +# +# Memory map (src/beeb/include/beeb/type.h): +# OS ROM mapped at $C000-$FFFF (MOS big pages). Sideways ROMs in 16 banks +# at $8000-$BFFF, selected via ROMSEL register at $FE30. + +notes: | + b2 is a standalone BBC Micro emulator (SDL2 + Dear ImGui). Not a libretro core. + All required ROMs are bundled in the repository under etc/roms/. + No external BIOS files need to be provided by the user. + +bios_files: [] diff --git a/emulators/cannonball.yml b/emulators/cannonball.yml new file mode 100644 index 00000000..b9ff08d3 --- /dev/null +++ b/emulators/cannonball.yml @@ -0,0 +1,385 @@ +emulator: Cannonball +type: libretro +source: "https://github.com/libretro/cannonball" +systems: + - sega-outrun + +notes: | + Cannonball is an enhanced OutRun engine that runs the original Sega OutRun + arcade ROM set (Rev B). It is not a traditional emulator but a source port + that loads the original ROM data for graphics, sound, and gameplay logic. + + The core looks for ROM files in one of two locations + (src/main/libretro/main.cpp:945-967): + 1. The directory containing a loaded .game content file + 2. {system_dir}/cannonball/ + + ROM loading is in src/main/roms.cpp. Each file is verified by CRC32 at load + time (src/main/romloader.cpp:70-76). Files are loaded as raw ROM chips, not + inside ZIP archives. + + The Rev B ROM set is always required. Japanese ROM variants are loaded on + demand when the "Japanese Tracks" core option is enabled. + + Two optional widescreen tilemap patches are loaded from a res/ subdirectory + (src/main/engine/omusic.cpp:42-51). These are Cannonball-specific data files + shipped with the core, not original arcade ROMs. + + The fixed PCM sample variant (opr-10188.71f) replaces opr-10188.71 when the + "Fix Broken Samples" core option is enabled. + +files: + # ------------------------------------------------------- + # Master CPU ROMs (68000, Rev B) + # ------------------------------------------------------- + - name: "epr-10381a.132" + system: sega-outrun + required: true + size: 65536 # 0x10000 + crc32: "be8c412b" + note: "Master 68K, high byte, upper bank (Rev A alternate)" + source_ref: "src/main/roms.cpp:29" + + - name: "epr-10383b.117" + system: sega-outrun + required: true + size: 65536 + crc32: "10a2014a" + note: "Master 68K, low byte, upper bank" + source_ref: "src/main/roms.cpp:38" + + - name: "epr-10380b.133" + system: sega-outrun + required: true + size: 65536 + crc32: "1f6cadad" + note: "Master 68K, high byte, lower bank" + source_ref: "src/main/roms.cpp:39" + + - name: "epr-10382b.118" + system: sega-outrun + required: true + size: 65536 + crc32: "c4c3fa1a" + note: "Master 68K, low byte, lower bank" + source_ref: "src/main/roms.cpp:40" + + # ------------------------------------------------------- + # Slave CPU ROMs (68000, Rev A) + # ------------------------------------------------------- + - name: "epr-10327a.76" + system: sega-outrun + required: true + size: 65536 + crc32: "e28a5baf" + note: "Slave 68K, high byte, lower bank" + source_ref: "src/main/roms.cpp:44" + + - name: "epr-10329a.58" + system: sega-outrun + required: true + size: 65536 + crc32: "da131c81" + note: "Slave 68K, low byte, lower bank" + source_ref: "src/main/roms.cpp:45" + + - name: "epr-10328a.75" + system: sega-outrun + required: true + size: 65536 + crc32: "d5ec5e5d" + note: "Slave 68K, high byte, upper bank" + source_ref: "src/main/roms.cpp:46" + + - name: "epr-10330a.57" + system: sega-outrun + required: true + size: 65536 + crc32: "ba9ec82a" + note: "Slave 68K, low byte, upper bank" + source_ref: "src/main/roms.cpp:47" + + # ------------------------------------------------------- + # Tile ROMs + # ------------------------------------------------------- + - name: "opr-10268.99" + system: sega-outrun + required: true + size: 32768 # 0x8000 + crc32: "95344b04" + note: "Tile ROM bank 0" + source_ref: "src/main/roms.cpp:51" + + - name: "opr-10232.102" + system: sega-outrun + required: true + size: 32768 + crc32: "776ba1eb" + note: "Tile ROM bank 1" + source_ref: "src/main/roms.cpp:52" + + - name: "opr-10267.100" + system: sega-outrun + required: true + size: 32768 + crc32: "a85bb823" + note: "Tile ROM bank 2" + source_ref: "src/main/roms.cpp:53" + + - name: "opr-10231.103" + system: sega-outrun + required: true + size: 32768 + crc32: "8908bcbf" + note: "Tile ROM bank 3" + source_ref: "src/main/roms.cpp:54" + + - name: "opr-10266.101" + system: sega-outrun + required: true + size: 32768 + crc32: "9f6f1a74" + note: "Tile ROM bank 4" + source_ref: "src/main/roms.cpp:55" + + - name: "opr-10230.104" + system: sega-outrun + required: true + size: 32768 + crc32: "686f5e50" + note: "Tile ROM bank 5" + source_ref: "src/main/roms.cpp:56" + + # ------------------------------------------------------- + # Road ROMs (identical pair, one per road layer) + # ------------------------------------------------------- + - name: "opr-10185.11" + system: sega-outrun + required: true + size: 32768 + crc32: "22794426" + note: "Road ROM, layer 1" + source_ref: "src/main/roms.cpp:60" + + - name: "opr-10186.47" + system: sega-outrun + required: true + size: 32768 + crc32: "22794426" + note: "Road ROM, layer 2 (identical to opr-10185.11)" + source_ref: "src/main/roms.cpp:61" + + # ------------------------------------------------------- + # Sprite ROMs (interleaved 4-way) + # ------------------------------------------------------- + - name: "mpr-10371.9" + system: sega-outrun + required: true + size: 131072 # 0x20000 + crc32: "7cc86208" + note: "Sprite ROM, bank 0 byte 0" + source_ref: "src/main/roms.cpp:65" + + - name: "mpr-10373.10" + system: sega-outrun + required: true + size: 131072 + crc32: "b0d26ac9" + note: "Sprite ROM, bank 0 byte 1" + source_ref: "src/main/roms.cpp:66" + + - name: "mpr-10375.11" + system: sega-outrun + required: true + size: 131072 + crc32: "59b60bd7" + note: "Sprite ROM, bank 0 byte 2" + source_ref: "src/main/roms.cpp:67" + + - name: "mpr-10377.12" + system: sega-outrun + required: true + size: 131072 + crc32: "17a1b04a" + note: "Sprite ROM, bank 0 byte 3" + source_ref: "src/main/roms.cpp:68" + + - name: "mpr-10372.13" + system: sega-outrun + required: true + size: 131072 + crc32: "b557078c" + note: "Sprite ROM, bank 1 byte 0" + source_ref: "src/main/roms.cpp:69" + + - name: "mpr-10374.14" + system: sega-outrun + required: true + size: 131072 + crc32: "8051e517" + note: "Sprite ROM, bank 1 byte 1" + source_ref: "src/main/roms.cpp:70" + + - name: "mpr-10376.15" + system: sega-outrun + required: true + size: 131072 + crc32: "f3b8f318" + note: "Sprite ROM, bank 1 byte 2" + source_ref: "src/main/roms.cpp:71" + + - name: "mpr-10378.16" + system: sega-outrun + required: true + size: 131072 + crc32: "a1062984" + note: "Sprite ROM, bank 1 byte 3" + source_ref: "src/main/roms.cpp:72" + + # ------------------------------------------------------- + # Z80 Sound ROM + # ------------------------------------------------------- + - name: "epr-10187.88" + system: sega-outrun + required: true + size: 65536 # 0x10000 + crc32: "a10abaa9" + note: "Z80 sound program" + source_ref: "src/main/roms.cpp:76" + + # ------------------------------------------------------- + # Sega PCM samples + # ------------------------------------------------------- + - name: "opr-10193.66" + system: sega-outrun + required: true + size: 32768 + crc32: "bcd10dde" + note: "PCM sample bank 0" + source_ref: "src/main/roms.cpp:80" + + - name: "opr-10192.67" + system: sega-outrun + required: true + size: 32768 + crc32: "770f1270" + note: "PCM sample bank 1" + source_ref: "src/main/roms.cpp:81" + + - name: "opr-10191.68" + system: sega-outrun + required: true + size: 32768 + crc32: "20a284ab" + note: "PCM sample bank 2" + source_ref: "src/main/roms.cpp:82" + + - name: "opr-10190.69" + system: sega-outrun + required: true + size: 32768 + crc32: "7cab70e2" + note: "PCM sample bank 3" + source_ref: "src/main/roms.cpp:83" + + - name: "opr-10189.70" + system: sega-outrun + required: true + size: 32768 + crc32: "01366b54" + note: "PCM sample bank 4" + source_ref: "src/main/roms.cpp:84" + + - name: "opr-10188.71" + system: sega-outrun + required: true + size: 32768 + crc32: "bad30ad9" + note: "PCM sample bank 5" + source_ref: "src/main/roms.cpp:85" + + # ------------------------------------------------------- + # Alternate / optional ROMs + # ------------------------------------------------------- + - name: "epr-10381b.132" + system: sega-outrun + required: false + size: 65536 + crc32: "be8c412b" + note: "Master 68K, Rev B alternate filename for epr-10381a.132" + source_ref: "src/main/roms.cpp:34" + + - name: "opr-10188.71f" + system: sega-outrun + required: false + size: 32768 + crc32: "37598616" + note: "PCM sample bank 5, fixed version (replaces opr-10188.71)" + source_ref: "src/main/roms.cpp:123" + + # ------------------------------------------------------- + # Japanese ROM variants (loaded when jap option enabled) + # ------------------------------------------------------- + - name: "epr-10380.133" + system: sega-outrun + required: false + size: 65536 + crc32: "e339e87a" + note: "Master 68K Japan, high byte, lower bank" + source_ref: "src/main/roms.cpp:104" + + - name: "epr-10382.118" + system: sega-outrun + required: false + size: 65536 + crc32: "65248dd5" + note: "Master 68K Japan, low byte, lower bank" + source_ref: "src/main/roms.cpp:105" + + - name: "epr-10381.132" + system: sega-outrun + required: false + size: 65536 + crc32: "be8c412b" + note: "Master 68K Japan, high byte, upper bank" + source_ref: "src/main/roms.cpp:106" + + - name: "epr-10383.117" + system: sega-outrun + required: false + size: 65536 + crc32: "dcc586e7" + note: "Master 68K Japan, low byte, upper bank" + source_ref: "src/main/roms.cpp:107" + + - name: "epr-10327.76" + system: sega-outrun + required: false + size: 65536 + crc32: "da99d855" + note: "Slave 68K Japan, high byte, lower bank" + source_ref: "src/main/roms.cpp:110" + + - name: "epr-10329.58" + system: sega-outrun + required: false + size: 65536 + crc32: "fe0fa5e2" + note: "Slave 68K Japan, low byte, lower bank" + source_ref: "src/main/roms.cpp:111" + + - name: "epr-10328.75" + system: sega-outrun + required: false + size: 65536 + crc32: "3c0e9a7f" + note: "Slave 68K Japan, high byte, upper bank" + source_ref: "src/main/roms.cpp:112" + + - name: "epr-10330.57" + system: sega-outrun + required: false + size: 65536 + crc32: "59786e99" + note: "Slave 68K Japan, low byte, upper bank" + source_ref: "src/main/roms.cpp:113" diff --git a/emulators/emuscv.yml b/emulators/emuscv.yml new file mode 100644 index 00000000..3a2e785c --- /dev/null +++ b/emulators/emuscv.yml @@ -0,0 +1,66 @@ +emulator: EmuSCV +type: libretro +source: "https://github.com/wzcwzc/emuscv" +cores: + - emuscv +systems: + - scv + +notes: | + EmuSCV is an Epoch/YENO Super Cassette Vision emulator for libretro, + based on eSCV by Takeda Toshiya. + + BIOS loading in src/vm/scv/memory.cpp:initialize() (line 71-242). The core + tries multiple filenames in order: upd7801g.s01, upd7801g.bin, upd7801g.bios, + bios.rom, bios.bin. First successful open wins. + + The BIOS is read as 0x1000 (4096) bytes into the bios[] array, mapped + read-only at CPU address 0x0000-0x0FFF (UPD7801 internal ROM area). + + When CHECKBIOS core option is YES or AUTO, the core computes MD5 of the + loaded data and compares against 635a978fd40db9a18ee44eff449fc126. If the + hash does not match, the BIOS is rejected (zeroed out, bios_present=false). + When CHECKBIOS is NO, any file content is accepted. + + The font/character data is embedded within the BIOS at offset 0x200 + (memory.h:163 get_font() returns bios + 0x200). No separate font ROM file. + + The core can start without BIOS (supports_no_game=true) but shows + "BIOS not found" or "Bad BIOS" on the OSD. Games will not run without it. + + The .info file declares firmware_count = 1, firmware0_opt = false. + +files: + - name: "upd7801g.s01" + system: scv + required: true + size: 4096 # 4 KB, UPD7801G internal ROM + md5: 635a978fd40db9a18ee44eff449fc126 + note: "UPD7801G internal ROM (BIOS). Mapped at 0x0000-0x0FFF. Contains character font at offset 0x200." + source_ref: "src/vm/scv/memory.cpp:74, libretro-core-info/emuscv_libretro.info" + aliases: + - "upd7801g.bin" + - "upd7801g.bios" + - "bios.rom" + - "bios.bin" + +platform_details: + cpu: "NEC UPD7801G" + bios_mapping: + upd7801g: + target: "0x0000-0x0FFF (CPU internal ROM, 4 KB)" + format: "raw binary" + source_ref: "src/vm/scv/memory.cpp:249" + notes: | + Memory map from memory.cpp:initialize(): + 0x0000-0x0FFF BIOS ROM (read-only) + 0x2000-0x3FFF VRAM (8 KB) + 0x8000-0xFF7F Cartridge ROM (up to 4 banks of 32 KB) + 0xFF80-0xFFFF CPU internal RAM (128 bytes) + Font data lives inside the BIOS at offset 0x200, accessed via + get_font() for the VDP character rendering (src/vm/scv/vdp.cpp). + + cartridge_loading: + formats: "cart, bin, rom, 0 (multi-file: .0/.1/.2/.3), zip" + banking: "4 banks of 32 KB via PC5/PC6 port lines" + source_ref: "src/vm/scv/memory.h, src/vm/scv/memory.cpp" diff --git a/emulators/hbmame.yml b/emulators/hbmame.yml new file mode 100644 index 00000000..5085584f --- /dev/null +++ b/emulators/hbmame.yml @@ -0,0 +1,42 @@ +emulator: HBMAME (Homebrew MAME) +type: libretro +source: "https://github.com/libretro/hbmame-libretro" +based_on: MAME 0.220 +author: Robbbert +game_count: 8511 + +notes: | + HBMAME (Home Brew MAME) is a fork of MAME focused on two things: preserving + homebrew games written for arcade hardware, and including worthwhile hacks of + existing arcade games. The libretro port builds as TARGET=hbmame. + + Based on MAME 0.220 (src/version.cpp: BARE_BUILD_VERSION "0.220"). The core + carries 191 driver files under src/hbmame/drivers/ covering ~8500 game entries + (hbmame.lst). Most drivers are hack/homebrew variants of well-known arcade + boards: CPS1, CPS2, CPS3, Neo Geo, Pac-Man, Galaxian, etc. + + BIOS handling is identical to MAME. HBMAME does not define any custom BIOS + ROMs beyond what standard MAME uses. The Neo Geo subsystem (which accounts for + the bulk of hbmame content) reuses the same neogeo.zip BIOS set as MAME: + sp-s2.sp1, sm1.sm1, sfix.sfix, 000-lo.lo, plus regional and Universe BIOS + variants. The NEO_BIOS macros in src/hbmame/includes/neogeo.h are copied + directly from MAME with no modifications to hashes or filenames. + + The neogeo_noslot.cpp driver includes a reduced MV1C-only BIOS set for a few + specific PCB games (sp-45.sp1, sp1-j3.bin). The neogeohb.cpp driver handles + homebrew and unreleased Neo Geo titles (numbered 300-999) using the same + standard BIOS infrastructure. + + No other hbmame-specific drivers (CPS1, CPS2, Pac-Man, Galaxian, etc.) define + ROM_SYSTEM_BIOS entries. Their games are ROM-only hacks that rely on parent + MAME sets for any BIOS needs. + + BIOS files are expected as MAME-format ZIP archives in the ROM search path. + Users with a working MAME 0.220 BIOS collection need nothing extra for HBMAME. + +bios_impact: none +bios_note: | + Uses the same BIOS ZIPs as MAME 0.220. No custom or modified BIOS entries. + The primary BIOS dependency is neogeo.zip for the large Neo Geo homebrew/hack + library. Other arcade boards (CPS, Pac-Man, Galaxian, etc.) are ROM-only hacks + with no additional BIOS requirements beyond standard MAME parent sets. diff --git a/emulators/mame2003_plus.yml b/emulators/mame2003_plus.yml new file mode 100644 index 00000000..95dbc04f --- /dev/null +++ b/emulators/mame2003_plus.yml @@ -0,0 +1,284 @@ +emulator: MAME 2003-Plus +type: libretro +source: "https://github.com/libretro/mame2003-plus-libretro" +mame_version: "0.78 (plus backports)" +systems: + - snk-neogeo-mvs + - snk-neogeo-aes + - igs-pgm + - sega-stv + - sega-megaplay + - sega-megatech + - deco-cassette + - nintendo-playch10 + - nintendo-nss + - super-kaneko-nova + - konami-gx + - zn1-capcom + - zn2-capcom + - zn1-taito + - zn1-tecmo + - zn1-video-system + - zn1-acclaim + - zn1-atlus + +notes: | + MAME 2003-Plus is a libretro port of MAME 0.78 with backported drivers, bug fixes, + and new game support contributed after the original 0.78 snapshot. It targets + low-end hardware (Raspberry Pi, handhelds) while expanding game compatibility + beyond stock 0.78. + + BIOS handling follows standard MAME conventions. Each arcade board with a shared + BIOS defines a parent ROM set. Game drivers reference this parent, and the emulator + merges the parent ZIP contents at load time. + + BIOS ZIPs are searched in: + 1. {content_dir}/ (same folder as the game ROM) + 2. {system_dir}/mame2003-plus/ (libretro system subfolder) + 3. {system_dir}/ (libretro system root) + + ROM naming follows MAME 0.78 conventions with some updates from the Plus patches. + ROMs from modern MAME may not match expected CRC32/SHA1 values. Use a + mame2003-plus-specific romset for full compatibility. + + Key differences from FBNeo and modern MAME: + - Neo Geo: uses mame.sm1 / mamelo.lo / sfix.sfx naming (not sm1.sm1 / 000-lo.lo) + - Neo Geo: Universe BIOS up to 4.0 (FBNeo has newer) + - PGM: uses pgm_p01s.rom naming (not pgm_p01s.u20) + - No NAOMI, no Atomiswave, no CPS-3 (too late for 0.78 era) + - ZN-1/ZN-2 boards present but marked NOT_WORKING + + The Neo Geo set is the most critical BIOS for this core since nearly all Neo Geo + games work well. PGM and ST-V have partial support. Most ZN-based games are + flagged NOT_WORKING due to incomplete PlayStation emulation in 0.78. + +bios_zips: + # --------------------------------------------------------- + # SNK Neo Geo MVS/AES (neogeo.zip) + # --------------------------------------------------------- + - name: neogeo.zip + system: snk-neogeo-mvs + required: true + note: "MVS/AES BIOS, 15 variants including Universe BIOS 4.0" + source_ref: "src/drivers/neogeo.c:1677-1714" + key_files: + # 68K BIOS variants (one active at a time via dipswitch) + - "sp-s2.sp1 (Europe MVS v2, default)" + - "sp-s.sp1 (Europe MVS v1)" + - "usa_2slt.bin (US MVS v2)" + - "sp-e.sp1 (US MVS v1)" + - "asia-s3.rom (Asia MVS v3)" + - "vs-bios.rom (Japan MVS v6)" + - "sp-j2.sp1 (Japan MVS v2)" + - "uni-bios_4_0.rom (Universe BIOS 4.0, hack)" + - "uni-bios_3_3.rom (Universe BIOS 3.3, hack)" + - "uni-bios_2_0.rom (Universe BIOS 2.0, hack)" + - "uni-bios_1_3.rom (Universe BIOS 1.3, hack)" + - "uni-bios_1_1.rom (Universe BIOS 1.1, hack)" + - "uni-bios_1_0.rom (Universe BIOS 1.0, hack)" + - "neodebug.rom (Debug MVS)" + - "neo-epo.bin (Asia AES)" + # Z80 sound BIOS (always required) + - "mame.sm1 (Z80 sound BIOS, 128KB)" + # Fix tiles (always required) + - "sfix.sfx (fix layer tiles, 128KB)" + # Zoom table (always required) + - "mamelo.lo (Y zoom control, 64KB)" + + # Irritating Maze special BIOS (separate from standard neogeo) + # - name: irrmaze.zip (uses 236-bios.bin, Asia-only dedicated cabinet) + + # --------------------------------------------------------- + # IGS PGM (pgm.zip) + # --------------------------------------------------------- + - name: pgm.zip + system: igs-pgm + required: true + note: "PGM system BIOS - 68K program, text tiles, samples" + source_ref: "src/drivers/pgm.c:3459-3468" + key_files: + - "pgm_p01s.rom (68K BIOS, 128KB)" + - "pgm_t01s.rom (text tiles, 2MB)" + - "pgm_m01s.rom (samples, 2MB)" + + # --------------------------------------------------------- + # Sega ST-V (stvbios.zip) + # --------------------------------------------------------- + - name: stvbios.zip + system: sega-stv + required: true + note: "ST-V (Saturn-based arcade) BIOS, 6 region variants" + source_ref: "src/drivers/stv.c:3741-3767" + key_files: + - "epr19730.ic8 (Japan)" + - "mp17951a.s (Japan alt)" + - "mp17952a.s (USA)" + - "20091.bin (Japan alt 2)" + - "mp17953a.ic8 (Taiwan)" + - "mp17954a.s (Europe)" + + # --------------------------------------------------------- + # Sega Mega Play (megaplay.zip) + # --------------------------------------------------------- + - name: megaplay.zip + system: sega-megaplay + required: true + note: "Mega Play BIOS, 2 versions" + source_ref: "src/drivers/segac2.c:5794-5804" + key_files: + - "ep15294.ic2 (Mega Play BIOS v1)" + - "megaplay.bin (Mega Play BIOS v2)" + + # --------------------------------------------------------- + # Sega Mega Tech (megatech.zip) + # --------------------------------------------------------- + - name: megatech.zip + system: sega-megatech + required: true + note: "Mega Tech BIOS - menu/instruction screen processor" + source_ref: "src/drivers/segac2.c:5434-5437" + key_files: + - "epr12664.20 (Mega Tech BIOS, 32KB)" + + # --------------------------------------------------------- + # DECO Cassette (decocass.zip) + # --------------------------------------------------------- + - name: decocass.zip + system: deco-cassette + required: true + note: "DECO Cassette shared BIOS - 6502 CPU, sound, MCU, PROMs" + source_ref: "src/drivers/decocass.c:696-727" + key_files: + # BIOS variant A + - "v0a-.7e (6502 BIOS variant A)" + # BIOS variant B + - "rms8.cpu (6502 BIOS variant B)" + # Shared across both variants + - "rms8.snd (audio CPU, 2KB)" + - "cass8041.bin (MCU, 1KB)" + - "dsp8.3m (PROM)" + - "dsp8.10d (PROM)" + - "rms8.j3 (DRAM banking PROM)" + + # --------------------------------------------------------- + # Nintendo PlayChoice-10 (playch10.zip) + # --------------------------------------------------------- + - name: playch10.zip + system: nintendo-playch10 + required: true + note: "PlayChoice-10 BIOS - Z80 main CPU + character ROMs + PROMs" + source_ref: "src/drivers/playch10.c:815-827" + key_files: + - "pch1-c.8t (Z80 BIOS, 16KB)" + - "pch1-c.8p (character ROM)" + - "pch1-c.8m (character ROM)" + - "pch1-c.8k (character ROM)" + - "82s129.6f (color PROM)" + - "82s129.6e (color PROM)" + - "82s129.6d (color PROM)" + + # --------------------------------------------------------- + # Nintendo Super System (nss.zip) + # --------------------------------------------------------- + - name: nss.zip + system: nintendo-nss + required: true + note: "Nintendo Super System BIOS - SPC700 boot ROM + BIOS CPU" + source_ref: "src/drivers/nss.c:260-269" + key_files: + - "spc700.rom (SPC700 boot ROM, 64 bytes)" + - "nss-c.dat (NSS BIOS CPU, 32KB)" + - "nss-ic14.02 (NSS BIOS CPU alt, 32KB)" + + # --------------------------------------------------------- + # Super Kaneko Nova System (skns.zip) + # --------------------------------------------------------- + - name: skns.zip + system: super-kaneko-nova + required: true + note: "Super Kaneko Nova System BIOS, 4 region variants" + source_ref: "src/drivers/suprnova.c:1226-1229" + key_files: + - "sknsj1.u10 (Japan BIOS, 512KB)" + - "sknse1.u10 (Europe BIOS, 512KB)" + - "sknsa1.u10 (Asia BIOS, 512KB)" + - "sknsu1.u10 (USA BIOS, 512KB)" + + # --------------------------------------------------------- + # Konami GX (konamigx.zip) + # --------------------------------------------------------- + - name: konamigx.zip + system: konami-gx + required: true + note: "Konami System GX BIOS" + source_ref: "src/drivers/konamigx.c:2404" + key_files: + - "300a01.34k (GX BIOS, 128KB)" + + # --------------------------------------------------------- + # ZN-1/ZN-2 PlayStation-based arcade boards + # These are mostly NOT_WORKING in mame2003-plus due to + # incomplete PS1 emulation in the 0.78 codebase + # --------------------------------------------------------- + + # Capcom ZN-1 + - name: cpzn1.zip + system: zn1-capcom + required: true + note: "Capcom ZN-1 BIOS (PS1-based). Most games NOT_WORKING" + source_ref: "src/drivers/zn.c:1016-1018" + key_files: + - "coh1002c.bin (Capcom ZN-1 BIOS, 512KB)" + + # Capcom ZN-2 + - name: cpzn2.zip + system: zn2-capcom + required: true + note: "Capcom ZN-2 BIOS (PS1-based). Most games NOT_WORKING" + source_ref: "src/drivers/zn.c:1274-1276" + key_files: + - "coh3002c.bin (Capcom ZN-2 BIOS, 512KB)" + + # Taito FX-1 + - name: taitofx1.zip + system: zn1-taito + required: true + note: "Taito FX-1 BIOS (PS1-based). Most games NOT_WORKING" + source_ref: "src/drivers/zn.c:1579-1581" + key_files: + - "coh1002t.bin (Taito FX-1 BIOS, 512KB)" + + # Tecmo TPS + - name: tps.zip + system: zn1-tecmo + required: true + note: "Tecmo TPS BIOS (PS1-based). Most games NOT_WORKING" + source_ref: "src/drivers/zn.c:1466-1468" + key_files: + - "coh1002m.bin (Tecmo TPS BIOS, 512KB)" + + # Video System / Taito KN (sncwgltd uses this) + - name: sncwgltd.zip + system: zn1-video-system + required: false + note: "Video System KN BIOS (PS1-based). NOT_WORKING" + source_ref: "src/drivers/zn.c:1555-1557" + key_files: + - "coh1002v.bin (KN BIOS, 512KB)" + + # Acclaim PSX + - name: acpsx.zip + system: zn1-acclaim + required: true + note: "Acclaim PSX BIOS (PS1-based). NOT_WORKING" + source_ref: "src/drivers/zn.c:1815-1817" + key_files: + - "coh1000a.bin (Acclaim PSX BIOS, 512KB)" + + # Atlus PSX (PSARC95) - BIOS ROM is NO_DUMP + # - name: psarc95.zip + # note: "PSARC95 BIOS is NO_DUMP (coh1002e.bin), games won't boot" + + # Atari PSX - BIOS ROM is NO_DUMP + # - name: atpsx.zip + # note: "Atari PSX BIOS is NO_DUMP (coh1000t.bin), games won't boot" diff --git a/emulators/mame2010.yml b/emulators/mame2010.yml new file mode 100644 index 00000000..21754edb --- /dev/null +++ b/emulators/mame2010.yml @@ -0,0 +1,268 @@ +emulator: MAME 2010 +type: libretro +source: "https://github.com/libretro/mame2010-libretro" +mame_version: "0.139" +systems: + - snk-neogeo-mvs + - igs-pgm + - sega-naomi + - sega-naomi2 + - sega-naomigd + - sega-stv + - sega-hikaru + - sega-chihiro + - sega-triforce + - sega-model2 + - commodore-cd32 + - philips-cdi + - deco-cassette + - nintendo-playch10 + - sega-megaplay + - sega-megatech + - nintendo-sfcbox + - nintendo-nss + - snk-neogeo-aes + - sammy-atomiswave + - taito-type-x + - namco-system246 + - namco-system256 + - namco-system573 + - konami-viper + - cave-cv1000 + +notes: | + MAME 2010 is a libretro port of MAME 0.139, released around mid-2010. Compared + to mame2003 (MAME 0.78, early 2003), it adds roughly 7 years of MAME development + including better driver accuracy, more supported arcade boards, and additional + BIOS sets. + + Key differences from mame2003 (0.78): + - 51 BIOS root sets vs ~30 in mame2003 + - Sega boards: adds Hikaru, Chihiro, Triforce, Naomi 2, Naomi GD-ROM + - Namco boards: adds System 246/256/573 + - Konami: adds Viper, expanded GX support + - Philips CD-i support (cdi) + - Taito Type X / GNet expanded + - Crystal System (Brezzasoft) + - More ZN-1/ZN-2/PSX-based board variants (cpzn1, cpzn2, atpsx, etc.) + - Neo Geo: same core BIOS set, adds Universe BIOS up to 2.3 + - PGM: same BIOS ROMs, more game drivers + + BIOS ZIPs are standard MAME romsets. The core looks for them in: + 1. {content_dir}/ (same folder as the game ROM) + 2. {system_dir}/mame2010/ (libretro system subfolder) + 3. {system_dir}/ (libretro system root) + + ROM naming follows MAME 0.139 conventions. ROMs from newer or older MAME + versions may not match expected CRC32/SHA1 values. Use a 0.139-specific + romset for full compatibility. + +bios_zips: + # SNK Neo Geo MVS/AES + - name: neogeo.zip + system: snk-neogeo-mvs + required: true + note: "MVS/AES BIOS, 21 variants (11 official + 10 Universe BIOS up to 2.3)" + source_ref: "src/mame/drivers/neodrvr.c:565-614" + key_files: + - "sp-s2.sp1 (Europe, default)" + - "usa_2slt.bin (US, 2 slot)" + - "asia-s3.rom (Asia)" + - "vs-bios.rom (Japan VS)" + - "sp-45.sp1 (MV1C Asia, 512KB)" + - "sm1.sm1 (Z80 sound, always required)" + - "sfix.sfix (fix tiles, always required)" + - "000-lo.lo (zoom table, always required)" + + # IGS PGM + - name: pgm.zip + system: igs-pgm + required: true + note: "PGM system BIOS, 2 program ROM versions + shared tiles/samples" + source_ref: "src/mame/drivers/pgm.c:1525-1533" + key_files: + - "pgm_p02s.u20 (68K BIOS v2, default)" + - "pgm_p01s.u20 (68K BIOS v1)" + - "pgm_t01s.rom (text tiles, 2MB)" + - "pgm_m01s.rom (samples, 2MB)" + + # Sega Naomi / Naomi 2 / Naomi GD-ROM / Atomiswave + - name: naomi.zip + system: sega-naomi + required: true + note: "Naomi BIOS, multiple region variants" + source_ref: "src/mame/drivers/naomi.c" + + - name: naomi2.zip + system: sega-naomi2 + required: true + note: "Naomi 2 BIOS" + source_ref: "src/mame/drivers/naomi.c" + + - name: naomigd.zip + system: sega-naomigd + required: true + note: "Naomi GD-ROM BIOS" + source_ref: "src/mame/drivers/naomi.c" + + - name: awbios.zip + system: sammy-atomiswave + required: true + note: "Atomiswave BIOS (Sammy)" + source_ref: "src/mame/drivers/naomi.c" + + # Sega ST-V (Saturn-based arcade) + - name: stvbios.zip + system: sega-stv + required: true + note: "ST-V BIOS, multiple region variants" + source_ref: "src/mame/drivers/stv.c" + + # Sega Hikaru / Chihiro / Triforce + - name: hikaru.zip + system: sega-hikaru + required: true + note: "Hikaru BIOS (not working in 0.139)" + source_ref: "src/mame/drivers/hikaru.c" + + - name: chihiro.zip + system: sega-chihiro + required: true + note: "Chihiro BIOS (Xbox-based, not working in 0.139)" + source_ref: "src/mame/drivers/chihiro.c" + + - name: triforce.zip + system: sega-triforce + required: true + note: "Triforce BIOS (GameCube-based, not working in 0.139)" + source_ref: "src/mame/drivers/triforce.c" + + # DECO Cassette + - name: decocass.zip + system: deco-cassette + required: true + note: "DECO Cassette BIOS, 4 regions (Japan/USA/UK/Europe) x old/new" + source_ref: "src/mame/drivers/decocass.c" + + # Nintendo arcade + - name: playch10.zip + system: nintendo-playch10 + required: true + note: "PlayChoice-10 BIOS" + source_ref: "src/mame/drivers/playch10.c" + + - name: nss.zip + system: nintendo-nss + required: true + note: "Nintendo Super System BIOS" + source_ref: "src/mame/drivers/nss.c" + + - name: sfcbox.zip + system: nintendo-sfcbox + required: true + note: "Super Famicom Box BIOS" + source_ref: "src/mame/drivers/sfcbox.c" + + # Sega Mega Drive arcade + - name: megaplay.zip + system: sega-megaplay + required: true + note: "Mega Play BIOS (Mega Drive arcade)" + source_ref: "src/mame/drivers/megaplay.c" + + - name: megatech.zip + system: sega-megatech + required: true + note: "Mega-Tech BIOS (Mega Drive arcade)" + source_ref: "src/mame/drivers/megatech.c" + + # Commodore CD32 + - name: cd32.zip + system: commodore-cd32 + required: true + note: "Amiga CD32 BIOS" + source_ref: "src/mame/drivers/cubocd32.c" + + # Philips CD-i (new vs mame2003) + - name: cdi.zip + system: philips-cdi + required: true + note: "CD-i BIOS (not in mame2003)" + source_ref: "src/mame/drivers/cdi.c" + + # Namco boards (new vs mame2003) + - name: sys246.zip + system: namco-system246 + required: true + note: "Namco System 246 BIOS (PS2-based, not in mame2003)" + source_ref: "src/mame/drivers/namcops2.c" + + - name: sys256.zip + system: namco-system256 + required: true + note: "Namco System 256 BIOS (PS2-based, not in mame2003)" + source_ref: "src/mame/drivers/namcops2.c" + + - name: sys573.zip + system: namco-system573 + required: true + note: "Namco System 573 BIOS (PSX-based)" + source_ref: "src/mame/drivers/ksys573.c" + + # Konami Viper (new vs mame2003) + - name: kviper.zip + system: konami-viper + required: true + note: "Konami Viper BIOS (3dfx-based, not working in 0.139)" + source_ref: "src/mame/drivers/viper.c" + + # Taito + - name: taitogn.zip + system: taito-type-x + required: true + note: "Taito G-Net BIOS (PSX-based)" + source_ref: "src/mame/drivers/taitogn.c" + + # PSX-based arcade boards + - name: cpzn1.zip + system: capcom-zn1 + required: true + note: "Capcom ZN-1 BIOS (PSX-based)" + source_ref: "src/mame/drivers/zn.c" + + - name: cpzn2.zip + system: capcom-zn2 + required: true + note: "Capcom ZN-2 BIOS (PSX-based)" + source_ref: "src/mame/drivers/zn.c" + + - name: konamigv.zip + system: konami-gv + required: true + note: "Konami GV BIOS (PSX-based)" + source_ref: "src/mame/drivers/konamigv.c" + + # Other notable BIOS sets + - name: skns.zip + system: super-kaneko-nova + required: true + note: "Super Kaneko Nova System BIOS, 5 regions" + source_ref: "src/mame/drivers/suprnova.c" + + - name: alg_bios.zip + system: alg-laserdisc + required: true + note: "American Laser Games BIOS (Amiga-based laserdisc)" + source_ref: "src/mame/drivers/alg.c" + + - name: maxaflex.zip + system: exidy-maxaflex + required: true + note: "Exidy Max-A-Flex BIOS (Atari 600XL-based)" + source_ref: "src/mame/drivers/maxaflex.c" + + - name: hng64.zip + system: hyper-neogeo64 + required: true + note: "Hyper Neo-Geo 64 BIOS (not working in 0.139)" + source_ref: "src/mame/drivers/hng64.c" diff --git a/emulators/mame2016.yml b/emulators/mame2016.yml new file mode 100644 index 00000000..e1c0f62b --- /dev/null +++ b/emulators/mame2016.yml @@ -0,0 +1,344 @@ +emulator: MAME 2016 +type: libretro +source: "https://github.com/libretro/mame2016-libretro" +mame_version: "0.174" +systems: + - snk-neogeo-mvs + - snk-neogeo-aes + - snk-neogeo-cd + - igs-pgm + - igs-pgm2 + - sega-naomi + - sega-naomi2 + - sega-naomigd + - sammy-atomiswave + - sega-stv + - sega-model2 + - sega-model3 + - sega-lindbergh + - sega-hikaru + - sega-chihiro + - sega-triforce + - deco-cassette + - nintendo-playch10 + - sega-megaplay + - sega-megatech + - nintendo-sfcbox + - nintendo-nss + - philips-cdi + - commodore-cd32 + - namco-system246 + - namco-system256 + - namco-system573 + - konami-viper + - cave-cv1000 + - taito-gnet + - super-kaneko-nova + - capcom-zn1 + - capcom-zn2 + - konami-gv + +notes: | + MAME 2016 is a libretro port of MAME 0.174, released mid-2016. Compared to + mame2010 (0.139), it adds 6 years of MAME development including significantly + better driver accuracy, ~9200 more ROM sets (23430 vs ~14000), and new hardware + support. + + Key differences from mame2010 (0.139): + - Driver source files renamed from .c to .cpp + - Neo Geo: Universe BIOS updated to 3.2 (was 2.3 in 0.139) + - NAOMI: 23 BIOS variants (Japan/Export/USA/Korea/Dev), same EPR numbering + - Sega Lindbergh: new board support (lindbios.zip), 3 BIOS versions + - PGM2: new IGS PolyGame Master 2 support (no shared BIOS ZIP) + - Saturn driver split to separate saturn.cpp (was in stv.c) + - Dreamcast driver split to dccons.cpp, 5 BIOS variants + - PlayStation: expanded BIOS coverage (9 JP, 7 EU, 9 US variants) + - More Cave CV1000/SH3 games (26 sets, no shared BIOS) + - Model 2/3: improved emulation, same BIOS structure + + Key differences from current MAME (0.274+): + - Missing BIOS dumps added after 0.174 (newer redumps, alt regions) + - Neo Geo: no Universe BIOS 4.0 (added in later MAME) + - Some CRC32/SHA1 values differ for redumped ROMs + - Fewer Sega board BIOS region variants + - No Konami e-Amusement/Bemani expansions from post-2016 + + BIOS ZIPs are standard MAME romsets. The core looks for them in: + 1. {content_dir}/ (same folder as the game ROM) + 2. {system_dir}/mame2016/ (libretro system subfolder) + 3. {system_dir}/ (libretro system root) + + ROM naming follows MAME 0.174 conventions. Use a 0.174-specific romset for + full compatibility. + +bios_zips: + # SNK Neo Geo MVS/AES + - name: neogeo.zip + system: snk-neogeo-mvs + required: true + note: "MVS/AES BIOS, 25+ variants (12 official + 13 Universe BIOS up to 3.2)" + source_ref: "src/mame/drivers/neogeo.cpp" + key_files: + - "sp-s2.sp1 (Europe MVS v2, default)" + - "sp-u2.sp1 (US MVS v2)" + - "asia-s3.rom (Asia MVS v3)" + - "vs-bios.rom (Japan MVS v6 VS)" + - "sp-45.sp1 (MV1C Asia, 512KB)" + - "sm1.sm1 (Z80 sound, always required)" + - "sfix.sfix (fix tiles, always required)" + - "000-lo.lo (zoom table, always required)" + - "uni-bios_3_2.rom (Universe BIOS 3.2, newest hack)" + + # Neo Geo CD + - name: neocdz.zip + system: snk-neogeo-cd + required: true + note: "Neo Geo CDZ BIOS" + source_ref: "src/mame/drivers/neogeocd.cpp" + key_files: + - "neocd.bin (CDZ BIOS, 512KB)" + - "000-lo.lo (zoom table)" + + # IGS PGM + - name: pgm.zip + system: igs-pgm + required: true + note: "PGM system BIOS, 2 program ROM versions + shared tiles/samples" + source_ref: "src/mame/drivers/pgm.cpp" + key_files: + - "pgm_p02s.u20 (68K BIOS v2, default)" + - "pgm_p01s.u20 (68K BIOS v1)" + - "pgm_t01s.rom (text tiles, 2MB)" + - "pgm_m01s.rom (samples, 2MB)" + + # Sega NAOMI / NAOMI 2 / GD-ROM / Atomiswave + - name: naomi.zip + system: sega-naomi + required: true + note: "NAOMI BIOS, 23 variants: 8 Japan + 6 Export + 6 USA + 2 Korea + 1 Dev" + source_ref: "src/mame/drivers/naomi.cpp:2904-2951" + key_files: + - "epr-21576h.ic27 (Japan, latest)" + - "epr-21578h.ic27 (Export, latest)" + - "epr-21577h.ic27 (USA, latest)" + + - name: naomi2.zip + system: sega-naomi2 + required: true + note: "NAOMI 2 BIOS, same EPR structure as NAOMI" + source_ref: "src/mame/drivers/naomi.cpp:3046-3072" + + - name: naomigd.zip + system: sega-naomigd + required: true + note: "NAOMI GD-ROM BIOS, requires rev E or higher" + source_ref: "src/mame/drivers/naomi.cpp:2994-3044" + + - name: awbios.zip + system: sammy-atomiswave + required: true + note: "Atomiswave BIOS (Sammy)" + source_ref: "src/mame/drivers/naomi.cpp:3073-3088" + + # Dedicated NAOMI game BIOS sets + - name: hod2bios.zip + system: sega-naomi + required: false + note: "House of the Dead 2 dedicated BIOS, 3 variants" + source_ref: "src/mame/drivers/naomi.cpp:2963-2971" + + - name: f355dlx.zip + system: sega-naomi + required: false + note: "Ferrari F355 Deluxe dedicated BIOS" + source_ref: "src/mame/drivers/naomi.cpp:2973-2976" + + - name: f355bios.zip + system: sega-naomi + required: false + note: "Ferrari F355 Challenge dedicated BIOS, 2 variants" + source_ref: "src/mame/drivers/naomi.cpp:2978-2983" + + - name: airlbios.zip + system: sega-naomi + required: false + note: "Airline Pilots Deluxe dedicated BIOS, 2 variants" + source_ref: "src/mame/drivers/naomi.cpp:2985-2990" + + # Sega ST-V + - name: stvbios.zip + system: sega-stv + required: true + note: "ST-V BIOS, 10+ region variants (JP/US/EU/TW/Dev)" + source_ref: "src/mame/drivers/stv.cpp" + key_files: + - "epr-20091.ic8 (Japan 97/08/21, default)" + - "epr-19730.ic8 (Japan 97/02/17)" + + # Sega Lindbergh (new vs mame2010) + - name: lindbios.zip + system: sega-lindbergh + required: true + note: "Lindbergh BIOS, 3 PC BIOS versions + MPC firmware + GPU BIOS" + source_ref: "src/mame/drivers/lindbergh.cpp" + key_files: + - "6.0.0010a.bin (PC BIOS v6.0.0010 alt)" + - "6.0.0009.bin (PC BIOS v6.0.0009)" + - "fpr-24370b.ic6 (MPC firmware, 4MB)" + - "vid_bios.u504 (GeForce BIOS)" + + # Sega Model 2 + - name: model2.zip + system: sega-model2 + required: true + note: "Model 2 BIOS" + source_ref: "src/mame/drivers/model2.cpp" + + # Sega Hikaru / Chihiro / Triforce + - name: hikaru.zip + system: sega-hikaru + required: true + note: "Hikaru BIOS (limited functionality in 0.174)" + source_ref: "src/mame/drivers/hikaru.cpp" + + - name: chihiro.zip + system: sega-chihiro + required: true + note: "Chihiro BIOS (Xbox-based, limited in 0.174)" + source_ref: "src/mame/drivers/chihiro.cpp" + + - name: triforce.zip + system: sega-triforce + required: true + note: "Triforce BIOS (GameCube-based, limited in 0.174)" + source_ref: "src/mame/drivers/triforce.cpp" + + # DECO Cassette + - name: decocass.zip + system: deco-cassette + required: true + note: "DECO Cassette BIOS" + source_ref: "src/mame/drivers/decocass.cpp" + + # Nintendo arcade + - name: playch10.zip + system: nintendo-playch10 + required: true + note: "PlayChoice-10 BIOS" + source_ref: "src/mame/drivers/playch10.cpp" + + - name: nss.zip + system: nintendo-nss + required: true + note: "Nintendo Super System BIOS" + source_ref: "src/mame/drivers/nss.cpp" + + - name: sfcbox.zip + system: nintendo-sfcbox + required: true + note: "Super Famicom Box BIOS" + source_ref: "src/mame/drivers/sfcbox.cpp" + + # Sega Mega Drive arcade + - name: megaplay.zip + system: sega-megaplay + required: true + note: "Mega Play BIOS (Mega Drive arcade)" + source_ref: "src/mame/drivers/megaplay.cpp" + + - name: megatech.zip + system: sega-megatech + required: true + note: "Mega-Tech BIOS (Mega Drive arcade)" + source_ref: "src/mame/drivers/megatech.cpp" + + # Philips CD-i + - name: cdi.zip + system: philips-cdi + required: true + note: "CD-i BIOS" + source_ref: "src/mame/drivers/cdi.cpp" + + # Commodore CD32 + - name: cd32.zip + system: commodore-cd32 + required: true + note: "Amiga CD32 BIOS" + source_ref: "src/mame/drivers/cubocd32.cpp" + + # Namco boards + - name: sys246.zip + system: namco-system246 + required: true + note: "Namco System 246 BIOS (PS2-based)" + source_ref: "src/mame/drivers/namcops2.cpp" + + - name: sys256.zip + system: namco-system256 + required: true + note: "Namco System 256 BIOS (PS2-based)" + source_ref: "src/mame/drivers/namcops2.cpp" + + - name: sys573.zip + system: namco-system573 + required: true + note: "Konami System 573 BIOS (PSX-based)" + source_ref: "src/mame/drivers/ksys573.cpp" + + # Konami Viper + - name: kviper.zip + system: konami-viper + required: true + note: "Konami Viper BIOS (3dfx-based, limited in 0.174)" + source_ref: "src/mame/drivers/viper.cpp" + + # Taito G-NET + - name: taitogn.zip + system: taito-gnet + required: true + note: "Taito G-Net BIOS (PSX-based)" + source_ref: "src/mame/drivers/taitogn.cpp" + + # PSX-based arcade boards + - name: cpzn1.zip + system: capcom-zn1 + required: true + note: "Capcom ZN-1 BIOS (PSX-based)" + source_ref: "src/mame/drivers/zn.cpp" + + - name: cpzn2.zip + system: capcom-zn2 + required: true + note: "Capcom ZN-2 BIOS (PSX-based)" + source_ref: "src/mame/drivers/zn.cpp" + + - name: konamigv.zip + system: konami-gv + required: true + note: "Konami GV BIOS (PSX-based)" + source_ref: "src/mame/drivers/konamigv.cpp" + + # Other notable BIOS sets + - name: skns.zip + system: super-kaneko-nova + required: true + note: "Super Kaneko Nova System BIOS, 5 regions" + source_ref: "src/mame/drivers/suprnova.cpp" + + - name: alg_bios.zip + system: alg-laserdisc + required: true + note: "American Laser Games BIOS (Amiga-based laserdisc)" + source_ref: "src/mame/drivers/alg.cpp" + + - name: hng64.zip + system: hyper-neogeo64 + required: true + note: "Hyper Neo-Geo 64 BIOS (limited in 0.174)" + source_ref: "src/mame/drivers/hng64.cpp" + + - name: isgsm.zip + system: isg-selection-master + required: true + note: "ISG Selection Master BIOS (Sega System 16 conversion)" + source_ref: "src/mame/drivers/isgsm.cpp" diff --git a/emulators/tyrquake.yml b/emulators/tyrquake.yml new file mode 100644 index 00000000..00a14f72 --- /dev/null +++ b/emulators/tyrquake.yml @@ -0,0 +1,24 @@ +emulator: TyrQuake +type: libretro +source: "https://github.com/libretro/tyrquake" +cores: [tyrquake] +systems: [quake] +verification: existence +notes: > + Quake engine source port. Plays Quake (id1), mission packs Scourge of Armagon + (hipnotic) and Dissolution of Eternity (rogue), Quoth mod, and custom mods via + -game parameter. The core accepts .pak extensions (retro_get_system_info sets + valid_extensions = "pak"). Content is loaded directly from the PAK file path - + the directory containing the PAK becomes basedir (libretro.c:988,1050). + The engine auto-detects game variant by checking the content path for id1, + hipnotic, rogue, or quoth substrings (libretro.c:1030-1070) and passes the + corresponding command-line flag. For non-standard paths it uses -game with the + directory basename. PAK files are game data (maps, textures, models, sounds) + shipped with the original retail game, not engine firmware. The engine checks + for gfx/pop.lmp inside pak0.pak to distinguish registered vs shareware + (common.c:974-991). COM_AddGameDirectory (common.c:1709) loads pak0.pak through + pak9.pak sequentially from the game directory, trying both lowercase and + uppercase filenames. No engine data files are required in the RetroArch system + directory. The core needs no BIOS or firmware. + +files: [] diff --git a/emulators/uzem.yml b/emulators/uzem.yml new file mode 100644 index 00000000..f8a0eb81 --- /dev/null +++ b/emulators/uzem.yml @@ -0,0 +1,42 @@ +emulator: uzem +type: libretro +source: "https://github.com/libretro/libretro-uzem" +cores: + - uzem +systems: + - uzebox + +# Uzem emulates the Uzebox, an open-source 8-bit game console based on an +# ATmega644 AVR microcontroller. The console was designed by Alec Bourque (Uze) +# and all hardware/software is open-source. +# +# No BIOS or firmware files are required. The core loads .uze ROM files directly +# into progmem (uzem_libretro.cpp:254-286). The .uze format includes a "UZEBOX" +# magic header followed by a RomHeader struct (uzerom.h) and raw program data. +# +# The standalone uzem (oldsrcs/uzem.cpp:90) has a --boot flag that sets PC to +# 0xF000 for bootloader mode, but this is NOT exposed in the libretro port. +# The libretro core has no retro_environment calls for RETRO_ENVIRONMENT_SET_SYSTEM_DIR +# or any firmware loading paths. +# +# SD card emulation uses RETRO_ENVIRONMENT_GET_CORE_ASSETS_DIRECTORY +# (uzem_libretro.cpp:186-192) for virtual FAT16 filesystem access via SDEmulator.cpp, +# but this is optional game data, not system firmware. +# +# The .info file declares no firmware entries. + +files: [] + +notes: + open_source_console: > + The Uzebox is fully open-source hardware and software. There is no proprietary + BIOS or bootloader required. Games are self-contained .uze files that include + all code needed to run on the ATmega644 MCU emulation. + sd_card: > + Some games use SD card access for loading assets. The core reads from the + libretro core assets directory to emulate a FAT16 SD card, but this is game + data, not system firmware. + standalone_bootloader: > + The original standalone uzem supports a --boot flag for bootloader mode + (PC starts at 0xF000 instead of 0x0000). This feature is not available in + the libretro port. diff --git a/emulators/vecx.yml b/emulators/vecx.yml new file mode 100644 index 00000000..3bb12400 --- /dev/null +++ b/emulators/vecx.yml @@ -0,0 +1,60 @@ +emulator: vecx +type: libretro +source: "https://github.com/libretro/libretro-vecx" +cores: + - vecx +systems: + - gce-vectrex + +notes: | + vecx is a GCE Vectrex emulator ported to libretro. + + The Vectrex system ROM (8192 bytes) is fully embedded in the binary. + There are three compile-time BIOS variants in bios/: + - system.h (STANDARD_BIOS, default) - original Vectrex ROM + - fast.h (FAST_BIOS) - modified BIOS with faster boot + - skip.h - modified BIOS that skips the intro + + The default build uses STANDARD_BIOS via #define at libretro.c:20. + At load time (retro_load_game, libretro.c:736): + memcpy(rom, bios_data, bios_data_size); + This copies the compiled-in BIOS data into the rom[8192] array + (vecx.c:40, mapped at 0xE000-0xFFFF via vecx.c:437-439). + + The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY and has + no code path to load an external BIOS file from disk. No .info file + is shipped with the repo declaring firmware requirements. + + rom.dat in the repo root is identical to bios/system.bin (same MD5: + ab082fa8c8e632dd68589a8c7741388f), likely kept for standalone builds. + +files: [] + +platform_details: + bios_mapping: + target: "0xE000-0xFFFF in Vectrex address space (8 KB)" + source_ref: "vecx.c:40 (unsigned char rom[8192]), vecx.c:437-439 (read handler)" + notes: | + CPU reads from 0xE000-0xFFFF are served from rom[] via + address & 0x1FFF masking. The array is populated from the + compiled-in bios_data at retro_load_game() time. + + embedded_bios: + source_ref: "libretro.c:20-30, bios/system.h" + standard_bios: + md5: "ab082fa8c8e632dd68589a8c7741388f" + sha1: "65d07426b520ddd3115d40f255511e0fd2e20ae7" + size: 8192 + fast_bios: + md5: "a970aed37cffd29ab3740f8e79518858" + sha1: "e0900be6d6858b985fd7f0999d864b2fceaf01a1" + size: 8192 + skip_bios: + md5: "05f32c2b18b6fb168ab976989e86dfb1" + sha1: "6c891bd74acb201d54071b310bd6df6617cdf205" + size: 8192 + notes: | + All three variants are 8192 bytes, compiled as C arrays in + bios/*.h headers. STANDARD_BIOS is the authentic Vectrex ROM. + FAST_BIOS and skip are modified versions for faster startup. + Selection is compile-time only (#ifdef chain, libretro.c:20-30).