cap32(6)

๐Ÿ“ฆ version 4.6.0, in nixos 26.05, nixpkgs unstable

๐Ÿ’– NAME ๐Ÿ’–

okay so welcome to cap32(6) bestie โ€” this is Caprice32, the Amstrad CPC emulator. That's the whole vibe. ๐ŸŽ€


โœจ SYNOPSIS โœจ

cap32 [OPTION]... [FILE]...

๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

Caprice32 is an Amstrad CPC emulator, and it does not do things halfway โ€” it emulates the Amstrad CPC464, 664, 6128 and 6128+ home computers. yes, all of them. iconic behavior. ๐Ÿ‘‘

๐ŸŒธ Media loading ๐ŸŒธ

so when you run it, the FILEs you pass as arguments get used to populate the various available CPC machine slots. the type of slot is decided by the file format, detected by its extension. Caprice32 supports these formats, no cap:

  • .dsk โ€” disk image
  • .ipf โ€” Interchangeable Preservation Format disk image
  • .voc or .cdt โ€” tape image
  • .cpr โ€” cartridge image
  • .sna โ€” snapshot image
  • .zip โ€” a zip of any previously described file

specifying slot content on the command line is optional, so no pressure bestie. ๐Ÿ’…

Caprice32 supports two disk drives: drive A and drive B. if you hand it two disk image files (.dsk or .ipf), the first one goes into drive A and the second one goes into drive B. that's it, that's the rule.

the cart_path, snap_path, dsk_path and tape_path entries in the configuration file are only used to specify the directory to open when loading/saving files in the GUI. the full path to the various slot contents must be provided on the command line. literally. the whole path. ๐Ÿซถ

the rom_path entry in the configuration file is what the emulator uses to find its system ROM and cartridges.

๐Ÿงš Configuration ๐Ÿงš

when launched, Caprice32 goes looking for a configuration file in several locations. if a configuration file was specified with the --cfg_file command line switch, Caprice32 will try and use it. if no configuration file was specified, or the configuration file specified does not exist, Caprice32 will try and open, in this exact order:

  • $CWD/cap32.cfg ($CWD being the directory where the cap32 executable resides)
  • cap32.cfg file in the location pointed to by the XDG_CONFIG_HOME environment variable. if XDG_CONFIG_HOME is undefined, it will look at $HOME/.config/ as the default XDG_CONFIG_HOME directory.
  • $HOME/.cap32.cfg for compatibility.
  • /etc/cap32.cfg.

Caprice32 will use the first valid file it finds. if no configuration file is found, a default configuration will be used. slay, sensible defaults. โœจ

the configuration file contains various configuration parameters, some of which can be modified from the GUI. when saving the configuration from the GUI, it will be written in the configuration file following the same order as previously described, except for the addition of the write permission condition.

most of the configuration file entries are commented in the configuration file provided by default with Caprice32. however โ€” and this is the sad part ๐Ÿ˜ญ โ€” when overwriting the configuration file from the emulator menu, all comments will be lost. gone. periodt.

๐Ÿ”ฅ Control ๐Ÿ”ฅ

emulator functionalities are available through function keys (F1-F12). but plot twist: the CPC also had function keys, and those are emulated by keys from the numpad. this makes sense since their disposition on the CPC keyboard was similar to the numpad. if your computer doesn't have a numpad (e.g. a laptop that doesn't support it with the Fn key) the only way to access the CPC F1-F10 keys is through the virtual keyboard. the emulator function key mapping can also be redefined through the host keyboard mapping file.

the emulator function default key mapping is:

  • F1 โ€” Show GUI (and pause the emulator)
  • F2 โ€” Toggle fullscreen / windowed mode
  • F3 โ€” Take screenshot
  • F4 โ€” Press tape reader play key
  • F5 โ€” Reset the emulator
  • F6 โ€” Multiface II stop (advanced users only)
  • F7 โ€” Toggle joystick emulation
  • F8 โ€” Toggle FPS display
  • F9 โ€” Toggle speed limitation
  • F10 โ€” Exit the emulator
  • F12 โ€” Toggle debug mode
  • Shift+F1 โ€” Show virtual keyboard
  • Shift+F3 โ€” Take a machine snapshot

๐ŸŽฎ Joystick support ๐ŸŽฎ

joystick emulation can be turned on with the F7 key. when joystick emulation is on, real joysticks are disabled, and the keyboard arrows (directions) as well as X and Z (fire buttons) keys are remapped to emulate the joystick 1 of the CPC machine. keyboard as joystick, we love a versatile icon. ๐Ÿ’…

Caprice32 can also be controlled completely from the joystick. the configuration file joystick_menu_button and joystick_vkeyboard_button entries allow binding menu and virtual keyboard invocations to some of the (host) joystick button.

โŒจ๏ธ Keyboard mapping โŒจ๏ธ

Caprice32 supports CPC English, French and Spanish keyboard layouts. the CPC keyboard layout is defined in the configuration file by the keyboard entry (0: English, 1: French, 2: Spanish). the host keyboard mapping is defined in a specific file, allowing you to remap any host key to any specific key. the mapping file to use is set by the kbd_layout configuration entry. the mapping file must be put in the resources directory, defined by the configuration file resources_path entry. if the mapping file is not defined or not found, Caprice32 will default to a standard US keyboard map. defaulting gracefully, as always. ๐ŸŒˆ


๐Ÿ’… OPTIONS ๐Ÿ’…

  • -a, --autocmd=COMMAND โ€” pass command to execute to the emulator. the option can be repeated to pass multiple commands. for example: cap32 -a 'print "Hello"' -a 'print "World"'
  • -c, --cfg_file=FILE โ€” use FILE as the emulator configuration file.
  • -h, --help โ€” display short help and exits
  • -V, --version โ€” display Caprice32 version and exits
  • -v, --verbose โ€” be talkative about what the emulator is doing (mostly for debug builds)

๐Ÿ“ EXAMPLES ๐Ÿ“

cap32 ./disk/sorcery.dsk ./trail.dsk

launches cap32, loads the content of ./disk/sorcery.dsk in the drive A slot, and ./trail.dsk in the drive B slot. two disks, two drives, zero stress. โœจ


๐Ÿ’€ BUGS ๐Ÿ’€

CPC6128+ emulation is incomplete: vectored & DMA interrupts, analog joysticks and 8 bit printer are not emulated. ngl, the 6128+ is still a work in progress, bestie. ๐Ÿ™ˆ

see https://github.com/ColinPitrat/caprice32/issues for the list of reported bugs.


๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

Caprice32 was originally written by Ulrich Doewich.

this manual page covers Colin Pitrat's fork of Caprice32.

the screen capture code uses driedfruit SDL_SavePNG code (https://github.com/driedfruit/SDL_SavePNG). credit where credit is due, always. ๐Ÿซถ


๐ŸŒŸ FILES ๐ŸŒŸ

  • $HOME/.cap32.cfg
  • /etc/cap32.cfg

๐ŸŒˆ SEE ALSO ๐ŸŒˆ


and that's the whole page, bestie!! ๐Ÿ’– this one's from the Games Manual (that's the source, fr fr) and it's dated June 2017 โ€” go forth and emulate, you absolute main character. ๐Ÿฆ‹๐ŸŽ€

๐Ÿ“ฆ where this page comes from