mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-11 05:53:23 -05:00
141 lines
6.0 KiB
YAML
141 lines
6.0 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-06"
|
|
source_commit: "c23855092f5f49981a5096f4d39033ff573ebca7"
|
|
upstream_commit: "6c12c4c92360065cdc229ac9ada7551f941436b8"
|
|
core_version: "v4.2.0"
|
|
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:1082-1114):
|
|
- CPC 464: OS464_BASIC10
|
|
- CPC 464DDI: OS464_BASIC10 + AMSDOS in slot 7
|
|
- 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" accepts "464DDI" (libretro/libretro-core.c:501,
|
|
libretro/libretro-core.c:1035). A 464 loading disc content is switched to
|
|
464DDI (libretro/libretro-core.c:1364-1368).
|
|
|
|
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:1846-1863), but no
|
|
code opens these files. The system directory is resolved in
|
|
libretro/libretro-core.c:1617-1636 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:1116-1141).
|
|
|
|
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
|
|
- name: cpc464.rom
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
size: 32768
|
|
md5: a993f85b88ac4350cf4d41554e87fe4f
|
|
sha1: 56d39c463da60968d93e58b4ba0e675829412a20
|
|
note: "CPC 464 OS + BASIC 1.0, read when model=0"
|
|
source_ref: "src/cap32.cpp:212-217, src/cap32.cpp:1013-1027, rom/cpc464.rom"
|
|
- name: cpc664.rom
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
size: 32768
|
|
md5: 5a384a2310f472c7857888371c00ed66
|
|
sha1: 073a7665527b5bd8a148747a3947dbd3328682c8
|
|
note: "CPC 664 OS + BASIC 1.1, read when model=1"
|
|
source_ref: "src/cap32.cpp:212-217, src/cap32.cpp:1013-1027, rom/cpc664.rom"
|
|
- name: cpc6128.rom
|
|
system: amstrad-cpc
|
|
required: true
|
|
mode: standalone
|
|
size: 32768
|
|
md5: b96280dc6c95a48857b4b8eb931533ae
|
|
sha1: 5977adbad3f7c1e0e082cd02fe76a700d9860c30
|
|
note: "CPC 6128 OS + BASIC 1.1, default model=2; missing file returns ERR_CPC_ROM_MISSING"
|
|
source_ref: "src/cap32.cpp:212-217, src/cap32.cpp:1013-1027, src/cap32.cpp:1799, rom/cpc6128.rom"
|
|
- name: amsdos.rom
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
size: 16384
|
|
md5: 25629dfe870d097469c217b95fdc1c95
|
|
sha1: 39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb
|
|
note: "AMSDOS disc ROM, shipped cap32.cfg sets slot07=DEFAULT, skipped on the 464; missing file clears the slot"
|
|
source_ref: "src/cap32.cpp:1170-1178, src/cap32.cpp:1245-1249, cap32.cfg:205-206, 215, rom/amsdos.rom"
|
|
- name: system.cpr
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
size: 131156
|
|
md5: 39b565e648172980aa552293e667070f
|
|
sha1: 405e341437fab8db477606238af0c20eca2e39ee
|
|
note: "CPC+ system cartridge, default cartridge path"
|
|
source_ref: "src/cap32.cpp:1904, src/cap32.cpp:1150, rom/system.cpr"
|
|
- name: MF2.rom
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
size: 8192
|
|
md5: 4c9f014e91d407cc6509fad0095ab909
|
|
sha1: 1431ec628d38f000715545dd2186b684c5fe5a6f
|
|
note: "Multiface 2 ROM, read when mf2=1; checks the \"MULTIFACE 2\" signature at 0x0d32"
|
|
source_ref: "src/cap32.cpp:1252-1278, rom/MF2.rom"
|
|
|
|
platform_details:
|
|
bios_mapping:
|
|
source_ref: "cap32/cap32.c:1082-1114, 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:1617-1636 and no ROM is read from it.
|
|
|
|
embedded_roms:
|
|
source_ref: "cap32/rom/464.h, cap32/rom/664.h, cap32/rom/6128.h, cap32/rom/amsdos.h, cap32/rom/6128p.h, 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: "cap32/cap32.c:1082-1114"
|
|
note: |
|
|
CPC 464: OS464_BASIC10 only
|
|
CPC 464DDI: OS464_BASIC10 + AMSDOS in ROM slot 7
|
|
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)
|