At the moment, the best way to launch caio is from the command line terminal:
$ caio --help
usage: caio <arch> [--help]
where arch is one of:
c64
zx80
The Info Panel is a primitive control panel containing widgets that allow minimal settings during runtime. It can be made visible/invisible with a mouse right click. The default widgets are:
- Toggle Fullscreen mode
- Suspend/Resume emulation
- Platform reset
- Audio Volume control
There are other widgets that depend on the specifc emulated platform such as:
- Joystick status
- Disk activity
caio accepts the following key combinations:
-
ALT-F
toggles between windowed and fullscreen modes. -
PAUSE
orALT-P
toggles between pause and running modes. -
ALT-J
swaps joysticks #1 and #2. -
ALT-K
toggles virtual joystick vs. keyboard (only one can be active at a time). -
ALT-M
enters the CPU monitor (if it is active). LikeCTRL-C
on the terminal. -
CTRL-C
on the terminal enters the CPU monitor (if the monitor is not active the emulation is terminated). -
ALT-V
toggles the visibility of the info panel.
Configuration values can be set as command line options or in a configuration file. The configuration file contains two types of sections: One generic section whose values are inherited by all the platforms, and one specific section for each of the emulated platform.
If a parameter is specified twice (as a platform specific and as a generic one) the platform specific value takes the precedence.
The configuration file is searched in the following directories (stop at first match):
- Command line option
--conf
- User's configuration directory:
$HOME/.config/caio/caio.conf
- System's configuration directory:
$PREFIX/etc/caio/caio.conf
Command line options take precedence over those defined in the configuration file.
The following list shows the generic command line options (valid for all platforms):
--conf <cfile> Configuration file
--romdir <romdir> ROMs directory
--palettedir <pdir> Colour palette directory
--palette <palette> Colour palette name or filename
--keymapsdir <kdir> Key mappings directory
--keymaps <keymaps> Key mappings name or filename
--cart <cfile> Cartridge filename
--fps <rate> Frame rate (default is 50)
--scale <scale> Window scale factor (default is 1)
--scanlines <n|h|v|H|V> Scanlines effect: (n)one, (h)orizontal, (v)ertical,
advanced (H)orizontal, advanced (V)ertical
(default is n)
--fullscreen Start in fullscreen mode
--sresize <yes|no> Smooth window resize (default is yes)
--audio <yes|no> Enable audio (default is yes)
--delay <delay> Clock delay factor (default is 1)
--monitor Activate the CPU monitor during boot
--logfile <file> Send log information to the specified destination
(default is /dev/tty)
--loglevel <lv> Loglevel, bitwise combination of:
error|warn|info|debug|all (default is none)
--vjoy <yes|no> Enable virtual joystick (default is no)
--vjoy-up <keyname> Virtual joystick UP key (default is KEY_CURSOR_UP)
--vjoy-down <keyname> Virtual joystick DOWN key (default is KEY_CURSOR_DOWN)
--vjoy-left <keyname> Virtual joystick LEFT key (default is KEY_CURSOR_LEFT)
--vjoy-right <keyname> Virtual joystick RIGHT key (default is KEY_CURSOR_RIGHT)
--vjoy-fire <keyname> Virtual joystick FIRE key (default is KEY_SPACE)
-v|--version Show version information and exit
-h|--help Print this message and exit
Platforms are not required to support all the generic options, unsuppoprted options are ignored.
$ caio c64 --help
usage: caio c64 <options>
where <options> are:
...
Commodore C64 specific:
--prg <prg> Load a PRG file as soon as the basic is ready
--resid <yes|no> Use the MOS6581 reSID library (default is no)
--swapj Swap Joysticks
--8 <path> Attach a disk drive unit 8
--9 <path> Attach a disk drive unit 9
The keyboard layout can be set using the keymaps
configuration option
(the default is US-ANSI).
For example, to use the italian layout:
$ caio c64 --keymaps it
to use the VICEKB positional layout:
$ caio c64 --keymaps vice
At the moment the following layouts are available (not all of them fully tested):
- Italian (it)
- German (de)
- Swiss (ch)
- UK (gb)
- US-ANSI (default)
- VICEKB (vice)
Keyboard layouts are simple text files, existing layouts can be modified using
a text editor and new layouts can be added to the system by placing the new
file inside the keymapsdir
directory which defaults to
$PREFIX/share/caio/keymaps
.
Like the VICE emulator, the RESTORE
key is mapped as Page-Up
, RUN/STOP
as ESC
, CTRL
as TAB
and
CBM
as LEFT-CTRL
.
There is a C1541 implementation that access the host filesystem. Host directories are recursively traversed so it must be used with care.
D64
files are not supported yet.
For more information see the --8
and --9
command line options.
-
Gamepads or real joysticks:
Up to two gamepads should work (tested using only one Logitech F710). The PS3 controller is known to work.
-
Virtual Joystick:
A virtual joystick is available and it can be enabled using the
vjoy
configuration option.The virtual joystick maps keyboard keys to joystick directions so when the virtual joystick is active the keyboard as such is disabled, and vice versa.
The
ALT-K
key combination toggles between virtual joystick and keyboard modes.The virtual joystick key mappgins can be configured using the following configuration options:
vjoy_up
,vjoy_down
,vjoy_left
,vjoy_right
, andvjoy_fire
.
The following command activates the horizontal scanlines visual effect, scales up the emulated screen resolution 3 times (that is, a 320x200 screen is scaled up to 960x600), loads and launches the cartridge named ghostngobblins:
$ caio c64 --scanlines h --scale 3 --cart /games/c64/ghostngobblins.crt
The next command activates the advanced horizontal scanlines visual effect (note the captial H), in this mode the specified scale factor is doubled (that is, a 320x200 screen is scaled up to 1280x800), loads and launches the cartridge Simon's Basic:
$ caio c64 --scanlines H --scale 2 --cart ./simons_basic.crt
The next command instructs caio to build a
Commodore 64 using the
reSID implementation of the
MOS 6581 chip,
it then injects a PRG
program into memory and launches it as soon as the
basic is started:
$ caio c64 --prg /sid/fanatics/music.prg --resid yes
The program is injected directly into RAM before the actual emulator is started, this means that the previous command won't work for advanced or big files that are expected to overwrite memory areas not configured as RAM.
$ caio zx80 --help
usage: caio z80 <options>
where <options> are:
...
Sinclair ZX80 specific:
--ram16 Attach a 16K RAM instead of the default 1K RAM
--rom8 Attach the 8K ROM instead of the default 4K ROM
Only the positional keyboard layout is available for the ZX80 and it is used as default.