Amstrad - CPC (Caprice32)¶
Background¶
Caprice32 is a software emulator of the Amstrad CPC 8bit home computer series running on Linux and Windows. The emulator faithfully imitates the CPC464, CPC664, CPC6128, CPC6128+ and GX4000 models. By recreating the operations of all hardware components at a low level, the emulator achieves a high degree of compatibility with original CPC software. These programs or games can be run unmodified at real-time or higher speeds, depending on the emulator host environment.
Author/License¶
The Caprice32 core has been authored by
- Ulrich Doewich
- David Colmenero (D_Skywalk)
- Colin Pitrat
The Caprice32 core is licensed under
A summary of the licenses behind RetroArch and its cores can be found here.
Extensions¶
Content that can be loaded by the Caprice32 core have the following file extensions:
- .dsk
- .sna
- .tap
- .cdt
- .voc
- .m3u
- .cpr
- .zip
Databases¶
RetroArch database(s) that are associated with the Caprice32 core:
- Amstrad - CPC (TOSEC)
Features¶
Frontend-level settings or features that the Caprice32 core respects.
Feature | Supported |
---|---|
Restart | ✔ |
Screenshots | ✔ |
Saves | ✔ |
States | ✔ |
Rewind | ✔ |
Netplay | ✔ |
Core Options | ✔ |
RetroAchievements | ✕ |
RetroArch Cheats | ✕ |
Native Cheats | ✕ |
Controls | ✔ |
Remapping | ✔ |
Multi-Mouse | ✕ |
Rumble | ✕ |
Sensors | ✕ |
Camera | ✕ |
Location | ✕ |
Subsystem | ✕ |
Softpatching | ✕ |
Disk Control | ✔ |
Username | ✕ |
Language | ✕ |
Crop Overscan | ✕ |
LEDs | ✕ |
Directories¶
The Caprice32 core's internal core name is 'cap32'.
The Caprice32 core saves/loads to/from these directories.
Loaded content's directory
- 'content-name'#.SNA (SNA)
M3U and Disk control¶
When you have a multi disk game, you can use a m3u file to specify each disk of the game and change them from the RetroArch Disk control interface.
A M3U file is a simple text file with one disk per line (see https://en.wikipedia.org/wiki/M3U).
Example: Alive (F).m3u
1 2 |
|
Path can be absolute or relative to the location of the M3U file.
When a game ask for it, you can change the current disk in the RetroArch 'Disk Control' menu:
- Eject the current disk with 'Disk Cycle Tray Status'
- Select the right disk index
- Insert the new disk with 'Disk Cycle Tray Status'
Geometry and timing¶
- The Caprice32 core's core provided FPS is 50
- The Caprice32 core's core provided sample rate is 44.100
- The Caprice32 core's core provided aspect ratio is ¾
Usage¶
The Caprice32 core has a virtual keyboard GUI that can be accessed through User 1's RetroPad Y input.
The mouse cursor can be controlled by RetroPad D-Pad inputs when the RetroPad Select input is pressed.
Here are some actions you can do in page 2 of the virtual keyboard GUI.
- "EXT" EXIT EMU
- "SNA" SAVE SNA
- "DSK" SWITCH DSK DRIVE A/B
- "Col" SWITCH FGCOL ON/OFF
Core options¶
The Caprice32 core has the following option(s) that can be tweaked from the core options menu.
Tip
Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch.
Core option | Description | Default |
---|---|---|
Autorun | If enabled, the core will run the first bas/bin found in the DSK. cap32_autorun = "enabled|disabled" |
enabled |
Combo Key | See Combo list below. cap32_combokey = "select|y|b|disabled" |
select |
Internal resolution | Self-explanatory. cap32_resolution = "384x272|400x300" |
384x272 |
Model (Restart) | Choose which Amstrad CPC model to emulate. cap32_model = "6128|464|6128+" |
6128 |
Ram size (Restart) | CPC physical RAM size in kB. cap32_ram = "128|64|192|512|576" |
128 |
Status Bar | Not yet implemented, future option. cap32_statusbar = "disabled|enabled" |
disabled |
Monitor Type | Choose between a color display or a monochrome display. cap32_scr_tube = "color|green|white" |
color |
Monitor Intensity | Screen cathodic tube intensity. cap32_scr_intensity = "5|6|7|8|9|10|11|12|13|14|15" |
5 |
CPC Language (Restart) | Choose between english, french or spanish keyboard layout. cap32_lang_layout = "english|french|spanish" |
english |
User 1 Joystick Configuration | Select Joy/Overlay configuration for player 1. cap32_retrojoy0 = "joystick|qaop|incentive" |
joystick |
User 2 Joystick Configuration | Select Joy/Overlay configuration for player 2. cap32_retrojoy1 = "joystick|qaop|incentive|joystick_port2" |
joystick |
cap32_scr_tube = color
cap32_scr_tube = green
Attention
These 'scr_intensity' core option screenshots have been taken with the 'cap32_scr_tube' core option set to 'color'.
scr_intensity = 5
scr_intensity = 15
Controllers¶
The Caprice32 core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s):
User 1 - 2 device types¶
- None - Doesn't disable input. There's no reason to switch to this.
- RetroPad - Joypad - Don't use this. Switch to Amstrad Joystick for joypad input.
- Amstrad Joystick - Joypad - Use this for joypad input.
- Amstrad Keyboard - Keyboard - Keyboard input are always active. Has keymapper support.
Other controllers¶
- Mouse - The mouse cursor in the Virtual Keyboard GUI can be controlled with mouse inputs.
Controller tables¶
JOY CONFIG DEFAULT (JOYSTICK)¶
User 1 Remap descriptors | RetroPad Inputs | Amstrad Joystick |
---|---|---|
B | ![]() |
FIRE1 |
Y | ![]() |
SPACE |
Start | ![]() |
J (to select Joy in games) |
Up | ![]() |
JOY UP |
Down | ![]() |
JOY DOWN |
Left | ![]() |
JOY LEFT |
Right | ![]() |
JOY RIGHT |
A | ![]() |
FIRE2 |
X | ![]() |
S |
L | ![]() |
INTRO |
R | ![]() |
SHIFT |
L2 | ![]() |
CTRL |
R2 | ![]() |
COPY |
Select | ![]() |
COMBO (see bellow) |
L3 | ![]() |
|
R3 | ![]() |
JOY CONFIG QAOP (GENERAL KEYB)¶
User 1 Remap descriptors | RetroPad Inputs | Amstrad Joystick |
---|---|---|
B | ![]() |
F1 |
Y | ![]() |
F2 |
Start | ![]() |
K (to select Keyb in games) |
Up | ![]() |
Q |
Down | ![]() |
A |
Left | ![]() |
O |
Right | ![]() |
P |
A | ![]() |
SPACE |
X | ![]() |
H |
L | ![]() |
INTRO |
R | ![]() |
SHIFT |
L2 | ![]() |
CTRL |
R2 | ![]() |
COPY |
Select | ![]() |
COMBO (see bellow) |
L3 | ![]() |
|
R3 | ![]() |
JOY INCENTIVE (INCENTIVE GAMES)¶
User 1 Remap descriptors | RetroPad Inputs | Amstrad Joystick |
---|---|---|
B | ![]() |
SPACE |
Y | ![]() |
W |
Start | ![]() |
F |
Up | ![]() |
CURSOR UP |
Down | ![]() |
CURSOR DOWN |
Left | ![]() |
CURSOR LEFT |
Right | ![]() |
CURSOR RIGHT |
A | ![]() |
A |
X | ![]() |
C |
L | ![]() |
P |
R | ![]() |
L |
L2 | ![]() |
R |
R2 | ![]() |
U |
Select | ![]() |
COMBO (see bellow) |
L3 | ![]() |
|
R3 | ![]() |
COMBO LIST¶
If you press SELECT you could make a combo with other buttons:
Combo | RetroPad Inputs | Amstrad Writes |
---|---|---|
Select + B | ![]() ![]() |
CAT |
Select + Y | ![]() ![]() |
|CPM |
Select + Start | ![]() ![]() |
RUN"DISK RUN"DISC |
Select + Up | ![]() ![]() |
|TAPE RUN" |
Select + Down | ![]() ![]() |
SHOW V-KEYBOARD |
Select + Left | ![]() ![]() |
[1], [Y] |
Select + Right | ![]() ![]() |
[2], [N] |
Select + A | ![]() ![]() |
[3], [R] |
Select + X | ![]() ![]() |
[4], [S] |
This combos are useful to load games and select options in game-menus.
Keyboard¶
English layout
RetroKeyboard Special Inputs | Amstrad |
---|---|
Keyboard Keypad 0 | CPC_KEY_F0 |
Keyboard Keypad 1 | CPC_KEY_F1 |
Keyboard Keypad 2 | CPC_KEY_F2 |
Keyboard Keypad 3 | CPC_KEY_F3 |
Keyboard Keypad 4 | CPC_KEY_F4 |
Keyboard Keypad 5 | CPC_KEY_F5 |
Keyboard Keypad 6 | CPC_KEY_F6 |
Keyboard Keypad 7 | CPC_KEY_F7 |
Keyboard Keypad 8 | CPC_KEY_F8 |
Keyboard Keypad 9 | CPC_KEY_F9 |
Keyboard Keypad Period . | CPC_KEY_FDOT |
Keyboard Keypad Enter | CPC_KEY_SMALL_ENTER |
Keyboard Delete | CPC_KEY_CLR |
Keyboard Insert | CHANGE CURSOR/JOY EMULATION |
Keyboard Home | PLAY TAPE |
Keyboard End | STOP TAPE |
Keyboard Page Up | TAPE REWIND |
Keyboard Page Down | - |
Keyboard F9 | SHOW V-KEYBOARD |
Keyboard F10 | MAIN GUI |
Keyboard Right Alt | CPC_KEY_COPY |
Keyboard Left Alt | CPC_KEY_COPY |
Keyboard Custom Binds¶
Choose AMSTRAD KEYBOARD in Quick Menu > Controls to customize your retropad keys per game.
Mouse¶
RetroMouse Inputs | Virtual Keyboard GUI Inputs |
---|---|
![]() |
Mouse Cursor |
![]() |
Mouse Left Button |
External Links¶
- Official Caprice32 Github Repository
- Libretro Caprice32 Core info file
- Libretro Caprice32 Github Repository
- Report Libretro Caprice32 Core Issues Here