diff --git a/emulators/a5200.yml b/emulators/a5200.yml new file mode 100644 index 00000000..1923ad4d --- /dev/null +++ b/emulators/a5200.yml @@ -0,0 +1,47 @@ +emulator: a5200 +type: libretro +source: "https://github.com/libretro/a5200" +cores: + - a5200 +systems: + - atari-5200 + +# a5200 is a dedicated Atari 5200 emulator forked from Atari800/Atari++ codebase. +# It loads the official 5200 OS ROM from /5200.rom (2048 bytes, mapped +# to memory at 0xF800-0xFFFF via MEMORY_InitialiseMachine). +# +# If 5200.rom is missing or the user selects "internal" via core option "a5200_bios", +# the core falls back to Altirra 5200 OS, an open-source replacement compiled from +# Altirra-3.20-test4 (altirra_5200_os.c). The fallback has reduced compatibility +# compared to the original Atari OS ROM. +# +# BIOS loading (libretro.c:409-500): +# 1. check_bios_variable() reads core option "a5200_bios" (official/internal) +# 2. load_bios() attempts to read /5200.rom (0x800 bytes) +# 3. On failure or "internal" selected: memcpy from ROM_altirra_5200_os fallback +# +# Cartridge detection (atari.c:169-236): +# Auto-detects cart type from header bytes and size. ROM database in cartridge.c +# maps MD5 hashes to cart types (standard 8K/16K/32K/40K, bounty bob, super cart). + +files: + - name: "5200.rom" + path: "5200.rom" + size: 2048 + required: false + note: > + Atari 5200 OS ROM. Provides the built-in OS routines used by all 5200 + cartridges. Without it, the core uses the Altirra open-source replacement + which has lower compatibility with some games. Core option "a5200_bios" + controls whether to use this file or the internal fallback. + source_ref: "libretro/libretro.c:58-59, libretro/libretro.c:409-500, emu/memory.c:46" + +notes: + altirra_fallback: > + The built-in Altirra 5200 OS (from altirra_5200_os.c, 0x800 bytes) is a free + replacement that works for most games but some titles require the original ROM + for full compatibility. The core displays a notification when falling back. + cart_db: > + cartridge.c contains an MD5-based ROM database for automatic cart type detection + (standard, EE banked, bounty bob, super cart variants). Unknown ROMs are detected + by size heuristic. diff --git a/emulators/atari800.yml b/emulators/atari800.yml new file mode 100644 index 00000000..cb97657e --- /dev/null +++ b/emulators/atari800.yml @@ -0,0 +1,178 @@ +emulator: Atari800 +type: libretro +source: "https://github.com/libretro/libretro-atari800" +systems: [atari-400, atari-800, atari-800xl, atari-130xe, atari-5200, atari-xegs] + +# Atari800 emulates the Atari 8-bit family (400/800/XL/XE) and the 5200 console. +# All BIOS files are optional -- the core ships built-in Altirra OS replacements +# (altirraos_800, altirraos_xl, altirra_5200_os, altirra_basic) compiled into the +# binary. If real ROM files are found in the system directory they take priority. +# +# ROM discovery (sysrom.c SYSROM_FindInDir): +# 1. Scan system directory for files of valid size (0x800, 0x2000, 0x2800, 0x4000) +# 2. Match by CRC32 against known ROM revisions +# 3. If no CRC match, try case-insensitive filename match (MatchByName) +# 4. Results stored in .atari800.cfg (generated on first run) +# +# The core generates .atari800.cfg in the frontend home directory on first boot. +# Core option "atari800_system" selects the emulated machine type: +# 400/800, 800XL (64KB), 130XE (128KB), Modern XL/XE(320KB), Modern XL/XE(576KB), +# Modern XL/XE(1088KB), 5200 + +files: + # -- Atari 5200 BIOS -- + # Original 5200 OS ($F800-$FFFF, 2 KB). Matched by CRC32: 0x4248d3e3 (orig) + # or 0xc2ba2613 (rev A). Altirra 5200 OS used as fallback. + # Filename match (case-insensitive): atari5200.rom, atar5200.rom, 5200.rom, + # 5200.bin, atari_5200.rom + + - name: "5200.rom" + path: "5200.rom" + required: false + size: 2048 + md5: 281f20ea4320404ec820fb7ec0693b38 + note: > + Atari 5200 BIOS (original). Mapped at $F800-$FFFF. + Altirra 5200 OS is used when this file is absent. + source_ref: "atari800/src/sysrom.c:101, libretro info firmware0" + + # -- Atari BASIC ROM -- + # Atari BASIC interpreter (8 KB). Three known revisions: + # Rev A: CRC32 0x4bec4de2, Rev B: CRC32 0xf0202fb3, Rev C: CRC32 0x7d684184 + # Auto-select prefers Rev C > B > A > custom > Altirra BASIC. + # Filename match: ataribasic.rom, ataribas.rom, basic.rom, atari_basic.rom + # Core option "atari800_opt2" enables BASIC (needed for some 400/800 software). + + - name: "ATARIBAS.ROM" + path: "ATARIBAS.ROM" + required: false + size: 8192 + md5: 0bac0c6a50104045d902df4503a4c30b + note: > + Atari BASIC Rev C. Required for 400/800 software that needs BASIC. + Altirra BASIC is used as fallback. Enable via core option atari800_opt2. + source_ref: "atari800/src/sysrom.c:103-105, libretro info firmware1" + + # -- Atari 400/800 OS A -- + # Original Atari 400/800 OS (10 KB). Two known CRC32 values: + # NTSC: 0xc1b3bb02, PAL: 0x72b3fed4 + # Filename match: atariosa.rom, atari_osa.rom, atari_os_a.rom + + - name: "ATARIOSA.ROM" + path: "ATARIOSA.ROM" + required: false + size: 10240 + md5: eb1f32f5d9f382db1bbfb8d7f9cb343a + note: > + Atari 400/800 OS Rev A. Altirra OS 800 is used as fallback. + Auto-select order: OS B NTSC, OS A NTSC, OS A PAL, custom, Altirra. + source_ref: "atari800/src/sysrom.c:87-89, libretro info firmware2" + + # -- Atari 400/800 OS B -- + # OS revision B (10 KB), NTSC: CRC32 0x0e86d61d + # Filename match: atariosb.rom, atari_osb.rom, atari_os_b.rom + + - name: "ATARIOSB.ROM" + path: "ATARIOSB.ROM" + required: false + size: 10240 + md5: 4177f386a3bac989a981d3fe3388cb6c + note: > + Atari 400/800 OS Rev B (NTSC). Preferred over Rev A for 400/800 mode. + source_ref: "atari800/src/sysrom.c:89, libretro info firmware3" + + # -- Atari XL/XE OS -- + # XL/XE OS (16 KB). Many revisions known by CRC32 in sysrom.c: + # BB01R2 (800XL stock): 0x1f9cd270 + # CC01R4: 0x0e000b99 + # BB01R4: 0x1eaf4002 + # Auto-select prefers BB01R2 for 800XL, BB01R3 for XE, BB01R4 for XEGS. + # Filename match: atarixlxe.rom, atarixl.rom, atari_xlxe.rom, atari_xl_xe.rom + + - name: "ATARIXL.ROM" + path: "ATARIXL.ROM" + required: false + size: 16384 + md5: 06daac977823773a3eea3422fd26a703 + note: > + Atari XL/XE OS. Used for 800XL, 130XE, and XEGS modes. + Altirra XL OS is used as fallback. + source_ref: "atari800/src/sysrom.c:90-99, libretro info firmware4" + + # -- Atari XL/XE/XEGS OS v4 (BB01R4) -- + # XEGS-specific OS revision BB01R4 (16 KB), CRC32: 0x1eaf4002 + # Preferred for XEGS machine mode. Same filename matching as ATARIXL above. + + - name: "BB01R4_OS.ROM" + path: "BB01R4_OS.ROM" + required: false + size: 16384 + md5: b7a2a04677d34f069eeb643d5238bf86 + note: > + Atari XEGS OS Rev 4 (BB01R4). Preferred OS for XEGS machine mode. + source_ref: "atari800/src/sysrom.c:98, libretro info firmware5" + + # -- XEGS Missile Command built-in game -- + # The XEGS had Missile Command in ROM (8 KB), CRC32: 0xbdca01fb + # No filename auto-match -- must be set via config or detected by CRC. + + - name: "XEGAME.ROM" + path: "XEGAME.ROM" + required: false + size: 8192 + md5: d7eb37aec6960cba36bc500e0e5d00bc + note: > + XEGS built-in Missile Command ROM. Only used in XEGS machine mode. + No built-in replacement exists for this ROM. + source_ref: "atari800/src/sysrom.c:106, libretro info firmware6" + +# Known ROM revisions from sysrom.c (CRC32 identifiers): +# +# 400/800 OS: +# SYSROM_A_NTSC 0xc1b3bb02 10 KB OS Rev A (NTSC) +# SYSROM_A_PAL 0x72b3fed4 10 KB OS Rev A (PAL) +# SYSROM_B_NTSC 0x0e86d61d 10 KB OS Rev B (NTSC) +# +# XL/XE OS (all 16 KB): +# SYSROM_AA00R10 0xc5c11546 1200XL first rev +# SYSROM_AA01R11 0x1a1d7b1b 1200XL second rev +# SYSROM_BB00R1 0x643bcc98 600XL stock +# SYSROM_BB01R2 0x1f9cd270 800XL stock +# SYSROM_BB02R3 0x0d477aa1 XL/XE rev 3a +# SYSROM_BB02R3V4 0xd425a9cf XL/XE rev 3b +# SYSROM_CC01R4 0x0e000b99 XL/XE rev 5 +# SYSROM_BB01R3 0x29f133f7 XE stock +# SYSROM_BB01R4 0x1eaf4002 XEGS stock +# SYSROM_BB01R59 0x45f47988 XL/XE rev 59 +# SYSROM_BB01R59A 0xf0a236d3 XL/XE rev 59a +# +# 5200 OS (2 KB): +# SYSROM_5200 0x4248d3e3 Original +# SYSROM_5200A 0xc2ba2613 Rev A +# +# BASIC (8 KB): +# SYSROM_BASIC_A 0x4bec4de2 Rev A +# SYSROM_BASIC_B 0xf0202fb3 Rev B +# SYSROM_BASIC_C 0x7d684184 Rev C +# +# XEGAME (8 KB): +# SYSROM_XEGAME 0xbdca01fb Missile Command +# +# Built-in Altirra replacements (no file needed): +# altirraos_800 10 KB 400/800 OS replacement +# altirraos_xl 16 KB XL/XE OS replacement +# altirra_5200_os 2 KB 5200 OS replacement +# altirra_basic 8 KB BASIC replacement + +notes: + altirra_note: > + The Altirra OS/BASIC replacements are open-source alternatives compiled + directly into the core binary (roms/ directory in source). They provide + good compatibility for most software but real ROMs give better accuracy. + cfg_note: > + On first boot the core creates .atari800.cfg in the frontend home directory. + It scans the system directory for ROM files by CRC32 first, then by filename. + The core option atari800_opt1 controls whether this legacy config is loaded. + machine_selection: > + Core option atari800_system selects the emulated machine. Each machine type + has its own preferred OS ROM auto-select order defined in sysrom.c. diff --git a/emulators/beetle_pce.yml b/emulators/beetle_pce.yml new file mode 100644 index 00000000..0caf0111 --- /dev/null +++ b/emulators/beetle_pce.yml @@ -0,0 +1,88 @@ +emulator: Beetle PCE (Mednafen PCE) +type: libretro +source: "https://github.com/libretro/beetle-pce-libretro" +cores: [mednafen_pce, mednafen_pce_fast, mednafen_supergrafx] +systems: [nec-pc-engine] +verification: existence +notes: > + BIOS loaded from system directory at CD-ROM load time via PCE_LoadCD(). + Core option "pce_cdbios" selects which card image to use (default: System Card 3). + DetectGECD() auto-detects Games Express discs and switches to "pce.gecdbios" (gexpress.pce). + Arcade Card mode (pce_arcadecard option, enabled by default) extends System Card 3 with + extra RAM mapping via SYSCARD_ARCADE enum. + No hash validation on BIOS load: the core opens the file and reads it directly. + gexpress.pce and gecard.pce are the same ROM (Games Express CD Card); the core expects + gexpress.pce, libretro System.dat references gecard.pce. Both names should be provided. + SuperGrafx CD detection (DetectSGXCD) reads sector data to decide SGX mode but uses the + same BIOS files. + +files: + # -- CD-ROM System Card 3 (Japan) - default -- + + - name: "syscard3.pce" + description: "CD-ROM System Card 3.0 (Japan)" + region: "NTSC-J" + required: true + sha1: "79f5ff55dd10187c7fd7b8daab0b3ffbd1f56a2c" + md5: "38179df8f4ac870017db21ebcbf53114" + source_ref: "libretro.cpp:1051-1052, settings.cpp:40" + notes: "Default value for pce_cdbios option. Most CD games run with this." + + # -- CD-ROM System Card 3 (US) -- + + - name: "syscard3u.pce" + description: "CD-ROM System Card 3.0 (US / TurboGrafx-CD)" + region: "NTSC-U" + required: false + sha1: "d02611d99921986147c753df14c7349b31d71950" + md5: "0754f903b52e3b3342202bdafb13efa5" + source_ref: "libretro.cpp:1059-1060" + notes: "pce_cdbios = 'System Card 3 US'" + + # -- CD-ROM System Card 2 (Japan) -- + + - name: "syscard2.pce" + description: "CD-ROM System Card 2.0 (Japan)" + region: "NTSC-J" + required: false + sha1: "88da02e2503f7c32810f5d93a34849d470742b6d" + md5: "3cdd6614a918616bfc41c862e889dd79" + source_ref: "libretro.cpp:1053-1054" + notes: "pce_cdbios = 'System Card 2'. Older games only." + + # -- CD-ROM System Card 2 (US) -- + + - name: "syscard2u.pce" + description: "CD-ROM System Card 2.0 (US / TurboGrafx-CD)" + region: "NTSC-U" + required: false + sha1: "2bea3dac98f84b2f2f469fa77ea720b8770d598d" + md5: "94279f315e8b52904f65ab3108542afe" + source_ref: "libretro.cpp:1061-1062" + notes: "pce_cdbios = 'System Card 2 US'" + + # -- CD-ROM System Card 1 (Japan) -- + + - name: "syscard1.pce" + description: "CD-ROM System Card 1.0 (Japan)" + region: "NTSC-J" + required: false + sha1: "a39a66da7de6ba94ab84d04eef7afeec7d4ee66a" + md5: "2b7ccb3d86baa18f6402c176f3065082" + source_ref: "libretro.cpp:1055-1056" + notes: "pce_cdbios = 'System Card 1'. Very early CD-ROM2 games." + + # -- Games Express CD Card -- + + - name: "gexpress.pce" + description: "Games Express CD Card" + region: "NTSC-J" + required: false + sha1: "014881a959e045e00f4db8f52955200865d40280" + md5: "6d2cb14fc3e1f65ceb135633d1694122" + source_ref: "libretro.cpp:1057-1058, settings.cpp:41" + alt_names: ["gecard.pce"] + notes: > + pce_cdbios = 'Games Express' or auto-detected via DetectGECD() in pce.cpp:374. + Same ROM as gecard.pce (System.dat name). Core expects gexpress.pce filename. + Required for unlicensed Games Express titles (AV Tanjou, Bishoujo Jyanshi, etc). diff --git a/emulators/beetle_pcfx.yml b/emulators/beetle_pcfx.yml new file mode 100644 index 00000000..ea06b665 --- /dev/null +++ b/emulators/beetle_pcfx.yml @@ -0,0 +1,49 @@ +emulator: Beetle PC-FX (Mednafen) +type: libretro +cores: [mednafen_pcfx] +source: "https://github.com/libretro/beetle-pcfx-libretro" +systems: + - nec-pcfx + +notes: | + Beetle PC-FX is the libretro port of Mednafen's NEC PC-FX emulation module. + The core requires a single BIOS file: pcfx.rom (1 MB). The setting + "pcfx.bios" resolves to the filename "pcfx.rom" via MDFN_GetSettingS() + in mednafen/settings.c:92-93. The file is loaded from the libretro + system directory in LoadCommon() (libretro.cpp:367-394). + + The BIOS is mapped at address 0xFFF00000 and must be exactly 1048576 bytes + (1024 * 1024). LoadCommon() returns false if the file is missing or the + wrong size, so the core will not start without it. + + No other firmware files (fx-scsi.rom, pcfxga.rom, pcfxv101.bin) are + referenced by this core. Those exist for other PC-FX emulators or + alternate BIOS versions but are unused here. + + BIOS loading: libretro.cpp LoadCommon() lines 364-397. + Setting resolution: mednafen/settings.c MDFN_GetSettingS() lines 90-94. + BIOS memory: static uint8 *BIOSROM, mapped at 0xFFF00000 (1 MB region). + +files: + # ------------------------------------------------------- + # PC-FX BIOS + # ------------------------------------------------------- + - name: "pcfx.rom" + system: nec-pcfx + required: true + size: 1048576 # 1 MB (1024 * 1024) + md5: "08e36edbea28a017f79f8d4f7ff9b6d7" + sha1: "1a77fd83e337f906aecab27a1604db064cf10074" + note: "PC-FX BIOS v1.00. Only BIOS file used by this core." + source_ref: "libretro.cpp:367, mednafen/settings.c:92-93" + +platform_details: + pcfx: + bios_size: 1048576 # 1 MB + ram_size: 2097152 # 2 MB + bios_address: "0xFFF00000-0xFFFFFFFF" + ram_address: "0x00000000-0x001FFFFF" + cpu: "NEC V810" + cpu_modes: [accurate, fast] + hle_available: false + source_ref: "libretro.cpp:103-104, 379-387" diff --git a/emulators/neocd.yml b/emulators/neocd.yml new file mode 100644 index 00000000..fd020f68 --- /dev/null +++ b/emulators/neocd.yml @@ -0,0 +1,141 @@ +emulator: NeoCD +type: libretro +source: "https://github.com/libretro/neocd_libretro" +systems: + - snk-neogeo-cd + +notes: | + NeoCD is a dedicated SNK Neo Geo CD emulator. It supports Front Loader, + Top Loader, and CDZ hardware variants. BIOS files go in {system_dir}/neocd/ + subdirectory (src/path.cpp:7, src/libretro_bios.cpp:76-81). + + The core scans the neocd/ directory for any .rom or .bin file (also inside + .zip archives), reads the first 512 bytes, and identifies the BIOS type by + binary pattern matching at fixed ROM addresses (src/bios.cpp:168-208). + Filenames listed in the .info are conventional but not enforced by the core. + + Three hardware families are detected: Front Loader (NeoCD), Top Loader + (NeoCD), and CDZ. Modified BIOS variants are also recognized: SMKDan 0.07, + SMKDan 0.07b, Universe BIOS 3.2, and Universe BIOS 3.3. The core applies + speed hack patches and CD recognition patches at load time for each type + (src/bios.cpp:209-280). + + The Y-ZOOM ROM (ng-lo.rom / 000-lo.lo) is a sprite zoom lookup table loaded + separately (src/memory.h:22, YZOOMROM_SIZE = 0x10000 = 65536 bytes). It is + optional but improves sprite scaling accuracy. + + All firmware entries are marked optional in the .info (any single valid BIOS + is sufficient). The core presents detected BIOSes as a dropdown in the core + options menu, sorted alphabetically by description. + + BIOS ROM size: 524288 bytes (0x80000, src/memory.h:16). + Y-ZOOM ROM size: 65536 bytes (0x10000, src/memory.h:22). + +files: + # Front Loader BIOS (NeoCD original front-loading unit) + - name: neocd_f.rom + dest: neocd/neocd_f.rom + system: snk-neogeo-cd + required: false + size: 524288 + note: "Front Loader BIOS, official NeoCD format" + source_ref: "retroarch/libneocd_libretro.info:15 (firmware0)" + + # Front Loader BIOS, SMKDan custom + - name: neocd_sf.rom + dest: neocd/neocd_sf.rom + system: snk-neogeo-cd + required: false + size: 524288 + note: "Front Loader BIOS, SMKDan custom" + source_ref: "retroarch/libneocd_libretro.info:18 (firmware1)" + + # Top Loader BIOS (NeoCD top-loading unit) + - name: neocd_t.rom + dest: neocd/neocd_t.rom + system: snk-neogeo-cd + required: false + size: 524288 + note: "Top Loader BIOS, official NeoCD format" + source_ref: "retroarch/libneocd_libretro.info:21 (firmware2)" + + # Top Loader BIOS, SMKDan custom + - name: neocd_st.rom + dest: neocd/neocd_st.rom + system: snk-neogeo-cd + required: false + size: 524288 + note: "Top Loader BIOS, SMKDan custom" + source_ref: "retroarch/libneocd_libretro.info:24 (firmware3)" + + # CDZ BIOS (Neo Geo CDZ, last revision) + - name: neocd_z.rom + dest: neocd/neocd_z.rom + system: snk-neogeo-cd + required: false + size: 524288 + note: "CDZ BIOS, official NeoCD format" + source_ref: "retroarch/libneocd_libretro.info:27 (firmware4)" + + # CDZ BIOS, SMKDan custom + - name: neocd_sz.rom + dest: neocd/neocd_sz.rom + system: snk-neogeo-cd + required: false + size: 524288 + note: "CDZ BIOS, SMKDan custom" + source_ref: "retroarch/libneocd_libretro.info:30 (firmware5)" + + # Y-ZOOM ROM (sprite zoom lookup table) + - name: ng-lo.rom + dest: neocd/ng-lo.rom + system: snk-neogeo-cd + required: false + size: 65536 + note: "Y-ZOOM ROM, NeoCD format" + source_ref: "retroarch/libneocd_libretro.info:33 (firmware6)" + + # Y-ZOOM ROM, MAME naming + - name: 000-lo.lo + dest: neocd/000-lo.lo + system: snk-neogeo-cd + required: false + size: 65536 + note: "Y-ZOOM ROM, MAME naming (same content as ng-lo.rom)" + source_ref: "retroarch/libneocd_libretro.info:36 (firmware7)" + + # Front Loader BIOS, MAME naming + - name: front-sp1.bin + dest: neocd/front-sp1.bin + system: snk-neogeo-cd + required: false + size: 524288 + note: "Front Loader BIOS, MAME naming (same content as neocd_f.rom)" + source_ref: "retroarch/libneocd_libretro.info:39 (firmware8)" + + # Top Loader BIOS, MAME naming + - name: top-sp1.bin + dest: neocd/top-sp1.bin + system: snk-neogeo-cd + required: false + size: 524288 + note: "Top Loader BIOS, MAME naming (same content as neocd_t.rom)" + source_ref: "retroarch/libneocd_libretro.info:42 (firmware9)" + + # CDZ BIOS, MAME naming + - name: neocd.bin + dest: neocd/neocd.bin + system: snk-neogeo-cd + required: false + size: 524288 + note: "CDZ BIOS, MAME naming (same content as neocd_z.rom)" + source_ref: "retroarch/libneocd_libretro.info:45 (firmware10)" + + # Universe BIOS for CD systems + - name: uni-bioscd.rom + dest: neocd/uni-bioscd.rom + system: snk-neogeo-cd + required: false + size: 524288 + note: "Universe BIOS CD, third-party multi-region BIOS (hack)" + source_ref: "retroarch/libneocd_libretro.info:48 (firmware11)" diff --git a/emulators/np2kai.yml b/emulators/np2kai.yml new file mode 100644 index 00000000..4defdfea --- /dev/null +++ b/emulators/np2kai.yml @@ -0,0 +1,162 @@ +emulator: NP2kai +type: libretro +source: "https://github.com/libretro/NP2kai" +systems: [pc-98] + +# NP2kai is a PC-9801/9821 emulator (Neko Project II kai). +# All BIOS/font/sound files are loaded from /np2kai/ subdirectory. +# The core sets np2cfg.biospath to "/np2kai/" in retro_load_game() +# (sdl/libretro/libretro.c:1800-1815). All getbiospath() calls resolve +# relative to that directory. +# +# The core has a built-in BIOS simulator (BIOS_SIMULATE) that can boot +# without a real BIOS ROM, but a real bios.rom provides better compatibility. +# Font data is auto-generated from built-in tables if font.bmp is missing, +# but Japanese kanji display requires the real font file. +# +# The fmgen YM2608 rhythm engine (fmgen_opna.cpp:1413-1443) loads WAV files +# with uppercase extension (.WAV) but the built-in rhythm engine (rhythmc.c) +# uses lowercase (.wav). Both paths resolve from np2kai/. +# The fmgen engine also accepts "2608_RYM.WAV" as fallback for the rim sample. + +files: + # -- Main BIOS ROM -- + # Loaded in bios/bios.c:430-440. 96 KB (0x18000) mapped at 0xe8000. + # Without this, the built-in BIOS simulator is used (less compatible). + - name: "bios.rom" + path: "np2kai/bios.rom" + required: false + note: > + PC-9801 system BIOS ROM (96 KB). Provides full hardware compatibility. + The core can boot without it using the built-in BIOS simulator, but + some software may not work correctly. Loaded at address 0xe8000. + source_ref: "bios/bios.c:430-440, common/strres.c:60" + + # -- ITF ROM -- + # Initial Test Firmware, loaded at ITF_ADRS (0xf8000), 32 KB. + # Only loaded when BIOS_SIMULATE is not defined (bios/bios.c:569-574). + # In the libretro build, BIOS_SIMULATE is typically enabled, so this is + # only needed for non-simulated builds. + - name: "itf.rom" + path: "np2kai/itf.rom" + required: false + note: > + Initial Test Firmware ROM (32 KB). Used for hardware initialization + and memory check at boot. Only loaded when the built-in ITF simulator + is disabled. Most libretro builds include the simulator. + source_ref: "bios/bios.c:569-574" + + # -- Font file -- + # Set explicitly in libretro.c:1813 as "/np2kai/font.bmp". + # The core also supports FONT.ROM / font.rom (V98 format) via font_load(). + # Without any font file, built-in 8x8 bitmap data is used but kanji + # characters will not display correctly. + - name: "font.bmp" + path: "np2kai/font.bmp" + required: false + note: > + PC-98 font bitmap (288 KB). Required for correct Japanese kanji display. + The core also accepts FONT.ROM (V98 format). Without this file, + only basic ASCII characters render correctly using built-in data. + source_ref: "sdl/libretro/libretro.c:1813, font/fontdata.c:11-14" + + # -- Sound BIOS ROM -- + # Loaded by soundrom_load() as "sound.rom" (soundrom.c:15-16, 28-32). + # The filename is composed as "sound" + optional board name + ".rom". + # 16 KB ROM for the FM sound board. + - name: "sound.rom" + path: "np2kai/sound.rom" + required: false + note: > + FM sound board BIOS ROM (16 KB). Used by the PC-9801-26K/86/118 + sound boards. The core falls back to a minimal built-in default + (9-byte stub) if this file is missing. + source_ref: "sound/soundrom.c:15-16,21-55,93-106" + + # -- YM2608 OPNA rhythm samples -- + # Loaded by both the built-in rhythm engine (rhythmc.c:60-71) and the + # fmgen engine (fmgen_opna.cpp:1413-1443). Required for YM2608 OPNA + # rhythm sound channel (bass drum, snare, etc). + # The fmgen engine tries uppercase .WAV, the built-in engine uses .wav. + # Place lowercase versions - the filesystem handles case on most platforms. + - name: "2608_bd.wav" + path: "np2kai/2608_bd.wav" + required: false + note: "YM2608 OPNA rhythm sample: bass drum" + source_ref: "sound/rhythmc.c:11, sound/fmgen/fmgen_opna.cpp:1431-1433" + + - name: "2608_sd.wav" + path: "np2kai/2608_sd.wav" + required: false + note: "YM2608 OPNA rhythm sample: snare drum" + source_ref: "sound/rhythmc.c:12" + + - name: "2608_top.wav" + path: "np2kai/2608_top.wav" + required: false + note: "YM2608 OPNA rhythm sample: top cymbal" + source_ref: "sound/rhythmc.c:13" + + - name: "2608_hh.wav" + path: "np2kai/2608_hh.wav" + required: false + note: "YM2608 OPNA rhythm sample: hi-hat" + source_ref: "sound/rhythmc.c:14" + + - name: "2608_tom.wav" + path: "np2kai/2608_tom.wav" + required: false + note: "YM2608 OPNA rhythm sample: tom" + source_ref: "sound/rhythmc.c:15" + + - name: "2608_rim.wav" + path: "np2kai/2608_rim.wav" + required: false + note: "YM2608 OPNA rhythm sample: rim shot" + source_ref: "sound/rhythmc.c:16" + + # -- IDE BIOS ROM -- + # Loaded by ideio.c:1913-1931. Tried in order: ide.rom, d8000.rom, + # bank3.bin, bios9821.rom. Only loaded when IDE BIOS is enabled in + # core options (np2cfg.idebios) and a real BIOS ROM is also present. + - name: "ide.rom" + path: "np2kai/ide.rom" + required: false + note: > + IDE controller BIOS ROM (8 KB). Required for real IDE BIOS emulation + (HDD boot from IDE). The core also checks d8000.rom, bank3.bin, + and bios9821.rom as fallback filenames. Without this, a simulated + IDE BIOS is used. + source_ref: "cbus/ideio.c:1913-1931" + + # -- SCSI BIOS ROM -- + # Loaded by scsiio.c:219-231. Falls back to built-in scsibios[] stub. + - name: "scsi.rom" + path: "np2kai/scsi.rom" + required: false + note: > + SCSI controller BIOS ROM (16 KB). For PC-98 SCSI HDD support. + The core includes a built-in SCSI BIOS stub as fallback. + source_ref: "cbus/scsiio.c:219-231" + + # -- PCI BIOS ROM -- + # Loaded by pcidev.c:364-382. Tries pci.rom then bank0.bin. + # Falls back to built-in PCI BIOS simulation. + - name: "pci.rom" + path: "np2kai/pci.rom" + required: false + note: > + PCI BIOS ROM (32 KB). For PC-9821 PCI bus emulation. + The core also checks bank0.bin as fallback. Without this, + the built-in PCI BIOS simulator is used. + source_ref: "io/pcidev.c:360-382" + + # -- GPIB BIOS ROM -- + # Loaded by gpibio.c:327-356. + - name: "gpib.rom" + path: "np2kai/gpib.rom" + required: false + note: > + GP-IB interface BIOS ROM. Rarely needed, only for GP-IB peripheral + emulation. + source_ref: "cbus/gpibio.c:327-356" diff --git a/emulators/opera.yml b/emulators/opera.yml new file mode 100644 index 00000000..aa17a94d --- /dev/null +++ b/emulators/opera.yml @@ -0,0 +1,209 @@ +emulator: Opera (4DO) +type: libretro +core: opera_libretro +source: "https://github.com/libretro/opera-libretro" +systems: + - 3do + +notes: | + Opera is the libretro port of the 4DO/FreeDO 3DO Interactive Multiplayer emulator. + The core requires exactly one system BIOS ROM (rom1) selected via the opera_bios + core option. BIOS files are loaded from the system directory with + read_file_from_system_directory() and byteswapped on little-endian hosts. + The core will not start without a valid BIOS ROM. + + The user selects which BIOS to use from the core option dropdown, which only + lists BIOS files physically present in the system directory. Any single BIOS + from the list below is sufficient to run games from its region. + + Kanji font ROMs (rom2) are optional and only needed for Japanese text rendering. + They are loaded via opera_lr_opts_set_font() and selected via opera_font core option. + + All BIOS files are exactly 1 MB (1048576 bytes) except 3do_arcade_saot.bin (512 KB) + and panafz1-kanji.bin (933636 bytes). + + BIOS definitions: libopera/opera_bios.c BIOSES[] lines 3-136. + BIOS loading: opera_lr_opts.c opera_lr_opts_set_bios() lines 239-270. + Font loading: opera_lr_opts.c opera_lr_opts_set_font() lines 272-320. + Core option: libretro_core_options.c opera_bios / opera_font. + +files: + # ------------------------------------------------------- + # Panasonic FZ-1 (US) - original 3DO launch model + # ------------------------------------------------------- + - name: "panafz1.bin" + system: 3do + region: [north-america] + required: true + size: 1048576 # 1 MB + md5: "f47264dd47fe30f73ab3c010015c155b" + sha1: "34bf189111295f74d7b7dfc1f304d98b8d36325a" + note: "Panasonic FZ-1 (U). Version unknown, dated 1993-08-03." + source_ref: "libopera/opera_bios.c:6-17" + + # ------------------------------------------------------- + # Panasonic FZ-1 (Japan) + # ------------------------------------------------------- + - name: "panafz1j.bin" + system: 3do + region: [japan] + required: true + size: 1048576 # 1 MB + md5: "a496cfdded3da562759be3561317b605" + sha1: "ec7ec62d60ec0459a14ed56ebc66761ef3c80efc" + note: "Panasonic FZ-1 (J). Version 1.54, dated 1994-01-22." + source_ref: "libopera/opera_bios.c:19-30" + + # ------------------------------------------------------- + # Panasonic FZ-1 (Japan) [No RSA] + # ------------------------------------------------------- + - name: "panafz1j-norsa.bin" + system: 3do + region: [japan] + required: false + size: 1048576 # 1 MB + md5: "f6c71de7470d16abe4f71b1444883dc8" + sha1: "a417587ae3b0b8ef00c830920c21af8bee88e419" + note: "Panasonic FZ-1 (J) with RSA check removed. Version 1.54." + source_ref: "libopera/opera_bios.c:32-43" + + # ------------------------------------------------------- + # Panasonic FZ-10 (US) - slim redesign + # ------------------------------------------------------- + - name: "panafz10.bin" + system: 3do + region: [north-america] + required: true + size: 1048576 # 1 MB + md5: "51f2f43ae2f3508a14d9f56597e2d3ce" + sha1: "3c912300775d1ad730dc35757e279c274c0acaad" + note: "Panasonic FZ-10 (U). Version 1.59.1.1, dated 1994-08-25." + source_ref: "libopera/opera_bios.c:45-56" + + # ------------------------------------------------------- + # Panasonic FZ-10 (US) [No RSA] + # ------------------------------------------------------- + - name: "panafz10-norsa.bin" + system: 3do + region: [north-america] + required: false + size: 1048576 # 1 MB + md5: "1477bda80dc33731a65468c1f5bcbee9" + sha1: "f05e642322c03694f06a809c0b90fc27ac73c002" + note: "Panasonic FZ-10 (U) with RSA check removed. Version 1.59.1.1." + source_ref: "libopera/opera_bios.c:58-69" + + # ------------------------------------------------------- + # Panasonic FZ-10 (Europe) ANVIL + # ------------------------------------------------------- + - name: "panafz10e-anvil.bin" + system: 3do + region: [europe] + required: true + size: 1048576 # 1 MB + md5: "a48e6746bd7edec0f40cff078f0bb19f" + sha1: "a900371f0cdcdc03f79557f11d406fd71251a5fd" + note: "Panasonic FZ-10 (E) ANVIL. Version 1.66.1.1, dated 1994-09-22." + source_ref: "libopera/opera_bios.c:71-82" + + # ------------------------------------------------------- + # Panasonic FZ-10 (Europe) ANVIL [No RSA] + # ------------------------------------------------------- + - name: "panafz10e-anvil-norsa.bin" + system: 3do + region: [europe] + required: false + size: 1048576 # 1 MB + md5: "cf11bbb5a16d7af9875cca9de9a15e09" + sha1: "2765c7b4557cc838b32567d2428d088980295159" + note: "Panasonic FZ-10 (E) ANVIL with RSA check removed. Version 1.66.1.1." + source_ref: "libopera/opera_bios.c:84-95" + + # ------------------------------------------------------- + # Goldstar GDO-101M (US) + # ------------------------------------------------------- + - name: "goldstar.bin" + system: 3do + region: [north-america] + required: true + size: 1048576 # 1 MB + md5: "8639fd5e549bd6238cfee79e3e749114" + sha1: "c4a2e5336f77fb5f743de1eea2cda43675ee2de7" + note: "Goldstar GDO-101M. Version 1.59, dated 1994-05-10." + source_ref: "libopera/opera_bios.c:97-108" + + # ------------------------------------------------------- + # Sanyo Try IMP-21J (Japan) + # ------------------------------------------------------- + - name: "sanyotry.bin" + system: 3do + region: [japan] + required: true + size: 1048576 # 1 MB + md5: "35fa1a1ebaaeea286dc5cd15487c13ea" + sha1: "b01c53da256dde43ffec4ad3fc3adfa8d635e943" + note: "Sanyo Try IMP-21J. Version 1.59, dated 1994-05-10." + source_ref: "libopera/opera_bios.c:110-121" + + # ------------------------------------------------------- + # 3DO Arcade - SAOT + # ------------------------------------------------------- + - name: "3do_arcade_saot.bin" + system: 3do + region: [north-america] + required: false + size: 524288 # 512 KB + md5: "8970fc987ab89a7f64da9f8a8c4333ff" + sha1: "520d3d1b5897800af47f92efd2444a26b7a7dead" + note: "3DO Arcade SAOT board BIOS. Half the size of consumer BIOS ROMs." + source_ref: "libopera/opera_bios.c:123-134" + + # ------------------------------------------------------- + # Kanji font ROM - FZ-1 (933636 bytes, non-standard size) + # ------------------------------------------------------- + - name: "panafz1-kanji.bin" + system: 3do + region: [japan] + required: false + size: 933636 + md5: "b8dc97f778a6245c58e064b0312e8281" + sha1: "acd39a8fee1b9d2950d5ab447846c11fb31af63e" + note: "Kanji font ROM for FZ-1. Version 16.4, dated 1993-08-03. Optional, Japanese text only." + source_ref: "libopera/opera_bios.c:141-152" + + # ------------------------------------------------------- + # Kanji font ROM - FZ-1J (1 MB) + # ------------------------------------------------------- + - name: "panafz1j-kanji.bin" + system: 3do + region: [japan] + required: false + size: 1048576 # 1 MB + md5: "c23fb5d5e6bb1c240d02cf968972be37" + sha1: "884515605ee243577ab20767ef8c1a7368e4e407" + note: "Kanji font ROM for FZ-1J. Version 16.4, dated 1993-08-03. Optional, Japanese text only." + source_ref: "libopera/opera_bios.c:154-165" + + # ------------------------------------------------------- + # Kanji font ROM - FZ-10JA ANVIL (1 MB) + # ------------------------------------------------------- + - name: "panafz10ja-anvil-kanji.bin" + system: 3do + region: [japan] + required: false + size: 1048576 # 1 MB + md5: "428577250f43edc902ea239c50d2240d" + sha1: "2e857b957803d0331fd229328df01f3ffab69eee" + note: "Kanji font ROM for FZ-10JA ANVIL. Version 16.4. Optional, Japanese text only." + source_ref: "libopera/opera_bios.c:167-178" + +platform_details: + 3do: + rom1_size: 1048576 # 1 MB standard BIOS + rom1_arcade_size: 524288 # 512 KB arcade BIOS + rom2_max_size: 1048576 # 1 MB kanji font ROM + bios_selection: "core option opera_bios, user picks from detected files" + font_selection: "core option opera_font, optional" + byteswap: "rom1 is byteswapped on little-endian (opera_mem_rom1_byteswap32_if_le)" + hle_available: false + source_ref: "opera_lr_opts.c:239-270, libopera/opera_bios.c:3-180" diff --git a/emulators/prosystem.yml b/emulators/prosystem.yml new file mode 100644 index 00000000..45f6606e --- /dev/null +++ b/emulators/prosystem.yml @@ -0,0 +1,55 @@ +emulator: ProSystem +type: libretro +source: "https://github.com/libretro/prosystem-libretro" +cores: + - prosystem +systems: + - atari-7800 + +notes: | + ProSystem is an Atari 7800 emulator ported to libretro. + + BIOS loading is in core/libretro.c:579-588. Region is read from the + cartridge header byte 57 (core/Cartridge.c:214) or overridden by the + internal database (core/Database.c). PAL carts get the (E) BIOS, + everything else gets (U). + + Both BIOS files are optional. The core runs games without them, but + some titles may have compatibility issues without the real BIOS + (startup encryption check, etc). bios_Store() maps the BIOS data + into the top of the 64K address space (65536 - bios_size). + + No core option controls BIOS loading -- if the file exists in the + system directory, it is loaded automatically. + +files: + - name: "7800 BIOS (U).rom" + system: atari-7800 + required: false + size: 4096 # 4 KB + note: "NTSC/US Atari 7800 BIOS. Loaded when cartridge_region != REGION_PAL." + source_ref: "core/libretro.c:585" + + - name: "7800 BIOS (E).rom" + system: atari-7800 + required: false + size: 16384 # 16 KB (PAL BIOS is larger than NTSC) + note: "PAL/EU Atari 7800 BIOS. Loaded when cartridge_region == REGION_PAL." + source_ref: "core/libretro.c:583" + +platform_details: + bios_mapping: + target: "top of 64K memory (65536 - bios_size)" + source_ref: "core/Bios.c:88" + notes: | + bios_Store() writes the BIOS into ROM at address (65536 - bios_size). + The BIOS size is read dynamically from the file, not hardcoded. + bios_enabled flag is set only if bios_Load() succeeds (file found + and read without error). + + region_detection: + source_ref: "core/Cartridge.c:214, core/Database.c" + notes: | + Region byte is at offset 57 in the A7800 cartridge header. + The internal database (Database.c) can override the header value. + REGION_NTSC = 0, REGION_PAL = 1 (defined in Region.h). diff --git a/emulators/quasi88.yml b/emulators/quasi88.yml new file mode 100644 index 00000000..a97efc3a --- /dev/null +++ b/emulators/quasi88.yml @@ -0,0 +1,155 @@ +emulator: QUASI88 +type: libretro +source: "https://github.com/libretro/quasi88-libretro" +cores: + - quasi88 +systems: + - pc-8801 + +# QUASI88 is a NEC PC-8801 emulator. The libretro port includes a pseudo-BIOS +# (pbios_n88, pbios_disk) compiled into the core that provides basic compatibility +# when real BIOS files are missing. With the pseudo-BIOS, many disk-based games +# will boot, but compatibility is lower than with real ROMs. +# +# ROM file search order (libretro.c:444-491): +# 1. / +# 2. /quasi88/ +# 3. / +# Each ROM entry has up to 4 alternate filenames tried in order. +# +# ROM loading (libretro.c:550-594): +# N88.ROM and DISK.ROM (SUB_ROM) are the only two checked for failure. +# If missing, the core falls back to the built-in pseudo-BIOS. +# All other ROMs are loaded silently if present, ignored if absent. +# +# The original QUASI88 (memory.c:80-95) uses uppercase-first filenames +# (N88.ROM, N88EXT0.ROM, etc.) while the libretro .info file standardizes +# on lowercase with underscore variants (n88.rom, n88_0.rom, etc.). +# The core tries both naming conventions. +# +# FONT.ROM/FONT2.ROM/FONT3.ROM are not listed in the .info file. +# When missing, the core uses built-in fonts or falls back to kanji ROM glyphs. + +notes: | + Files go in /quasi88/ or directly in /. + The pseudo-BIOS built into the core covers N88-BASIC V2 and the disk + subsystem at a basic level. For full compatibility (N-BASIC, V1H/V1S modes, + dictionary lookup, kanji display), real ROM files are needed. + + N88_0.ROM (EXT0) is marked required in the .info file because it contains + the N88-BASIC V2 extension used by most software. EXT1-EXT3 are version- + specific extensions (V1H, V1S, older V2) needed only for specific titles. + + The core option "quasi88_basic_mode" selects N88 V2, N88 V1H, N88 V1S, + or N mode. Each mode requires its corresponding ROM to be present. + +files: + # -- Required for full operation -- + + - name: n88.rom + path: "quasi88/n88.rom" + size: 32768 + required: true + note: "N88-BASIC main ROM (32 KB). Core falls back to pseudo-BIOS if missing." + source_ref: "src/LIBRETRO/libretro.c:550" + aliases: ["N88.ROM"] + + - name: n88_0.rom + path: "quasi88/n88_0.rom" + size: 8192 + required: true + note: "N88-BASIC V2 extension ROM 0 (8 KB). Needed for most PC-8801 software." + source_ref: "src/LIBRETRO/libretro.c:555" + aliases: ["N88_0.ROM", "N88EXT0.ROM", "n88ext0.rom"] + + # -- Optional extensions -- + + - name: n88_1.rom + path: "quasi88/n88_1.rom" + size: 8192 + required: false + note: "N88-BASIC V1H extension ROM 1 (8 KB). For V1 High-speed mode software." + source_ref: "src/LIBRETRO/libretro.c:556" + aliases: ["N88_1.ROM", "N88EXT1.ROM", "n88ext1.rom"] + + - name: n88_2.rom + path: "quasi88/n88_2.rom" + size: 8192 + required: false + note: "N88-BASIC V1S extension ROM 2 (8 KB). For V1 Standard mode software." + source_ref: "src/LIBRETRO/libretro.c:557" + aliases: ["N88_2.ROM", "N88EXT2.ROM", "n88ext2.rom"] + + - name: n88_3.rom + path: "quasi88/n88_3.rom" + size: 8192 + required: false + note: "N88-BASIC extension ROM 3 (8 KB). Older V2 extension, rarely needed." + source_ref: "src/LIBRETRO/libretro.c:558" + aliases: ["N88_3.ROM", "N88EXT3.ROM", "n88ext3.rom"] + + - name: n88n.rom + path: "quasi88/n88n.rom" + size: 32768 + required: false + note: "N-BASIC ROM (32 KB). For PC-8001 compatible N-BASIC mode." + source_ref: "src/LIBRETRO/libretro.c:559" + aliases: ["N88N.ROM", "N80.ROM", "n80.rom"] + + - name: disk.rom + path: "quasi88/disk.rom" + size: 2048 + required: false + note: "Disk subsystem ROM (2 KB, 2D type). Core falls back to pseudo-BIOS if missing. 8 KB variant (2HD type) also accepted." + source_ref: "src/LIBRETRO/libretro.c:552" + aliases: ["DISK.ROM", "N88SUB.ROM", "n88sub.rom"] + + - name: n88knj1.rom + path: "quasi88/n88knj1.rom" + size: 131072 + required: false + note: "Kanji ROM level 1 (128 KB). Required for Japanese text display. Also used as font fallback." + source_ref: "src/LIBRETRO/libretro.c:560" + aliases: ["N88KNJ1.ROM", "KANJI1.ROM", "kanji1.rom"] + + - name: n88knj2.rom + path: "quasi88/n88knj2.rom" + size: 131072 + required: false + note: "Kanji ROM level 2 (128 KB). Extended kanji character set." + source_ref: "src/LIBRETRO/libretro.c:561" + aliases: ["N88KNJ2.ROM", "KANJI2.ROM", "kanji2.rom"] + + - name: n88jisho.rom + path: "quasi88/n88jisho.rom" + size: 524288 + required: false + note: "Dictionary ROM (512 KB). Japanese dictionary lookup, very few titles use it." + source_ref: "src/LIBRETRO/libretro.c:562" + aliases: ["N88JISHO.ROM", "JISYO.ROM", "jisyo.rom"] + + # -- Font ROMs (not in .info, core has built-in fallback) -- + + - name: font.rom + path: "quasi88/font.rom" + size: 4096 + required: false + note: "ANK font ROM (4 KB). Falls back to built-in font or kanji ROM glyphs." + source_ref: "src/LIBRETRO/libretro.c:566" + aliases: ["FONT.ROM"] + + - name: font2.rom + path: "quasi88/font2.rom" + size: 4096 + required: false + note: "Second font ROM (4 KB). Falls back to built-in ANH font." + source_ref: "src/LIBRETRO/libretro.c:576" + aliases: ["FONT2.ROM"] + + - name: font3.rom + path: "quasi88/font3.rom" + size: 4096 + required: false + note: "Third font ROM (4 KB). Zeroed out if missing." + source_ref: "src/LIBRETRO/libretro.c:588" + aliases: ["FONT3.ROM"] diff --git a/emulators/vice.yml b/emulators/vice.yml new file mode 100644 index 00000000..7a2248d7 --- /dev/null +++ b/emulators/vice.yml @@ -0,0 +1,934 @@ +emulator: VICE +type: libretro +cores: + - vice_x64 + - vice_x64sc + - vice_x64dtv + - vice_x128 + - vice_xvic + - vice_xplus4 + - vice_xpet + - vice_xcbm2 + - vice_xcbm5x0 + - vice_xscpu64 +source: "https://github.com/libretro/vice-libretro" +systems: + - commodore-c64 + - commodore-c128 + - commodore-c64dtv + - commodore-vic20 + - commodore-plus4 + - commodore-pet + - commodore-cbm-ii + +notes: | + VICE is a multi-machine Commodore emulator covering C64, C128, VIC-20, + Plus/4, PET, CBM-II, C64 DTV, and SuperCPU64. Each machine is built as a + separate libretro core. + + All standard ROMs (kernal, basic, chargen, drive DOS, editor) are embedded + in the core binary via USE_EMBEDDED. External ROM files are NOT required + for normal operation. The embedded ROMs are compiled from vice/data// + and ship with every build. + + The core looks for optional external data in system/vice// + (e.g. system/vice/C64/, system/vice/C128/). This is used for: + - JiffyDOS replacement kernals (proprietary, not included) + - SuperCPU external kernals (scpu-dos-1.4.bin, scpu-dos-2.04.bin) + - Cartridge images placed in system/vice// + - Custom keymaps (.vkm files) + - Custom vicerc configuration + + JiffyDOS support (C64/C64SC/C128/SCPU64 only): + Requires True Drive Emulation enabled and 1541/1571/1581 drive type. + ROMs are loaded from system/vice/: + - JiffyDOS_C64.bin (C64 kernal replacement) + - JiffyDOS_SX-64.bin (SX-64 model kernal replacement) + - JiffyDOS_C128.bin (C128 kernal replacement, C128 core only) + - JiffyDOS_1541-II.bin (1541-II drive DOS replacement) + - JiffyDOS_1571_repl310654.bin (1571 drive DOS replacement) + - JiffyDOS_1581.bin (1581 drive DOS replacement) + + SuperCPU kernal (SCPU64 core only): + Option "SuperCPU Kernal" selects between Internal (embedded), 1.40, or 2.04. + External kernals loaded from system/vice/SCPU64/: + - scpu-dos-1.4.bin + - scpu-dos-2.04.bin + These files are blacklisted from the cartridge scanner to prevent accidental + loading as cartridges. + + C128 libretro specifics: the C128 core reuses C64 ROM filenames for C64 mode + (basic-901226-01.bin, kernal-901227-03.bin) instead of the standalone VICE + names (basic64-901226-01.bin, kernal64-901227-03.bin). This is controlled + by #ifdef __LIBRETRO__ in c128rom.h. + + Drive ROM notes: dos2000, dos4000, and CMDHD boot ROM are defined in + driverom.h but not shipped in vice/data/DRIVES/. These are for CMD hardware + (FD-2000, FD-4000, CMD HD) which are rare peripherals. + + Source: retrodep/embedded/*.c (embedded ROM tables), + vice/src/*/rom.h (ROM name defines), vice/src/drive/driverom.h (drive ROMs), + retrodep/ui.c:274-315 (JiffyDOS loading), retrodep/ui.c:258-271 (SCPU kernal), + libretro/libretro-core.c:2800-2865 (core options for JiffyDOS/SCPU) + +files: + # ------------------------------------------------------- + # C64 ROMs (vice_x64, vice_x64sc) + # embedded in binary, listed for reference + # ------------------------------------------------------- + - name: "vice/C64/basic-901226-01.bin" + system: commodore-c64 + required: false + embedded: true + size: 8192 + note: "C64 BASIC V2 ROM. Embedded in core." + source_ref: "vice/src/c64/c64rom.h:31" + + - name: "vice/C64/kernal-901227-03.bin" + system: commodore-c64 + required: false + embedded: true + size: 8192 + note: "C64 Kernal Rev 3 (default). Embedded in core." + source_ref: "vice/src/c64/c64rom.h:52" + + - name: "vice/C64/kernal-901227-01.bin" + system: commodore-c64 + required: false + embedded: true + size: 8192 + note: "C64 Kernal Rev 1. Embedded in core." + source_ref: "vice/src/c64/c64rom.h:50" + + - name: "vice/C64/kernal-901227-02.bin" + system: commodore-c64 + required: false + embedded: true + size: 8192 + note: "C64 Kernal Rev 2. Embedded in core." + source_ref: "vice/src/c64/c64rom.h:51" + + - name: "vice/C64/kernal-390852-01.bin" + system: commodore-c64 + required: false + embedded: true + size: 8192 + note: "C64 GS (Games System) Kernal. Embedded in core." + source_ref: "vice/src/c64/c64rom.h:53" + + - name: "vice/C64/kernal-251104-04.bin" + system: commodore-c64 + required: false + embedded: true + size: 8192 + note: "SX-64 Kernal. Embedded in core." + source_ref: "vice/src/c64/c64rom.h:54" + + - name: "vice/C64/kernal-901246-01.bin" + system: commodore-c64 + required: false + embedded: true + size: 8192 + note: "PET64/Educator64 (4064) Kernal. Embedded in core." + source_ref: "vice/src/c64/c64rom.h:55" + + - name: "vice/C64/kernal-906145-02.bin" + system: commodore-c64 + required: false + embedded: true + size: 8192 + note: "C64 Japanese Kernal. Embedded in core." + source_ref: "vice/src/c64/c64rom.h:49" + + - name: "vice/C64/chargen-901225-01.bin" + system: commodore-c64 + required: false + embedded: true + size: 4096 + note: "C64 Character Generator ROM (default). Embedded in core." + source_ref: "vice/src/c64/c64rom.h:60" + + - name: "vice/C64/chargen-906143-02.bin" + system: commodore-c64 + required: false + embedded: true + size: 4096 + note: "C64 Japanese Character Generator ROM. Embedded in core." + source_ref: "vice/src/c64/c64rom.h:61" + + # ------------------------------------------------------- + # C128 ROMs (vice_x128) + # embedded in binary, listed for reference + # ------------------------------------------------------- + - name: "vice/C128/kernal-318020-05.bin" + system: commodore-c128 + required: false + embedded: true + size: 16384 + note: "C128 Kernal (default international). Embedded in core." + source_ref: "vice/src/c128/c128rom.h:103" + + - name: "vice/C128/kernal-315078-03.bin" + system: commodore-c128 + required: false + embedded: true + size: 16384 + note: "C128 Kernal German. Embedded in core." + source_ref: "vice/src/c128/c128rom.h:105" + + - name: "vice/C128/kernal-325172-01.bin" + system: commodore-c128 + required: false + embedded: true + size: 16384 + note: "C128 Kernal Swiss. Embedded in core." + source_ref: "vice/src/c128/c128rom.h:104" + + - name: "vice/C128/kernal-318034-01.bin" + system: commodore-c128 + required: false + embedded: true + size: 16384 + note: "C128 Kernal Swedish. Embedded in core." + source_ref: "vice/src/c128/c128rom.h:110" + + - name: "vice/C128/kernalfi" + system: commodore-c128 + required: false + embedded: true + size: 16384 + note: "C128 Kernal Finnish (unidentified part number). Embedded in core." + source_ref: "vice/src/c128/c128rom.h:106" + + - name: "vice/C128/kernalfr" + system: commodore-c128 + required: false + embedded: true + size: 16384 + note: "C128 Kernal French (unidentified part number). Embedded in core." + source_ref: "vice/src/c128/c128rom.h:107" + + - name: "vice/C128/kernalit" + system: commodore-c128 + required: false + embedded: true + size: 16384 + note: "C128 Kernal Italian (unidentified part number). Embedded in core." + source_ref: "vice/src/c128/c128rom.h:108" + + - name: "vice/C128/kernalno" + system: commodore-c128 + required: false + embedded: true + size: 16384 + note: "C128 Kernal Norwegian (unidentified part number). Embedded in core." + source_ref: "vice/src/c128/c128rom.h:109" + + - name: "vice/C128/basiclo-318018-04.bin" + system: commodore-c128 + required: false + embedded: true + size: 16384 + note: "C128 BASIC low (BASIC part). Embedded in core." + source_ref: "vice/src/c128/c128rom.h:115" + + - name: "vice/C128/basichi-318019-04.bin" + system: commodore-c128 + required: false + embedded: true + size: 16384 + note: "C128 BASIC high (Editor part). Embedded in core." + source_ref: "vice/src/c128/c128rom.h:116" + + - name: "vice/C128/basic-901226-01.bin" + system: commodore-c128 + required: false + embedded: true + size: 8192 + note: "C64 BASIC V2 ROM, used by C128 in C64 mode. Libretro build uses C64 filename instead of basic64-901226-01.bin." + source_ref: "vice/src/c128/c128rom.h:123-127" + + - name: "vice/C128/kernal-901227-03.bin" + system: commodore-c128 + required: false + embedded: true + size: 8192 + note: "C64 Kernal Rev 3, used by C128 in C64 mode. Libretro build uses C64 filename instead of kernal64-901227-03.bin." + source_ref: "vice/src/c128/c128rom.h:130-134" + + - name: "vice/C128/kernal64-325179-01.bin" + system: commodore-c128 + required: false + embedded: true + size: 8192 + note: "C128 C64-mode Kernal Norwegian. Embedded in core." + source_ref: "vice/src/c128/c128rom.h:136" + + - name: "vice/C128/kernal64-325182-01.bin" + system: commodore-c128 + required: false + embedded: true + size: 8192 + note: "C128 C64-mode Kernal Swedish. Embedded in core." + source_ref: "vice/src/c128/c128rom.h:137" + + - name: "vice/C128/chargen-390059-01.bin" + system: commodore-c128 + required: false + embedded: true + size: 8192 + note: "C128 Character Generator (default international). Embedded in core." + source_ref: "vice/src/c128/c128rom.h:92" + + - name: "vice/C128/chargen-315079-01.bin" + system: commodore-c128 + required: false + embedded: true + size: 8192 + note: "C128 Character Generator German. Embedded in core." + source_ref: "vice/src/c128/c128rom.h:95" + + - name: "vice/C128/chargen-325167-02.bin" + system: commodore-c128 + required: false + embedded: true + size: 8192 + note: "C128 Character Generator Italian/French/Belgian. Embedded in core." + source_ref: "vice/src/c128/c128rom.h:93" + + - name: "vice/C128/chargen-325173-01D.bin" + system: commodore-c128 + required: false + embedded: true + size: 8192 + note: "C128 Character Generator Swiss. Embedded in core." + source_ref: "vice/src/c128/c128rom.h:94" + + - name: "vice/C128/chargen-325078-02.bin" + system: commodore-c128 + required: false + embedded: true + size: 8192 + note: "C128 Character Generator Norwegian. Embedded in core." + source_ref: "vice/src/c128/c128rom.h:99" + + - name: "vice/C128/chargen-325181-01.bin" + system: commodore-c128 + required: false + embedded: true + size: 8192 + note: "C128 Character Generator Finnish/Swedish. Embedded in core." + source_ref: "vice/src/c128/c128rom.h:96" + + # ------------------------------------------------------- + # C64 DTV ROMs (vice_x64dtv) + # embedded in binary, listed for reference + # ------------------------------------------------------- + - name: "vice/C64DTV/dtvrom.bin" + system: commodore-c64dtv + required: false + embedded: true + size: 2097152 + note: "C64 DTV flash ROM (2 MB). Contains kernal, basic, chargen. Embedded in core." + source_ref: "vice/src/c64dtv/c64dtvflash.c:59-64" + + - name: "vice/C64DTV/basic-901226-01.bin" + system: commodore-c64dtv + required: false + embedded: true + size: 8192 + note: "C64 BASIC V2 ROM (DTV copy). Embedded in core." + source_ref: "vice/data/C64DTV/" + + - name: "vice/C64DTV/chargen-901225-01.bin" + system: commodore-c64dtv + required: false + embedded: true + size: 4096 + note: "C64 Character Generator (DTV copy). Embedded in core." + source_ref: "vice/data/C64DTV/" + + - name: "vice/C64DTV/kernal-901227-03.bin" + system: commodore-c64dtv + required: false + embedded: true + size: 8192 + note: "C64 Kernal Rev 3 (DTV copy). Embedded in core." + source_ref: "vice/data/C64DTV/" + + # ------------------------------------------------------- + # VIC-20 ROMs (vice_xvic) + # embedded in binary, listed for reference + # ------------------------------------------------------- + - name: "vice/VIC20/basic-901486-01.bin" + system: commodore-vic20 + required: false + embedded: true + size: 8192 + note: "VIC-20 BASIC ROM. Embedded in core." + source_ref: "vice/src/vic20/vic20rom.h:43" + + - name: "vice/VIC20/kernal.901486-07.bin" + system: commodore-vic20 + required: false + embedded: true + size: 8192 + note: "VIC-20 Kernal PAL (default). Embedded in core." + source_ref: "vice/src/vic20/vic20rom.h:53" + + - name: "vice/VIC20/kernal.901486-06.bin" + system: commodore-vic20 + required: false + embedded: true + size: 8192 + note: "VIC-20 Kernal NTSC. Embedded in core." + source_ref: "vice/src/vic20/vic20rom.h:52" + + - name: "vice/VIC20/kernal.901486-02.bin" + system: commodore-vic20 + required: false + embedded: true + size: 8192 + note: "VIC-20 Kernal Japanese NTSC Rev 2. Embedded in core." + source_ref: "vice/src/vic20/vic20rom.h:51" + + - name: "vice/VIC20/chargen-901460-03.bin" + system: commodore-vic20 + required: false + embedded: true + size: 4096 + note: "VIC-20 Character Generator (default). Embedded in core." + source_ref: "vice/src/vic20/vic20rom.h:56" + + - name: "vice/VIC20/chargen-901460-02.bin" + system: commodore-vic20 + required: false + embedded: true + size: 4096 + note: "VIC-20 Japanese Character Generator. Embedded in core." + source_ref: "vice/src/vic20/vic20rom.h:57" + + # ------------------------------------------------------- + # Plus/4 ROMs (vice_xplus4) + # embedded in binary, listed for reference + # ------------------------------------------------------- + - name: "vice/PLUS4/basic-318006-01.bin" + system: commodore-plus4 + required: false + embedded: true + size: 16384 + note: "Plus/4 BASIC ROM. Embedded in core." + source_ref: "vice/src/plus4/plus4rom.h:33" + + - name: "vice/PLUS4/kernal-318004-05.bin" + system: commodore-plus4 + required: false + embedded: true + size: 16384 + note: "Plus/4 Kernal PAL Rev 5 (default PAL). Embedded in core." + source_ref: "vice/src/plus4/plus4rom.h:36" + + - name: "vice/PLUS4/kernal-318005-05.bin" + system: commodore-plus4 + required: false + embedded: true + size: 16384 + note: "Plus/4 Kernal NTSC Rev 5 (default NTSC). Embedded in core." + source_ref: "vice/src/plus4/plus4rom.h:37" + + - name: "vice/PLUS4/kernal-318004-01.bin" + system: commodore-plus4 + required: false + embedded: true + size: 16384 + note: "Plus/4 Kernal NTSC Rev 1 (V232 prototype). Embedded in core." + source_ref: "vice/src/plus4/plus4rom.h:35" + + - name: "vice/PLUS4/kernal-364.bin" + system: commodore-plus4 + required: false + embedded: true + size: 16384 + note: "Commodore 364 prototype Kernal. Embedded in core." + source_ref: "vice/src/plus4/plus4rom.h:38" + + - name: "vice/PLUS4/3plus1-317053-01.bin" + system: commodore-plus4 + required: false + embedded: true + size: 16384 + note: "3-Plus-1 software ROM low. Embedded in core." + source_ref: "vice/src/plus4/plus4rom.h:40" + + - name: "vice/PLUS4/3plus1-317054-01.bin" + system: commodore-plus4 + required: false + embedded: true + size: 16384 + note: "3-Plus-1 software ROM high. Embedded in core." + source_ref: "vice/src/plus4/plus4rom.h:41" + + - name: "vice/PLUS4/c2lo-364.bin" + system: commodore-plus4 + required: false + embedded: true + size: 16384 + note: "Commodore 364 prototype function ROM low. Embedded in core." + source_ref: "vice/src/plus4/plus4rom.h:43" + + # ------------------------------------------------------- + # PET ROMs (vice_xpet) + # embedded in binary, listed for reference + # ------------------------------------------------------- + - name: "vice/PET/basic-1.901439-09-05-02-06.bin" + system: commodore-pet + required: false + embedded: true + size: 8192 + note: "PET BASIC 1.0 ROM (PET 2001). Embedded in core." + source_ref: "vice/src/pet/petrom.h:55" + + - name: "vice/PET/basic-2.901465-01-02.bin" + system: commodore-pet + required: false + embedded: true + size: 8192 + note: "PET BASIC 2.0 ROM. Embedded in core." + source_ref: "vice/src/pet/petrom.h:56" + + - name: "vice/PET/basic-4.901465-23-20-21.bin" + system: commodore-pet + required: false + embedded: true + size: 12288 + note: "PET BASIC 4.0 ROM. Embedded in core." + source_ref: "vice/src/pet/petrom.h:57" + + - name: "vice/PET/kernal-1.901439-04-07.bin" + system: commodore-pet + required: false + embedded: true + size: 4096 + note: "PET Kernal 1.0 (PET 2001). Embedded in core." + source_ref: "vice/src/pet/petrom.h:51" + + - name: "vice/PET/kernal-2.901465-03.bin" + system: commodore-pet + required: false + embedded: true + size: 4096 + note: "PET Kernal 2.0. Embedded in core." + source_ref: "vice/src/pet/petrom.h:52" + + - name: "vice/PET/kernal-4.901465-22.bin" + system: commodore-pet + required: false + embedded: true + size: 4096 + note: "PET Kernal 4.0. Embedded in core." + source_ref: "vice/src/pet/petrom.h:53" + + - name: "vice/PET/edit-1-n.901439-03.bin" + system: commodore-pet + required: false + embedded: true + size: 2048 + note: "PET Editor 1.0 Normal (graphics keyboard). Embedded in core." + source_ref: "vice/src/pet/petrom.h:59" + + - name: "vice/PET/edit-2-n.901447-24.bin" + system: commodore-pet + required: false + embedded: true + size: 2048 + note: "PET Editor 2.0 Normal (graphics keyboard). Embedded in core." + source_ref: "vice/src/pet/petrom.h:60" + + - name: "vice/PET/edit-2-b.901474-01.bin" + system: commodore-pet + required: false + embedded: true + size: 2048 + note: "PET Editor 2.0 Business keyboard. Embedded in core." + source_ref: "vice/src/pet/petrom.h:61" + + - name: "vice/PET/edit-4-40-n-50Hz.901498-01.bin" + system: commodore-pet + required: false + embedded: true + size: 2048 + note: "PET Editor 4.0, 40 col, Normal keyboard, 50Hz. Embedded in core." + source_ref: "vice/src/pet/petrom.h:62" + + - name: "vice/PET/edit-4-40-b-50Hz.ts.bin" + system: commodore-pet + required: false + embedded: true + size: 2048 + note: "PET Editor 4.0, 40 col, Business keyboard, 50Hz. Embedded in core." + source_ref: "vice/src/pet/petrom.h:65" + + - name: "vice/PET/edit-4-80-b-50Hz.901474-04_.bin" + system: commodore-pet + required: false + embedded: true + size: 2048 + note: "PET Editor 4.0, 80 col, Business keyboard, 50Hz. Embedded in core." + source_ref: "vice/src/pet/petrom.h:63" + + - name: "vice/PET/characters-1.901447-08.bin" + system: commodore-pet + required: false + embedded: true + size: 2048 + note: "PET Character Generator 1 (original PET 2001). Embedded in core." + source_ref: "vice/src/pet/petrom.h:46" + + - name: "vice/PET/characters-2.901447-10.bin" + system: commodore-pet + required: false + embedded: true + size: 2048 + note: "PET Character Generator 2. Embedded in core." + source_ref: "vice/src/pet/petrom.h:47" + + - name: "vice/PET/characters.901640-01.bin" + system: commodore-pet + required: false + embedded: true + size: 4096 + note: "SuperPET Character Generator. Embedded in core." + source_ref: "vice/src/pet/petrom.h:48" + + - name: "vice/PET/waterloo-a000.901898-01.bin" + system: commodore-pet + required: false + embedded: true + size: 4096 + note: "SuperPET Waterloo microEngine 6809 ROM at $A000. Embedded in core." + source_ref: "vice/src/pet/petrom.h:75" + + - name: "vice/PET/waterloo-b000.901898-02.bin" + system: commodore-pet + required: false + embedded: true + size: 4096 + note: "SuperPET Waterloo microEngine 6809 ROM at $B000. Embedded in core." + source_ref: "vice/src/pet/petrom.h:76" + + - name: "vice/PET/waterloo-c000.901898-03.bin" + system: commodore-pet + required: false + embedded: true + size: 4096 + note: "SuperPET Waterloo microEngine 6809 ROM at $C000. Embedded in core." + source_ref: "vice/src/pet/petrom.h:77" + + - name: "vice/PET/waterloo-d000.901898-04.bin" + system: commodore-pet + required: false + embedded: true + size: 4096 + note: "SuperPET Waterloo microEngine 6809 ROM at $D000. Embedded in core." + source_ref: "vice/src/pet/petrom.h:78" + + - name: "vice/PET/waterloo-e000.901897-01.bin" + system: commodore-pet + required: false + embedded: true + size: 2048 + note: "SuperPET Waterloo microEngine 6809 ROM at $E000. Embedded in core." + source_ref: "vice/src/pet/petrom.h:79" + + - name: "vice/PET/waterloo-f000.901898-05.bin" + system: commodore-pet + required: false + embedded: true + size: 4096 + note: "SuperPET Waterloo microEngine 6809 ROM at $F000. Embedded in core." + source_ref: "vice/src/pet/petrom.h:80" + + # ------------------------------------------------------- + # CBM-II ROMs (vice_xcbm2, vice_xcbm5x0) + # embedded in binary, listed for reference + # ------------------------------------------------------- + - name: "vice/CBM-II/basic-901242+3-04a.bin" + system: commodore-cbm-ii + required: false + embedded: true + size: 16384 + note: "CBM-II BASIC 128 (CBM 610/620/710/720). Embedded in core." + source_ref: "vice/src/cbm2/cbm2rom.h:41" + + - name: "vice/CBM-II/basic-901240+1-03.bin" + system: commodore-cbm-ii + required: false + embedded: true + size: 16384 + note: "CBM-II BASIC 256 (CBM 710/720 with 256K). Embedded in core." + source_ref: "vice/src/cbm2/cbm2rom.h:42" + + - name: "vice/CBM-II/basic-901235+6-02.bin" + system: commodore-cbm-ii + required: false + embedded: true + size: 16384 + note: "CBM-II BASIC 500 (CBM 510/P500). Embedded in core." + source_ref: "vice/src/cbm2/cbm2rom.h:43" + + - name: "vice/CBM-II/kernal-901244-04a.bin" + system: commodore-cbm-ii + required: false + embedded: true + size: 8192 + note: "CBM-II Kernal (CBM 610/620/710/720). Embedded in core." + source_ref: "vice/src/cbm2/cbm2rom.h:45" + + - name: "vice/CBM-II/kernal-901234-02.bin" + system: commodore-cbm-ii + required: false + embedded: true + size: 8192 + note: "CBM-II Kernal 500 (CBM 510/P500). Embedded in core." + source_ref: "vice/src/cbm2/cbm2rom.h:46" + + - name: "vice/CBM-II/chargen-901225-01.bin" + system: commodore-cbm-ii + required: false + embedded: true + size: 4096 + note: "CBM-II Character Generator 500 (VIC-II based, CBM 510/P500). Embedded in core." + source_ref: "vice/src/cbm2/cbm2rom.h:37" + + - name: "vice/CBM-II/chargen-901237-01.bin" + system: commodore-cbm-ii + required: false + embedded: true + size: 4096 + note: "CBM-II Character Generator 600 (CBM 610/620). Embedded in core." + source_ref: "vice/src/cbm2/cbm2rom.h:38" + + - name: "vice/CBM-II/chargen-901232-01.bin" + system: commodore-cbm-ii + required: false + embedded: true + size: 4096 + note: "CBM-II Character Generator 700 (CBM 710/720). Embedded in core." + source_ref: "vice/src/cbm2/cbm2rom.h:39" + + # ------------------------------------------------------- + # SCPU64 ROMs (vice_xscpu64) + # chargen embedded, SCPU ROM embedded as "scpu64" + # ------------------------------------------------------- + - name: "vice/SCPU64/scpu64" + system: commodore-c64 + required: false + embedded: true + size: 65536 + note: "SuperCPU64 internal ROM (default). Embedded in core." + source_ref: "retrodep/ui.c:269" + + - name: "vice/SCPU64/chargen-901225-01.bin" + system: commodore-c64 + required: false + embedded: true + size: 4096 + note: "C64 Character Generator (used by SCPU64). Embedded in core." + source_ref: "vice/src/scpu64/scpu64rom.h:36" + + - name: "vice/SCPU64/chargen-906143-02.bin" + system: commodore-c64 + required: false + embedded: true + size: 4096 + note: "C64 Japanese Character Generator (used by SCPU64). Embedded in core." + source_ref: "vice/src/scpu64/scpu64rom.h:37" + + - name: "vice/SCPU64/scpu-dos-1.4.bin" + system: commodore-c64 + required: false + embedded: false + note: "SuperCPU DOS v1.40 external kernal. Optional, selected via core option. Goes in system/vice/SCPU64/." + source_ref: "retrodep/ui.c:266, libretro/libretro-core.c:2823" + + - name: "vice/SCPU64/scpu-dos-2.04.bin" + system: commodore-c64 + required: false + embedded: false + note: "SuperCPU DOS v2.04 external kernal. Optional, selected via core option. Goes in system/vice/SCPU64/." + source_ref: "retrodep/ui.c:263, libretro/libretro-core.c:2825" + + # ------------------------------------------------------- + # Drive ROMs (shared across all cores with True Drive Emulation) + # embedded in binary, listed for reference + # ------------------------------------------------------- + - name: "vice/DRIVES/dos1540-325302+3-01.bin" + system: commodore-c64 + required: false + embedded: true + size: 16384 + note: "1540 drive DOS ROM. Embedded in core." + source_ref: "vice/src/drive/driverom.h:88" + + - name: "vice/DRIVES/dos1541-325302-01+901229-05.bin" + system: commodore-c64 + required: false + embedded: true + size: 16384 + note: "1541 drive DOS ROM. Embedded in core." + source_ref: "vice/src/drive/driverom.h:89" + + - name: "vice/DRIVES/dos1541ii-251968-03.bin" + system: commodore-c64 + required: false + embedded: true + size: 16384 + note: "1541-II drive DOS ROM. Embedded in core." + source_ref: "vice/src/drive/driverom.h:90" + + - name: "vice/DRIVES/dos1551-318008-01.bin" + system: commodore-plus4 + required: false + embedded: true + size: 16384 + note: "1551 drive DOS ROM (Plus/4 specific). Embedded in core." + source_ref: "vice/src/drive/driverom.h:92" + + - name: "vice/DRIVES/dos1570-315090-01.bin" + system: commodore-c64 + required: false + embedded: true + size: 32768 + note: "1570 drive DOS ROM. Embedded in core." + source_ref: "vice/src/drive/driverom.h:93" + + - name: "vice/DRIVES/dos1571-310654-05.bin" + system: commodore-c64 + required: false + embedded: true + size: 32768 + note: "1571 drive DOS ROM. Embedded in core." + source_ref: "vice/src/drive/driverom.h:94" + + - name: "vice/DRIVES/dos1571cr-318047-01.bin" + system: commodore-c128 + required: false + embedded: true + size: 32768 + note: "1571CR drive DOS ROM (cost-reduced, C128D internal). Embedded in core." + source_ref: "vice/src/drive/driverom.h:95" + + - name: "vice/DRIVES/dos1581-318045-02.bin" + system: commodore-c64 + required: false + embedded: true + size: 32768 + note: "1581 drive DOS ROM. Embedded in core." + source_ref: "vice/src/drive/driverom.h:96" + + - name: "vice/DRIVES/dos1001-901887+8-01.bin" + system: commodore-pet + required: false + embedded: true + size: 16384 + note: "CBM 1001 (SFD-1001) drive DOS ROM. Embedded in core." + source_ref: "vice/src/drive/driverom.h:70" + + - name: "vice/DRIVES/dos2031-901484-03+05.bin" + system: commodore-pet + required: false + embedded: true + size: 16384 + note: "CBM 2031 drive DOS ROM. Embedded in core." + source_ref: "vice/src/drive/driverom.h:73" + + - name: "vice/DRIVES/dos2040-901468-06+07.bin" + system: commodore-pet + required: false + embedded: true + size: 8192 + note: "CBM 2040 dual drive DOS ROM. Embedded in core." + source_ref: "vice/src/drive/driverom.h:76" + + - name: "vice/DRIVES/dos3040-901468-11-13.bin" + system: commodore-pet + required: false + embedded: true + size: 12288 + note: "CBM 3040 dual drive DOS ROM. Embedded in core." + source_ref: "vice/src/drive/driverom.h:79" + + - name: "vice/DRIVES/dos4040-901468-14-16.bin" + system: commodore-pet + required: false + embedded: true + size: 12288 + note: "CBM 4040 dual drive DOS ROM. Embedded in core." + source_ref: "vice/src/drive/driverom.h:82" + + - name: "vice/DRIVES/dos9000-300516+7-revC.bin" + system: commodore-pet + required: false + embedded: true + size: 16384 + note: "CBM D9090/D9060 hard drive DOS ROM. Embedded in core." + source_ref: "vice/src/drive/driverom.h:85" + + # ------------------------------------------------------- + # JiffyDOS ROMs (optional, proprietary, not included) + # C64/C64SC/C128/SCPU64 cores only + # ------------------------------------------------------- + - name: "vice/JiffyDOS_C64.bin" + system: commodore-c64 + required: false + embedded: false + note: "JiffyDOS C64 kernal replacement. Optional, proprietary. Requires True Drive Emulation + 1541/1571/1581 drive." + source_ref: "retrodep/ui.c:302, libretro/libretro-core.c:2853" + + - name: "vice/JiffyDOS_SX-64.bin" + system: commodore-c64 + required: false + embedded: false + note: "JiffyDOS SX-64 kernal replacement. Used instead of JiffyDOS_C64.bin when SX-64 model is selected." + source_ref: "retrodep/ui.c:295" + + - name: "vice/JiffyDOS_C128.bin" + system: commodore-c128 + required: false + embedded: false + note: "JiffyDOS C128 kernal replacement. Optional, proprietary. C128 core only." + source_ref: "retrodep/ui.c:309, libretro/libretro-core.c:2855" + + - name: "vice/JiffyDOS_1541-II.bin" + system: commodore-c64 + required: false + embedded: false + note: "JiffyDOS 1541-II drive ROM replacement. Optional, proprietary." + source_ref: "retrodep/ui.c:283" + + - name: "vice/JiffyDOS_1571_repl310654.bin" + system: commodore-c64 + required: false + embedded: false + note: "JiffyDOS 1571 drive ROM replacement. Optional, proprietary." + source_ref: "retrodep/ui.c:285" + + - name: "vice/JiffyDOS_1581.bin" + system: commodore-c64 + required: false + embedded: false + note: "JiffyDOS 1581 drive ROM replacement. Optional, proprietary." + source_ref: "retrodep/ui.c:287" + +rom_path: "system/vice/" +machine_directories: + vice_x64: "C64" + vice_x64sc: "C64" + vice_x64dtv: "C64DTV" + vice_x128: "C128" + vice_xvic: "VIC20" + vice_xplus4: "PLUS4" + vice_xpet: "PET" + vice_xcbm2: "CBM-II" + vice_xcbm5x0: "CBM-II" + vice_xscpu64: "SCPU64"