mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-01 15:43:45 -06:00
Each libretro profile records version_basis and core_version is read there at its pin. snes9x states 1.63 in snes9x.h, nestopia 2.0.0, mgba 0.11.0, vice 3.10, atari800's libretro tree 7.0.0. Cores whose build takes its version from git carry the nearest tag in describe form (flycast v2.7-90-ge88b0ce, ppsspp, duckstation, gearcoleco), placeholders copied from .info files (Git, SVN) are replaced by the code's statement, and a code that states none is null with kind none.
152 lines
6.6 KiB
YAML
152 lines
6.6 KiB
YAML
emulator: Caprice32
|
|
type: standalone + libretro
|
|
core_classification: community_fork
|
|
source: "https://github.com/libretro/libretro-cap32"
|
|
upstream: "https://github.com/ColinPitrat/caprice32"
|
|
profiled_date: "2026-10-23"
|
|
source_commit: "8e61dd69d948cea16c3bad734f7b9d0c2a018cc8"
|
|
upstream_commit: "8c778bf072a06fb7c23b9cccd179041db7f79a52"
|
|
core_version: "4.5.4"
|
|
version_basis:
|
|
kind: file
|
|
path: "libretro/libretro-core.h"
|
|
pattern: '#define\s+VERSION_STRING\s+"([^"]+)"'
|
|
display_name: "Amstrad - CPC/GX4000 (Caprice32)"
|
|
cores:
|
|
- cap32
|
|
- caprice32
|
|
systems:
|
|
- amstrad-cpc
|
|
|
|
notes: |
|
|
Caprice32 is an Amstrad CPC emulator ported to libretro. Supports CPC 464,
|
|
CPC 464 with DDI-1 disc interface, CPC 664, CPC 6128, and CPC+ (Plus) models.
|
|
|
|
All system ROMs are compiled directly into the core binary as C header
|
|
arrays in cap32/rom/*.h. No external BIOS files are required.
|
|
|
|
Embedded ROMs (cap32/cap32.c:345-349, cap32/slots.c:33):
|
|
- cap32/rom/464.h: OS464_BASIC10[32768] - CPC 464 OS + BASIC 1.0
|
|
- cap32/rom/664.h: OS664_BASIC664[32768] - CPC 664 OS + BASIC 1.1
|
|
- cap32/rom/6128.h: OS_BASIC11[32768] - CPC 6128 OS + BASIC 1.1
|
|
- cap32/rom/amsdos.h: AMSDOS[16384] - AMSDOS disc ROM
|
|
- cap32/rom/6128p.h: OS_6128P[65580] - CPC+ system cartridge
|
|
- cap32/rom/cpm.h: CPM, CPM_SYS - CP/M boot memory dumps
|
|
|
|
ROM selection in emulator_select_ROM() (cap32/cap32.c:1081-1111):
|
|
- CPC 464: OS464_BASIC10, AMSDOS in slot 7 when the content is a disc
|
|
- CPC 664: OS664_BASIC664 + AMSDOS in slot 7
|
|
- CPC 6128: OS_BASIC11 + AMSDOS in slot 7
|
|
- CPC+: OS_6128P loaded as system cartridge via cpr_load()
|
|
|
|
Core option "cap32_model" lists "464DDI" (libretro/libretro-core.c:501),
|
|
but update_variables() matches only 464, 664, 6128 and 6128+ and leaves any
|
|
other value on the 6128 default (libretro/libretro-core.c:1035-1039). A 464
|
|
with disc content (slot SLOT_DSK, libretro/libretro-core.c:1865-1866) gets
|
|
AMSDOS in slot 7 (cap32/cap32.c:1088-1092).
|
|
|
|
The array chROMFile names "cpc464.rom", "cpc664.rom", "cpc6128.rom"
|
|
(cap32/cap32.c:353-357) and loadConfiguration() parses the rom_path,
|
|
slotNN and rom_mf2 keys of ./cap32.cfg (cap32/cap32.c:1842-1859), but no
|
|
code opens these files. The system directory is resolved in
|
|
libretro/libretro-core.c:1606-1625 under a "TODO: future use to load
|
|
custom bios" comment and no ROM is read from it.
|
|
|
|
Keyboard layout patches are applied to the ROM in memory for French
|
|
and Spanish layouts via rom_mods.h (cap32/cap32.c:1113-1137).
|
|
|
|
CP/M support assembles a 128KB snapshot from the CPM and CPM_SYS arrays
|
|
and loads it via snapshot_load_mem() in cap32/slots.c:71-90.
|
|
|
|
files:
|
|
# Standalone loads from rom_path/, libretro embeds all as C arrays.
|
|
# The standalone Windows and macOS zips ship all six in rom/.
|
|
- name: cpc464.rom
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
bundled: true
|
|
size: 32768
|
|
md5: a993f85b88ac4350cf4d41554e87fe4f
|
|
sha1: 56d39c463da60968d93e58b4ba0e675829412a20
|
|
note: "CPC 464 OS + BASIC 1.0, read when model=0"
|
|
source_ref: "upstream src/cap32.cpp:212-217, upstream src/cap32.cpp:1038-1052, upstream rom/cpc464.rom"
|
|
- name: cpc664.rom
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
bundled: true
|
|
size: 32768
|
|
md5: 5a384a2310f472c7857888371c00ed66
|
|
sha1: 073a7665527b5bd8a148747a3947dbd3328682c8
|
|
note: "CPC 664 OS + BASIC 1.1, read when model=1"
|
|
source_ref: "upstream src/cap32.cpp:212-217, upstream src/cap32.cpp:1038-1052, upstream rom/cpc664.rom"
|
|
- name: cpc6128.rom
|
|
system: amstrad-cpc
|
|
required: true
|
|
mode: standalone
|
|
bundled: true
|
|
size: 32768
|
|
md5: b96280dc6c95a48857b4b8eb931533ae
|
|
sha1: 5977adbad3f7c1e0e082cd02fe76a700d9860c30
|
|
note: "CPC 6128 OS + BASIC 1.1, default model=2. A missing file returns ERR_CPC_ROM_MISSING"
|
|
source_ref: "upstream src/cap32.cpp:212-217, upstream src/cap32.cpp:1038-1052, upstream src/cap32.cpp:1848, upstream rom/cpc6128.rom"
|
|
- name: amsdos.rom
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
bundled: true
|
|
size: 16384
|
|
md5: 25629dfe870d097469c217b95fdc1c95
|
|
sha1: 39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb
|
|
note: "AMSDOS disc ROM, shipped cap32.cfg sets slot07=DEFAULT, skipped on the 464. A missing file clears the slot"
|
|
source_ref: "upstream src/cap32.cpp:1202-1210, upstream src/cap32.cpp:1277-1281, upstream cap32.cfg:205-206, 215, upstream rom/amsdos.rom"
|
|
- name: system.cpr
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
bundled: true
|
|
size: 131156
|
|
md5: 39b565e648172980aa552293e667070f
|
|
sha1: 405e341437fab8db477606238af0c20eca2e39ee
|
|
note: "CPC+ system cartridge, default cartridge path"
|
|
source_ref: "upstream src/cap32.cpp:1953, upstream src/cap32.cpp:1182, upstream rom/system.cpr"
|
|
- name: MF2.rom
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
bundled: true
|
|
size: 8192
|
|
md5: 4c9f014e91d407cc6509fad0095ab909
|
|
sha1: 1431ec628d38f000715545dd2186b684c5fe5a6f
|
|
note: "Multiface 2 ROM, read when mf2=1. Checks the \"MULTIFACE 2\" signature at 0x0d32"
|
|
source_ref: "upstream src/cap32.cpp:1284-1310, upstream rom/MF2.rom"
|
|
|
|
platform_details:
|
|
bios_mapping:
|
|
source_ref: "source cap32/cap32.c:1081-1111, source cap32/cap32.c:345-349"
|
|
note: |
|
|
All ROMs are embedded. emulator_select_ROM() copies the ROM array for
|
|
CPC.model into pbROM. No filesystem lookup occurs in the libretro
|
|
port. retro_system_bios_directory is set in
|
|
libretro/libretro-core.c:1606-1625 and no ROM is read from it.
|
|
|
|
embedded_roms:
|
|
source_ref: "source cap32/rom/464.h, source cap32/rom/664.h, source cap32/rom/6128.h, source cap32/rom/amsdos.h, source cap32/rom/6128p.h, source cap32/rom/cpm.h"
|
|
note: |
|
|
6 headers embedded as C arrays:
|
|
OS464_BASIC10 (32KB) - CPC 464 OS + BASIC 1.0, sha1 56d39c463da60968d93e58b4ba0e675829412a20
|
|
OS664_BASIC664 (32KB) - CPC 664 OS + BASIC 1.1, sha1 073a7665527b5bd8a148747a3947dbd3328682c8
|
|
OS_BASIC11 (32KB) - CPC 6128 OS + BASIC 1.1, sha1 5977adbad3f7c1e0e082cd02fe76a700d9860c30
|
|
AMSDOS (16KB) - disc ROM mapped to slot 7, sha1 39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb
|
|
OS_6128P (65580 B) - CPC+ system cartridge
|
|
CPM, CPM_SYS - CP/M memory dumps assembled into a 128KB snapshot
|
|
|
|
model_rom_map:
|
|
source_ref: "source cap32/cap32.c:1081-1111"
|
|
note: |
|
|
CPC 464: OS464_BASIC10, AMSDOS in ROM slot 7 when the content is a disc
|
|
CPC 664: OS664_BASIC664 + AMSDOS in ROM slot 7
|
|
CPC 6128: OS_BASIC11 + AMSDOS in ROM slot 7
|
|
CPC+: 6128P system cartridge (or user-provided .cpr file)
|