diff --git a/emulators/vice_x64.yml b/emulators/vice_x64.yml new file mode 100644 index 00000000..c345d0c7 --- /dev/null +++ b/emulators/vice_x64.yml @@ -0,0 +1,68 @@ +emulator: "VICE x64" +type: libretro +core_classification: community_fork +source: "https://github.com/libretro/vice-libretro" +upstream: "https://sourceforge.net/projects/vice-emu/" +profiled_date: "2026-03-25" +core_version: "3.10" +display_name: "Commodore - C64 (VICE x64, fast)" +cores: [vice_x64] +systems: [commodore-c64] +notes: > + System ROMs embedded in binary: C64 BASIC (901226-01), chargen (901225-01), + chargen Japanese (906143-02), kernal Rev 3 (901227-03), kernal GS (390852-01), + kernal SX-64 (251104-04), kernal 4064 (901246-01), kernal Japanese (906145-02), + plus all drive ROMs (1540, 1541, 1541-II, 1551, 1570, 1571, 1571CR, 1581, 1001, + 2031, 2040, 3040, 4040, 9000) and VIC-II palettes. Embedded ROM check in + sysfile_load takes priority over filesystem. Kernal Rev 1 (901227-01) and + Rev 2 (901227-02) are NOT embedded; selecting C64 OLD NTSC or C64 OLD PAL model + requires them on the filesystem in system/vice/C64/. JiffyDOS requires True Drive + Emulation enabled and a 1541/1571/1581 drive type. SX-64 models use a separate + JiffyDOS kernal (JiffyDOS_SX-64.bin) not declared in the .info. + +files: + - name: "JiffyDOS_C64.bin" + description: "JiffyDOS C64 kernal replacement" + required: false + source_ref: "retrodep/ui.c:302-303" + notes: "Loaded into KernalName when vice_jiffydos option is enabled (non-SX64 models)." + + - name: "JiffyDOS_SX-64.bin" + description: "JiffyDOS SX-64 kernal replacement" + required: false + source_ref: "retrodep/ui.c:295-296" + notes: "Loaded into KernalName when vice_jiffydos option is enabled and SX-64 model selected." + + - name: "JiffyDOS_1541-II.bin" + description: "JiffyDOS 1541-II drive DOS replacement" + required: false + source_ref: "retrodep/ui.c:283-284" + notes: "Loaded into DosName1541ii when vice_jiffydos option is enabled." + + - name: "JiffyDOS_1571_repl310654.bin" + description: "JiffyDOS 1571 drive DOS replacement" + required: false + source_ref: "retrodep/ui.c:285-286" + notes: "Loaded into DosName1571 when vice_jiffydos option is enabled." + + - name: "JiffyDOS_1581.bin" + description: "JiffyDOS 1581 drive DOS replacement" + required: false + source_ref: "retrodep/ui.c:287-288" + notes: "Loaded into DosName1581 when vice_jiffydos option is enabled." + + - name: "kernal-901227-01.bin" + description: "C64 Kernal Rev 1" + required: false + size: 8192 + validation: [size] + source_ref: "vice/src/c64/c64-resources.c:253, vice/src/c64/c64model.c:131" + notes: "Not embedded. Loaded via sysfile from system/vice/C64/ when C64 OLD NTSC model selected." + + - name: "kernal-901227-02.bin" + description: "C64 Kernal Rev 2" + required: false + size: 8192 + validation: [size] + source_ref: "vice/src/c64/c64-resources.c:254, vice/src/c64/c64model.c:117" + notes: "Not embedded. Loaded via sysfile from system/vice/C64/ when C64 OLD PAL model selected." diff --git a/emulators/vice_x64dtv.yml b/emulators/vice_x64dtv.yml new file mode 100644 index 00000000..311fc183 --- /dev/null +++ b/emulators/vice_x64dtv.yml @@ -0,0 +1,34 @@ +emulator: "VICE x64dtv" +type: libretro +core_classification: community_fork +source: "https://github.com/libretro/vice-libretro" +upstream: "https://sourceforge.net/projects/vice-emu/" +profiled_date: "2026-03-25" +core_version: "3.10" +display_name: "Commodore - C64DTV (VICE x64dtv)" +cores: [vice_x64dtv] +systems: [commodore-c64dtv] +notes: > + System ROMs embedded in binary: C64 BASIC (901226-01), kernal Rev 3 + (901227-03), chargen (901225-01), plus all drive ROMs (1540, 1541, 1541-II, + 1551, 1570, 1571, 1571CR, 1581, 1001, 2031, 2040, 3040, 4040, 9000). + Embedded ROM check in sysfile_load takes priority over filesystem. + DTV has its own color system (viciidtv-color.c); external palette loading + is disabled. JiffyDOS is not supported (excluded from build conditionals). + The .info declares 4 JiffyDOS firmware (firmware_count=4) but the code + never loads them for this core. The .info also omits dtvrom.bin. + +files: + - name: "dtvrom.bin" + description: "C64 DTV 2MB flash ROM image" + required: false + hle_fallback: true + size: 2097152 + source_ref: "vice/src/c64dtv/c64dtvflash.c:59-64,470-471,488-505" + notes: > + Loaded via sysfile_load from system/vice/C64DTV/. All model variants + (V2 PAL/NTSC, V3 PAL/NTSC, Hummer) default to this filename. If not + found, the core copies embedded BASIC, kernal and chargen ROMs into + flash memory. Without it, the DTV operates as a basic C64 without the + built-in DTV games and firmware. The original DTV ROM has distorted + colors; a patched ROM is recommended. diff --git a/emulators/vice_x64sc.yml b/emulators/vice_x64sc.yml new file mode 100644 index 00000000..77a69653 --- /dev/null +++ b/emulators/vice_x64sc.yml @@ -0,0 +1,69 @@ +emulator: "VICE x64sc" +type: libretro +core_classification: community_fork +source: "https://github.com/libretro/vice-libretro" +upstream: "https://sourceforge.net/projects/vice-emu/" +profiled_date: "2026-03-25" +core_version: "3.10" +display_name: "Commodore - C64 (VICE x64sc, accurate)" +cores: [vice_x64sc] +systems: [commodore-c64] +notes: > + Cycle-accurate C64 emulator using the viciisc VIC-II implementation. + System ROMs embedded in binary: C64 BASIC (901226-01), chargen (901225-01), + chargen Japanese (906143-02), kernal Rev 3 (901227-03), kernal GS (390852-01), + kernal SX-64 (251104-04), kernal 4064 (901246-01), kernal Japanese (906145-02), + plus all drive ROMs (1540, 1541, 1541-II, 1551, 1570, 1571, 1571CR, 1581, 1001, + 2031, 2040, 3040, 4040, 9000) and VIC-II palettes. Embedded ROM check in + sysfile_load takes priority over filesystem. Kernal Rev 1 (901227-01) and + Rev 2 (901227-02) are NOT embedded; selecting C64 OLD NTSC or C64 OLD PAL model + requires them on the filesystem in system/vice/C64/. JiffyDOS requires True Drive + Emulation enabled and a 1541/1571/1581 drive type. SX-64 models use a separate + JiffyDOS kernal (JiffyDOS_SX-64.bin) not declared in the .info. + +files: + - name: "JiffyDOS_C64.bin" + description: "JiffyDOS C64 kernal replacement" + required: false + source_ref: "retrodep/ui.c:302-303" + notes: "Loaded into KernalName when vice_jiffydos option is enabled (non-SX64 models)." + + - name: "JiffyDOS_SX-64.bin" + description: "JiffyDOS SX-64 kernal replacement" + required: false + source_ref: "retrodep/ui.c:295-296" + notes: "Loaded into KernalName when vice_jiffydos option is enabled and SX-64 model selected." + + - name: "JiffyDOS_1541-II.bin" + description: "JiffyDOS 1541-II drive DOS replacement" + required: false + source_ref: "retrodep/ui.c:283-284" + notes: "Loaded into DosName1541ii when vice_jiffydos option is enabled." + + - name: "JiffyDOS_1571_repl310654.bin" + description: "JiffyDOS 1571 drive DOS replacement" + required: false + source_ref: "retrodep/ui.c:285-286" + notes: "Loaded into DosName1571 when vice_jiffydos option is enabled." + + - name: "JiffyDOS_1581.bin" + description: "JiffyDOS 1581 drive DOS replacement" + required: false + source_ref: "retrodep/ui.c:287-288" + notes: "Loaded into DosName1581 when vice_jiffydos option is enabled." + + - name: "kernal-901227-01.bin" + description: "C64 Kernal Rev 1" + required: false + size: 8192 + validation: [size] + source_ref: "vice/src/c64/c64-resources.c:253, vice/src/c64/c64scmodel.c:141" + notes: "Not embedded. Loaded via sysfile from system/vice/C64/ when C64 OLD NTSC model selected." + + - name: "kernal-901227-02.bin" + description: "C64 Kernal Rev 2" + required: false + size: 8192 + validation: [size] + source_ref: "vice/src/c64/c64-resources.c:254, vice/src/c64/c64scmodel.c:123" + notes: "Not embedded. Loaded via sysfile from system/vice/C64/ when C64 OLD PAL model selected." diff --git a/emulators/vice_xcbm2.yml b/emulators/vice_xcbm2.yml new file mode 100644 index 00000000..276d7457 --- /dev/null +++ b/emulators/vice_xcbm2.yml @@ -0,0 +1,22 @@ +emulator: "VICE xcbm2" +type: libretro +core_classification: community_fork +source: "https://github.com/libretro/vice-libretro" +upstream: "https://sourceforge.net/projects/vice-emu/" +profiled_date: "2026-03-25" +core_version: "3.10" +display_name: "Commodore - CBM-II 6x0/7x0 (VICE xcbm2)" +cores: [vice_xcbm2] +systems: [commodore-cbm-ii] +notes: > + System ROMs embedded in binary: chargen 600 (901237-01), chargen 700 (901232-01), + kernal (901244-04a), BASIC 128K (901242+3-04a), BASIC 256K (901240+1-03), plus + all drive ROMs (1001, 2031, 2040, 3040, 4040, 9000) and CRTC palettes (amber, + green, white). Embedded ROM check in sysfile_load takes priority over filesystem. + Models: 610 PAL/NTSC, 620 PAL/NTSC, 620+ PAL/NTSC, 710 NTSC, 720 NTSC, + 720+ NTSC. 600 series uses CRTC with 8 scanlines/char, 700 series uses 14 + scanlines/char (different chargen ROM). CBM-II uses IEEE-488 bus (not IEC serial), + so no JiffyDOS support. Cartridge slots (Cart1-Cart6) are user content, not system + files. + +files: [] diff --git a/emulators/vice_xcbm5x0.yml b/emulators/vice_xcbm5x0.yml new file mode 100644 index 00000000..265e8c0a --- /dev/null +++ b/emulators/vice_xcbm5x0.yml @@ -0,0 +1,19 @@ +emulator: "VICE xcbm5x0" +type: libretro +core_classification: community_fork +source: "https://github.com/libretro/vice-libretro" +upstream: "https://sourceforge.net/projects/vice-emu/" +profiled_date: "2026-03-25" +core_version: "3.10" +display_name: "Commodore - CBM-II 5x0 (VICE xcbm5x0)" +cores: [vice_xcbm5x0] +systems: [commodore-cbm-ii] +notes: > + System ROMs embedded in binary: chargen 500 (901225-01), kernal 500 + (901234-02), BASIC 500 (901235+6-02), plus all drive ROMs (1001, 2031, 2040, + 3040, 4040, 9000) and VIC-II palettes. Embedded ROM check in sysfile_load + takes priority over filesystem. Models: 510 PAL/NTSC. CBM-5x0 (P500/C510) + uses VIC-II chip instead of CRTC. IEEE-488 bus (not IEC serial), no JiffyDOS + support. Cartridge slots (Cart1-Cart6) are user content, not system files. + +files: [] diff --git a/emulators/vice_xpet.yml b/emulators/vice_xpet.yml new file mode 100644 index 00000000..0a76ec3a --- /dev/null +++ b/emulators/vice_xpet.yml @@ -0,0 +1,24 @@ +emulator: "VICE xpet" +type: libretro +core_classification: community_fork +source: "https://github.com/libretro/vice-libretro" +upstream: "https://sourceforge.net/projects/vice-emu/" +profiled_date: "2026-03-25" +core_version: "3.10" +display_name: "Commodore - PET (VICE xpet)" +cores: [vice_xpet] +systems: [commodore-pet] +notes: > + System ROMs embedded in binary: kernal 1 (901439-04-07), kernal 2 (901465-03), + kernal 4 (901465-22), BASIC 1 (901439-09-05-02-06), BASIC 2 (901465-01-02), + BASIC 4 (901465-23-20-21), chargen 1 (901447-08), chargen 2 (901447-10), + SuperPET chargen (901640-01), 6 editor ROMs (1g40, 2b40, 2g40, 4b40, 4b80, 4g40), + 6 SuperPET Waterloo 6809 ROMs (a000-f000), plus all drive ROMs (1540, 1541, 1541-II, + 1551, 1570, 1571, 1571CR, 1581, 1001, 2031, 2040, 3040, 4040, 9000) and CRTC + palettes (amber, green, white). Embedded ROM check in sysfile_load takes priority + over filesystem. Models: 2001, 3008, 3016, 3032, 3032B, 4016, 4032, 4032B, 8032, + 8096, 8296, SuperPET. PET uses IEEE-488 bus (not IEC serial), so no JiffyDOS support. + No cartridge support. Extension ROM slots ($9000/$A000/$B000) and German chargen + (chargen.de) are standalone-only features not exposed via libretro core options. + +files: [] diff --git a/emulators/vice_xplus4.yml b/emulators/vice_xplus4.yml new file mode 100644 index 00000000..5f057060 --- /dev/null +++ b/emulators/vice_xplus4.yml @@ -0,0 +1,23 @@ +emulator: "VICE xplus4" +type: libretro +core_classification: community_fork +source: "https://github.com/libretro/vice-libretro" +upstream: "https://sourceforge.net/projects/vice-emu/" +profiled_date: "2026-03-25" +core_version: "3.10" +display_name: "Commodore - PLUS/4 (VICE xplus4)" +cores: [vice_xplus4] +systems: [commodore-plus4] +notes: > + All system ROMs embedded in binary: BASIC (318006-01), kernal PAL (318004-05), + kernal NTSC (318005-05), kernal V232 (318004-01), kernal V364 (364), + 3+1 function low (317053-01), 3+1 function high (317054-01), V364 speech ROM + (c2lo-364). All drive ROMs embedded (1540, 1541, 1541-II, 1551, 1570, 1571, + 1571CR, 1581, 1001, 2031, 2040, 3040, 4040, 9000). TED palettes embedded + (colodore_ted, BT601, BT709, BT2020, yape-pal, yape-ntsc). Embedded check in + sysfile_load takes priority over filesystem. Models: C16 PAL/NTSC, Plus/4 + PAL/NTSC, V364 NTSC, 232 NTSC — all use embedded kernal variants. No JiffyDOS + support (C64/C128/SCPU64 only). 3+1 function ROMs loaded for Plus/4 and V364 + models, cleared to 0xFF for C16 and 232 models. c2lo loaded only for V364 model. + +files: [] diff --git a/emulators/vice_xscpu64.yml b/emulators/vice_xscpu64.yml new file mode 100644 index 00000000..4d29c36c --- /dev/null +++ b/emulators/vice_xscpu64.yml @@ -0,0 +1,59 @@ +emulator: "VICE xscpu64" +type: libretro +core_classification: community_fork +source: "https://github.com/libretro/vice-libretro" +upstream: "https://sourceforge.net/projects/vice-emu/" +profiled_date: "2026-03-25" +core_version: "3.10" +display_name: "Commodore - C64 SuperCPU (VICE xscpu64)" +cores: [vice_xscpu64] +systems: [commodore-c64-supercpu] +notes: > + Embedded SCPU64 ROM V0.07 (free replacement by Soci/Singular, 64 KB), chargen + (901225-01, 906143-02), C64 BASIC (901226-01), all C64 kernals (Rev 3, GS, + SX-64, 4064, Japanese), all drive ROMs (1540 through 9000), and VIC-II palettes. + Embedded ROM check in sysfile_load takes priority over filesystem. External + scpu-dos-*.bin provide the original CMD SuperCPU DOS kernals, loaded from + system/vice/SCPU64/ when SuperCPU Kernal core option is changed from Internal. + JiffyDOS requires True Drive Emulation enabled and a non-internal SuperCPU + kernal (the internal ROM is not JiffyDOS-compatible). The .info incorrectly + declares JiffyDOS_C64.bin (firmware_count=4); the C64 kernal replacement is + only loaded for x64/x64sc/x128, never for xscpu64. Correct firmware_count=5 + (2 SCPU64 kernals + 3 JiffyDOS drive DOSes). + +files: + - name: "scpu-dos-2.04.bin" + description: "CMD SuperCPU Kernal v2.04" + required: false + min_size: 65536 + max_size: 524288 + validation: [size] + source_ref: "retrodep/ui.c:262-263, vice/src/scpu64/scpu64rom.c:75-89" + notes: "Loaded as SCPU64Name when SuperCPU Kernal option set to 2.04. Size must be power of 2 between 64 KB and 512 KB. Stored in system/vice/SCPU64/." + + - name: "scpu-dos-1.4.bin" + description: "CMD SuperCPU Kernal v1.4" + required: false + min_size: 65536 + max_size: 524288 + validation: [size] + source_ref: "retrodep/ui.c:265-266, vice/src/scpu64/scpu64rom.c:75-89" + notes: "Loaded as SCPU64Name when SuperCPU Kernal option set to 1.40. Size must be power of 2 between 64 KB and 512 KB. Stored in system/vice/SCPU64/." + + - name: "JiffyDOS_1541-II.bin" + description: "JiffyDOS 1541-II drive DOS replacement" + required: false + source_ref: "retrodep/ui.c:282-283" + notes: "Loaded as DosName1541ii when JiffyDOS option enabled." + + - name: "JiffyDOS_1571_repl310654.bin" + description: "JiffyDOS 1571 drive DOS replacement" + required: false + source_ref: "retrodep/ui.c:285-286" + notes: "Loaded as DosName1571 when JiffyDOS option enabled." + + - name: "JiffyDOS_1581.bin" + description: "JiffyDOS 1581 drive DOS replacement" + required: false + source_ref: "retrodep/ui.c:287-288" + notes: "Loaded as DosName1581 when JiffyDOS option enabled." diff --git a/emulators/vice_xvic.yml b/emulators/vice_xvic.yml new file mode 100644 index 00000000..8f946b2f --- /dev/null +++ b/emulators/vice_xvic.yml @@ -0,0 +1,36 @@ +emulator: "VICE xvic" +type: libretro +core_classification: community_fork +source: "https://github.com/libretro/vice-libretro" +upstream: "https://sourceforge.net/projects/vice-emu/" +profiled_date: "2026-03-25" +core_version: "3.10" +display_name: "Commodore - VIC-20 (VICE xvic)" +cores: [vice_xvic] +systems: [commodore-vic20] +notes: > + System ROMs embedded in binary: BASIC (901486-01), chargen (901460-03), + kernal PAL Rev 7 (901486-07), kernal NTSC Rev 6 (901486-06), plus all + drive ROMs (1540, 1541, 1541-II, 1551, 1570, 1571, 1571CR, 1581, 1001, + 2031, 2040, 3040, 4040, 9000) and VIC palettes. Embedded ROM check in + sysfile_load takes priority over filesystem. Japanese VIC-1001 model + requires kernal Rev 2 (901486-02) and chargen (901460-02) on the + filesystem in system/vice/VIC20/; this model is not exposed via core + options (only via vicerc). No JiffyDOS support for VIC-20. + +files: + - name: "kernal.901486-02.bin" + description: "VIC-1001 Kernal Rev 2 (Japanese NTSC)" + required: false + size: 8192 + validation: [size] + source_ref: "vice/src/vic20/vic20rom.h:49, vice/src/vic20/vic20model.c:60, vice/src/vic20/vic20rom.c:112-120" + notes: "Not embedded. Loaded via sysfile from system/vice/VIC20/ when VIC-1001 Japanese model selected via vicerc." + + - name: "chargen-901460-02.bin" + description: "VIC-1001 Character ROM (Japanese)" + required: false + size: 4096 + validation: [size] + source_ref: "vice/src/vic20/vic20rom.h:53, vice/src/vic20/vic20model.c:60, vice/src/vic20/vic20rom.c:173-179" + notes: "Not embedded. Loaded via sysfile from system/vice/VIC20/ when VIC-1001 Japanese model selected via vicerc." diff --git a/emulators/vidtest.yml b/emulators/vidtest.yml index f4190221..81193887 100644 --- a/emulators/vidtest.yml +++ b/emulators/vidtest.yml @@ -1,7 +1,8 @@ emulator: vidtest type: test -source: "https://github.com/libretro/RetroArch" -profiled_date: "2026-03-18" +core_classification: pure_libretro +source: "https://github.com/schellingb/vidtest_libretro" +profiled_date: "2026-03-25" core_version: "0.1" display_name: "VidTest" cores: @@ -9,11 +10,9 @@ cores: systems: [] notes: | - Video test core built into RetroArch (not from libretro-samples). Tests - video driver capabilities: pixel format negotiation, resolution switching, - aspect ratio handling, and frame pacing. Renders test patterns for visual - validation of the video output chain. - - No system files, BIOS, or firmware required. Not an emulator. + Video mode and input test core for libretro frontends. Provides interactive + GUI (Nuklear) to adjust resolution, aspect ratio, timing, and inspect full + input state across all device types. Renders directly to a software surface. + No system files required. files: [] diff --git a/emulators/vircon32.yml b/emulators/vircon32.yml index 8120c686..f5d52025 100644 --- a/emulators/vircon32.yml +++ b/emulators/vircon32.yml @@ -1,8 +1,10 @@ emulator: Vircon32 type: libretro +core_classification: official_port source: "https://github.com/vircon32/vircon32-libretro" -profiled_date: "2026-03-18" -core_version: "2024.08.28" +upstream: "https://github.com/vircon32/ComputerSoftware" +profiled_date: "2026-03-25" +core_version: "2026.2.18" display_name: "Vircon32" cores: - vircon32 @@ -18,7 +20,7 @@ notes: | C header (embedded/StandardBios.h), generated from Assets/StandardBios.v32 at build time. The core never strictly requires an external BIOS file. - BIOS loading logic (libretro.cpp:416-429): + BIOS loading logic (libretro.cpp:415-429): 1. Check if system_dir/Vircon32Bios.v32 exists on disk 2. If found, load it via Console.LoadBiosFile() (external override) 3. If not found, load the embedded BIOS via LoadEmbeddedBios() @@ -44,7 +46,7 @@ files: size: 1073060 md5: "73f04397cbb2dafcf2047b19a856153a" sha1: "67ddbcd018f03ed74b6e013074d92cc5f1f51c80" - source_ref: "libretro.cpp:423-426" + source_ref: "libretro.cpp:422-425" notes: | Optional external BIOS placed in the system directory root. If present, overrides the embedded Standard BIOS v1.2. diff --git a/emulators/virtualjaguar.yml b/emulators/virtualjaguar.yml index 9dacdead..97373e13 100644 --- a/emulators/virtualjaguar.yml +++ b/emulators/virtualjaguar.yml @@ -1,7 +1,9 @@ emulator: Virtual Jaguar type: libretro +core_classification: community_fork source: "https://github.com/libretro/virtualjaguar-libretro" -profiled_date: "2026-03-18" +upstream: "http://shamusworld.gotdns.org/git/virtualjaguar" +profiled_date: "2025-03-25" core_version: "v2.1.0" display_name: "Atari - Jaguar (Virtual Jaguar)" cores: diff --git a/emulators/virtualxt.yml b/emulators/virtualxt.yml index bea4967f..673f5819 100644 --- a/emulators/virtualxt.yml +++ b/emulators/virtualxt.yml @@ -1,55 +1,32 @@ emulator: VirtualXT type: libretro -source: "https://github.com/libretro/virtualxt" -profiled_date: "2026-03-18" -core_version: "0.9.0" +core_classification: pure_libretro +source: "https://codeberg.org/virtualxt/virtualxt" +upstream: "https://codeberg.org/virtualxt/virtualxt" +profiled_date: "2026-03-25" +core_version: "2.1.0" display_name: "VirtualXT" +cores: [virtualxt] systems: [ibm-pc] -# VirtualXT is a Turbo PC/XT emulator (Intel 8088/186). Written in Odin. -# All BIOS ROMs are embedded at compile time via #load() directives in -# src/frontend/core.odin. No external BIOS files are required at runtime. - -# The default machine setup (setup_default_machine) loads these embedded ROMs: -# - BIOS: GLaBIOS 0.2.6 or Turbo XT BIOS 3.1 (user selects via core option) -# - VGA BIOS: vgabios.bin (loaded when VGA video mode is selected) -# - Disk Extension: vxtx.bin (always loaded) -# - RTC BIOS: GLaTICK 0.8.4 (loaded when RTC is enabled) - -# Core option "virtualxt_bios" selects between GLaBIOS and TurboXT at startup. -# Core option "virtualxt_video" selects CGA or VGA (VGA loads vgabios.bin). -# Core option "virtualxt_rtc" selects GLaTICK or none (loads GLaTICK_0.8.4_AT.ROM). - -# INI config files (.ini extension) can reference external ROM paths, but the -# standard usage path does not require any files in the system directory. - -# Embedded BIOS files (shipped inside the compiled core binary): +# All BIOS ROMs are embedded at compile time via Odin's #load() directive. +# No external files are loaded from system_dir in standard operation. # -# GLABIOS.ROM 8192 bytes md5:bbeb6f7e2175732eebc3f0b49976347a sha1:701bb8ab0f9797581f795394a5c09eb147ff93d2 -# pcxtbios.bin 8192 bytes md5:336bf8888a22075caa09e2e8e4d96a3b sha1:f7b73e441fd7b582a493837658fa17407e851d7c -# vgabios.bin 32768 bytes md5:9c80b0a0784dcf80f84c35b1cc8db81b sha1:251d85a90d3df3d116c30568167587ee3819f623 -# vxtx.bin 2048 bytes md5:c6c7eef021e5e40503cb5ae860f02fde sha1:ccd27f24e5d7bd7d14b336be5b79b7ef8ba6e6be -# GLaTICK_0.8.4_AT.ROM 2048 bytes md5:06ead46b977ffb4a056844e2965653eb sha1:025c5d6d9391698488cebad11623ee239ce070a2 - -# Source references: -# src/frontend/core.odin:295-370 - BIOS embedding via #load("bios:...", []byte) -# src/frontend/options.odin:55 - core option "virtualxt_bios" (GLaBIOS|TurboXT) -# src/modules/rom/rom.odin:42-67 - load_from_file (INI path only) -# bios/ - open-source BIOS files (GLaBIOS, TurboXT, vgabios) +# Embedded ROMs (core.odin:323-394, edge branch): +# GLABIOS.ROM, pcxtbios.bin, vgabios.bin, vxtx.bin, GLaTICK_0.8.4_AT.ROM +# +# INI config files can reference external ROM paths via load_from_file +# (rom.odin:42-68), but this is not the standard usage path. +# +# source_ref: src/frontend/core.odin:323-394 (setup_default_machine, #load) +# source_ref: src/modules/rom/rom.odin:42-68 (load_from_file, INI only) +# source_ref: src/frontend/options.odin:55 (core option virtualxt_bios) files: [] notes: bios_approach: > - VirtualXT embeds all BIOS ROMs into the core binary at compile time using - Odin's #load() directive. The bios/ directory in the source tree contains - open-source replacements: GLaBIOS (GPL), Turbo XT BIOS 3.1, and vgabios. - No proprietary IBM PC/XT BIOS is needed. - ini_config: > - When loading an .ini file, the core can instantiate ROM modules with external - file paths (rom.odin handles string values for "mem" via load_from_file). - This is an advanced usage path; standard operation needs no external files. + All BIOS ROMs embedded at compile time via Odin #load() directive. + Open-source replacements: GLaBIOS (GPL), Turbo XT BIOS 3.1, vgabios. + No proprietary IBM PC/XT BIOS needed. supported_extensions: "img, ini, exe, com" - supported_features: > - Intel 8088/186 CPU, CGA/VGA graphics, EMS memory, ethernet adapter, - host file sharing (RIFS2), GDB server, floppy and hard disk images. diff --git a/emulators/vitaquake2.yml b/emulators/vitaquake2.yml index 265999b5..301945c1 100644 --- a/emulators/vitaquake2.yml +++ b/emulators/vitaquake2.yml @@ -1,7 +1,9 @@ emulator: vitaQuakeII type: libretro +core_classification: official_port source: "https://github.com/libretro/vitaquake2" -profiled_date: "2026-03-18" +upstream: "https://github.com/Rinnegatamante/vitaQuakeII" +profiled_date: "2026-03-25" core_version: "git" display_name: "Quake II (vitaQuake 2)" cores: [vitaquake2, vitaquake2-rogue, vitaquake2-xatrix, vitaquake2-zaero] diff --git a/emulators/vitaquake3.yml b/emulators/vitaquake3.yml index bc79c91d..6847ccdf 100644 --- a/emulators/vitaquake3.yml +++ b/emulators/vitaquake3.yml @@ -1,22 +1,21 @@ emulator: vitaQuakeIII type: game +core_classification: community_fork source: "https://github.com/libretro/vitaquake3" -profiled_date: "2026-03-18" +upstream: "https://github.com/ioquake/ioq3" +profiled_date: "2026-03-25" core_version: "git" display_name: "Quake III: Arena (vitaQuake 3)" -cores: [vitaquake3, vitavoyager] +cores: [vitaquake3] systems: [quake3] notes: > - Quake III Arena and Star Trek Voyager Elite Force source ports. Built from - ioquake3 with the libretro backend. vitaquake3 plays Quake III Arena and - Team Arena, vitavoyager plays Star Trek Voyager Elite Force (Holomatch - multiplayer). Both cores accept .pk3 extensions. Content is loaded from the - .pk3 file path - the engine resolves the parent directory structure to find - baseq3/ (or baseEF/ for vitavoyager) and loads pak0.pk3 through pak8.pk3 - sequentially. Game data files (.pk3 archives containing maps, textures, - models, shaders, sounds) come from the retail game, not engine firmware. - No files are required in the RetroArch system directory. The cores need - no BIOS or firmware. + Quake III Arena source port built from ioquake3 with the libretro backend. + Also supports Team Arena (missionpack), OpenArena (baseoa), Quake3Rally + (baseq3r), and Urban Terror (q3ut4) via path detection. Content is loaded + from the .pk3 file path - the engine resolves the parent directory structure + to find baseq3/ and loads pak0.pk3 through pak8.pk3 sequentially. Game data + files (.pk3 archives) come from the retail game. No files are required in + the RetroArch system directory. files: [] diff --git a/emulators/vitavoyager.yml b/emulators/vitavoyager.yml index 9abb7acf..c19e3c49 100644 --- a/emulators/vitavoyager.yml +++ b/emulators/vitavoyager.yml @@ -1,8 +1,20 @@ -emulator: "vitavoyager" -type: alias -alias_of: "vitaquake3" -profiled_date: "2026-03-18" +emulator: vitavoyager +type: game +core_classification: community_fork +source: "https://github.com/libretro/vitavoyager" +upstream: "https://github.com/zturtleman/lilium-voyager" +profiled_date: "2026-03-25" core_version: "git" display_name: "Star Trek: Voyager - Elite Force (vitaVoyager)" -note: "This core uses the same BIOS/firmware as vitaquake3. See emulators/vitaquake3.yml for details." +cores: [vitavoyager] +systems: [quake3] + +notes: > + Star Trek Voyager Elite Force Holomatch (multiplayer) source port built from + Lilium Voyager (itself an ioquake3 fork) with the libretro backend. Content + is loaded from the .pk3 file path - the engine resolves the parent directory + structure to find baseEF/ and loads pak0.pk3 through pak3.pk3 sequentially. + Game data files (.pk3 archives) come from the retail game. No files are + required in the RetroArch system directory. + files: [] diff --git a/emulators/wasm4.yml b/emulators/wasm4.yml index fc2a7032..245ece17 100644 --- a/emulators/wasm4.yml +++ b/emulators/wasm4.yml @@ -1,15 +1,15 @@ emulator: WASM-4 type: game +core_classification: game_engine source: "https://github.com/aduros/wasm4" -profiled_date: "2026-03-18" +upstream: "https://github.com/aduros/wasm4" +profiled_date: "2026-03-25" core_version: "2.1.0" display_name: "WASM-4" cores: [wasm4] systems: [] files: [] notes: > - WASM-4 is a low-level fantasy game console for building small games with - WebAssembly. It provides a fixed 160x160 display, 4-color palette, gamepad - input, and 1024 bytes of persistent storage. Games are standalone .wasm - cartridges. The runtime is fully self-contained with no external file - dependencies. No BIOS or system directory files required. + Fantasy game console for WebAssembly. 160x160 display, 4-color palette, + 1024 bytes persistent storage. Self-contained runtime, no external file + dependencies. Libretro backend is in the upstream repo (no separate fork). diff --git a/emulators/x1.yml b/emulators/x1.yml index 28430710..c7cb71e1 100644 --- a/emulators/x1.yml +++ b/emulators/x1.yml @@ -1,83 +1,92 @@ emulator: "X Millennium" type: libretro +core_classification: community_fork source: "https://github.com/libretro/xmil-libretro" -profiled_date: "2026-03-18" -core_version: "0.60" +upstream: "http://amethyst.yui.ne.jp/svn/x1/xmil/trunk/" +profiled_date: "2026-03-25" +core_version: "0.60a" display_name: "Sharp X1 (X Millennium)" cores: - x1 systems: - sharp-x1 -# X Millennium (XMIL) is a Sharp X1 series emulator by yui. The libretro port -# supports X1, X1 Turbo, and X1 TurboZ models via the "X1_ROMTYPE" core option -# (values: X1, TURBO, TURBOZ; default: X1 = ROM_TYPE 1). +# X Millennium (XMIL) is a Sharp X1 series emulator by yui, ported to libretro +# by r-type. Supports X1, X1 Turbo, and X1 TurboZ models via the "X1_ROMTYPE" +# core option (X1 = ROM_TYPE 1, TURBO = 2, TURBOZ = 3). +# +# SUPPORT_TURBOZ is not compiled in the libretro build (compiler.h), so TurboZ +# extended color modes are unavailable. ROM_TYPE 3 still selects IPLROM.X1T. # # All system files go under: /xmil/ -# (libretro.c:597 builds the path as "/xmil") +# retro_init() builds: retro_system_conf = "/xmil" (libretro.c:597) # -# IPL ROM loading (memio.c:88-116): -# ROM_TYPE 0: uses built-in default IPL (575 bytes, basic boot stub from defipl.res) -# ROM_TYPE 1 (X1): loads xmil/IPLROM.X1 (32 KB) -# ROM_TYPE 2 (Turbo): loads xmil/IPLROM.X1T (32 KB) -# ROM_TYPE 3 (TurboZ): loads xmil/IPLROM.X1T (32 KB, same file as Turbo) -# If the file is missing, the core falls back to the built-in default IPL. +# IPL ROM loading (memio.c:87-121): +# biosmem is initialized with defaultiplrom (575-byte boot stub from defipl.res). +# ROM_TYPE >= 1: loads external IPL ROM into biosmem, overwriting the stub. +# ROM_TYPE 1 (X1): xmil/IPLROM.X1 +# ROM_TYPE >= 2 (Turbo/TurboZ): xmil/IPLROM.X1T +# Path built explicitly: sprintf(rtmp, "%s%c%s", retro_system_conf, slash, iplfile) +# If file missing, the 575-byte stub remains (limited boot capability). # -# Font loading (font.c:90-127, fontx1.c:70-123): -# font_load() calls x1fontread() which looks for font files using fontopen(). -# fontopen() resolves paths relative to the working directory (file_getcd()), -# which in libretro context is the xmil subdirectory. -# Built-in defaults (defrom_ank, defrom_txt) are used for basic ASCII rendering. -# External font ROMs add full Japanese character support. +# Font loading (fontx1.c:69-122, font.c:89-127): +# font_load(NULL, TRUE) called from pccore_initialize() (pccore.c:67). +# Built-in defaults (defrom_ank, defrom_txt from fontdata.c) provide basic ASCII. +# x1fontread() tries to load external font files via fontopen(). +# Font path resolution uses file_getcd() which defaults to "./" in the libretro +# port (file_setcd() is never called). Upstream win9x/sdl2 calls file_setcd() +# to set the working dir. Fonts may not be found from xmil/ in practice. # -# The .info file only lists IPLROM.X1 and IPLROM.X1T as required BIOS files. -# Font ROMs are optional -- the core renders basic text without them but Japanese -# kanji display requires the external font files. +# .info declares firmware_count=2 (IPL ROMs only). Font files are not declared. +# .info firmware1_desc incorrectly says "8x8 Font ROM" (actually Turbo IPL ROM). notes: | Place all files in: /xmil/ The core selects between IPLROM.X1 and IPLROM.X1T based on the "X1_ROMTYPE" - core option. A built-in fallback IPL exists but lacks full boot functionality. - Font files are optional; without them, kanji/JIS characters won't render. + core option. A 575-byte built-in IPL stub provides limited boot without the + real ROMs. Font files add Japanese character support; the libretro port has a + path resolution quirk where fonts are searched in "./" instead of "xmil/" + (missing file_setcd call). files: - # -- IPL ROMs -- - - name: IPLROM.X1 path: xmil/IPLROM.X1 size: 32768 - md5: eeeea1cd29c6e0e8b094790ae969bfa7 - required: true - note: "X1 IPL ROM (32 KB). Loaded when ROM_TYPE=1 (X1 model). Listed in .info." - source_ref: "io/memio.c:82,96-103" + required: false + hle_fallback: true + description: "X1 IPL ROM. Loaded when ROM_TYPE=1 (X1 model)." + source_ref: "io/memio.c:82,96-108" - name: IPLROM.X1T path: xmil/IPLROM.X1T size: 32768 - md5: 851e4a5936f17d13f8c39a980cf00d77 - required: true - note: "X1 Turbo/TurboZ IPL ROM (32 KB). Loaded when ROM_TYPE=2 or 3. Listed in .info." - source_ref: "io/memio.c:83,97-99" - - # -- Font ROMs (optional, for Japanese text rendering) -- + required: false + hle_fallback: true + description: "X1 Turbo/TurboZ IPL ROM. Loaded when ROM_TYPE=2 or 3." + source_ref: "io/memio.c:83,97-108" - name: FNT0808.X1 path: xmil/FNT0808.X1 size: 2048 + validation: [size] required: false - note: "8x8 ANK font ROM (2 KB). Provides half-width ASCII/kana characters." + hle_fallback: true + description: "8x8 ANK font ROM. Built-in defrom_ank fallback provides basic ASCII." source_ref: "font/fontdata.c:6, font/fontx1.c:79-87" - name: FNT0816.X1 path: xmil/FNT0816.X1 size: 4096 + validation: [size] required: false - note: "8x16 ANK font ROM (4 KB). Provides taller half-width characters for text mode." + hle_fallback: true + description: "8x16 ANK font ROM. Built-in fallback derived from defrom_ank/defrom_txt." source_ref: "font/fontdata.c:7, font/fontx1.c:89-103" - name: FNT1616.X1 path: xmil/FNT1616.X1 size: 306176 + validation: [size] required: false - note: "16x16 Kanji font ROM (~299 KB). Full JIS kanji character set for Japanese text." + description: "16x16 Kanji font ROM. No built-in kanji data (zeroed). Required for Japanese text." source_ref: "font/fontdata.c:8, font/fontx1.c:105-120"