mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
feat: profile six libretro cores from source
anybor, anygm, sm2, tgpulse_next_m1, zcdi and zesarpcw had a core-info file and no profile. parallel_psp and parallel_xbox are left out: no source is published for them.
This commit is contained in:
1 parent
47593c58d7
commit
b690a03864
8 files changed
+389
No files matched your search
@@ -0,0 +1,39 @@
|
||||
emulator: "AnyBOR"
|
||||
type: libretro
|
||||
core_classification: game_engine
|
||||
source: "https://github.com/retrodiv/AnyBOR-libretro"
|
||||
upstream: "https://github.com/DCurrent/openbor"
|
||||
profiled_date: "2026-11-09"
|
||||
source_commit: "6ffe33bc980046e9c8422a54a3554479501f6e50"
|
||||
core_version: "0.1.83"
|
||||
version_basis:
|
||||
kind: file
|
||||
path: "src/glue/obor_engines.h"
|
||||
pattern: '#define OBOR_CORE_VERSION "([^"]+)"'
|
||||
display_name: "OpenBOR (AnyBOR)"
|
||||
cores:
|
||||
- "anybor"
|
||||
systems:
|
||||
- openbor
|
||||
|
||||
notes: |
|
||||
A libretro core for OpenBOR games with 233 build profiles, from 3020 to
|
||||
8023, run on nine engines compiled from DCurrent/openbor revisions that
|
||||
src/pin.json names. A profile is picked per game from build tags and
|
||||
content clues, or set in a core option.
|
||||
ref: src/pin.json:1-20, src/glue/obor_engines.h:6-7, src/glue/libretro.cpp:1278-1287
|
||||
|
||||
The content is a .pak or .spk archive, a .zip holding one game, or the
|
||||
data/models.txt of an unpacked mod. A save directory is required, and the
|
||||
core refuses to load without one.
|
||||
ref: src/glue/libretro.cpp:2673-2685, src/glue/libretro.cpp:2700-2719,
|
||||
src/glue/libretro.cpp:2724-2765
|
||||
|
||||
The only file read from the system directory is AnyBOR.ini, an optional
|
||||
configuration written by the user that selects a transform for packed
|
||||
content with a custom header. Absent, no transform runs. The engines are
|
||||
built into the core and no BIOS or data file is read.
|
||||
ref: src/glue/obor_transform.h:83-104, src/glue/obor_packed_prepare.h:22-37,
|
||||
src/glue/libretro.cpp:2766-2776
|
||||
|
||||
files: []
|
||||
@@ -0,0 +1,32 @@
|
||||
emulator: "AnyGM"
|
||||
type: libretro
|
||||
core_classification: game_engine
|
||||
source: "https://github.com/retrodiv/AnyGM-libretro"
|
||||
profiled_date: "2026-11-09"
|
||||
source_commit: "12c024740e2982db65e2dbe304dbb66744513572"
|
||||
core_version: "0.1.667"
|
||||
version_basis:
|
||||
kind: file
|
||||
path: "src/api/anygm.h"
|
||||
pattern: '#define ANYGM_VERSION "([^"]+)"'
|
||||
display_name: "GameMaker (AnyGM)"
|
||||
cores:
|
||||
- "anygm"
|
||||
systems:
|
||||
- gamemaker
|
||||
|
||||
notes: |
|
||||
A runtime for GameMaker games written for libretro, with one engine for the
|
||||
classic editor projects (Game Maker 5.3 to 8.1) and the Studio 1.x and 2.x
|
||||
data containers. The content is the game itself, and no GameMaker runner
|
||||
is read.
|
||||
ref: src/adapters/libretro/libretro_entry.c:226-233
|
||||
|
||||
The only file read from the system directory is AnyGM.ini, an optional
|
||||
configuration written by the user with content transforms and per-game
|
||||
overrides. Absent, the defaults apply. When the frontend names no save
|
||||
directory, the core writes its saves under <system>/AnyGM.
|
||||
ref: src/adapters/libretro/libretro_entry.c:330-345, src/adapters/libretro/libretro_entry.c:418-421,
|
||||
src/api/anygm.h:318-326, src/content/container/content_router.c:2027-2050
|
||||
|
||||
files: []
|
||||
@@ -0,0 +1,81 @@
|
||||
emulator: "SM2-Emu"
|
||||
type: libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/Zer0one/sm2-emu-libretro"
|
||||
upstream: "https://github.com/dmanlfc/sm2-emu"
|
||||
profiled_date: "2026-11-09"
|
||||
source_commit: "6b282b94e781e20b2b6d522d0dcef5974b7a5d84"
|
||||
upstream_commit: "8bb80c157b294c1229bd8c1054d13f87daab52c0"
|
||||
core_version: "0.9.56.1"
|
||||
version_basis:
|
||||
kind: file
|
||||
path: "src/libretro/core.cpp"
|
||||
pattern: '\{"SM2-Emu", "([^"]+)"'
|
||||
display_name: "Sega - Model 2 (SM2-Emu Libretro)"
|
||||
cores:
|
||||
- "sm2"
|
||||
systems:
|
||||
- sega-model2
|
||||
|
||||
notes: |
|
||||
A libretro port of dmanlfc's SM2-Emu, a Sega Model 2 emulator. The port
|
||||
shares dmanlfc's history up to 8b3a468 (2026-09-09) and has taken later
|
||||
upstream releases by hand, up to 0.9.56.
|
||||
ref: src/libretro/core.cpp:956-959
|
||||
|
||||
The game list is games.xml, read from <system>/sm2-emu/. The core refuses
|
||||
to load any game without it. It names every set, its parent and device
|
||||
sets, the chips of each region and their CRC32. The content is a MAME set
|
||||
in .zip or .7z. Its chips are matched by CRC32, or by name when the ROM CRC
|
||||
Verification core option is off. A clone also reads its parent beside the
|
||||
content.
|
||||
ref: src/libretro/core.cpp:634-641, src/libretro/core.cpp:977-1001,
|
||||
src/rom/rom_loader.cpp:195-206, src/rom/rom_loader.cpp:765-781,
|
||||
src/libretro/core_options.h:196-202
|
||||
|
||||
Daytona USA, its clones and Desert Tank name the model1io device set, Virtua
|
||||
Cop and its clone model1io2. The device archive is looked for in
|
||||
<system>/sm2-emu/ and then beside the content, and its chips win over the
|
||||
copies a game set carries. A game set that holds the I/O board ROM runs
|
||||
without the device archive.
|
||||
ref: data/games.xml:1004-1010, data/games.xml:1442-1448, data/games.xml:5846-5852,
|
||||
src/rom/game_db.cpp:463-475, src/rom/game_db.cpp:813, src/rom/rom_loader.cpp:784-812
|
||||
|
||||
Gun games read custom crosshair images from <system>/sm2-emu/crosshairs/,
|
||||
named after the set, its parent or default, with -p1 or -p2 or without.
|
||||
They are artwork the user adds, and a built-in crosshair is drawn without
|
||||
them.
|
||||
ref: src/libretro/core.cpp:1009, src/libretro/crosshair.cpp:137-146
|
||||
|
||||
files:
|
||||
- name: "games.xml"
|
||||
path: "sm2-emu/games.xml"
|
||||
system: sega-model2
|
||||
required: true
|
||||
description: "SM2-Emu game database"
|
||||
note: "The data/games.xml of the core's own tree, at the revision of the build. Without it no game loads."
|
||||
source_ref: "src/libretro/core.cpp:987-998"
|
||||
|
||||
- name: "model1io.zip"
|
||||
path: "sm2-emu/model1io.zip"
|
||||
category: bios_zip
|
||||
system: sega-model2
|
||||
required: true
|
||||
description: "Sega Model 1 I/O board device set"
|
||||
note: "Named by daytona and desert, and by the daytona clones through their parent. Also read as model1io.7z or beside the content. Those games do not start without the chip, unless their own set carries it."
|
||||
source_ref: "data/games.xml:1004-1010, data/games.xml:1027-1029, src/rom/rom_loader.cpp:784-799"
|
||||
contents:
|
||||
- name: "epr-14869c.25"
|
||||
crc32: "24b68e64"
|
||||
|
||||
- name: "model1io2.zip"
|
||||
path: "sm2-emu/model1io2.zip"
|
||||
category: bios_zip
|
||||
system: sega-model2
|
||||
required: true
|
||||
description: "Sega Model 1 advanced I/O board device set"
|
||||
note: "Named by vcop, and by vcopa through its parent. Also read as model1io2.7z or beside the content. Those games do not start without the chip, unless their own set carries it."
|
||||
source_ref: "data/games.xml:5846-5852, data/games.xml:5897-5899, src/rom/rom_loader.cpp:784-799"
|
||||
contents:
|
||||
- name: "epr-17181.6"
|
||||
crc32: "1add2b82"
|
||||
@@ -0,0 +1,129 @@
|
||||
emulator: "TGPulse-Next"
|
||||
type: libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/Zer0one/tgpulse-next-libretro"
|
||||
upstream: "https://github.com/Zer0one/TGPulse-Next"
|
||||
profiled_date: "2026-11-09"
|
||||
source_commit: "ef21af3921f3f3914ed698ff8962c88b5b1322cd"
|
||||
upstream_commit: "3c75f9b2b155e8bb50a225c69520948ef72ecd48"
|
||||
upstream_frozen: "The port's tree was imported as a snapshot of TGPulse-Next main at this commit, as NOTICE records, with a fresh history."
|
||||
core_version: "0.1.0.13"
|
||||
version_basis:
|
||||
kind: file
|
||||
path: "crates/tgpulse-libretro/src/lib.rs"
|
||||
pattern: 'library_version: c"([^"]+)"'
|
||||
display_name: "Sega - Model 1 (TGPulse-Next)"
|
||||
cores:
|
||||
- "tgpulse_next_m1"
|
||||
systems:
|
||||
- sega-model1
|
||||
|
||||
notes: |
|
||||
A Sega Model 1 libretro core in Rust, built from TGPulse-Next, itself based
|
||||
on deepblueworks/TGPulse. This build compiles the Model 1 machine only. The
|
||||
content is a MAME set in a .zip, recognised by its file names against the
|
||||
game list built into the core, and a Model 2 set is refused.
|
||||
ref: NOTICE:1-3, crates/tgpulse-libretro/src/lib.rs:2490-2500,
|
||||
crates/tgpulse-libretro/src/lib.rs:2040-2054
|
||||
|
||||
Every Model 1 game runs the firmware of its I/O board, which the set does
|
||||
not need to carry. It is read from model1io.zip or model1io2.zip, in
|
||||
<system>/tgpulse-next/, then beside the game, then from the game's own
|
||||
archive. A member counts only at 65536 bytes and the SHA-1 the core
|
||||
hardcodes, and a bad copy passes on to the next place. Without a valid
|
||||
copy the game does not start.
|
||||
ref: crates/tgpulse-libretro/src/lib.rs:720-728, crates/tgpulse-libretro/src/lib.rs:2058-2059,
|
||||
crates/tgpulse-core/src/loader.rs:403-417, crates/tgpulse-core/src/roms_db.rs:324-346,
|
||||
crates/tgpulse-core/src/loader/model1_bios.rs:8-29, crates/tgpulse-core/src/loader/model1_bios.rs:36-48
|
||||
|
||||
The NetMerc diagnostic display draws the cabinet's HD44780 LCD with the
|
||||
character ROM of hd44780.zip, read in the same three places. It is off by
|
||||
default, and without the ROM no LCD is drawn.
|
||||
ref: crates/tgpulse-core/src/loader/model1_bios.rs:6, crates/tgpulse-core/src/loader/model1_bios.rs:31-34,
|
||||
crates/tgpulse-libretro/src/diagnostic_overlay.rs:28-35
|
||||
|
||||
NetMerc's sample ROMs are bad dumps. The Audio Donor option takes the PCM
|
||||
banks of vf, vr, swa or wingwar from that game's set beside the content,
|
||||
vf by default, and a procedural fallback plays without one.
|
||||
ref: crates/tgpulse-libretro/src/lib.rs:475-504, crates/tgpulse-core/src/loader/audio_donor.rs:34-71,
|
||||
crates/tgpulse-core/src/config.rs:6-26
|
||||
|
||||
archive_prefix: "tgpulse-next"
|
||||
|
||||
files:
|
||||
- name: "model1io.zip"
|
||||
path: "tgpulse-next/model1io.zip"
|
||||
system: sega-model1
|
||||
required: true
|
||||
category: bios_zip
|
||||
description: "Sega Model 1 I/O board device set"
|
||||
note: "I/O firmware of Virtua Racing, Virtua Formula, Virtua Fighter and Star Wars Arcade. Also read beside the game, then from the game's own archive."
|
||||
source_ref: "crates/tgpulse-core/src/loader/model1_bios.rs:36-48, crates/tgpulse-core/src/loader/model1_bios.rs:8-12"
|
||||
|
||||
- name: "epr-14869.25"
|
||||
archive: model1io.zip
|
||||
system: sega-model1
|
||||
required: true
|
||||
size: 65536
|
||||
sha1: "b65fdd0ad31794a565a0ca4dc67a3f16b329fd71"
|
||||
validation: [size, sha1]
|
||||
note: "Read for vr and vformula."
|
||||
source_ref: "crates/tgpulse-core/src/loader/model1_bios.rs:40, crates/tgpulse-core/src/roms_db.dat:3605, crates/tgpulse-core/src/roms_db.dat:3788"
|
||||
|
||||
- name: "epr-14869b.25"
|
||||
archive: model1io.zip
|
||||
system: sega-model1
|
||||
required: true
|
||||
size: 65536
|
||||
sha1: "af0fe245eb9fa3c3c60e4b685f1e779f83d894f9"
|
||||
validation: [size, sha1]
|
||||
note: "Read for vf, swa and swaj."
|
||||
source_ref: "crates/tgpulse-core/src/loader/model1_bios.rs:41, crates/tgpulse-core/src/roms_db.dat:3009, crates/tgpulse-core/src/roms_db.dat:3061, crates/tgpulse-core/src/roms_db.dat:3358"
|
||||
|
||||
- name: "model1io2.zip"
|
||||
path: "tgpulse-next/model1io2.zip"
|
||||
system: sega-model1
|
||||
required: true
|
||||
category: bios_zip
|
||||
description: "Sega Model 1 advanced I/O board device set"
|
||||
note: "I/O firmware of Wing War and NetMerc. Also read beside the game, then from the game's own archive."
|
||||
source_ref: "crates/tgpulse-core/src/loader/model1_bios.rs:36-48, crates/tgpulse-core/src/loader/model1_bios.rs:8-12"
|
||||
|
||||
- name: "epr-16891.6"
|
||||
archive: model1io2.zip
|
||||
system: sega-model1
|
||||
required: true
|
||||
size: 65536
|
||||
sha1: "3079397c7241c1a6f494fa310faff0989dfa04a0"
|
||||
validation: [size, sha1]
|
||||
note: "Read for wingwar, wingwar360, wingwarj and wingwaru."
|
||||
source_ref: "crates/tgpulse-core/src/loader/model1_bios.rs:42, crates/tgpulse-core/src/roms_db.dat:3971"
|
||||
|
||||
- name: "epr-18021.6"
|
||||
archive: model1io2.zip
|
||||
system: sega-model1
|
||||
required: true
|
||||
size: 65536
|
||||
sha1: "bf5b9aad99c0f8f5e262e0855796f39119d11a97"
|
||||
validation: [size, sha1]
|
||||
note: "Read for netmerc."
|
||||
source_ref: "crates/tgpulse-core/src/loader/model1_bios.rs:43, crates/tgpulse-core/src/roms_db.dat:1958"
|
||||
|
||||
- name: "hd44780.zip"
|
||||
path: "tgpulse-next/hd44780.zip"
|
||||
system: sega-model1
|
||||
required: false
|
||||
category: bios_zip
|
||||
description: "HD44780 LCD controller character ROM set"
|
||||
note: "Read only when the NetMerc diagnostic display is switched on. Also read beside the game, then from the game's own archive."
|
||||
source_ref: "crates/tgpulse-core/src/loader/model1_bios.rs:31-34, crates/tgpulse-libretro/src/diagnostic_overlay.rs:28-35"
|
||||
|
||||
- name: "hd44780_a00.bin"
|
||||
archive: hd44780.zip
|
||||
system: sega-model1
|
||||
required: false
|
||||
size: 4096
|
||||
sha1: "65cf075a988cdcbb316b9afdd0529b374a1a65ec"
|
||||
validation: [size, sha1]
|
||||
note: "HD44780 A00 character ROM, the font of the diagnostic LCD."
|
||||
source_ref: "crates/tgpulse-core/src/loader/model1_bios.rs:6, crates/tgpulse-core/src/loader/model1_bios.rs:31-34"
|
||||
@@ -0,0 +1,67 @@
|
||||
emulator: "zcdi"
|
||||
type: libretro
|
||||
core_classification: pure_libretro
|
||||
source: "https://github.com/pastisme/zcdi"
|
||||
profiled_date: "2026-11-09"
|
||||
source_commit: "b7481411e6939b2c1745067a646bfd43479e2a3c"
|
||||
core_version: "0.1.0"
|
||||
version_basis:
|
||||
kind: file
|
||||
path: "CMakeLists.txt"
|
||||
pattern: 'project\(zcdi VERSION ([0-9.]+)'
|
||||
display_name: "Philips - CD-i (zcdi)"
|
||||
cores:
|
||||
- "zcdi"
|
||||
systems:
|
||||
- philips-cdi
|
||||
|
||||
notes: |
|
||||
A Philips CD-i Mono-I emulator written for libretro: SCC68070 CPU, MCD212
|
||||
video, CDIC disc controller and the 22ER9141 Digital Video Cartridge, with
|
||||
device code from MAME's cdi driver and CDi_MiSTer. It runs the original BIOS.
|
||||
ref: src/libretro/libretro_core.cpp:113-120
|
||||
|
||||
The Video Standard core option (zcdi_preferred_bios, ntsc by default)
|
||||
picks the BIOS: cdi200.rom for NTSC, cdi220b.rom for PAL. The file is read
|
||||
from the system directory root, and retro_load_game fails when it is
|
||||
absent, also when no disc is loaded. The dump is mapped as it is, with no
|
||||
size or hash check.
|
||||
ref: src/libretro/libretro_core.cpp:55-58, src/libretro/libretro_core.cpp:166-173,
|
||||
src/libretro/core_options.cpp:110-112, src/libretro/helpers.cpp:70-83,
|
||||
src/core/bus.cpp:72-77
|
||||
|
||||
With DVC Enabled on auto (the default), vmpega.rom is read from the system
|
||||
directory, and at most 256 KB of it are mapped. Without it the player has
|
||||
no Digital Video Cartridge.
|
||||
ref: src/libretro/libretro_core.cpp:60, src/libretro/libretro_core.cpp:175-180,
|
||||
src/core/bus.cpp:79-83
|
||||
|
||||
NVRAM is saved per disc by default. The global mode keeps one file,
|
||||
zcdi_<bios stem>.nvram, in the save directory, which the core writes
|
||||
itself.
|
||||
ref: src/libretro/libretro_core.cpp:182-190, src/libretro/helpers.cpp:90-97
|
||||
|
||||
files:
|
||||
- name: "cdi200.rom"
|
||||
path: "cdi200.rom"
|
||||
system: philips-cdi
|
||||
required: true
|
||||
description: "CD-i Mono-I BIOS 2.00, NTSC"
|
||||
note: "Read when Video Standard is NTSC, the default. The core does not start without it."
|
||||
source_ref: "src/libretro/libretro_core.cpp:55-58, src/libretro/libretro_core.cpp:166-173, src/libretro/helpers.cpp:70-83"
|
||||
|
||||
- name: "cdi220b.rom"
|
||||
path: "cdi220b.rom"
|
||||
system: philips-cdi
|
||||
required: false
|
||||
description: "CD-i Mono-I BIOS 2.20b, PAL"
|
||||
note: "Read in place of cdi200.rom when Video Standard is PAL, and the core does not start without it then."
|
||||
source_ref: "src/libretro/libretro_core.cpp:55-58, src/libretro/libretro_core.cpp:166-173, src/libretro/core_options.cpp:110-112"
|
||||
|
||||
- name: "vmpega.rom"
|
||||
path: "vmpega.rom"
|
||||
system: philips-cdi
|
||||
required: false
|
||||
description: "Digital Video Cartridge ROM"
|
||||
note: "Read when DVC Enabled is auto, the default. Bytes past 256 KB are dropped. Without it there is no Digital Video Cartridge and the Digital Video titles do not play."
|
||||
source_ref: "src/libretro/libretro_core.cpp:60, src/libretro/libretro_core.cpp:175-180, src/core/bus.cpp:79-83"
|
||||
@@ -0,0 +1,38 @@
|
||||
emulator: "ZEsarPCW"
|
||||
type: libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/retrodiv/ZEsarPCW-libretro"
|
||||
upstream: "https://github.com/chernandezba/zesarux"
|
||||
profiled_date: "2026-11-09"
|
||||
source_commit: "23af8913c0ff22b9d89646ca9f98660db17f0057"
|
||||
upstream_commit: "0bb4277d714128311d78bc0625fb12ae8308899a"
|
||||
upstream_frozen: "The port is built from the ZEsarUX-13.0 release tarball that src/pin.json names, this tag's commit. Later ZEsarUX commits are not in it."
|
||||
core_version: "13.0.4"
|
||||
version_basis:
|
||||
kind: file
|
||||
path: "src/libretro/pcw_version.h"
|
||||
pattern: '#define PCW_CORE_VERSION "([^"]+)"'
|
||||
display_name: "Amstrad - PCW (ZEsarPCW)"
|
||||
cores:
|
||||
- "zesarpcw"
|
||||
systems:
|
||||
- pcw
|
||||
|
||||
notes: |
|
||||
An Amstrad PCW 8256 and 8512 core cut out of ZEsarUX 13.0, with every
|
||||
other machine removed. The major and minor numbers of library_version are
|
||||
the ZEsarUX release, the last one the port's own.
|
||||
ref: src/pin.json:1-8, src/libretro/libretro.c:246-255
|
||||
|
||||
The PCW boot ROM sequence is replaced by a bootstrap written in C, which
|
||||
loads the boot sector of the inserted disc. When the disc is not bootable,
|
||||
the OpenPCW-OS helper disc embedded in the core is mounted instead and
|
||||
starts CP/M. Neither reads a file.
|
||||
ref: src/cpu.c:487, src/libretro/pcw_boot.c:26-30, src/machines/pcw.c:1322-1358,
|
||||
src/dsk.c:161-166, src/dsk.c:382-385
|
||||
|
||||
The core never asks the frontend for its system directory. The only files
|
||||
it opens are the content discs.
|
||||
ref: src/dsk.c:169-180
|
||||
|
||||
files: []
|
||||
@@ -969,6 +969,7 @@ SYSTEM_NAMES: dict[str, str] = {
|
||||
"galaksija": "Galaksija computer",
|
||||
"game": "Picross puzzle (libretro sample)",
|
||||
"gamecom": "Tiger Game.com",
|
||||
"gamemaker": "GameMaker games",
|
||||
"gameplan-mpu1": "Game Plan MPU-1",
|
||||
"gamepock": "Epoch Game Pocket Computer",
|
||||
"gametank": "GameTank console",
|
||||
@@ -1131,6 +1132,7 @@ SYSTEM_NAMES: dict[str, str] = {
|
||||
"sega-isgsm": "Sega ISG Selection Master",
|
||||
"sega-megaplay": "Sega Mega Play",
|
||||
"sega-megatech": "Sega Mega-Tech",
|
||||
"sega-model1": "Sega Model 1",
|
||||
"sega-model2": "Sega Model 2",
|
||||
"sega-naomi": "Sega NAOMI",
|
||||
"sega-naomi2": "Sega NAOMI 2",
|
||||
|
||||
@@ -69,6 +69,7 @@ STEM_NAMED = {
|
||||
"simple64": "window title simple64",
|
||||
"sixtyforce": "site title sixtyforce",
|
||||
"veesem": "README title veesem",
|
||||
"zcdi": "README title zcdi",
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user