cpu: use bool to represent condition bits
declare register names with enum instead of #define
use uint_t instead of unsigned char everywhere
A simple emulator for the Intel 8080, along with other parts of the Space Invaders arcade system. Tested with the CPUDIAG routine, and Space Invaders.
Anything with a C compiler and SDL backend will probably work fine.
To install on Ubuntu:
$ sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev.
$ make release in the project directory to build, it puts the executable at
I can't distribute the ROM here for obvious copyright reasons, but it's not particularly hard to find.
Once you have it, extract it to
<project_directory>/rom. The directory should look something like this:
i8080e/rom ├── invaders.e ├── invaders.f ├── invaders.g └── invaders.h
Simply execute the binary from the project directory to run.
no arguments or flags are needed and it'll pick up and load the ROM from its directory.
|1||Start 1-player game|
|2||Start 2-player game|
|←||Move left (player 1)|
|→||Move right (player 1)|
|↑||Shoot (player 1)|
|a||Move left (player 2)|
|d||Move right (player 2)|
|w||Shoot (player 2)|