caio is an emulator of hardware platforms with a strong focus on old 8 bits home computers.
The goal of caio is to provide a single core architecture able to emulate several different hardware platforms. To do that, the chip-set used by those platforms are emulated.
caio is currently in alpha state, it is work-in-progress and at the moment the following platforms are emulated:
The emulation of the Commodore 64 almost reached a beta status and most of the tested programs work just fine (if they do not exploit obscure video/timing tricks or trigger some bug ;).
The implementation of the ZX80 is under development and it is not currently working.
At the moment the supported host platforms are Linux and macOS.
$ sudo apt install clang pkg-config libsdl2-dev libsdl2-image-dev
...
xcode, xcode command line tools, and brew must be installed.
$ brew install pkg-config sdl2 sdl2_image
...
$ make PREFIX=/usr/local all
...
$ sudo make PREFIX=/usr/local install
...
The default value for the PREFIX
make variable is /opt/caio
.
For more information read the compile, install and packaging documentation.
To launch caio, from a console:
$ caio c64 --help
All the command line options can be specified in a configuration file.
Examples:
The following command activates the horizontal scanlines visual effect, scales up the emulated screen resolution 4 times (that is, a 320x200 screen is scaled up to 1280x800), loads and launches the cartridge named gyruss:
$ caio c64 --scanlines h --scale 4 --cart ./gyruss.crt
The next command injects a PRG
program into memory and launches it as soon
as the basic is started:
$ caio c64 --prg ./rambo.prg
Note that this won't work for advanced or big program files that overwrite memory areas not configured as RAM.
For more information about usage, keyboard mappings, joysticks, etc. read the usage documentation.
The first beta release will contain the following emulators:
There is no date for this release.
There could be pre-releases containing alpha versions of the emulators under development. No dates for these.
It is desired for future releases to provide emulation for:
If you have some old home computer and want to donate it, I will gladly accept it even if it is not working. Please let me know.