mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-11 14:03:23 -05:00
boytacean cited a line a hundred past the CGB boot selection and cap32 a blank one after the bios directory is built. b2 carried the owner and repository in front of its path, which matched two roms.cpp. crocods, armsx2 and amiberry only needed their pin to catch up.
122 lines
4.4 KiB
YAML
122 lines
4.4 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-03-23"
|
|
source_commit: "4abfb8be233bec630f369379fb6c1d92d31f1c7d"
|
|
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 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-348):
|
|
- cap32/rom/464.h: OS_BASIC10[32768] - CPC 464 OS + BASIC 1.0
|
|
- cap32/rom/6128.h: OS_BASIC11[32768] - CPC 6128 OS + BASIC 1.1
|
|
- cap32/rom/amsdos.h: AMSDOS[16384] - AMSDOS disk controller ROM
|
|
- cap32/rom/6128p.h: OS_6128P - CPC+ system cartridge ROM
|
|
- cap32/rom/cpm.h: cpmROM - CP/M boot snapshot (128KB)
|
|
|
|
ROM selection in emulator_select_ROM() (cap32/cap32.c:1075-1103):
|
|
- CPC 464: OS_BASIC10 (32KB)
|
|
- CPC 664: OS_BASIC10 (32KB) + AMSDOS in slot 7
|
|
- CPC 6128: OS_BASIC11 (32KB) + AMSDOS in slot 7
|
|
- CPC+: OS_6128P loaded as system cartridge via cpr_load()
|
|
|
|
The standalone (non-libretro) version references external filenames
|
|
cpc464.rom, cpc664.rom, cpc6128.rom, amsdos.rom in cap32/cap32.c:352-355
|
|
via config file loading (cap32/cap32.c:1831-1843), but the libretro port
|
|
does not use this path. The libretro init (libretro/libretro-core.c:1509-1515) has
|
|
a "TODO: future use to load custom bios" comment that is not
|
|
implemented.
|
|
|
|
Keyboard layout patches are applied to the ROM in memory for French
|
|
and Spanish layouts via rom_mods.h (cap32/cap32.c:1105-1129).
|
|
|
|
CP/M support loads a pre-built snapshot (cpm.h) into memory via
|
|
snapshot_load_mem() in cap32/slots.c:90.
|
|
|
|
files:
|
|
# Standalone loads from rom_path/ — libretro embeds all as C arrays
|
|
# ref: ColinPitrat/caprice32/src/cap32.cpp:1006-1007,1159-1171
|
|
- name: cpc464.rom
|
|
system: amstrad-cpc
|
|
required: true
|
|
mode: standalone
|
|
size: 32768
|
|
note: "CPC 464 OS + BASIC 1.0"
|
|
source_ref: "src/cap32.cpp:213, rom/cpc464.rom"
|
|
- name: cpc664.rom
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
size: 32768
|
|
note: "CPC 664 OS + BASIC 1.0"
|
|
source_ref: "caprice32/rom/cpc664.rom"
|
|
- name: cpc6128.rom
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
size: 32768
|
|
note: "CPC 6128 OS + BASIC 1.1"
|
|
source_ref: "caprice32/rom/cpc6128.rom"
|
|
- name: amsdos.rom
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
size: 16384
|
|
note: "AMSDOS disc ROM (sideways slot 7)"
|
|
source_ref: "src/cap32.cpp:1250"
|
|
- name: system.cpr
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
size: 131156
|
|
note: "CPC+ system cartridge"
|
|
source_ref: "caprice32/rom/system.cpr"
|
|
- name: MF2.rom
|
|
system: amstrad-cpc
|
|
required: false
|
|
mode: standalone
|
|
size: 8192
|
|
note: "Multiface 2 ROM"
|
|
source_ref: "caprice32/rom/MF2.rom, src/cap32.cpp:1328-1347"
|
|
|
|
platform_details:
|
|
bios_mapping:
|
|
source_ref: "cap32/cap32.c:1075-1103, cap32/cap32.c:345-348"
|
|
note: |
|
|
All ROMs are embedded. emulator_select_ROM() copies the appropriate
|
|
ROM array into the pbROM buffer based on CPC.model. No filesystem
|
|
lookup occurs in the libretro port. The retro_system_bios_directory
|
|
variable is set up in libretro/libretro-core.c:1513-1524 but only used for
|
|
a future custom BIOS feature that is not yet implemented.
|
|
|
|
embedded_roms:
|
|
source_ref: "cap32/rom/464.h, cap32/rom/6128.h, cap32/rom/amsdos.h, cap32/rom/6128p.h, cap32/rom/cpm.h"
|
|
note: |
|
|
5 ROM sets embedded as C arrays:
|
|
OS_BASIC10 (32KB) - CPC 464/664 OS + BASIC 1.0
|
|
OS_BASIC11 (32KB) - CPC 6128 OS + BASIC 1.1
|
|
AMSDOS (16KB) - Disk controller ROM, mapped to slot 7
|
|
OS_6128P - CPC+ system cartridge (White Label cartridge)
|
|
cpmROM (128KB+) - CP/M boot snapshot including SNA header
|
|
|
|
model_rom_map:
|
|
source_ref: "cap32/cap32.c:1075-1103"
|
|
note: |
|
|
CPC 464: OS_BASIC10 only (no disk support)
|
|
CPC 664: OS_BASIC10 + AMSDOS in ROM slot 7
|
|
CPC 6128: OS_BASIC11 + AMSDOS in ROM slot 7
|
|
CPC+: 6128P system cartridge (or user-provided .cpr file)
|