mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
Compare commits
9 Commits
9a69b49eac
...
58f3006d20
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
58f3006d20 | ||
|
|
d929424988 | ||
|
|
62262db6ac | ||
|
|
b43d71e113 | ||
|
|
a5553def94 | ||
|
|
31501211de | ||
|
|
6a778a09a3 | ||
|
|
ebc8e4413f | ||
|
|
a77477cbe8 |
18
emulators/00_example.yml
Normal file
18
emulators/00_example.yml
Normal file
@@ -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: []
|
||||
13
emulators/2048.yml
Normal file
13
emulators/2048.yml
Normal file
@@ -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.
|
||||
14
emulators/3dengine.yml
Normal file
14
emulators/3dengine.yml
Normal file
@@ -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.
|
||||
52
emulators/81.yml
Normal file
52
emulators/81.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/a5200"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "2.0.2"
|
||||
display_name: "Atari - 5200 (a5200)"
|
||||
cores:
|
||||
- a5200
|
||||
systems:
|
||||
|
||||
19
emulators/advanced_tests.yml
Normal file
19
emulators/advanced_tests.yml
Normal file
@@ -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: []
|
||||
38
emulators/amiarcadia.yml
Normal file
38
emulators/amiarcadia.yml
Normal file
@@ -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: []
|
||||
14
emulators/anarch.yml
Normal file
14
emulators/anarch.yml
Normal file
@@ -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.
|
||||
223
emulators/applewin.yml
Normal file
223
emulators/applewin.yml
Normal file
@@ -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)"
|
||||
87
emulators/ardens.yml
Normal file
87
emulators/ardens.yml
Normal file
@@ -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.
|
||||
46
emulators/arduous.yml
Normal file
46
emulators/arduous.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
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]
|
||||
|
||||
# Atari800 emulates the Atari 8-bit family (400/800/XL/XE) and the 5200 console.
|
||||
|
||||
8
emulators/azahar.yml
Normal file
8
emulators/azahar.yml
Normal file
@@ -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
|
||||
type: standalone
|
||||
source: "https://github.com/tom-seddon/b2"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.1"
|
||||
display_name: "Acorn - BBC Micro (b2)"
|
||||
cores: []
|
||||
systems:
|
||||
- bbc-micro-b
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Beetle Lynx (Mednafen Lynx)
|
||||
type: 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]
|
||||
systems: [atari-lynx]
|
||||
verification: existence
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Beetle NGP (Mednafen Neo Geo Pocket)
|
||||
type: 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]
|
||||
|
||||
notes: |
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Beetle PCE (Mednafen PCE)
|
||||
type: 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]
|
||||
systems: [nec-pc-engine]
|
||||
verification: existence
|
||||
|
||||
@@ -2,6 +2,9 @@ emulator: Beetle PC-FX (Mednafen)
|
||||
type: libretro
|
||||
cores: [mednafen_pcfx]
|
||||
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:
|
||||
- nec-pcfx
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Beetle PSX (Mednafen PSX)
|
||||
type: 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]
|
||||
systems: [sony-playstation]
|
||||
bios_size: 524288 # 512 KB for all accepted BIOS images
|
||||
|
||||
@@ -2,6 +2,9 @@ emulator: Beetle Saturn (Mednafen)
|
||||
type: libretro
|
||||
core: mednafen_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:
|
||||
- sega-saturn
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Beetle VB (Mednafen Virtual Boy)
|
||||
type: 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]
|
||||
|
||||
notes: |
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Beetle WonderSwan (Mednafen WonderSwan)
|
||||
type: 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]
|
||||
|
||||
notes: |
|
||||
|
||||
34
emulators/bennugd.yml
Normal file
34
emulators/bennugd.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
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:
|
||||
- bk
|
||||
systems:
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: BlastEm
|
||||
type: libretro
|
||||
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:
|
||||
- blastem
|
||||
systems:
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: blueMSX
|
||||
type: 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:
|
||||
- bluemsx
|
||||
systems:
|
||||
|
||||
62
emulators/bnes.yml
Normal file
62
emulators/bnes.yml
Normal file
@@ -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
|
||||
27
emulators/boom3.yml
Normal file
27
emulators/boom3.yml
Normal file
@@ -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: []
|
||||
75
emulators/boytacean.yml
Normal file
75
emulators/boytacean.yml
Normal file
@@ -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
|
||||
type: 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]
|
||||
|
||||
# bsnes supports HLE for DSP1/DSP1B/DSP2/DSP4, ST010, and Cx4.
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Cannonball
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/cannonball"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.0"
|
||||
display_name: "Cannonball"
|
||||
systems:
|
||||
- sega-outrun
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Caprice32
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-cap32"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v4.2.0"
|
||||
display_name: "Amstrad - CPC/GX4000 (Caprice32)"
|
||||
cores:
|
||||
- cap32
|
||||
systems:
|
||||
|
||||
8
emulators/cdi2015.yml
Normal file
8
emulators/cdi2015.yml
Normal file
@@ -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
|
||||
type: standalone
|
||||
source: "https://github.com/cemu-project/Cemu"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "2.6"
|
||||
display_name: "Cemu (Wii U)"
|
||||
systems: [nintendo-wiiu]
|
||||
analysis_date: "2026-03-17"
|
||||
analysis_commit: "HEAD (depth=1)"
|
||||
|
||||
14
emulators/chailove.yml
Normal file
14
emulators/chailove.yml
Normal file
@@ -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.
|
||||
9
emulators/chimerasnes.yml
Normal file
9
emulators/chimerasnes.yml
Normal file
@@ -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
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/azahar-emu/azahar"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Nintendo - 3DS (Citra)"
|
||||
systems: [nintendo-3ds]
|
||||
|
||||
notes: |
|
||||
|
||||
64
emulators/clownmdemu.yml
Normal file
64
emulators/clownmdemu.yml
Normal file
@@ -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.
|
||||
14
emulators/craft.yml
Normal file
14
emulators/craft.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-crocods"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v1"
|
||||
display_name: "Amstrad - CPC (CrocoDS)"
|
||||
cores:
|
||||
- crocods
|
||||
systems:
|
||||
|
||||
39
emulators/cruzes.yml
Normal file
39
emulators/cruzes.yml
Normal file
@@ -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
|
||||
59
emulators/daphne.yml
Normal file
59
emulators/daphne.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/desmume"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "SVN"
|
||||
display_name: "Nintendo - DS (DeSmuME)"
|
||||
cores: [desmume, desmume2015]
|
||||
systems: [nintendo-ds]
|
||||
|
||||
|
||||
70
emulators/dice.yml
Normal file
70
emulators/dice.yml
Normal file
@@ -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
|
||||
14
emulators/dinothawr.yml
Normal file
14
emulators/dinothawr.yml
Normal file
@@ -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.
|
||||
76
emulators/directxbox.yml
Normal file
76
emulators/directxbox.yml
Normal file
@@ -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.
|
||||
8
emulators/dirksimple.yml
Normal file
8
emulators/dirksimple.yml
Normal file
@@ -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
|
||||
type: standalone + libretro
|
||||
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]
|
||||
|
||||
# Dolphin has HLE for most system functions, so real BIOS/firmware files
|
||||
|
||||
23
emulators/dolphin_launcher.yml
Normal file
23
emulators/dolphin_launcher.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/dosbox-core"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "SVN"
|
||||
display_name: "DOS (DOSBox-core)"
|
||||
cores: [dosbox_core]
|
||||
systems: [dos]
|
||||
verification: sha1
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: DOSBox Pure
|
||||
type: libretro
|
||||
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]
|
||||
systems: [dos]
|
||||
verification: sha1
|
||||
|
||||
8
emulators/dosbox_svn.yml
Normal file
8
emulators/dosbox_svn.yml
Normal file
@@ -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: []
|
||||
8
emulators/dosbox_svn_ce.yml
Normal file
8
emulators/dosbox_svn_ce.yml
Normal file
@@ -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: []
|
||||
33
emulators/doublecherrygb.yml
Normal file
33
emulators/doublecherrygb.yml
Normal file
@@ -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: []
|
||||
57
emulators/doukutsu_rs.yml
Normal file
57
emulators/doukutsu_rs.yml
Normal file
@@ -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
|
||||
type: standalone
|
||||
source: "https://github.com/stenzek/duckstation"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.1"
|
||||
display_name: "Sony - PlayStation (DuckStation)"
|
||||
systems: [sony-playstation]
|
||||
bios_size: 524288 # 0x80000 (512 KB), also accepts PS2 (4 MB) and PS3 BIOS
|
||||
verification: md5
|
||||
|
||||
122
emulators/easyrpg.yml
Normal file
122
emulators/easyrpg.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
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]
|
||||
systems: [wolfenstein3d]
|
||||
verification: md5
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
emulator: EmuSCV
|
||||
type: libretro
|
||||
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:
|
||||
- emuscv
|
||||
systems:
|
||||
|
||||
46
emulators/emux_chip8.yml
Normal file
46
emulators/emux_chip8.yml
Normal file
@@ -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.
|
||||
8
emulators/emux_gb.yml
Normal file
8
emulators/emux_gb.yml
Normal file
@@ -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: []
|
||||
8
emulators/emux_nes.yml
Normal file
8
emulators/emux_nes.yml
Normal file
@@ -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: []
|
||||
8
emulators/emux_sms.yml
Normal file
8
emulators/emux_sms.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/ep128emu-core"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v1.2.10"
|
||||
display_name: "Enterprise - 64/128 (ep128emu)"
|
||||
cores:
|
||||
- ep128emu_core
|
||||
systems:
|
||||
|
||||
48
emulators/fake08.yml
Normal file
48
emulators/fake08.yml
Normal file
@@ -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).
|
||||
8
emulators/fbalpha2012.yml
Normal file
8
emulators/fbalpha2012.yml
Normal file
@@ -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: []
|
||||
8
emulators/fbalpha2012_cps1.yml
Normal file
8
emulators/fbalpha2012_cps1.yml
Normal file
@@ -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: []
|
||||
8
emulators/fbalpha2012_cps2.yml
Normal file
8
emulators/fbalpha2012_cps2.yml
Normal file
@@ -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: []
|
||||
8
emulators/fbalpha2012_cps3.yml
Normal file
8
emulators/fbalpha2012_cps3.yml
Normal file
@@ -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: []
|
||||
8
emulators/fbalpha2012_neogeo.yml
Normal file
8
emulators/fbalpha2012_neogeo.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/FBNeo"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v1.0.0.03"
|
||||
display_name: "Arcade (FinalBurn Neo)"
|
||||
systems:
|
||||
- snk-neogeo-mvs
|
||||
- snk-neogeo-aes
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: FCEUmm
|
||||
type: libretro
|
||||
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]
|
||||
|
||||
notes: |
|
||||
|
||||
19
emulators/ffmpeg.yml
Normal file
19
emulators/ffmpeg.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
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:
|
||||
- fixgb
|
||||
systems:
|
||||
|
||||
8
emulators/fixnes.yml
Normal file
8
emulators/fixnes.yml
Normal file
@@ -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
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/flyinghead/flycast"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Sega - Dreamcast/Naomi (Flycast)"
|
||||
systems:
|
||||
- sega-dreamcast
|
||||
- sega-naomi
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: fMSX
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/fmsx-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "6.0"
|
||||
display_name: "Microsoft - MSX (fMSX)"
|
||||
cores:
|
||||
- fmsx
|
||||
systems:
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: FreeChaF
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/FreeChaF"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "GIT"
|
||||
display_name: "Fairchild - ChannelF (FreeChaF)"
|
||||
cores:
|
||||
- freechaf
|
||||
systems:
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: FreeIntv
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/FreeIntv"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "2018.1.5"
|
||||
display_name: "Mattel - Intellivision (FreeIntv)"
|
||||
cores:
|
||||
- freeintv
|
||||
systems:
|
||||
|
||||
52
emulators/freeintv_ts_overlay.yml
Normal file
52
emulators/freeintv_ts_overlay.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
source: "https://github.com/hex007/freej2me"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "GIT"
|
||||
display_name: "Mobile - J2ME (FreeJ2ME)"
|
||||
cores:
|
||||
- freej2me
|
||||
systems:
|
||||
|
||||
90
emulators/frodo.yml
Normal file
90
emulators/frodo.yml
Normal file
@@ -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"
|
||||
8
emulators/fsuae.yml
Normal file
8
emulators/fsuae.yml
Normal file
@@ -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
|
||||
type: 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:
|
||||
- fuse
|
||||
systems:
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: galaksija
|
||||
type: 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:
|
||||
- galaksija
|
||||
systems:
|
||||
|
||||
81
emulators/gam4980.yml
Normal file
81
emulators/gam4980.yml
Normal file
@@ -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
|
||||
type: 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]
|
||||
|
||||
notes: |
|
||||
|
||||
8
emulators/gearboy.yml
Normal file
8
emulators/gearboy.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
source: "https://github.com/drhelius/Gearcoleco"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.0.0"
|
||||
display_name: "Coleco - ColecoVision (Gearcoleco)"
|
||||
cores:
|
||||
- gearcoleco
|
||||
systems:
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Geargrafx
|
||||
type: libretro
|
||||
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:
|
||||
- geargrafx
|
||||
systems:
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Gearlynx
|
||||
type: libretro
|
||||
source: "https://github.com/drhelius/Gearlynx"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.0.0"
|
||||
display_name: "Atari - Lynx (GearLynx)"
|
||||
cores: [gearlynx]
|
||||
systems: [atari-lynx]
|
||||
verification: existence
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Gearsystem
|
||||
type: libretro
|
||||
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:
|
||||
- gearsystem
|
||||
systems:
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Genesis Plus GX
|
||||
type: libretro
|
||||
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:
|
||||
- genesis_plus_gx
|
||||
- genesis_plus_gx_wide
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Geolith
|
||||
type: 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:
|
||||
- snk-neogeo-mvs
|
||||
- snk-neogeo-aes
|
||||
|
||||
15
emulators/gme.yml
Normal file
15
emulators/gme.yml
Normal file
@@ -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.
|
||||
13
emulators/gong.yml
Normal file
13
emulators/gong.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/gpsp"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Nintendo - Game Boy Advance (gpSP)"
|
||||
cores:
|
||||
- gpsp
|
||||
systems:
|
||||
|
||||
46
emulators/gw.yml
Normal file
46
emulators/gw.yml
Normal file
@@ -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
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-handy"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.95"
|
||||
display_name: "Atari - Lynx (Handy)"
|
||||
systems: [atari-lynx]
|
||||
|
||||
notes: |
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
emulator: Hatari
|
||||
type: libretro
|
||||
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]
|
||||
|
||||
# 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