mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-19 15:22:35 -05:00
Compare commits
9 Commits
9a69b49eac
...
58f3006d20
| Author | SHA1 | Date | |
|---|---|---|---|
| 58f3006d20 | |||
| d929424988 | |||
| 62262db6ac | |||
| b43d71e113 | |||
| a5553def94 | |||
| 31501211de | |||
| 6a778a09a3 | |||
| ebc8e4413f | |||
| a77477cbe8 |
@@ -0,0 +1,18 @@
|
|||||||
|
emulator: "00_example"
|
||||||
|
type: test
|
||||||
|
source: "https://github.com/libretro/libretro-samples"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.0"
|
||||||
|
display_name: "Example Core"
|
||||||
|
cores:
|
||||||
|
- 00_example
|
||||||
|
systems: []
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Test/example core from libretro-samples. Minimal "hello world" libretro
|
||||||
|
implementation demonstrating the core API contract (retro_init, retro_run,
|
||||||
|
retro_load_game, etc.). Renders a simple color pattern to the framebuffer.
|
||||||
|
|
||||||
|
No system files, BIOS, or firmware required. Not an emulator.
|
||||||
|
|
||||||
|
files: []
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
emulator: "2048"
|
||||||
|
type: game
|
||||||
|
source: "https://github.com/libretro/libretro-2048"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.0"
|
||||||
|
display_name: "2048"
|
||||||
|
cores: [2048]
|
||||||
|
systems: []
|
||||||
|
files: []
|
||||||
|
notes: >
|
||||||
|
Libretro port of the 2048 sliding puzzle game by Gabriele Cirulli.
|
||||||
|
Self-contained core with all assets compiled into the binary.
|
||||||
|
No content file, BIOS, or system directory files required.
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
emulator: 3DEngine
|
||||||
|
type: utility
|
||||||
|
source: "https://github.com/libretro/libretro-3dengine"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v1"
|
||||||
|
display_name: "Test Core - 3D Engine"
|
||||||
|
cores: [3dengine]
|
||||||
|
systems: []
|
||||||
|
files: []
|
||||||
|
notes: >
|
||||||
|
Tech demo rendering a 3D scene using software rasterization.
|
||||||
|
Demonstrates libretro hardware-accelerated rendering capabilities.
|
||||||
|
Self-contained core with all geometry and textures built in.
|
||||||
|
No content file, BIOS, or system directory files required.
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
emulator: EightyOne
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/81-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.0a"
|
||||||
|
display_name: "Sinclair - ZX 81 (EightyOne)"
|
||||||
|
cores:
|
||||||
|
- 81
|
||||||
|
systems:
|
||||||
|
- sinclair-zx81
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
EightyOne is a Sinclair ZX81 emulator ported to libretro. Also supports
|
||||||
|
ZX80, Jupiter ACE, TS1500, Lambda, R470, TK85, and ZX97LE machines, but
|
||||||
|
the libretro port hardcodes MACHINEZX81 in retro_load_game (libretro.cpp:393).
|
||||||
|
|
||||||
|
ROM loading is in snap.c:487-512. The memory_load() function matches the
|
||||||
|
requested ROM filename against a compiled-in table and copies from embedded
|
||||||
|
byte arrays generated by xxd -i at build time (Makefile.libretro:519-522).
|
||||||
|
Only two ROMs are embedded: zx81.rom (the ZX81 8K BASIC ROM) and dkchr.rom
|
||||||
|
(dK'tronics character ROM). Any other ROM name logs an error and returns 0.
|
||||||
|
|
||||||
|
The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, never opens
|
||||||
|
files from the filesystem for ROM data, and need_fullpath is set to false
|
||||||
|
(libretro.cpp:308). All ROM data is baked into the compiled .so/.dll.
|
||||||
|
|
||||||
|
No external BIOS or firmware files are needed.
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
analysis:
|
||||||
|
embedded_roms:
|
||||||
|
zx81_rom:
|
||||||
|
variable: bin_ROM_zx81_rom
|
||||||
|
source_file: "bin/ROM/zx81.rom"
|
||||||
|
build_step: "xxd -i -> C array"
|
||||||
|
source_ref: "snap.c:489-498"
|
||||||
|
dkchr_rom:
|
||||||
|
variable: bin_ROM_dkchr_rom
|
||||||
|
source_file: "bin/ROM/dkchr.rom"
|
||||||
|
build_step: "xxd -i -> C array"
|
||||||
|
source_ref: "snap.c:499-508"
|
||||||
|
machine_roms:
|
||||||
|
notes: |
|
||||||
|
eo.c sets CurRom based on machine type. The libretro port forces
|
||||||
|
MACHINEZX81 (eo.c:39-41), so CurRom is always zx81.ROM81 which
|
||||||
|
defaults to "zx81.rom". Other machine ROMs (zx80, ace, ts1500,
|
||||||
|
lambda, zx97le, ringo470, tk85) are referenced but only zx81.rom
|
||||||
|
and dkchr.rom are embedded. Selecting other machines would log
|
||||||
|
"ROM not found" and load nothing.
|
||||||
|
filesystem_access: false
|
||||||
|
system_directory_used: false
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: a5200
|
emulator: a5200
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/a5200"
|
source: "https://github.com/libretro/a5200"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "2.0.2"
|
||||||
|
display_name: "Atari - 5200 (a5200)"
|
||||||
cores:
|
cores:
|
||||||
- a5200
|
- a5200
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
emulator: advanced_tests
|
||||||
|
type: test
|
||||||
|
source: "https://github.com/libretro/libretro-samples"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v1"
|
||||||
|
display_name: "Test Core - Advanced Test"
|
||||||
|
cores:
|
||||||
|
- advanced_tests
|
||||||
|
systems: []
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Advanced test core from libretro-samples. Exercises extended libretro API
|
||||||
|
features: subsystems, memory descriptors, serialization, multi-disk control,
|
||||||
|
and other optional environment callbacks. Used by frontend developers to
|
||||||
|
validate their implementations.
|
||||||
|
|
||||||
|
No system files, BIOS, or firmware required. Not an emulator.
|
||||||
|
|
||||||
|
files: []
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
emulator: amiarcadia
|
||||||
|
type: libretro
|
||||||
|
source: "https://amigan.yatho.com/"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "4.42"
|
||||||
|
display_name: "Arcadia 2001 / Interton VC 4000 (AmiArcadia)"
|
||||||
|
cores:
|
||||||
|
- amiarcadia
|
||||||
|
systems:
|
||||||
|
- emerson-arcadia-2001
|
||||||
|
- interton-vc4000
|
||||||
|
- elektor-tv-games-computer
|
||||||
|
|
||||||
|
# AmiArcadia is a libretro port of James Jacobs' emulator for Signetics
|
||||||
|
# 2636 PVI / 2637 UVI + 2650 CPU-based systems: Emerson Arcadia 2001 and
|
||||||
|
# clones (Bandai, Grandstand, Schmid, Hanimex, Leisurevision, etc.),
|
||||||
|
# Interton VC 4000 family (Voltmace, Rowtron, Fountain, etc.), Elektor
|
||||||
|
# TV Games Computer, and Zaccaria/Malzak coin-op arcade machines.
|
||||||
|
#
|
||||||
|
# The core does NOT require any BIOS or system ROM files.
|
||||||
|
# firmware_count = 0 in amiarcadia_libretro.info confirms this.
|
||||||
|
#
|
||||||
|
# ROM identification:
|
||||||
|
# The core auto-identifies known game ROMs by CRC32 and configures the
|
||||||
|
# correct machine type, memory map, and game-specific settings. For
|
||||||
|
# unknown ROMs, the user selects machine type via the "Machine" core
|
||||||
|
# option (Arcadia / Interton).
|
||||||
|
#
|
||||||
|
# Supported extensions: .bin, .tvc
|
||||||
|
#
|
||||||
|
# Source ref: libretro-core-info/amiarcadia_libretro.info (firmware_count = 0)
|
||||||
|
# Docs: https://docs.libretro.com/library/amiarcadia/
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
No BIOS files required. The emulator has no external firmware dependencies.
|
||||||
|
Game ROMs are identified by CRC32 for automatic machine configuration.
|
||||||
|
|
||||||
|
bios_files: []
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
emulator: Anarch
|
||||||
|
type: game
|
||||||
|
source: "https://github.com/libretro/anern"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.1d"
|
||||||
|
display_name: "Anarch"
|
||||||
|
cores: [anarch]
|
||||||
|
systems: []
|
||||||
|
files: []
|
||||||
|
notes: >
|
||||||
|
Libretro port of Anarch, a public domain suckless FPS game by Miloslav Ciz.
|
||||||
|
Entirely self-contained with all levels, textures, and sounds compiled
|
||||||
|
into the binary using procedural generation and hardcoded data tables.
|
||||||
|
No content file, BIOS, or system directory files required.
|
||||||
@@ -0,0 +1,223 @@
|
|||||||
|
emulator: AppleWin
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/audetto/AppleWin"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.30.21.0"
|
||||||
|
display_name: "Apple II (AppleWin)"
|
||||||
|
cores:
|
||||||
|
- applewin
|
||||||
|
systems:
|
||||||
|
- apple-ii
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
AppleWin is an Apple II/IIe/II+ emulator. The libretro port embeds all
|
||||||
|
ROM images directly into the compiled binary via a CMake resource system
|
||||||
|
(resource/CMakeLists.txt -> apple2roms static library -> apple2roms_data.h).
|
||||||
|
The GNUFrame::GetResourceData() function serves ROMs from this compiled-in
|
||||||
|
map. No external BIOS/firmware files are needed.
|
||||||
|
|
||||||
|
The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY and the official
|
||||||
|
applewin_libretro.info has zero firmware entries.
|
||||||
|
|
||||||
|
Supported machine types (via core option applewin_machine):
|
||||||
|
Enhanced Apple //e, Apple ][ (Original), Apple ][+, Apple ][ J-Plus,
|
||||||
|
Apple //e, Pravets 82, Pravets 8M, Pravets 8A, Base64A, TK3000 //e
|
||||||
|
|
||||||
|
Supported extensions: bin, do, dsk, nib, po, gz, woz, zip, 2mg, 2img,
|
||||||
|
iie, apl, hdv, yaml, m3u
|
||||||
|
|
||||||
|
supports_no_game: true (can boot without content)
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
analysis:
|
||||||
|
embedded_roms:
|
||||||
|
build_system: "CMake add_resources() in resource/CMakeLists.txt"
|
||||||
|
storage: "apple2roms static library linked into core binary"
|
||||||
|
accessor: "GNUFrame::GetResourceData() -> apple2roms::data map"
|
||||||
|
source_ref: "source/frontends/common2/gnuframe.cpp:83"
|
||||||
|
|
||||||
|
system_roms:
|
||||||
|
- id: IDR_APPLE2_ROM
|
||||||
|
filename: Apple2.rom
|
||||||
|
size: 12288
|
||||||
|
md5: 3c406514b9806a7c57ee65fb0b0c39b4
|
||||||
|
sha1: 09288be705464b608ff190519ab008d3dfcd1b05
|
||||||
|
note: "Apple ][ original ROM (12 KB)"
|
||||||
|
|
||||||
|
- id: IDR_APPLE2_PLUS_ROM
|
||||||
|
filename: Apple2_Plus.rom
|
||||||
|
size: 12288
|
||||||
|
md5: 572b3005a4fa49bc54917b069b82c1ab
|
||||||
|
sha1: 33a24f5489ba9195b44be77d9afb2252594cb5c7
|
||||||
|
note: "Apple ][+ ROM (12 KB)"
|
||||||
|
|
||||||
|
- id: IDR_APPLE2_JPLUS_ROM
|
||||||
|
filename: Apple2_JPlus.rom
|
||||||
|
size: 12288
|
||||||
|
md5: f3e8237eca3809bec2a42b984a1332a8
|
||||||
|
sha1: ad200b3263d08e7235d0871c8595963a07adc905
|
||||||
|
note: "Apple ][ J-Plus ROM (12 KB)"
|
||||||
|
|
||||||
|
- id: IDR_APPLE2E_ROM
|
||||||
|
filename: Apple2e.rom
|
||||||
|
size: 16384
|
||||||
|
md5: 346bc782c6a08a531c460e33bc03daf4
|
||||||
|
sha1: 61fa9254628e5bb7236fb474006116d67684d747
|
||||||
|
note: "Apple //e ROM (16 KB)"
|
||||||
|
|
||||||
|
- id: IDR_APPLE2E_ENHANCED_ROM
|
||||||
|
filename: Apple2e_Enhanced.rom
|
||||||
|
size: 16384
|
||||||
|
md5: 38063e08c778503fc03ecebb979769e9
|
||||||
|
sha1: b8ea90abe135a0031065e01697c4a3a20d51198b
|
||||||
|
note: "Enhanced Apple //e ROM (16 KB, default machine type)"
|
||||||
|
|
||||||
|
- id: IDR_PRAVETS_82_ROM
|
||||||
|
filename: PRAVETS82.ROM
|
||||||
|
size: 12288
|
||||||
|
md5: c619b7edfcf021f3b8fd20d9386676ba
|
||||||
|
sha1: 8bd7ced83e209a15e9b19a05a5ef4b8e996dc1a5
|
||||||
|
note: "Pravets 82 ROM (12 KB)"
|
||||||
|
|
||||||
|
- id: IDR_PRAVETS_8M_ROM
|
||||||
|
filename: PRAVETS8M.ROM
|
||||||
|
size: 12288
|
||||||
|
md5: 76c79535f7cf77973e2c711aa977a124
|
||||||
|
sha1: f1b4ff018acf95f3355f0d575b66a188d728b687
|
||||||
|
note: "Pravets 8M ROM (12 KB)"
|
||||||
|
|
||||||
|
- id: IDR_PRAVETS_8C_ROM
|
||||||
|
filename: PRAVETS8C.ROM
|
||||||
|
size: 16384
|
||||||
|
md5: 1896d7b98dd940c89f7c8ea899b71006
|
||||||
|
sha1: c976fe56e57706c161f513a82ba3e0d8cda83904
|
||||||
|
note: "Pravets 8A/8C ROM (16 KB)"
|
||||||
|
|
||||||
|
- id: IDR_TK3000_2E_ROM
|
||||||
|
filename: TK3000e.rom
|
||||||
|
size: 16384
|
||||||
|
md5: 8d84b614b545d4eec8799d3f325332cb
|
||||||
|
sha1: f163e5753c18ff0e812a448e8da406f102600edf
|
||||||
|
note: "TK3000 //e ROM (16 KB)"
|
||||||
|
|
||||||
|
- id: IDR_BASE_64A_ROM
|
||||||
|
filename: Base64A.rom
|
||||||
|
size: 49152
|
||||||
|
md5: 352fdbcae14c6a8c0398822c7a273309
|
||||||
|
sha1: f1c779af480b5bda2bdd03950c1201a5c5143bea
|
||||||
|
note: "Base64A ROM (48 KB)"
|
||||||
|
|
||||||
|
- id: IDR_FREEZES_F8_ROM
|
||||||
|
filename: Freezes_Non-autostart_F8_Rom.rom
|
||||||
|
size: 2048
|
||||||
|
md5: d0a61e95ed1e1dc37c8e4801326aa79e
|
||||||
|
sha1: 3180be6b555ee9ef1f59c4fc3f25c5aab8c39c81
|
||||||
|
note: "Freezes non-autostart F8 ROM (2 KB)"
|
||||||
|
|
||||||
|
video_roms:
|
||||||
|
- id: IDR_APPLE2_VIDEO_ROM
|
||||||
|
filename: Apple2_Video.rom
|
||||||
|
size: 2048
|
||||||
|
md5: 9ac0dc8c4d0002eb45b0b84be0bde5ec
|
||||||
|
sha1: f9d312f128c9557d9d6ac03bfad6c3ddf83e5659
|
||||||
|
note: "Apple II character generator ROM (2 KB)"
|
||||||
|
|
||||||
|
- id: IDR_APPLE2_JPLUS_VIDEO_ROM
|
||||||
|
filename: Apple2_JPlus_Video.rom
|
||||||
|
size: 2048
|
||||||
|
md5: 271e2c9bf928b95e7baeff391db45495
|
||||||
|
sha1: 0a382be58db5215c4a3de53b19a72fab660d5da2
|
||||||
|
note: "Apple ][ J-Plus character generator ROM (2 KB)"
|
||||||
|
|
||||||
|
- id: IDR_APPLE2E_ENHANCED_VIDEO_ROM
|
||||||
|
filename: Apple2e_Enhanced_Video.rom
|
||||||
|
size: 4096
|
||||||
|
md5: 9123fff3442c0e688cc6816be88dd4ab
|
||||||
|
sha1: b2b5d87f52693817fc747df087a4aa1ddcdb1f10
|
||||||
|
note: "Enhanced Apple //e character generator ROM (4 KB)"
|
||||||
|
|
||||||
|
- id: IDR_BASE64A_VIDEO_ROM
|
||||||
|
filename: Base64A_German_Video.rom
|
||||||
|
size: 4096
|
||||||
|
md5: 4b45852b369e2afd864a02d0d91f70dc
|
||||||
|
sha1: 87ca8135f7526ddf829f9c2c4f7dbe4d568818fc
|
||||||
|
note: "Base64A German character generator ROM (4 KB)"
|
||||||
|
|
||||||
|
peripheral_firmware:
|
||||||
|
- id: IDR_DISK2_13SECTOR_FW
|
||||||
|
filename: DISK2-13sector.rom
|
||||||
|
size: 256
|
||||||
|
md5: 4f80448507cf43ab40c17ac08d89e278
|
||||||
|
sha1: afd060e6f35faf3bb0146fa889fc787adf56330a
|
||||||
|
note: "Disk II 13-sector controller ROM (256 B)"
|
||||||
|
|
||||||
|
- id: IDR_DISK2_16SECTOR_FW
|
||||||
|
filename: DISK2.rom
|
||||||
|
size: 256
|
||||||
|
md5: 2020aa1413ff77fe29353f3ee72dc295
|
||||||
|
sha1: d4181c9f046aafc3fb326b381baac809d9e38d16
|
||||||
|
note: "Disk II 16-sector controller ROM (256 B)"
|
||||||
|
|
||||||
|
- id: IDR_SSC_FW
|
||||||
|
filename: SSC.rom
|
||||||
|
size: 2048
|
||||||
|
md5: 67c0d61ab0911183faf05270f881a97e
|
||||||
|
sha1: 6dab633470c6bc4cb3e81d09fda46597caf8ee57
|
||||||
|
note: "Super Serial Card firmware (2 KB)"
|
||||||
|
|
||||||
|
- id: IDR_HDDRVR_FW
|
||||||
|
filename: Hddrvr.bin
|
||||||
|
size: 256
|
||||||
|
md5: e0a40e9166af27b16f60beb83c9233f0
|
||||||
|
sha1: 69667800c54da1d4466e7b2168c0e418a4cf586c
|
||||||
|
note: "Hard disk controller firmware v1 (256 B)"
|
||||||
|
|
||||||
|
- id: IDR_HDDRVR_V2_FW
|
||||||
|
filename: Hddrvr-v2.bin
|
||||||
|
size: 256
|
||||||
|
md5: a49e45e7a6d4de23e0845a59c7e31e0c
|
||||||
|
sha1: 06115eebb4d58221b5c062a42bf3e41e137447ed
|
||||||
|
note: "Hard disk controller firmware v2 (256 B)"
|
||||||
|
|
||||||
|
- id: IDR_HDC_SMARTPORT_FW
|
||||||
|
filename: HDC-SmartPort.bin
|
||||||
|
size: 256
|
||||||
|
md5: 2592efa1d34ade55d490a1b39911c9b2
|
||||||
|
sha1: fd557998fd5823ad69a42ad1282e4fe47db02dca
|
||||||
|
note: "SmartPort hard disk controller firmware (256 B)"
|
||||||
|
|
||||||
|
- id: IDR_PRINTDRVR_FW
|
||||||
|
filename: Parallel.rom
|
||||||
|
size: 256
|
||||||
|
md5: 5902996f16dc78fc013f6e1db14805b3
|
||||||
|
sha1: c75c751589cbcc1ad4ab4f63676af7abadd86f5b
|
||||||
|
note: "Parallel printer card firmware (256 B)"
|
||||||
|
|
||||||
|
- id: IDR_MOCKINGBOARD_D_FW
|
||||||
|
filename: Mockingboard-D.rom
|
||||||
|
size: 2048
|
||||||
|
md5: ab53170c5ec66b63e6356f637f4388ed
|
||||||
|
sha1: e8d20f4b59fe867ff76434d35a14d2cbdc8533e3
|
||||||
|
note: "Mockingboard-D sound card firmware (2 KB)"
|
||||||
|
|
||||||
|
- id: IDR_MOUSEINTERFACE_FW
|
||||||
|
filename: MouseInterface.rom
|
||||||
|
size: 2048
|
||||||
|
md5: 22563ab338024dac7b03510371d49c57
|
||||||
|
sha1: 3a9d881a8a8d30f55b9719aceebbcf717f829d6f
|
||||||
|
note: "Mouse interface card firmware (2 KB)"
|
||||||
|
|
||||||
|
- id: IDR_THUNDERCLOCKPLUS_FW
|
||||||
|
filename: ThunderClockPlus.rom
|
||||||
|
size: 2048
|
||||||
|
md5: 138b1f7e30953fcaa58fcbf562c15001
|
||||||
|
sha1: 60f434f5325899d7ea257a6e56e6f53eae65146a
|
||||||
|
note: "ThunderClock Plus firmware (2 KB)"
|
||||||
|
|
||||||
|
- id: IDR_TKCLOCK_FW
|
||||||
|
filename: TKClock.rom
|
||||||
|
size: 2304
|
||||||
|
md5: 7076083b9d748b7637b020636543971b
|
||||||
|
sha1: 3740516cc9050465f8b884dbeb0ecdd2c1354620
|
||||||
|
note: "TK Clock firmware (2.25 KB)"
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
emulator: Ardens
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/tiberiusbrown/ardens"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "Git"
|
||||||
|
display_name: "Arduboy (Ardens)"
|
||||||
|
cores:
|
||||||
|
- ardens
|
||||||
|
systems:
|
||||||
|
- arduboy
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Ardens is an Arduboy FX simulator designed for profiling and debugging,
|
||||||
|
ported to libretro. It emulates the ATmega32U4 MCU, SSD1306 OLED display,
|
||||||
|
and W25Q128 external flash used by the Arduboy hardware.
|
||||||
|
|
||||||
|
No BIOS or bootloader files are required. The core has all boot code
|
||||||
|
compiled directly into the binary:
|
||||||
|
|
||||||
|
- Caterina/Arduboy3K bootloaders for multiple hardware revisions (D1, D2,
|
||||||
|
E2) are embedded as C arrays generated from .hex files via bin2c.py.
|
||||||
|
Located in src/boot/boot_game_*.c and src/boot/boot_menu_*.c.
|
||||||
|
The appropriate variant is selected at reset based on the configured
|
||||||
|
device type (absim_arduboy.cpp:115-161).
|
||||||
|
|
||||||
|
- Flashcart header (1536 bytes) is embedded in src/boot/boot_flashcart.c
|
||||||
|
and written to the start of the W25Q128 flash image at init
|
||||||
|
(absim_w25q128.hpp:14).
|
||||||
|
|
||||||
|
- EEPROM (1024 bytes) and external flash (W25Q128, 16 MB) state are
|
||||||
|
handled as save RAM through the libretro RETRO_MEMORY_SAVE_RAM
|
||||||
|
interface, not as system files.
|
||||||
|
|
||||||
|
The libretro port does not call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
|
||||||
|
and never attempts to load any file from the system directory.
|
||||||
|
The .info file declares firmware_count = 0.
|
||||||
|
|
||||||
|
Supported ROM formats: Intel HEX (.hex) and Arduboy package (.arduboy).
|
||||||
|
block_extract is set to true (the core reads archives directly).
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
platform_details:
|
||||||
|
embedded_bootloaders:
|
||||||
|
source_ref: "src/boot/_make.bat, src/absim_arduboy.cpp:115-161"
|
||||||
|
variants:
|
||||||
|
- name: "arduboy3k-bootloader-game-sda"
|
||||||
|
array: "ARDENS_BOOT_GAME_D1"
|
||||||
|
size: 8422
|
||||||
|
device: "Arduboy FX (SDA)"
|
||||||
|
- name: "arduboy3k-bootloader-menu-sda"
|
||||||
|
array: "ARDENS_BOOT_MENU_D1"
|
||||||
|
size: 8422
|
||||||
|
device: "Arduboy FX (SDA)"
|
||||||
|
- name: "arduboy3k-bootloader-game-devkit"
|
||||||
|
array: "ARDENS_BOOT_GAME_D2"
|
||||||
|
size: 8446
|
||||||
|
device: "Arduboy FX DevKit"
|
||||||
|
- name: "arduboy3k-bootloader-menu-devkit"
|
||||||
|
array: "ARDENS_BOOT_MENU_D2"
|
||||||
|
size: 8446
|
||||||
|
device: "Arduboy FX DevKit"
|
||||||
|
- name: "arduboymini-bootloader-game"
|
||||||
|
array: "ARDENS_BOOT_GAME_E2"
|
||||||
|
size: 8548
|
||||||
|
device: "Arduboy Mini"
|
||||||
|
- name: "arduboymini-bootloader-menu"
|
||||||
|
array: "ARDENS_BOOT_MENU_E2"
|
||||||
|
size: 8548
|
||||||
|
device: "Arduboy Mini"
|
||||||
|
notes: |
|
||||||
|
All bootloaders are compiled from Intel HEX into C arrays at build
|
||||||
|
time. The core selects the game or menu variant at reset depending
|
||||||
|
on whether a flashcart image was loaded and the boot_to_menu config
|
||||||
|
flag (absim_arduboy.cpp:142-158). The bootloader is written to the
|
||||||
|
top of the ATmega32U4 program memory at the address defined by the
|
||||||
|
BOOTSZ fuse bits (absim.hpp:811).
|
||||||
|
|
||||||
|
embedded_flashcart_header:
|
||||||
|
source_ref: "src/boot/boot_flashcart.c, src/absim_w25q128.hpp:14"
|
||||||
|
array: "ARDENS_BOOT_FLASHCART"
|
||||||
|
size: 1536
|
||||||
|
notes: |
|
||||||
|
Empty flashcart header written to the first 1536 bytes of the
|
||||||
|
W25Q128 flash image during initialization. This is not a BIOS
|
||||||
|
file -- it is the default flash content the Arduboy FX expects
|
||||||
|
at the start of external storage.
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
emulator: Arduous
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/arduous"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "0.1.0"
|
||||||
|
display_name: "Arduboy (Arduous)"
|
||||||
|
cores:
|
||||||
|
- arduous
|
||||||
|
systems:
|
||||||
|
- arduboy
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Arduous is an Arduboy emulator built on simavr (ATmega32U4 AVR simulator)
|
||||||
|
with SSD1306 OLED display emulation, ported to libretro. It is distinct
|
||||||
|
from the Ardens core, which is a separate Arduboy emulator.
|
||||||
|
|
||||||
|
No BIOS, bootloader, or system files are required. The core operates as a
|
||||||
|
pure AVR simulator:
|
||||||
|
|
||||||
|
- The game content (.hex Intel HEX format) is parsed at load time via an
|
||||||
|
in-tree ihex reader (arduous.cpp:60-166) and written directly into the
|
||||||
|
simavr flash memory at the address specified in the hex file
|
||||||
|
(arduous.cpp:189). No separate bootloader is loaded.
|
||||||
|
|
||||||
|
- The MCU is hardcoded to atmega32u4 at 16 MHz (arduous.h:70-71).
|
||||||
|
simavr handles CPU initialization internally via avr_make_mcu_by_name().
|
||||||
|
|
||||||
|
- A commented-out loadFirmware() function (arduous.cpp:22-29) suggests
|
||||||
|
ELF firmware loading was considered but never implemented.
|
||||||
|
|
||||||
|
- EEPROM (1024 bytes), system RAM, and VRAM are exposed via the libretro
|
||||||
|
memory interface (RETRO_MEMORY_SAVE_RAM, RETRO_MEMORY_SYSTEM_RAM,
|
||||||
|
RETRO_MEMORY_VIDEO_RAM) but are not loaded from external files.
|
||||||
|
|
||||||
|
- The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. The
|
||||||
|
retro_load_game() function only reads the content data buffer passed
|
||||||
|
by the frontend (libretro.cpp:108-110).
|
||||||
|
|
||||||
|
- RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME is set to false (libretro.cpp:123),
|
||||||
|
meaning a game ROM is always required.
|
||||||
|
|
||||||
|
Supported ROM format: Intel HEX (.hex) only. The valid_extensions field
|
||||||
|
lists "hex". A TODO comment mentions .arduboy ZIP support but it is not
|
||||||
|
implemented.
|
||||||
|
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Atari800
|
emulator: Atari800
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/libretro-atari800"
|
source: "https://github.com/libretro/libretro-atari800"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "3.1.0"
|
||||||
|
display_name: "Atari - 400/800/600XL/800XL/130XE/5200 (Atari800)"
|
||||||
systems: [atari-400, atari-800, atari-800xl, atari-130xe, atari-5200, atari-xegs]
|
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.
|
# Atari800 emulates the Atari 8-bit family (400/800/XL/XE) and the 5200 console.
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "azahar"
|
||||||
|
type: alias
|
||||||
|
alias_of: "citra"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "Git"
|
||||||
|
display_name: "Nintendo - 3DS (Azahar)"
|
||||||
|
note: "This core uses the same BIOS/firmware as citra. See emulators/citra.yml for details."
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: b2
|
emulator: b2
|
||||||
type: standalone
|
type: standalone
|
||||||
source: "https://github.com/tom-seddon/b2"
|
source: "https://github.com/tom-seddon/b2"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.1"
|
||||||
|
display_name: "Acorn - BBC Micro (b2)"
|
||||||
cores: []
|
cores: []
|
||||||
systems:
|
systems:
|
||||||
- bbc-micro-b
|
- bbc-micro-b
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Beetle Lynx (Mednafen Lynx)
|
emulator: Beetle Lynx (Mednafen Lynx)
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/beetle-lynx-libretro"
|
source: "https://github.com/libretro/beetle-lynx-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v1.24.0"
|
||||||
|
display_name: "Atari - Lynx (Beetle Lynx)"
|
||||||
cores: [mednafen_lynx]
|
cores: [mednafen_lynx]
|
||||||
systems: [atari-lynx]
|
systems: [atari-lynx]
|
||||||
verification: existence
|
verification: existence
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Beetle NGP (Mednafen Neo Geo Pocket)
|
emulator: Beetle NGP (Mednafen Neo Geo Pocket)
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/beetle-ngp-libretro"
|
source: "https://github.com/libretro/beetle-ngp-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.9.36.1"
|
||||||
|
display_name: "SNK - Neo Geo Pocket / Color (Beetle NeoPop)"
|
||||||
systems: [snk-ngp, snk-ngpc]
|
systems: [snk-ngp, snk-ngpc]
|
||||||
|
|
||||||
notes: |
|
notes: |
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Beetle PCE (Mednafen PCE)
|
emulator: Beetle PCE (Mednafen PCE)
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/beetle-pce-libretro"
|
source: "https://github.com/libretro/beetle-pce-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.9.38.7"
|
||||||
|
display_name: "NEC - PC Engine / SuperGrafx / CD (Beetle PCE)"
|
||||||
cores: [mednafen_pce, mednafen_pce_fast, mednafen_supergrafx]
|
cores: [mednafen_pce, mednafen_pce_fast, mednafen_supergrafx]
|
||||||
systems: [nec-pc-engine]
|
systems: [nec-pc-engine]
|
||||||
verification: existence
|
verification: existence
|
||||||
|
|||||||
@@ -2,6 +2,9 @@ emulator: Beetle PC-FX (Mednafen)
|
|||||||
type: libretro
|
type: libretro
|
||||||
cores: [mednafen_pcfx]
|
cores: [mednafen_pcfx]
|
||||||
source: "https://github.com/libretro/beetle-pcfx-libretro"
|
source: "https://github.com/libretro/beetle-pcfx-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.9.33.3"
|
||||||
|
display_name: "NEC - PC-FX (Beetle PC-FX)"
|
||||||
systems:
|
systems:
|
||||||
- nec-pcfx
|
- nec-pcfx
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Beetle PSX (Mednafen PSX)
|
emulator: Beetle PSX (Mednafen PSX)
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/beetle-psx-libretro"
|
source: "https://github.com/libretro/beetle-psx-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.9.44.1"
|
||||||
|
display_name: "Sony - PlayStation (Beetle PSX)"
|
||||||
cores: [mednafen_psx, mednafen_psx_hw]
|
cores: [mednafen_psx, mednafen_psx_hw]
|
||||||
systems: [sony-playstation]
|
systems: [sony-playstation]
|
||||||
bios_size: 524288 # 512 KB for all accepted BIOS images
|
bios_size: 524288 # 512 KB for all accepted BIOS images
|
||||||
|
|||||||
@@ -2,6 +2,9 @@ emulator: Beetle Saturn (Mednafen)
|
|||||||
type: libretro
|
type: libretro
|
||||||
core: mednafen_saturn_libretro
|
core: mednafen_saturn_libretro
|
||||||
source: "https://github.com/libretro/beetle-saturn-libretro"
|
source: "https://github.com/libretro/beetle-saturn-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.9.45.1"
|
||||||
|
display_name: "Sega - Saturn (Beetle Saturn)"
|
||||||
systems:
|
systems:
|
||||||
- sega-saturn
|
- sega-saturn
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Beetle VB (Mednafen Virtual Boy)
|
emulator: Beetle VB (Mednafen Virtual Boy)
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/beetle-vb-libretro"
|
source: "https://github.com/libretro/beetle-vb-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.9.36.1"
|
||||||
|
display_name: "Nintendo - Virtual Boy (Beetle VB)"
|
||||||
systems: [nintendo-virtualboy]
|
systems: [nintendo-virtualboy]
|
||||||
|
|
||||||
notes: |
|
notes: |
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Beetle WonderSwan (Mednafen WonderSwan)
|
emulator: Beetle WonderSwan (Mednafen WonderSwan)
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/beetle-wswan-libretro"
|
source: "https://github.com/libretro/beetle-wswan-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.9.35.1"
|
||||||
|
display_name: "Bandai - WonderSwan/Color (Beetle Wonderswan)"
|
||||||
systems: [bandai-wswan, bandai-wswanc]
|
systems: [bandai-wswan, bandai-wswanc]
|
||||||
|
|
||||||
notes: |
|
notes: |
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
emulator: BennuGD
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/diekleinekuh/BennuGD_libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "git"
|
||||||
|
display_name: "Bennu Game Development"
|
||||||
|
cores:
|
||||||
|
- bennugd
|
||||||
|
systems:
|
||||||
|
- bennugd
|
||||||
|
|
||||||
|
# BennuGD is an open-source interpreter for BennuGD (.dcb/.dat) game files,
|
||||||
|
# running as a libretro core. It is a successor to DIV Games Studio / Fenix.
|
||||||
|
# Notable game: Streets of Rage Remake.
|
||||||
|
#
|
||||||
|
# The official libretro .info file (bennugd_libretro.info) declares zero
|
||||||
|
# firmware entries. The core loads content directly via bgdi_main() and does
|
||||||
|
# not reference any files from the system directory.
|
||||||
|
#
|
||||||
|
# retro_load_game() in libretro.c:888-911 only reads the content path and
|
||||||
|
# the save directory. RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY is called once
|
||||||
|
# (libretro.c:899) solely as a fallback for the save directory, never to
|
||||||
|
# load BIOS or firmware.
|
||||||
|
#
|
||||||
|
# Supported extensions: dcb, dat, exe (Windows BennuGD executables)
|
||||||
|
# Valid extensions in libretro.c: dat, dcb
|
||||||
|
# Valid extensions in .info: dcb, dat, exe
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
No BIOS or firmware required. BennuGD is a self-contained game interpreter.
|
||||||
|
Games are loaded as .dcb or .dat bytecode files compiled by the BennuGD
|
||||||
|
toolchain. All game assets are bundled with the content.
|
||||||
|
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: bk-emulator
|
emulator: bk-emulator
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/bk-emulator"
|
source: "https://github.com/libretro/bk-emulator"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.00"
|
||||||
|
display_name: "Elektronika - BK-0010/BK-0011(M)"
|
||||||
cores:
|
cores:
|
||||||
- bk
|
- bk
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: BlastEm
|
emulator: BlastEm
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/blastem"
|
source: "https://github.com/libretro/blastem"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.6.3-pre"
|
||||||
|
display_name: "Sega - Mega Drive - Genesis (BlastEm)"
|
||||||
cores:
|
cores:
|
||||||
- blastem
|
- blastem
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: blueMSX
|
emulator: blueMSX
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/blueMSX-libretro"
|
source: "https://github.com/libretro/blueMSX-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "SVN"
|
||||||
|
display_name: "MSX/SVI/ColecoVision/SG-1000 (blueMSX)"
|
||||||
cores:
|
cores:
|
||||||
- bluemsx
|
- bluemsx
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -0,0 +1,62 @@
|
|||||||
|
emulator: bnes
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/bnes-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v083"
|
||||||
|
display_name: "Nintendo - NES / Famicom (bnes)"
|
||||||
|
cores:
|
||||||
|
- bnes
|
||||||
|
systems:
|
||||||
|
- nes
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
bnes is a NES emulator based on byuu's bNES/higan v083 NES module, ported
|
||||||
|
to libretro by Ryphecha. It is a lightweight, accuracy-focused NES core.
|
||||||
|
|
||||||
|
The core loads cartridge data entirely through retro_load_game with
|
||||||
|
need_fullpath=false (libretro.cpp:129). ROM data is passed as a memory
|
||||||
|
buffer and parsed by Cartridge::load (cartridge.cpp:18-31), which detects
|
||||||
|
iNES headers (16-byte offset) and delegates to Board::load for mapper setup.
|
||||||
|
|
||||||
|
The PPU generates its palette from a hardcoded color table in libretro.cpp
|
||||||
|
(lines 20-37) with emphasis factor tables. No external palette file is loaded.
|
||||||
|
|
||||||
|
System::init (system.cpp:62-66) only sets up the interface pointer and
|
||||||
|
default input devices. No system ROM, BIOS, or firmware is loaded at any
|
||||||
|
stage of initialization or cartridge loading.
|
||||||
|
|
||||||
|
The core does not call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY and has no
|
||||||
|
file I/O for BIOS or firmware. FDS (Famicom Disk System) is not supported,
|
||||||
|
so disksys.rom is not needed.
|
||||||
|
|
||||||
|
No external BIOS or firmware files are needed.
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
analysis:
|
||||||
|
bios_search:
|
||||||
|
retro_load_game: "libretro.cpp:181-211 - loads cartridge data only, no BIOS"
|
||||||
|
cartridge_load: "cartridge.cpp:18-31 - parses iNES header + ROM data"
|
||||||
|
system_init: "system.cpp:62-66 - sets interface pointer, no ROM loading"
|
||||||
|
system_power: "system.cpp:43-50 - powers subsystems, no file I/O"
|
||||||
|
interface_init: "interface.cpp:17-20 - stores derived pointer, calls system.init"
|
||||||
|
supported_mappers:
|
||||||
|
- NROM
|
||||||
|
- SxROM (MMC1)
|
||||||
|
- UxROM
|
||||||
|
- CNROM
|
||||||
|
- TxROM (MMC3)
|
||||||
|
- ExROM (MMC5)
|
||||||
|
- AxROM
|
||||||
|
- BnROM
|
||||||
|
- GxROM
|
||||||
|
- PxROM (MMC4)
|
||||||
|
- FxROM (MMC4)
|
||||||
|
- Bandai FCG
|
||||||
|
- Konami VRC4
|
||||||
|
- Konami VRC6
|
||||||
|
- Konami VRC7
|
||||||
|
- Sunsoft 5B
|
||||||
|
fds_support: false
|
||||||
|
filesystem_access: false
|
||||||
|
system_directory_used: false
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
emulator: boom3
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/boom3"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "git"
|
||||||
|
display_name: "Doom 3 (boom3)"
|
||||||
|
cores: [boom3, boom3_xp]
|
||||||
|
systems: [doom3]
|
||||||
|
verification: existence
|
||||||
|
notes: >
|
||||||
|
Doom 3 source port based on dhewm3 (GPL Doom 3 engine). The core accepts
|
||||||
|
.pk4 extensions (retro_get_system_info sets valid_extensions = "pk4").
|
||||||
|
Content is loaded directly from the .pk4 file path - the engine extracts
|
||||||
|
the grandparent directory as fs_basepath (libretro.cpp:1097,1135-1136
|
||||||
|
via extract_directory called twice on info->path) and expects the standard
|
||||||
|
Doom 3 directory layout with base/ containing pak000.pk4 through pak008.pk4.
|
||||||
|
BASE_GAMEDIR is hardcoded to "base" (Licensee.h:58). The boom3_xp variant
|
||||||
|
compiles with _D3XP defined, which passes "+set fs_game d3xp" at startup
|
||||||
|
(libretro.cpp:538-544) to load the Resurrection of Evil expansion from a
|
||||||
|
d3xp/ subdirectory alongside base/. The filesystem code (FileSystem.cpp:2125)
|
||||||
|
scans for .pk4 files in the game directory and loads them in order, with
|
||||||
|
higher-numbered paks overriding lower ones. The core requires OpenGL
|
||||||
|
(RETRO_ENVIRONMENT_SET_HW_RENDER) and XRGB8888 pixel format. All required
|
||||||
|
files are commercial Doom 3 game data, not engine firmware. No BIOS or
|
||||||
|
system files are needed in the RetroArch system directory.
|
||||||
|
|
||||||
|
files: []
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
emulator: Boytacean
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/joamag/boytacean"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "0.10.13"
|
||||||
|
display_name: "Nintendo - Game Boy / Color (Boytacean)"
|
||||||
|
cores:
|
||||||
|
- boytacean
|
||||||
|
systems:
|
||||||
|
- nintendo-gb
|
||||||
|
- nintendo-gbc
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Boytacean is a Game Boy / Game Boy Color emulator written in Rust by Joao Magalhaes.
|
||||||
|
No external BIOS or boot ROM files are needed.
|
||||||
|
|
||||||
|
The core ships with multiple boot ROMs compiled directly into the binary as static
|
||||||
|
byte arrays in src/data.rs. For DMG mode the default is "DMG Bootix" (an open-source
|
||||||
|
boot ROM forked from SameBoy's Bootix project, 256 bytes). For CGB mode the default
|
||||||
|
is "CGB Boytacean" (a custom open-source CGB boot ROM, 2304 bytes). The original
|
||||||
|
Nintendo DMG, SGB, and CGB boot ROMs are also embedded as static arrays (DMG_BOOT,
|
||||||
|
SGB_BOOT, CGB_BOOT) but the defaults use the open-source replacements.
|
||||||
|
|
||||||
|
The libretro frontend (frontends/libretro/src/core.rs) calls instance.load(true) in
|
||||||
|
retro_load_game(), which routes through load_dmg() or load_cgb() depending on the
|
||||||
|
cartridge header. These call load_boot_static() which copies one of the embedded byte
|
||||||
|
arrays into MMU memory. There is no RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY call, no
|
||||||
|
filesystem access for boot ROMs, and no core option to load external boot ROM files.
|
||||||
|
|
||||||
|
The .info file (boytacean_libretro.info) lists no firmware entries.
|
||||||
|
|
||||||
|
Boot ROM selection defaults:
|
||||||
|
- DMG: BootRom::DmgBootix (gb.rs:1389) - open-source, 256 bytes
|
||||||
|
- CGB: BootRom::CgbBoytacean (gb.rs:1398) - open-source, 2304 bytes
|
||||||
|
|
||||||
|
All boot ROM source code lives in src/boot/, forked from SameBoy and assembled
|
||||||
|
with rgbds. The compiled binaries are then converted to Rust const arrays in data.rs.
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
analysis:
|
||||||
|
embedded_boot_roms:
|
||||||
|
dmg_boot:
|
||||||
|
constant: DMG_BOOT
|
||||||
|
size: 256
|
||||||
|
description: "Original Nintendo DMG boot ROM (embedded, not default)"
|
||||||
|
source_ref: "data.rs:14-27"
|
||||||
|
sgb_boot:
|
||||||
|
constant: SGB_BOOT
|
||||||
|
size: 256
|
||||||
|
description: "Super Game Boy boot ROM (embedded, not default)"
|
||||||
|
source_ref: "data.rs:29-42"
|
||||||
|
dmg_bootix:
|
||||||
|
constant: DMG_BOOTIX
|
||||||
|
size: 256
|
||||||
|
description: "Open-source DMG boot ROM from Bootix project (default for DMG)"
|
||||||
|
source_ref: "data.rs:44-57"
|
||||||
|
mgb_bootix:
|
||||||
|
constant: MGB_BOOTIX
|
||||||
|
size: 256
|
||||||
|
description: "Open-source MGB (Game Boy Pocket) boot ROM from Bootix project"
|
||||||
|
source_ref: "data.rs:59-72"
|
||||||
|
cgb_boot:
|
||||||
|
constant: CGB_BOOT
|
||||||
|
size: 2304
|
||||||
|
description: "Original Nintendo CGB boot ROM (embedded, not default)"
|
||||||
|
source_ref: "data.rs:74-175"
|
||||||
|
cgb_boytacean:
|
||||||
|
constant: CGB_BOYTACEAN
|
||||||
|
size: 2304
|
||||||
|
description: "Custom open-source CGB boot ROM (default for CGB)"
|
||||||
|
source_ref: "data.rs:177-275"
|
||||||
|
filesystem_access: false
|
||||||
|
system_directory_used: false
|
||||||
|
boot_rom_source: "src/boot/ (assembly, forked from SameBoy)"
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: bsnes
|
emulator: bsnes
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/bsnes-libretro"
|
source: "https://github.com/libretro/bsnes-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "115"
|
||||||
|
display_name: "Nintendo - SNES / SFC (bsnes)"
|
||||||
systems: [nintendo-snes, nintendo-super-game-boy, nintendo-satellaview]
|
systems: [nintendo-snes, nintendo-super-game-boy, nintendo-satellaview]
|
||||||
|
|
||||||
# bsnes supports HLE for DSP1/DSP1B/DSP2/DSP4, ST010, and Cx4.
|
# bsnes supports HLE for DSP1/DSP1B/DSP2/DSP4, ST010, and Cx4.
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Cannonball
|
emulator: Cannonball
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/cannonball"
|
source: "https://github.com/libretro/cannonball"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.0"
|
||||||
|
display_name: "Cannonball"
|
||||||
systems:
|
systems:
|
||||||
- sega-outrun
|
- sega-outrun
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Caprice32
|
emulator: Caprice32
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/libretro-cap32"
|
source: "https://github.com/libretro/libretro-cap32"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v4.2.0"
|
||||||
|
display_name: "Amstrad - CPC/GX4000 (Caprice32)"
|
||||||
cores:
|
cores:
|
||||||
- cap32
|
- cap32
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "cdi2015"
|
||||||
|
type: alias
|
||||||
|
alias_of: "same_cdi"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "0.160"
|
||||||
|
display_name: "Philips CDi (CDi 2015)"
|
||||||
|
note: "This core uses the same BIOS/firmware as same_cdi. See emulators/same_cdi.yml for details."
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Cemu
|
emulator: Cemu
|
||||||
type: standalone
|
type: standalone
|
||||||
source: "https://github.com/cemu-project/Cemu"
|
source: "https://github.com/cemu-project/Cemu"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "2.6"
|
||||||
|
display_name: "Cemu (Wii U)"
|
||||||
systems: [nintendo-wiiu]
|
systems: [nintendo-wiiu]
|
||||||
analysis_date: "2026-03-17"
|
analysis_date: "2026-03-17"
|
||||||
analysis_commit: "HEAD (depth=1)"
|
analysis_commit: "HEAD (depth=1)"
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
emulator: ChaiLove
|
||||||
|
type: game
|
||||||
|
source: "https://github.com/libretro/libretro-chailove"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "2.0.0"
|
||||||
|
display_name: "ChaiLove"
|
||||||
|
cores: [chailove]
|
||||||
|
systems: []
|
||||||
|
files: []
|
||||||
|
notes: >
|
||||||
|
2D game framework for libretro inspired by LOVE2D, using ChaiScript.
|
||||||
|
Loads .chai or .chailove game files as content. The core itself is a
|
||||||
|
game engine runtime with no system directory dependencies.
|
||||||
|
No BIOS, firmware, or system directory files required.
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
emulator: "chimerasnes"
|
||||||
|
type: alias
|
||||||
|
alias_of: "snes9x"
|
||||||
|
core_version: ""
|
||||||
|
display_name: "Nintendo - SNES / SFC (ChimeraSNES)"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
display_name: "Nintendo - SNES / SFC (ChimeraSNES)"
|
||||||
|
note: "This core uses the same BIOS/firmware as snes9x. See emulators/snes9x.yml for details."
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Citra / Lime3DS / Azahar
|
emulator: Citra / Lime3DS / Azahar
|
||||||
type: standalone + libretro
|
type: standalone + libretro
|
||||||
source: "https://github.com/azahar-emu/azahar"
|
source: "https://github.com/azahar-emu/azahar"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "Git"
|
||||||
|
display_name: "Nintendo - 3DS (Citra)"
|
||||||
systems: [nintendo-3ds]
|
systems: [nintendo-3ds]
|
||||||
|
|
||||||
notes: |
|
notes: |
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
emulator: ClownMDEmu
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/clownmdemu-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "Git"
|
||||||
|
display_name: "Sega - MD/CD (ClownMDEmu)"
|
||||||
|
cores:
|
||||||
|
- clownmdemu
|
||||||
|
systems:
|
||||||
|
- sega-megadrive
|
||||||
|
- sega-megacd
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
ClownMDEmu is a Sega Mega Drive/Genesis and Mega CD emulator by Clownacy.
|
||||||
|
Supports cartridge (bin/md/gen) and CD (cue/iso/chd) formats, plus a
|
||||||
|
subsystem for cartridge+CD combo (Mega CD Mode 1).
|
||||||
|
|
||||||
|
The core has NO external BIOS file requirements. firmware_count = 0 in the
|
||||||
|
libretro .info file confirms this.
|
||||||
|
|
||||||
|
Mega CD boot ROM: a custom open-source replacement boot ROM is compiled
|
||||||
|
directly into the binary as a 16384-entry uint16 array
|
||||||
|
(mega-cd-boot-rom.c included into bus-main-m68k.c:19-21). Source at
|
||||||
|
https://github.com/Clownacy/clownmdemu-mcd-boot. No external CD BIOS
|
||||||
|
files (bios_CD_E.bin, bios_CD_U.bin, bios_CD_J.bin) are needed or loaded.
|
||||||
|
|
||||||
|
TMSS (Trademark Security System): not implemented at all. No TMSS ROM is
|
||||||
|
loaded or checked. The core boots games directly without the "Produced by
|
||||||
|
or under license from Sega" screen.
|
||||||
|
|
||||||
|
The system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY) is only used
|
||||||
|
as a fallback path for Backup RAM (BuRAM) save files, not for BIOS loading.
|
||||||
|
|
||||||
|
CD add-on can be enabled for cartridge games via the "clownmdemu_cd_addon"
|
||||||
|
core option to allow CD music features, but this uses the built-in boot
|
||||||
|
ROM, not an external BIOS.
|
||||||
|
|
||||||
|
The core implements its own Mega CD BIOS call handler (MegaCDBIOSCall in
|
||||||
|
bus-sub-m68k.c) via HLE (high-level emulation) of Sub-CPU BIOS functions
|
||||||
|
including CDBIOS, CDCTRN, FDRSET, FDRCHG, DRVINIT, CDCSTOP, CDCSTAT,
|
||||||
|
CDCREAD, and others.
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
analysis:
|
||||||
|
tmss:
|
||||||
|
supported: false
|
||||||
|
notes: |
|
||||||
|
TMSS is not implemented. No ROM loaded, no "Produced by Sega" check.
|
||||||
|
No references to TMSS exist anywhere in the codebase.
|
||||||
|
|
||||||
|
megacd_bios:
|
||||||
|
external_required: false
|
||||||
|
builtin_boot_rom: true
|
||||||
|
boot_rom_source: "https://github.com/Clownacy/clownmdemu-mcd-boot"
|
||||||
|
boot_rom_location: "source/mega-cd-boot-rom.c (16384 uint16 entries = 32 KB)"
|
||||||
|
bus_mapping: "0x400000-0x41FFFF (address & 0x20000 == 0)"
|
||||||
|
source_ref: "bus-main-m68k.c:19-21, bus-main-m68k.c:484-494"
|
||||||
|
bios_hle: true
|
||||||
|
hle_source_ref: "bus-sub-m68k.c:64 (MegaCDBIOSCall)"
|
||||||
|
notes: |
|
||||||
|
The Mega CD boot ROM is an open-source replacement compiled into the
|
||||||
|
binary. Sub-CPU BIOS calls are handled via HLE. No external Sega CD
|
||||||
|
BIOS files (bios_CD_E/U/J.bin) are needed.
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
emulator: Craft
|
||||||
|
type: game
|
||||||
|
source: "https://github.com/libretro/Craft"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v1"
|
||||||
|
display_name: "Minecraft (Craft)"
|
||||||
|
cores: [craft]
|
||||||
|
systems: []
|
||||||
|
files: []
|
||||||
|
notes: >
|
||||||
|
Libretro port of Craft, a simple Minecraft clone by Michael Fogleman.
|
||||||
|
Procedurally generates a voxel world with basic block placement and removal.
|
||||||
|
All textures and shaders are compiled into the binary.
|
||||||
|
No content file, BIOS, or system directory files required.
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: CrocoDS
|
emulator: CrocoDS
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/libretro-crocods"
|
source: "https://github.com/libretro/libretro-crocods"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v1"
|
||||||
|
display_name: "Amstrad - CPC (CrocoDS)"
|
||||||
cores:
|
cores:
|
||||||
- crocods
|
- crocods
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
emulator: Cruzes
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/libretro-samples/tree/master/tests/cruzes"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v1.0"
|
||||||
|
display_name: "Cruzes"
|
||||||
|
cores:
|
||||||
|
- cruzes
|
||||||
|
systems:
|
||||||
|
- game
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Cruzes is an unfinished Picross puzzle game implemented as a libretro core,
|
||||||
|
part of the libretro-samples repository. It is not an emulator -- it is a
|
||||||
|
standalone game that runs directly within RetroArch.
|
||||||
|
|
||||||
|
The core sets supports_no_game to true (cruzes.c:772) and valid_extensions
|
||||||
|
to an empty string (cruzes.c:749). The puzzle grid is hardcoded in
|
||||||
|
retro_init (cruzes.c:706-717) via a string literal passed to load_challenge.
|
||||||
|
|
||||||
|
retro_load_game (cruzes.c:728-732) only sets the pixel format to RGB565
|
||||||
|
and returns true. It never reads from the game_info pointer, never calls
|
||||||
|
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, and never opens any file from disk.
|
||||||
|
|
||||||
|
The font data (Carlito-Regular.ttf) is converted to C header files at build
|
||||||
|
time by the ttf2c tool (font10.h, font16.h, font24.h) and compiled in.
|
||||||
|
|
||||||
|
No external BIOS, firmware, or system files are needed.
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
analysis:
|
||||||
|
file_loading: none
|
||||||
|
system_directory_used: false
|
||||||
|
supports_no_game: true
|
||||||
|
need_fullpath: false
|
||||||
|
is_experimental: true
|
||||||
|
license: 2-clause BSD
|
||||||
|
author: Higor Euripedes
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
emulator: Daphne
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/daphne"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "Git"
|
||||||
|
display_name: "Arcade (Daphne)"
|
||||||
|
systems:
|
||||||
|
- arcade-laserdisc
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Daphne is a LaserDisc arcade game emulator ported to libretro. It emulates
|
||||||
|
classic full-motion video arcade games like Dragon's Lair, Space Ace,
|
||||||
|
Cliff Hanger, and others that used LaserDisc players for video output.
|
||||||
|
|
||||||
|
The core does NOT require any shared system BIOS or firmware files.
|
||||||
|
The libretro-core-info file (daphne_libretro.info) declares no firmware.
|
||||||
|
|
||||||
|
Each game loads its own arcade ROM set from a ZIP file named after the game
|
||||||
|
short name (e.g. lair.zip, cliff.zip, bega.zip). ROM files are individual
|
||||||
|
arcade chip dumps loaded via the rom_def struct in each game class
|
||||||
|
(daphne-1.0-src/game/*.cpp). CRC32 verification is performed at load time
|
||||||
|
(game.cpp:769-778).
|
||||||
|
|
||||||
|
Content loading path (libretro.cpp:546-637):
|
||||||
|
1. User points RetroArch to a .zip file (e.g. /Daphne/roms/lair.zip)
|
||||||
|
2. The core strips the path to derive:
|
||||||
|
- rom_name: game short name (e.g. "lair"), lowercased
|
||||||
|
- rom_path: parent directory
|
||||||
|
3. A home_dir is set to rom_path/.. (one level up from roms/)
|
||||||
|
4. Additional data is expected relative to home_dir:
|
||||||
|
- roms/ -> game ROM ZIPs
|
||||||
|
- framefile/ -> frame description files (.txt)
|
||||||
|
- sound/ -> sound samples
|
||||||
|
- ram/ -> SRAM saves
|
||||||
|
- pics/ -> overlay graphics
|
||||||
|
|
||||||
|
Expected directory layout:
|
||||||
|
Daphne/
|
||||||
|
roms/lair.zip
|
||||||
|
roms/cliff.zip
|
||||||
|
framefile/lair.txt
|
||||||
|
framefile/cliff.txt
|
||||||
|
sound/lair/ (optional, game-specific samples)
|
||||||
|
|
||||||
|
Supported games include (from README.md and libretro.cpp):
|
||||||
|
lair (Dragon's Lair), ace (Space Ace), cliff (Cliff Hanger),
|
||||||
|
bega (Bega's Battle), badlands (Badlands), esh (Esh's Aurunmilla),
|
||||||
|
interstellar, mach3, sdq (Super Don Quix-ote), tq (Thayer's Quest),
|
||||||
|
astron, galaxy, cobra, roadblaster, gpworld, lair2 (Dragon's Lair II),
|
||||||
|
and many ROM revision variants.
|
||||||
|
|
||||||
|
The core is marked experimental. Savestates, cheats, and disk control are
|
||||||
|
not supported. Requires full file path (retro_load_game uses path, not
|
||||||
|
data buffer).
|
||||||
|
|
||||||
|
files: []
|
||||||
|
# No shared BIOS or firmware files. All ROMs are per-game arcade chip
|
||||||
|
# dumps distributed inside game-named ZIP archives. These are game content,
|
||||||
|
# not system files managed by retroarch_system.
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: DeSmuME
|
emulator: DeSmuME
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/desmume"
|
source: "https://github.com/libretro/desmume"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "SVN"
|
||||||
|
display_name: "Nintendo - DS (DeSmuME)"
|
||||||
cores: [desmume, desmume2015]
|
cores: [desmume, desmume2015]
|
||||||
systems: [nintendo-ds]
|
systems: [nintendo-ds]
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,70 @@
|
|||||||
|
emulator: DICE
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/mittonk/dice-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.4.2"
|
||||||
|
display_name: "Arcade (DICE)"
|
||||||
|
cores:
|
||||||
|
- dice
|
||||||
|
systems:
|
||||||
|
- discrete-arcade
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
DICE (Discrete Integrated Circuit Emulator) emulates early arcade hardware
|
||||||
|
built entirely from discrete logic components, with no CPU. dice-libretro is
|
||||||
|
a libretro port by Ken Mitton, based on upstream DICE by Adam B.
|
||||||
|
|
||||||
|
No BIOS or firmware files required. The .info file declares firmware_count = 0.
|
||||||
|
|
||||||
|
Games fall into two categories:
|
||||||
|
- ROM-based: shipped as MAME-style ZIP archives (filename matters).
|
||||||
|
The core loads the ZIP passed by the frontend and matches individual ROM
|
||||||
|
chips by CRC32 (chips/rom.cpp:41-218, RomDesc::get_data). If a chip's
|
||||||
|
CRC does not match, the core walks all entries in the archive looking for
|
||||||
|
a CRC match or alt_crc match.
|
||||||
|
- ROM-less: games like Pong, Breakout, Rebound whose original PCBs had no
|
||||||
|
ROM at all. These use .dmy dummy launcher files (empty placeholders) to
|
||||||
|
tell RetroArch which game to start.
|
||||||
|
|
||||||
|
retro_get_system_info (libretro.cpp:122-137) sets need_fullpath = true,
|
||||||
|
block_extract = true, valid_extensions = "zip|dmy|k1|a1|6c|c6|d2|s1|f4|a4|
|
||||||
|
1da|da1|C4|4c|4d|d7|d4". The unusual extensions are raw ROM chip dumps for
|
||||||
|
individual games (e.g. .k1 for antiaircraft, .a1 for attack).
|
||||||
|
|
||||||
|
dice.cpp:42-66 strips any "#inner.rom" suffix from the path (for ROM
|
||||||
|
managers that expose zip contents) and passes the zip path to
|
||||||
|
RomDesc::set_zip_filename.
|
||||||
|
|
||||||
|
retro_init (libretro.cpp:50-63) retrieves RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
|
||||||
|
but uses it only for the retro_base_directory variable, not for loading any
|
||||||
|
system files.
|
||||||
|
|
||||||
|
Games with ROMs (10 titles):
|
||||||
|
antiaircraft.zip - 1 ROM chip (k1)
|
||||||
|
attack.zip - 6 ROM chips (a1, b1, c1, d1, j6, k6), each with alt_crc
|
||||||
|
cleansweep.zip - 3 ROM chips (6c, d7, k3)
|
||||||
|
crashnscore.zip - 6 ROM chips (d2, e2, f6, f7, p6, p7)
|
||||||
|
indy4.zip - 4 ROM chips (s1, s2, c1, c2)
|
||||||
|
jetfighter.zip - 6 ROM chips (a4, j1, j5, k5, m1, r5)
|
||||||
|
sharkjaws.zip - 2 ROM chips (1da/da1, 1db/db1)
|
||||||
|
steeplechase.zip - 2 ROM chips (C4, D4); bugle ROM c8 dump missing
|
||||||
|
stuntcycle.zip - 2 ROM chips (4d, 1fh)
|
||||||
|
wipeout.zip - 2 ROM chips (d4, g7)
|
||||||
|
|
||||||
|
ROM-less games (11 titles, use .dmy dummy files):
|
||||||
|
breakout, crossfire, gotcha, hiway, pinpong, pong, pongdoubles,
|
||||||
|
quadrapong, rebound, spacerace, tvbasketball
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
analysis:
|
||||||
|
rom_loading:
|
||||||
|
method: "MAME-style ZIP, matched by CRC32 per RomDesc"
|
||||||
|
source_ref: "chips/rom.cpp:41-218"
|
||||||
|
zip_handling: "unzip library (unzip/), opened via libretro_zip_filename"
|
||||||
|
game_count: 21
|
||||||
|
rom_games: 10
|
||||||
|
romless_games: 11
|
||||||
|
filesystem_access: false
|
||||||
|
system_directory_used: false
|
||||||
|
bios_required: false
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
emulator: Dinothawr
|
||||||
|
type: game
|
||||||
|
source: "https://github.com/libretro/Dinothawr"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v1.0"
|
||||||
|
display_name: "Dinothawr"
|
||||||
|
cores: [dinothawr]
|
||||||
|
systems: []
|
||||||
|
files: []
|
||||||
|
notes: >
|
||||||
|
Puzzle game developed by the libretro team as a reference libretro core.
|
||||||
|
Push blocks on ice to solve puzzles. Game data (maps, sprites, music)
|
||||||
|
ships in the libretro repo and is loaded as content.
|
||||||
|
No BIOS, firmware, or system directory files required.
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
emulator: DirectXBox
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/libretro-directxbox"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "alpha"
|
||||||
|
display_name: "Microsoft - Xbox (DirectXbox)"
|
||||||
|
cores:
|
||||||
|
- directxbox
|
||||||
|
systems:
|
||||||
|
- xbox
|
||||||
|
|
||||||
|
# DirectXBox is an experimental original Xbox emulator written from scratch for
|
||||||
|
# libretro. Status: alpha. Cromwell BIOS boots but cannot run games. Microsoft
|
||||||
|
# BIOS does not boot yet (ATA/OHCI unimplemented). No audio, no HW acceleration.
|
||||||
|
#
|
||||||
|
# BIOS loading (libretro.cpp:199-210):
|
||||||
|
# Paths are hardcoded relative to the system directory:
|
||||||
|
# mcpx_rom_str = <system_dir>/mcpx_1.0.bin
|
||||||
|
# bios_rom_str = <system_dir>/cromwell_1024.bin
|
||||||
|
# Both are passed to Xbox::LoadBootRoms(flash, mcpx).
|
||||||
|
# A commented-out alternative exists: xbox-3944.bin (Microsoft retail BIOS).
|
||||||
|
#
|
||||||
|
# LoadBootRoms (xbox.cpp:143-210):
|
||||||
|
# 1. Opens flash ROM, validates size is a multiple of 0x10000
|
||||||
|
# 2. Maps flash ROM to 0xFF000000-0xFFFFFFFF (mirrored to fill 16 MB)
|
||||||
|
# 3. Opens MCPX ROM, validates size is exactly 512 bytes
|
||||||
|
# 4. Overlays MCPX at the last 512 bytes of flash region
|
||||||
|
# If MCPX path is empty, step 3-4 are skipped (Debug/Chihiro machines).
|
||||||
|
# retro_load_game returns false if either file fails to load.
|
||||||
|
#
|
||||||
|
# Machine type (libretro_core_options.h:67-81):
|
||||||
|
# Core option "libretro-xbox_machine-type" selects hardware revision.
|
||||||
|
# Default "auto" detects from BIOS. Retail v1.0 uses McpxRomVersion::Mcpx1_0,
|
||||||
|
# all other retail revisions use Mcpx1_1. Debug and Chihiro use McpxRomVersion::None
|
||||||
|
# (no MCPX ROM needed).
|
||||||
|
#
|
||||||
|
# The .info file declares no firmware_count. Both files are mandatory for retail
|
||||||
|
# machine types. The core has no fallback or built-in replacement.
|
||||||
|
|
||||||
|
files:
|
||||||
|
- name: "mcpx_1.0.bin"
|
||||||
|
path: "mcpx_1.0.bin"
|
||||||
|
size: 512
|
||||||
|
required: true
|
||||||
|
note: >
|
||||||
|
Xbox MCPX ROM (secret boot ROM on the southbridge). Contains the initial
|
||||||
|
boot vector that loads the flash BIOS. Overlaid at the last 512 bytes of
|
||||||
|
the 16 MB flash region (0xFFFFFE00-0xFFFFFFFF). Only needed for retail
|
||||||
|
machine types; Debug and Chihiro skip this file.
|
||||||
|
source_ref: "src/xbox.cpp:186-206, src/libretro/libretro.cpp:202"
|
||||||
|
|
||||||
|
- name: "cromwell_1024.bin"
|
||||||
|
path: "cromwell_1024.bin"
|
||||||
|
required: true
|
||||||
|
note: >
|
||||||
|
Cromwell open-source Xbox BIOS (1024 KB variant). Loaded as the flash ROM
|
||||||
|
and mirrored across the 16 MB flash region at 0xFF000000. Size must be a
|
||||||
|
multiple of 0x10000. This is the only BIOS that currently boots in the
|
||||||
|
emulator. The Microsoft retail BIOS (xbox-3944.bin) is referenced in
|
||||||
|
commented-out code but does not work yet.
|
||||||
|
source_ref: "src/xbox.cpp:143-178, src/libretro/libretro.cpp:203-204"
|
||||||
|
|
||||||
|
notes:
|
||||||
|
status: >
|
||||||
|
Alpha stage. Only Cromwell BIOS boots. No commercial game compatibility.
|
||||||
|
Missing ATA (hard drive), OHCI (USB/controllers), audio, and GPU HW
|
||||||
|
acceleration. The core requires libvirt86 for x86 virtualization.
|
||||||
|
microsoft_bios: >
|
||||||
|
The source references xbox-3944.bin as an alternative flash ROM (Microsoft
|
||||||
|
retail BIOS, typically 256 KB). It is commented out in libretro.cpp:204
|
||||||
|
because ATA and OHCI hardware are not yet implemented, preventing the
|
||||||
|
Microsoft BIOS from completing boot.
|
||||||
|
machine_types: >
|
||||||
|
xbox_database.cpp defines retail v1.0 through v1.6, debug, and chihiro
|
||||||
|
variants. Each has different TV encoder (Conexant/Focus/XCalibur) and MCPX
|
||||||
|
revision (X2/X3) settings. The core option auto-detects from the loaded BIOS.
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "dirksimple"
|
||||||
|
type: alias
|
||||||
|
alias_of: "daphne"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "0.2"
|
||||||
|
display_name: "Laserdisc arcade game (DirkSimple)"
|
||||||
|
note: "This core uses the same BIOS/firmware as daphne. See emulators/daphne.yml for details."
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Dolphin
|
emulator: Dolphin
|
||||||
type: standalone + libretro
|
type: standalone + libretro
|
||||||
source: "https://github.com/dolphin-emu/dolphin"
|
source: "https://github.com/dolphin-emu/dolphin"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "Git"
|
||||||
|
display_name: "Nintendo - GameCube / Wii (Dolphin)"
|
||||||
systems: [nintendo-gamecube, nintendo-wii]
|
systems: [nintendo-gamecube, nintendo-wii]
|
||||||
|
|
||||||
# Dolphin has HLE for most system functions, so real BIOS/firmware files
|
# Dolphin has HLE for most system functions, so real BIOS/firmware files
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
emulator: "Dolphin Launcher"
|
||||||
|
type: launcher
|
||||||
|
source: "https://github.com/RobLoach/libretro-dolphin-launcher"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.2.0"
|
||||||
|
display_name: "Nintendo - GameCube / Wii (Dolphin Launcher)"
|
||||||
|
cores:
|
||||||
|
- dolphin_launcher
|
||||||
|
systems: [nintendo-gamecube, nintendo-wii]
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Launcher stub that passes games to standalone Dolphin (dolphin-emu-nogui,
|
||||||
|
dolphin-emu, or Flatpak org.DolphinEmu.dolphin-emu). The core itself does
|
||||||
|
no emulation - it calls system() with the game path, waits for Dolphin to
|
||||||
|
exit, then signals RETRO_ENVIRONMENT_SHUTDOWN.
|
||||||
|
|
||||||
|
Requires Dolphin installed separately on the host. All BIOS/firmware files
|
||||||
|
(IPL.bin, DSP ROMs, fonts, Wii NAND) are managed by the standalone Dolphin
|
||||||
|
install, not by RetroArch system/. See dolphin.yml for those files.
|
||||||
|
|
||||||
|
No system files, BIOS, or firmware required by this core.
|
||||||
|
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: DOSBox-core
|
emulator: DOSBox-core
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/dosbox-core"
|
source: "https://github.com/libretro/dosbox-core"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "SVN"
|
||||||
|
display_name: "DOS (DOSBox-core)"
|
||||||
cores: [dosbox_core]
|
cores: [dosbox_core]
|
||||||
systems: [dos]
|
systems: [dos]
|
||||||
verification: sha1
|
verification: sha1
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: DOSBox Pure
|
emulator: DOSBox Pure
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/dosbox-pure"
|
source: "https://github.com/libretro/dosbox-pure"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "0.9.9"
|
||||||
|
display_name: "DOS (DOSBox-Pure)"
|
||||||
cores: [dosbox_pure]
|
cores: [dosbox_pure]
|
||||||
systems: [dos]
|
systems: [dos]
|
||||||
verification: sha1
|
verification: sha1
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "dosbox_svn"
|
||||||
|
type: alias
|
||||||
|
alias_of: "dosbox_core"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "SVN"
|
||||||
|
display_name: "DOS (DOSBox-SVN)"
|
||||||
|
note: "This core uses the same BIOS/firmware as dosbox_core. See emulators/dosbox_core.yml for details."
|
||||||
|
files: []
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "dosbox_svn_ce"
|
||||||
|
type: alias
|
||||||
|
alias_of: "dosbox_core"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "SVN CE"
|
||||||
|
display_name: "DOS (DOSBox-SVN CE)"
|
||||||
|
note: "This core uses the same BIOS/firmware as dosbox_core. See emulators/dosbox_core.yml for details."
|
||||||
|
files: []
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
emulator: DoubleCherryGB
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/TimOelrichs/doublecherryGB-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.17.0"
|
||||||
|
display_name: "Nintendo - Game Boy / Color (DoubleCherryGB)"
|
||||||
|
cores:
|
||||||
|
- DoubleCherryGB
|
||||||
|
systems:
|
||||||
|
- nintendo-gb
|
||||||
|
- nintendo-gbc
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
DoubleCherryGB is a Game Boy / Game Boy Color emulator forked from TGB Dual
|
||||||
|
by GIGO and Hii. It adds multi-Game Boy emulation with virtual link cable
|
||||||
|
support for up to 16 players, DMG-07 4-Player Adapter emulation, and
|
||||||
|
built-in Pokemon distribution events.
|
||||||
|
|
||||||
|
No BIOS or boot ROM files are required or supported. The core does not
|
||||||
|
call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY for firmware loading and does
|
||||||
|
not attempt to open any files from the system directory.
|
||||||
|
|
||||||
|
In cpu.cpp:82, the program counter is initialized to 0x100 (post-boot ROM
|
||||||
|
entry point), and cpu::reset() sets all registers to their post-boot
|
||||||
|
values directly (AF=0x01B0 for DMG, 0x11B0 for CGB). This means the
|
||||||
|
core completely bypasses the boot ROM sequence via HLE register setup.
|
||||||
|
|
||||||
|
The .info file at libretro-core-info confirms no firmware entries.
|
||||||
|
|
||||||
|
Supported extensions: gb, dmg, gbc, cgb, sgb.
|
||||||
|
Library version: v0.18.0.
|
||||||
|
|
||||||
|
files: []
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
emulator: "doukutsu-rs"
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/DrGlaucous/doukutsu-rs-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.2.0 - 0.101.0"
|
||||||
|
display_name: "Cave Story (drs)"
|
||||||
|
cores:
|
||||||
|
- doukutsu_rs
|
||||||
|
systems:
|
||||||
|
- cavestory
|
||||||
|
|
||||||
|
# doukutsu-rs (d-rs) is an open-source reimplementation of the Cave Story
|
||||||
|
# (Doukutsu Monogatari) engine in Rust, ported to libretro by Dr. Glaucous.
|
||||||
|
# It plays the original freeware Cave Story and Cave Story+ (Steam/Switch).
|
||||||
|
#
|
||||||
|
# The core does NOT use RetroArch's system directory for any BIOS or firmware.
|
||||||
|
# get_system_directory() is defined in libretro.rs:1255 but never called by
|
||||||
|
# the core (the import is commented out in core.rs:28).
|
||||||
|
#
|
||||||
|
# Instead, the core loads game data relative to the content path provided by
|
||||||
|
# the frontend. The target is either a Doukutsu.exe (freeware) or a directory
|
||||||
|
# containing a data/ subfolder (core.rs:226-233):
|
||||||
|
#
|
||||||
|
# content_path = "/path/to/Doukutsu.exe" (or directory for CS Switch)
|
||||||
|
# resource_dir = parent_of(content_path) + "/data/"
|
||||||
|
#
|
||||||
|
# The data/ directory must contain the freeware Cave Story game assets:
|
||||||
|
# npc.tbl, mrmap.bin, *.png, Stage/, Npc/, org/ (music), *.tsc (scripts)
|
||||||
|
#
|
||||||
|
# These are the original Pixel game files from Doukutsu.exe, extracted by
|
||||||
|
# the doukutsu-rs/game-data repo (CSE2E-converted freeware data). They are
|
||||||
|
# copyrighted by Daisuke "Pixel" Amaya but freely redistributable for
|
||||||
|
# non-commercial use.
|
||||||
|
#
|
||||||
|
# Internal engine data (fonts, organya wavetables, gamecontrollerdb.txt,
|
||||||
|
# touch overlay, lightmap) is compiled into the core binary via
|
||||||
|
# include_bytes! in builtin_fs.rs, so nothing extra is needed in system/.
|
||||||
|
#
|
||||||
|
# The .info file (doukutsu_rs_libretro.info) declares:
|
||||||
|
# supported_extensions = "exe|dll|so"
|
||||||
|
# needs_fullpath = true
|
||||||
|
# supports_no_game = true
|
||||||
|
# notes = "(!) drs requires data ROM 'Cave Story (en).zip'."
|
||||||
|
# "|(!) Load Content 'Doukutsu.exe', Also works with all other ports of CS"
|
||||||
|
#
|
||||||
|
# No firmware entries are declared in the .info file.
|
||||||
|
# Valid extensions: exe, dll, so (loads the original game binary as content path)
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
No BIOS or firmware files required in the system directory.
|
||||||
|
The core reads game data from a data/ subfolder next to the loaded content.
|
||||||
|
Users must provide the Cave Story freeware game files (Doukutsu.exe and its
|
||||||
|
data/ directory) or a Cave Story+ installation as the content to load.
|
||||||
|
All engine-internal resources (fonts, wavetables, controller mappings) are
|
||||||
|
built into the core binary.
|
||||||
|
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: DuckStation
|
emulator: DuckStation
|
||||||
type: standalone
|
type: standalone
|
||||||
source: "https://github.com/stenzek/duckstation"
|
source: "https://github.com/stenzek/duckstation"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.1"
|
||||||
|
display_name: "Sony - PlayStation (DuckStation)"
|
||||||
systems: [sony-playstation]
|
systems: [sony-playstation]
|
||||||
bios_size: 524288 # 0x80000 (512 KB), also accepts PS2 (4 MB) and PS3 BIOS
|
bios_size: 524288 # 0x80000 (512 KB), also accepts PS2 (4 MB) and PS3 BIOS
|
||||||
verification: md5
|
verification: md5
|
||||||
|
|||||||
@@ -0,0 +1,122 @@
|
|||||||
|
emulator: EasyRPG Player
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/easyrpg-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "0.8.1.0"
|
||||||
|
display_name: "RPG Maker 2000/2003 (EasyRPG)"
|
||||||
|
cores:
|
||||||
|
- easyrpg
|
||||||
|
systems:
|
||||||
|
- rpgmaker
|
||||||
|
|
||||||
|
# EasyRPG Player is an open-source interpreter for RPG Maker 2000 and 2003
|
||||||
|
# games. It does not require any BIOS or firmware files. All system data
|
||||||
|
# files are optional and improve the experience (MIDI music, RTP assets).
|
||||||
|
#
|
||||||
|
# The official libretro .info file declares zero firmware entries.
|
||||||
|
#
|
||||||
|
# Directory layout under <system_dir>:
|
||||||
|
# rtp/2000/ - RPG Maker 2000 Run-Time Package assets
|
||||||
|
# rtp/2003/ - RPG Maker 2003 Run-Time Package assets
|
||||||
|
# easyrpg-player/ - global config dir (auto-created)
|
||||||
|
# easyrpg-player/Soundfont/ - user-provided .sf2 files
|
||||||
|
# easyrpg-player/Font/ - user-provided font files
|
||||||
|
#
|
||||||
|
# RTP path resolution (filefinder_rtp.cpp:68-75, libretro build):
|
||||||
|
# 1. <core_assets_dir>/rtp/<version>
|
||||||
|
# 2. <system_dir>/rtp/<version>
|
||||||
|
# where <version> is "2000" or "2003" depending on the game
|
||||||
|
#
|
||||||
|
# MIDI playback uses FluidSynth (fluidlite) with this soundfont search
|
||||||
|
# order (decoder_fluidsynth.cpp:118-163):
|
||||||
|
# 1. User-configured soundfont from settings
|
||||||
|
# 2. "easyrpg.soundfont" (looked up via VFS, placed in game dir or system dir)
|
||||||
|
# 3. FluidSynth default soundfont setting
|
||||||
|
# 4. SDL_SOUNDFONTS environment variable
|
||||||
|
# 5. /usr/share/soundfonts/FluidR3_GM.sf2 (Linux desktop)
|
||||||
|
# 6. /usr/share/sounds/sf2/FluidR3_GM.sf2 (Linux desktop)
|
||||||
|
#
|
||||||
|
# WildMidi alternative MIDI (decoder_wildmidi.cpp:99-114, libretro build):
|
||||||
|
# 1. <system_dir>/wildmidi.cfg
|
||||||
|
# 2. <core_assets_dir>/wildmidi/wildmidi.cfg
|
||||||
|
#
|
||||||
|
# Games that include all their assets (FullPackageFlag) need nothing extra.
|
||||||
|
# Games relying on RPG Maker RTP need the matching RTP installed.
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
No BIOS or firmware required. All files listed below are optional runtime
|
||||||
|
data that improve compatibility and audio quality.
|
||||||
|
|
||||||
|
RTP (Run-Time Package) contains default assets (sprites, music, sound effects)
|
||||||
|
shared by many RPG Maker games. Games that ship all their own assets do not
|
||||||
|
need it. The RPG Maker 2000 and 2003 RTPs are separate packages. EasyRPG
|
||||||
|
also supports translated/third-party RTP variants (Don Miguel, Kadokawa,
|
||||||
|
Enterbrain, RPG Advocate, etc.) and auto-detects which one a game uses.
|
||||||
|
|
||||||
|
For MIDI music, a General MIDI soundfont in SF2 format is needed. Place it
|
||||||
|
as easyrpg.soundfont in the system directory, or put any .sf2 file in
|
||||||
|
easyrpg-player/Soundfont/ and select it from the core settings menu.
|
||||||
|
|
||||||
|
files:
|
||||||
|
# ================================================================
|
||||||
|
# Soundfont for MIDI playback (optional)
|
||||||
|
# decoder_fluidsynth.cpp:125 - first custom path checked
|
||||||
|
# ================================================================
|
||||||
|
|
||||||
|
- name: "easyrpg.soundfont"
|
||||||
|
path: "easyrpg.soundfont"
|
||||||
|
required: false
|
||||||
|
source_ref: "decoder_fluidsynth.cpp:125, scene_logo.cpp:261"
|
||||||
|
note: >
|
||||||
|
General MIDI soundfont (SF2 format) for MIDI music playback. Many RPG
|
||||||
|
Maker games use MIDI for background music. Without a soundfont, MIDI
|
||||||
|
tracks are silent. Any GM-compatible .sf2 works. Can also be placed in
|
||||||
|
easyrpg-player/Soundfont/ with any filename.
|
||||||
|
|
||||||
|
# ================================================================
|
||||||
|
# WildMidi configuration (optional, alternative MIDI backend)
|
||||||
|
# decoder_wildmidi.cpp:99-114
|
||||||
|
# ================================================================
|
||||||
|
|
||||||
|
- name: "wildmidi.cfg"
|
||||||
|
path: "wildmidi.cfg"
|
||||||
|
required: false
|
||||||
|
source_ref: "decoder_wildmidi.cpp:103-104"
|
||||||
|
note: >
|
||||||
|
WildMidi configuration file pointing to GUS patch sets for MIDI
|
||||||
|
playback. Alternative to FluidSynth/SF2. Only used if WildMidi
|
||||||
|
support is compiled in and FluidSynth is not available or disabled.
|
||||||
|
|
||||||
|
# ================================================================
|
||||||
|
# RPG Maker 2000 RTP (optional, game-dependent)
|
||||||
|
# filefinder_rtp.cpp:73-74 - <system_dir>/rtp/2000
|
||||||
|
# ================================================================
|
||||||
|
|
||||||
|
- name: "RPG Maker 2000 RTP"
|
||||||
|
path: "rtp/2000/"
|
||||||
|
required: false
|
||||||
|
type: directory
|
||||||
|
source_ref: "filefinder_rtp.cpp:73-74"
|
||||||
|
note: >
|
||||||
|
Run-Time Package for RPG Maker 2000 games. Contains default tilesets,
|
||||||
|
character sprites, battle animations, music, and sound effects. Only
|
||||||
|
needed by games that reference RTP assets instead of bundling them.
|
||||||
|
Multiple RTP variants exist (Japanese official, English official,
|
||||||
|
Don Miguel English translation). EasyRPG auto-detects which variant
|
||||||
|
a game expects.
|
||||||
|
|
||||||
|
# ================================================================
|
||||||
|
# RPG Maker 2003 RTP (optional, game-dependent)
|
||||||
|
# filefinder_rtp.cpp:73-74 - <system_dir>/rtp/2003
|
||||||
|
# ================================================================
|
||||||
|
|
||||||
|
- name: "RPG Maker 2003 RTP"
|
||||||
|
path: "rtp/2003/"
|
||||||
|
required: false
|
||||||
|
type: directory
|
||||||
|
source_ref: "filefinder_rtp.cpp:73-74"
|
||||||
|
note: >
|
||||||
|
Run-Time Package for RPG Maker 2003 games. Same concept as the 2000
|
||||||
|
RTP but with additional battle system assets for the side-view ATB
|
||||||
|
combat. Multiple variants exist (Japanese official, English official,
|
||||||
|
RPG Advocate English, Vlad Russian, Korean, Traditional Chinese).
|
||||||
@@ -1,6 +1,10 @@
|
|||||||
emulator: ECWolf
|
emulator: ECWolf
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/ecwolf"
|
source: "https://github.com/libretro/ecwolf"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: ""
|
||||||
|
display_name: "Wolfenstein 3D (ECWolf)"
|
||||||
|
display_name: "Wolfenstein 3D (ECWolf)"
|
||||||
cores: [ecwolf]
|
cores: [ecwolf]
|
||||||
systems: [wolfenstein3d]
|
systems: [wolfenstein3d]
|
||||||
verification: md5
|
verification: md5
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
emulator: EmuSCV
|
emulator: EmuSCV
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/wzcwzc/emuscv"
|
source: "https://github.com/wzcwzc/emuscv"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: ""
|
||||||
|
display_name: "EPOCH/YENO Super Cassette Vision"
|
||||||
|
display_name: "EPOCH/YENO Super Cassette Vision"
|
||||||
cores:
|
cores:
|
||||||
- emuscv
|
- emuscv
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
emulator: "emux (CHIP-8)"
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/emux"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "0.1"
|
||||||
|
display_name: "CHIP-8 (Emux CHIP-8)"
|
||||||
|
cores:
|
||||||
|
- emux_chip8
|
||||||
|
systems:
|
||||||
|
- chip8
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
emux is a multi-system emulator supporting CHIP-8, Game Boy, NES, and
|
||||||
|
Sega Master System as separate libretro cores. The CHIP-8 core
|
||||||
|
(emux_chip8) does not require any external BIOS or firmware files.
|
||||||
|
|
||||||
|
The CHIP-8 architecture has no real BIOS. The standard font/character
|
||||||
|
set (hex digits 0-F, 5 bytes each = 80 bytes) is hardcoded in
|
||||||
|
mach/chip8.c:40-57 as the char_mem[] array. On reset, this font data
|
||||||
|
is copied into the beginning of the 4 KB RAM (address 0x000-0x04F)
|
||||||
|
via memcpy in chip8_reset() at mach/chip8.c:105.
|
||||||
|
|
||||||
|
ROM loading: the game ROM is loaded via file_open(PATH_DATA, ...) in
|
||||||
|
chip8_init() at mach/chip8.c:68-74. On reset, ROM contents are copied
|
||||||
|
into RAM starting at address 0x200 (mach/chip8.c:113). The core
|
||||||
|
accepts .ch8, .bin, and .rom extensions (libretro/Makefile.rules:20).
|
||||||
|
|
||||||
|
Memory map from mach/chip8.c:17-20:
|
||||||
|
0x000-0x04F font/character data (hardcoded)
|
||||||
|
0x050-0x1FF unused
|
||||||
|
0x200-0xFFF program ROM + working RAM
|
||||||
|
|
||||||
|
The libretro frontend retrieves the system directory via
|
||||||
|
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY (libretro/libretro.c:34) but
|
||||||
|
only uses it as a general config path, not for BIOS loading.
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
platform_details:
|
||||||
|
bios_mapping:
|
||||||
|
target: "none"
|
||||||
|
source_ref: "mach/chip8.c:40-57, mach/chip8.c:98-115"
|
||||||
|
notes: |
|
||||||
|
No external BIOS. The 80-byte character font is compiled into the
|
||||||
|
binary as char_mem[] and memcpy'd into RAM[0x000] on every reset.
|
||||||
|
This is standard CHIP-8 behavior -- all interpreters embed the font.
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "emux_gb"
|
||||||
|
type: alias
|
||||||
|
alias_of: "gambatte"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "0.1"
|
||||||
|
display_name: "Nintendo - Game Boy / Color (Emux GB)"
|
||||||
|
note: "This core uses the same BIOS/firmware as gambatte. See emulators/gambatte.yml for details."
|
||||||
|
files: []
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "emux_nes"
|
||||||
|
type: alias
|
||||||
|
alias_of: "fceumm"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "0.1"
|
||||||
|
display_name: "Nintendo - NES / Famicom (Emux NES)"
|
||||||
|
note: "This core uses the same BIOS/firmware as fceumm. See emulators/fceumm.yml for details."
|
||||||
|
files: []
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "emux_sms"
|
||||||
|
type: alias
|
||||||
|
alias_of: "gearsystem"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "0.1"
|
||||||
|
display_name: "Sega - Master System (Emux SMS)"
|
||||||
|
note: "This core uses the same BIOS/firmware as gearsystem. See emulators/gearsystem.yml for details."
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: ep128emu-core
|
emulator: ep128emu-core
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/ep128emu-core"
|
source: "https://github.com/libretro/ep128emu-core"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v1.2.10"
|
||||||
|
display_name: "Enterprise - 64/128 (ep128emu)"
|
||||||
cores:
|
cores:
|
||||||
- ep128emu_core
|
- ep128emu_core
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
emulator: FAKE-08
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/jtothebell/fake-08"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.0.2.19"
|
||||||
|
display_name: "PICO-8 (FAKE-08)"
|
||||||
|
cores:
|
||||||
|
- fake08
|
||||||
|
systems:
|
||||||
|
- pico8
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
FAKE-08 is an open-source PICO-8 compatible runtime for running .p8 and
|
||||||
|
.p8.png cartridges on platforms where the official PICO-8 binary is not
|
||||||
|
available (3DS, Vita, Switch, Wii U, various handhelds).
|
||||||
|
|
||||||
|
The core retrieves RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY in
|
||||||
|
retro_set_environment() (libretro.cpp:162-163) but never uses the value.
|
||||||
|
No file is loaded from the system directory. The PICO-8 boot sequence,
|
||||||
|
global Lua functions, and default cart menu are compiled directly into the
|
||||||
|
binary as string constants (p8GlobalLuaFunctions.h, DefaultCart.h).
|
||||||
|
|
||||||
|
When no ROM is passed (supports_no_game = true), the core queues its
|
||||||
|
built-in BIOS cart "__FAKE08-BIOS.p8" (libretro.cpp:751). This is not
|
||||||
|
an external file -- it is generated internally by the VM.
|
||||||
|
|
||||||
|
The core accepts .p8 (text) and .png (cartridge-as-image) formats
|
||||||
|
(libretro.cpp:258). Content is loaded either via the libretro data buffer
|
||||||
|
or full path depending on the _NEED_FULL_PATH_ compile flag.
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
platform_details:
|
||||||
|
cartridge_format:
|
||||||
|
extensions: "p8, png"
|
||||||
|
source_ref: "platform/libretro/libretro.cpp:258"
|
||||||
|
notes: |
|
||||||
|
.p8 is the PICO-8 text cartridge format containing Lua code, gfx,
|
||||||
|
gff, map, sfx, and music sections. .png is the cartridge-as-image
|
||||||
|
format where cart data is steganographically encoded in the image.
|
||||||
|
|
||||||
|
runtime:
|
||||||
|
source_ref: "source/vm.h, source/p8GlobalLuaFunctions.h"
|
||||||
|
notes: |
|
||||||
|
The FAKE-08 VM reimplements the PICO-8 API (128x128 screen, 16 colors,
|
||||||
|
4-channel audio, Lua scripting) entirely in C++. The built-in BIOS
|
||||||
|
provides a cart browser and error display. Audio runs at 22050 Hz
|
||||||
|
with save state support via custom serialization (libretro.cpp:517-736).
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "fbalpha2012"
|
||||||
|
type: alias
|
||||||
|
alias_of: "fbneo"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.2.97.29"
|
||||||
|
display_name: "Arcade (FB Alpha 2012)"
|
||||||
|
note: "This core uses the same BIOS/firmware as fbneo. See emulators/fbneo.yml for details."
|
||||||
|
files: []
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "fbalpha2012_cps1"
|
||||||
|
type: alias
|
||||||
|
alias_of: "fbneo"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.2.97.28"
|
||||||
|
display_name: "Arcade (FB Alpha 2012 CPS-1)"
|
||||||
|
note: "This core uses the same BIOS/firmware as fbneo. See emulators/fbneo.yml for details."
|
||||||
|
files: []
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "fbalpha2012_cps2"
|
||||||
|
type: alias
|
||||||
|
alias_of: "fbneo"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.2.97.28"
|
||||||
|
display_name: "Arcade (FB Alpha 2012 CPS-2)"
|
||||||
|
note: "This core uses the same BIOS/firmware as fbneo. See emulators/fbneo.yml for details."
|
||||||
|
files: []
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "fbalpha2012_cps3"
|
||||||
|
type: alias
|
||||||
|
alias_of: "fbneo"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.2.97.29"
|
||||||
|
display_name: "Arcade (FB Alpha 2012 CPS-3)"
|
||||||
|
note: "This core uses the same BIOS/firmware as fbneo. See emulators/fbneo.yml for details."
|
||||||
|
files: []
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "fbalpha2012_neogeo"
|
||||||
|
type: alias
|
||||||
|
alias_of: "fbneo"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.2.97.29"
|
||||||
|
display_name: "Arcade (FB Alpha 2012 Neo Geo)"
|
||||||
|
note: "This core uses the same BIOS/firmware as fbneo. See emulators/fbneo.yml for details."
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: FinalBurn Neo
|
emulator: FinalBurn Neo
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/FBNeo"
|
source: "https://github.com/libretro/FBNeo"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v1.0.0.03"
|
||||||
|
display_name: "Arcade (FinalBurn Neo)"
|
||||||
systems:
|
systems:
|
||||||
- snk-neogeo-mvs
|
- snk-neogeo-mvs
|
||||||
- snk-neogeo-aes
|
- snk-neogeo-aes
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: FCEUmm
|
emulator: FCEUmm
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/libretro-fceumm"
|
source: "https://github.com/libretro/libretro-fceumm"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "SVN"
|
||||||
|
display_name: "Nintendo - NES / Famicom (FCEUmm)"
|
||||||
systems: [nintendo-nes, nintendo-fds]
|
systems: [nintendo-nes, nintendo-fds]
|
||||||
|
|
||||||
notes: |
|
notes: |
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
emulator: FFmpeg
|
||||||
|
type: utility
|
||||||
|
source: "https://github.com/libretro/RetroArch"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "Git"
|
||||||
|
display_name: "FFmpeg"
|
||||||
|
cores:
|
||||||
|
- ffmpeg
|
||||||
|
systems: []
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
FFmpeg core is a media player built into RetroArch using libavcodec,
|
||||||
|
libavformat, and libswscale. Plays video and audio files directly
|
||||||
|
within the RetroArch interface.
|
||||||
|
|
||||||
|
No BIOS or system files required. Codec support depends on the
|
||||||
|
FFmpeg libraries linked at build time.
|
||||||
|
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: fixGB
|
emulator: fixGB
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/fixGB"
|
source: "https://github.com/libretro/fixGB"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "Alpha v0.8.2"
|
||||||
|
display_name: "Nintendo - Game Boy / Color (fixGB)"
|
||||||
cores:
|
cores:
|
||||||
- fixgb
|
- fixgb
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "fixnes"
|
||||||
|
type: alias
|
||||||
|
alias_of: "fceumm"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "Alpha v1.3.1"
|
||||||
|
display_name: "Nintendo - NES / Famicom (fixNES)"
|
||||||
|
note: "This core uses the same BIOS/firmware as fceumm. See emulators/fceumm.yml for details."
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Flycast
|
emulator: Flycast
|
||||||
type: standalone + libretro
|
type: standalone + libretro
|
||||||
source: "https://github.com/flyinghead/flycast"
|
source: "https://github.com/flyinghead/flycast"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "Git"
|
||||||
|
display_name: "Sega - Dreamcast/Naomi (Flycast)"
|
||||||
systems:
|
systems:
|
||||||
- sega-dreamcast
|
- sega-dreamcast
|
||||||
- sega-naomi
|
- sega-naomi
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: fMSX
|
emulator: fMSX
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/fmsx-libretro"
|
source: "https://github.com/libretro/fmsx-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "6.0"
|
||||||
|
display_name: "Microsoft - MSX (fMSX)"
|
||||||
cores:
|
cores:
|
||||||
- fmsx
|
- fmsx
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: FreeChaF
|
emulator: FreeChaF
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/FreeChaF"
|
source: "https://github.com/libretro/FreeChaF"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "GIT"
|
||||||
|
display_name: "Fairchild - ChannelF (FreeChaF)"
|
||||||
cores:
|
cores:
|
||||||
- freechaf
|
- freechaf
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: FreeIntv
|
emulator: FreeIntv
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/FreeIntv"
|
source: "https://github.com/libretro/FreeIntv"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "2018.1.5"
|
||||||
|
display_name: "Mattel - Intellivision (FreeIntv)"
|
||||||
cores:
|
cores:
|
||||||
- freeintv
|
- freeintv
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
emulator: "FreeIntv (Touchscreen Overlay)"
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/FreeIntv"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v2025.11.1"
|
||||||
|
display_name: "Mattel Intellivision (FreeIntvTSOverlay)"
|
||||||
|
cores:
|
||||||
|
- freeintv
|
||||||
|
systems:
|
||||||
|
- intellivision
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Same repo and core as FreeIntv. The touchscreen overlay feature is a
|
||||||
|
compile-time option within the same codebase, not a separate core. The
|
||||||
|
library_name is "freeintv" (src/libretro.c:1413), identical to the
|
||||||
|
non-overlay build.
|
||||||
|
|
||||||
|
The overlay system adds an onscreen interactive keypad for touchscreen
|
||||||
|
and mouse input. It is toggled via core option freeintv_multiscreen_overlay
|
||||||
|
(src/libretro_core_options.h:82-85). When enabled, the display splits into
|
||||||
|
game + keypad side-by-side (multi-screen mode).
|
||||||
|
|
||||||
|
Visual assets (controller base frame, banner, default keypad image) are
|
||||||
|
compiled into the binary from C headers: banner.h, keypad_frame_graphic.h,
|
||||||
|
default_keypad_image.h. These are NOT files the user needs to provide.
|
||||||
|
|
||||||
|
ROM-specific overlays are optional 370x600 PNG files placed by the user in
|
||||||
|
system/freeintv_overlays/<rom_name>.png. These are cosmetic per-game keypad
|
||||||
|
images and are not BIOS files.
|
||||||
|
|
||||||
|
BIOS loading is unchanged from the base FreeIntv core. retro_load_game()
|
||||||
|
(src/libretro.c:1169-1174) loads exec.bin and grom.bin from the system
|
||||||
|
directory with no variation based on overlay mode.
|
||||||
|
|
||||||
|
bios_identical_to: freeintv
|
||||||
|
|
||||||
|
files:
|
||||||
|
- name: "exec.bin"
|
||||||
|
system: intellivision
|
||||||
|
required: true
|
||||||
|
size: 8192
|
||||||
|
md5: 62e761035cb657903761800f4437b8af
|
||||||
|
note: "Executive ROM. Same file as base FreeIntv."
|
||||||
|
source_ref: "src/intv.c:47-71, src/libretro.c:1169"
|
||||||
|
|
||||||
|
- name: "grom.bin"
|
||||||
|
system: intellivision
|
||||||
|
required: true
|
||||||
|
size: 2048
|
||||||
|
md5: 0cd5946c6473e42e8e4c2137785e427f
|
||||||
|
note: "Graphics ROM. Same file as base FreeIntv."
|
||||||
|
source_ref: "src/intv.c:73-98, src/libretro.c:1173"
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: FreeJ2ME
|
emulator: FreeJ2ME
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/hex007/freej2me"
|
source: "https://github.com/hex007/freej2me"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "GIT"
|
||||||
|
display_name: "Mobile - J2ME (FreeJ2ME)"
|
||||||
cores:
|
cores:
|
||||||
- freej2me
|
- freej2me
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -0,0 +1,90 @@
|
|||||||
|
emulator: Frodo
|
||||||
|
type: libretro
|
||||||
|
cores: [frodo]
|
||||||
|
source: "https://github.com/libretro/frodo-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v4.2"
|
||||||
|
display_name: "Commodore - C64 (Frodo)"
|
||||||
|
systems: [commodore-c64]
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Frodo is a Commodore 64 emulator by Christian Bauer (Frodo V4.2), ported
|
||||||
|
to libretro. It emulates the C64 (MOS 6510, VIC-II, SID, CIA x2) and an
|
||||||
|
optional 1541 floppy drive.
|
||||||
|
|
||||||
|
All four ROMs are embedded directly in the core binary as compiled-in
|
||||||
|
byte arrays (Basic_ROM.h, Kernal_ROM.h, Char_ROM.h, 1541_ROM.h). No
|
||||||
|
external BIOS files are required for normal operation.
|
||||||
|
|
||||||
|
The core attempts to load external ROM files from the current working
|
||||||
|
directory (DATADIR is empty in the libretro build) at startup via
|
||||||
|
load_rom_files() in main.cpp. If any file fails to open or has the wrong
|
||||||
|
size, the embedded ROM is used as fallback via memcpy(). The filenames
|
||||||
|
are hardcoded with spaces, no subdirectory prefix.
|
||||||
|
|
||||||
|
ROM loading order in load_rom_files():
|
||||||
|
1. "Basic ROM" (8192 bytes, BASIC_ROM_SIZE 0x2000) -> TheC64->Basic
|
||||||
|
2. "Kernal ROM" (8192 bytes, KERNAL_ROM_SIZE 0x2000) -> TheC64->Kernal
|
||||||
|
3. "Char ROM" (4096 bytes, CHAR_ROM_SIZE 0x1000) -> TheC64->Char
|
||||||
|
4. "1541 ROM" (16384 bytes, DRIVE_ROM_SIZE 0x4000) -> TheC64->ROM1541
|
||||||
|
|
||||||
|
The core does NOT construct paths relative to retro_system_directory for
|
||||||
|
ROM loading. The system directory variable is fetched in retro_init() but
|
||||||
|
only used for the save directory fallback, not for ROM path construction.
|
||||||
|
DATADIR defaults to "" (empty string) when not defined by the build
|
||||||
|
system, so the filenames resolve to bare names in the cwd. In practice,
|
||||||
|
the external ROM loading path is effectively unused in the libretro build
|
||||||
|
since the cwd is unpredictable and the filenames contain spaces.
|
||||||
|
|
||||||
|
The Kernal ROM is patched at runtime by PatchKernal() in C64.cpp for
|
||||||
|
fast reset (addresses 0x1D84-0x1D85) and IEC bus replacement when 1541
|
||||||
|
processor emulation is enabled (multiple addresses in the 0x0D00-0x0E00
|
||||||
|
range are patched with 0xF2 trap opcodes).
|
||||||
|
|
||||||
|
The 1541 drive ROM is also patched at Reset() in C64.cpp: ROM checksum
|
||||||
|
verification is disabled (0x2AE4-0x2AE9 NOPed), DOS idle loop is
|
||||||
|
trapped (0x2C9B), and write sector / format track operations are
|
||||||
|
intercepted (0x3594-0x3598, 0x3B0C-0x3B0D).
|
||||||
|
|
||||||
|
Source: Src/main.cpp:67-115 (ROM defines, load_rom, load_rom_files),
|
||||||
|
Src/C64.h:33-37 (ROM size constants), Src/C64.cpp:221-284 (PatchKernal),
|
||||||
|
Src/C64.cpp:738-746 (Reset ROM patching),
|
||||||
|
Src/Basic_ROM.h, Src/Kernal_ROM.h, Src/Char_ROM.h, Src/1541_ROM.h
|
||||||
|
(embedded ROM arrays)
|
||||||
|
|
||||||
|
files:
|
||||||
|
- name: "Basic ROM"
|
||||||
|
system: commodore-c64
|
||||||
|
description: "C64 BASIC V2 ROM"
|
||||||
|
required: false
|
||||||
|
embedded: true
|
||||||
|
size: 8192
|
||||||
|
note: "Embedded as builtin_basic_rom[] in Basic_ROM.h. External file never loaded in practice (DATADIR is empty, path is bare filename in cwd)."
|
||||||
|
source_ref: "Src/main.cpp:71,77,100-102"
|
||||||
|
|
||||||
|
- name: "Kernal ROM"
|
||||||
|
system: commodore-c64
|
||||||
|
description: "C64 Kernal ROM"
|
||||||
|
required: false
|
||||||
|
embedded: true
|
||||||
|
size: 8192
|
||||||
|
note: "Embedded as builtin_kernal_rom[] in Kernal_ROM.h. Patched at runtime for fast reset and 1541 IEC traps."
|
||||||
|
source_ref: "Src/main.cpp:72,78,104-106"
|
||||||
|
|
||||||
|
- name: "Char ROM"
|
||||||
|
system: commodore-c64
|
||||||
|
description: "C64 Character Generator ROM"
|
||||||
|
required: false
|
||||||
|
embedded: true
|
||||||
|
size: 4096
|
||||||
|
note: "Embedded as builtin_char_rom[] in Char_ROM.h. Used by VIC-II for text/bitmap rendering."
|
||||||
|
source_ref: "Src/main.cpp:73,79,108-110"
|
||||||
|
|
||||||
|
- name: "1541 ROM"
|
||||||
|
system: commodore-c64
|
||||||
|
description: "Commodore 1541 floppy drive ROM"
|
||||||
|
required: false
|
||||||
|
embedded: true
|
||||||
|
size: 16384
|
||||||
|
note: "Embedded as builtin_drive_rom[] in 1541_ROM.h. Patched at runtime to disable checksum and trap disk I/O."
|
||||||
|
source_ref: "Src/main.cpp:74,80,112-114"
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "fsuae"
|
||||||
|
type: alias
|
||||||
|
alias_of: "puae"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v2.7.15"
|
||||||
|
display_name: "Commodore - Amiga (FS-UAE)"
|
||||||
|
note: "This core uses the same BIOS/firmware as puae. See emulators/puae.yml for details."
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Fuse
|
emulator: Fuse
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/fuse-libretro"
|
source: "https://github.com/libretro/fuse-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.6.0"
|
||||||
|
display_name: "Sinclair - ZX Spectrum (Fuse)"
|
||||||
cores:
|
cores:
|
||||||
- fuse
|
- fuse
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: galaksija
|
emulator: galaksija
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/galaxy-libretro"
|
source: "https://github.com/libretro/galaxy-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.1"
|
||||||
|
display_name: "Elektronika Inženjering - Galaksija (Galaksija)"
|
||||||
cores:
|
cores:
|
||||||
- galaksija
|
- galaksija
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
emulator: GAM4980
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/ThisBoringWorld/gam4980"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "0.2"
|
||||||
|
display_name: "GAM4980"
|
||||||
|
cores:
|
||||||
|
- gam4980
|
||||||
|
systems:
|
||||||
|
- bbk-longman-4980
|
||||||
|
|
||||||
|
# GAM4980 is a BBK Longman 4980 electronic dictionary game emulator for
|
||||||
|
# libretro. Original code from https://codeberg.org/iyzsong/gam4980, based
|
||||||
|
# on the BA4988 BBK simulator by Wuyun.
|
||||||
|
#
|
||||||
|
# The device uses a 6502-based CPU with banked ROM access.
|
||||||
|
#
|
||||||
|
# ROM loading (src/libretro.c:1171-1177, retro_init):
|
||||||
|
# The core gets the RetroArch system directory via RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY,
|
||||||
|
# appends "/gam4980" to build the ROM directory path, then calls sys_init(romdir).
|
||||||
|
#
|
||||||
|
# sys_init (src/libretro.c:693-723):
|
||||||
|
# Opens romdir/8.BIN and reads 0x200000 bytes (2 MB) into sys.rom_8 (font ROM).
|
||||||
|
# Opens romdir/E.BIN and reads 0x200000 bytes (2 MB) into sys.rom_e (OS ROM).
|
||||||
|
# Both files are mandatory -- no fallback, no error handling. The core will
|
||||||
|
# crash if either file is missing.
|
||||||
|
#
|
||||||
|
# Memory map (src/libretro.c:109-110, 300-305):
|
||||||
|
# 0x800000-0x9FFFFF rom_8 (font ROM, 8.BIN)
|
||||||
|
# 0xE00000-0xFFFFFF rom_e (OS ROM, E.BIN)
|
||||||
|
# These ROMs must be dumped from a physical BBK Longman 4980 dictionary.
|
||||||
|
#
|
||||||
|
# The .info file does not declare firmware entries. The core is marked
|
||||||
|
# is_experimental = true.
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Place 8.BIN and E.BIN in the RetroArch system/gam4980/ subdirectory.
|
||||||
|
Both files must be 2 MB dumps from a BBK Longman 4980 dictionary:
|
||||||
|
8.BIN - font ROM, dumped from address range 0x800000-0x9FFFFF
|
||||||
|
E.BIN - OS ROM, dumped from address range 0xE00000-0xFFFFFF
|
||||||
|
The core will crash without these files (no error handling in sys_init).
|
||||||
|
Game files use the .gam extension.
|
||||||
|
|
||||||
|
files:
|
||||||
|
- name: "gam4980/8.BIN"
|
||||||
|
size: 2097152
|
||||||
|
md5: ddfc001a6859d63ed46368ea7fe9f20c
|
||||||
|
sha1: 062067e6d661c3d3e10d910435be4a59db1bee9f
|
||||||
|
required: true
|
||||||
|
system: bbk-longman-4980
|
||||||
|
bundled: false
|
||||||
|
note: "Font ROM (2 MB). Loaded at 0x800000. Dumped from physical device (src/libretro.c:716-718)."
|
||||||
|
source_ref: "src/libretro.c:716"
|
||||||
|
|
||||||
|
- name: "gam4980/E.BIN"
|
||||||
|
size: 2097152
|
||||||
|
md5: 72a16fd0d2453108321edc65cd347c77
|
||||||
|
sha1: b486b6eda5cd7e79bb5605d1fbe36eb88bfc6724
|
||||||
|
required: true
|
||||||
|
system: bbk-longman-4980
|
||||||
|
bundled: false
|
||||||
|
note: "OS ROM (2 MB). Loaded at 0xE00000. Dumped from physical device (src/libretro.c:720-722)."
|
||||||
|
source_ref: "src/libretro.c:720"
|
||||||
|
|
||||||
|
platform_details:
|
||||||
|
bios_mapping:
|
||||||
|
target: "0x800000-0x9FFFFF (font), 0xE00000-0xFFFFFF (OS) in banked address space"
|
||||||
|
source_ref: "src/libretro.c:109-110, 300-305"
|
||||||
|
notes: |
|
||||||
|
sys.rom_8 and sys.rom_e are flat 2 MB arrays. The CPU accesses them
|
||||||
|
through bank-switched memory (PA() macro resolves virtual to physical
|
||||||
|
address). rom_8_vread and rom_e_vread handle indirect reads via
|
||||||
|
the banking system.
|
||||||
|
|
||||||
|
load_path:
|
||||||
|
source_ref: "src/libretro.c:1173-1177"
|
||||||
|
notes: |
|
||||||
|
retro_init() builds the path as {system_directory}/gam4980/ and
|
||||||
|
passes it to sys_init(). Files must be named exactly 8.BIN and
|
||||||
|
E.BIN (case sensitive on Linux). No .info firmware declarations
|
||||||
|
exist, so RetroArch won't warn about missing files at scan time.
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Gambatte
|
emulator: Gambatte
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/gambatte-libretro"
|
source: "https://github.com/libretro/gambatte-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v0.5.0"
|
||||||
|
display_name: "Nintendo - Game Boy / Color (Gambatte)"
|
||||||
systems: [nintendo-gb, nintendo-gbc]
|
systems: [nintendo-gb, nintendo-gbc]
|
||||||
|
|
||||||
notes: |
|
notes: |
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
emulator: "gearboy"
|
||||||
|
type: alias
|
||||||
|
alias_of: "gambatte"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "3.4.1"
|
||||||
|
display_name: "Nintendo - Game Boy / Color (Gearboy)"
|
||||||
|
note: "This core uses the same BIOS/firmware as gambatte. See emulators/gambatte.yml for details."
|
||||||
|
files: []
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Gearcoleco
|
emulator: Gearcoleco
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/drhelius/Gearcoleco"
|
source: "https://github.com/drhelius/Gearcoleco"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.0.0"
|
||||||
|
display_name: "Coleco - ColecoVision (Gearcoleco)"
|
||||||
cores:
|
cores:
|
||||||
- gearcoleco
|
- gearcoleco
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Geargrafx
|
emulator: Geargrafx
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/drhelius/Geargrafx"
|
source: "https://github.com/drhelius/Geargrafx"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.6.0"
|
||||||
|
display_name: "NEC - PC Engine / SuperGrafx / CD (Geargrafx)"
|
||||||
cores:
|
cores:
|
||||||
- geargrafx
|
- geargrafx
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Gearlynx
|
emulator: Gearlynx
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/drhelius/Gearlynx"
|
source: "https://github.com/drhelius/Gearlynx"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.0.0"
|
||||||
|
display_name: "Atari - Lynx (GearLynx)"
|
||||||
cores: [gearlynx]
|
cores: [gearlynx]
|
||||||
systems: [atari-lynx]
|
systems: [atari-lynx]
|
||||||
verification: existence
|
verification: existence
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Gearsystem
|
emulator: Gearsystem
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/drhelius/Gearsystem"
|
source: "https://github.com/drhelius/Gearsystem"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "3.2.0"
|
||||||
|
display_name: "Sega - MS/GG/SG-1000 (Gearsystem)"
|
||||||
cores:
|
cores:
|
||||||
- gearsystem
|
- gearsystem
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Genesis Plus GX
|
emulator: Genesis Plus GX
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/Genesis-Plus-GX"
|
source: "https://github.com/libretro/Genesis-Plus-GX"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "v1.7.4"
|
||||||
|
display_name: "Sega - MS/GG/MD/CD (Genesis Plus GX)"
|
||||||
cores:
|
cores:
|
||||||
- genesis_plus_gx
|
- genesis_plus_gx
|
||||||
- genesis_plus_gx_wide
|
- genesis_plus_gx_wide
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Geolith
|
emulator: Geolith
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/geolith-libretro"
|
source: "https://github.com/libretro/geolith-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "0.3.0"
|
||||||
|
display_name: "SNK - Neo Geo AES/MVS (Geolith)"
|
||||||
systems:
|
systems:
|
||||||
- snk-neogeo-mvs
|
- snk-neogeo-mvs
|
||||||
- snk-neogeo-aes
|
- snk-neogeo-aes
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
emulator: Game Music Emu
|
||||||
|
type: utility
|
||||||
|
source: "https://github.com/libretro/libretro-gme"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "Git"
|
||||||
|
display_name: "Game Music Emu"
|
||||||
|
cores: [gme]
|
||||||
|
systems: []
|
||||||
|
files: []
|
||||||
|
notes: >
|
||||||
|
Libretro wrapper around Blargg's Game Music Emu library.
|
||||||
|
Plays chiptune music files from various consoles: NSF (NES), SPC (SNES),
|
||||||
|
GBS (Game Boy), VGM/VGZ (Sega), HES (PC Engine), AY (ZX Spectrum),
|
||||||
|
SAP (Atari), KSS (MSX). Loads music files as content.
|
||||||
|
No BIOS, firmware, or system directory files required.
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
emulator: Gong
|
||||||
|
type: game
|
||||||
|
source: "https://github.com/libretro/gong"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.0"
|
||||||
|
display_name: "Gong"
|
||||||
|
cores: [gong]
|
||||||
|
systems: []
|
||||||
|
files: []
|
||||||
|
notes: >
|
||||||
|
Simple Pong clone written as a minimal libretro core example.
|
||||||
|
Self-contained with all rendering done programmatically.
|
||||||
|
No content file, BIOS, or system directory files required.
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: gpSP
|
emulator: gpSP
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/gpsp"
|
source: "https://github.com/libretro/gpsp"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "Git"
|
||||||
|
display_name: "Nintendo - Game Boy Advance (gpSP)"
|
||||||
cores:
|
cores:
|
||||||
- gpsp
|
- gpsp
|
||||||
systems:
|
systems:
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
emulator: "Game & Watch"
|
||||||
|
type: libretro
|
||||||
|
source: "https://github.com/libretro/gw-libretro"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "Git"
|
||||||
|
display_name: "Handheld Electronic (GW)"
|
||||||
|
cores:
|
||||||
|
- gw
|
||||||
|
systems:
|
||||||
|
- handheld-electronic
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
gw-libretro runs Game & Watch simulators converted from MADrigal's Pascal
|
||||||
|
source code via pas2lua. Each game is a self-contained .mgw archive (bzip2
|
||||||
|
compressed tar v7) containing Lua scripts, sprites, and sound data.
|
||||||
|
|
||||||
|
retro_get_system_info (libretro.c:187-194) sets valid_extensions to "mgw",
|
||||||
|
need_fullpath to false, and block_extract to false. The core reads content
|
||||||
|
entirely from the retro_game_info buffer passed by the frontend.
|
||||||
|
|
||||||
|
retro_load_game (libretro.c:256-310) passes the content buffer to
|
||||||
|
gwrom_init() which decompresses and parses the tar archive in memory.
|
||||||
|
gwlua_create() then initializes the Lua VM from the archive entries.
|
||||||
|
|
||||||
|
The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, never opens
|
||||||
|
files from the filesystem, and has no firmware or BIOS dependencies.
|
||||||
|
All game data is bundled in the .mgw content files available from
|
||||||
|
libretro's buildbot (bot.libretro.com/assets/cores/HandheldElectronicGame/).
|
||||||
|
|
||||||
|
No external BIOS or firmware files are needed.
|
||||||
|
|
||||||
|
files: []
|
||||||
|
|
||||||
|
analysis:
|
||||||
|
content_format:
|
||||||
|
extension: ".mgw"
|
||||||
|
archive_type: "tar v7 + bzip2"
|
||||||
|
decompression: "gwrom.c using bundled bzip2 library"
|
||||||
|
source_ref: "gwrom/gwrom.h:21-27"
|
||||||
|
game_engine:
|
||||||
|
language: "Lua (bundled lua 5.3)"
|
||||||
|
runtime: "gwlua (gwlua/)"
|
||||||
|
rendering: "retroluxury (retroluxury/)"
|
||||||
|
resolution: "128x128 base, variable via gwlua_set_fb/gwlua_zoom"
|
||||||
|
filesystem_access: false
|
||||||
|
system_directory_used: false
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Handy
|
emulator: Handy
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/libretro-handy"
|
source: "https://github.com/libretro/libretro-handy"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "0.95"
|
||||||
|
display_name: "Atari - Lynx (Handy)"
|
||||||
systems: [atari-lynx]
|
systems: [atari-lynx]
|
||||||
|
|
||||||
notes: |
|
notes: |
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
emulator: Hatari
|
emulator: Hatari
|
||||||
type: libretro
|
type: libretro
|
||||||
source: "https://github.com/libretro/hatari"
|
source: "https://github.com/libretro/hatari"
|
||||||
|
profiled_date: "2026-03-18"
|
||||||
|
core_version: "1.8"
|
||||||
|
display_name: "Atari - ST/STE/TT/Falcon (Hatari)"
|
||||||
systems: [atari-st, atari-ste, atari-tt, atari-falcon]
|
systems: [atari-st, atari-ste, atari-tt, atari-falcon]
|
||||||
|
|
||||||
# Hatari requires a TOS ROM image to boot. The default filename is tos.img,
|
# Hatari requires a TOS ROM image to boot. The default filename is tos.img,
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user