A Chip-8 interpreter with heavy emphasis on being as cross-platform as humanly possible
OmniChip-8 is a Chip-8 emulator with the goal of making it as cross-platform as possible, with as little platform-specific assembly code as possible.
Run python make.py
. In Windows, it is able to use Visual Studio (via the msbuild command) or mingw.
Visual Studio should automatically download the SDL2 nuget packages when you build the project.
If you have NuGet installed, you can run nuget restore
to install the SDL2 nuget dependency packages. Otherwise, you will either need to install NuGet or open OmniChip-8.sln in Visual Studio and build it once to have it download the packages.
After you have them installed, you can run python make.py build
Run pacman -S base-devel mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2
before using make.py.
Run python make.py curses
Run python make.py c64
Run python make.py gb
Run python make.py sim6502
To test OmniChip-8, run ./make.py test
. This will build and run the test suites, and generate a test coverage report which you can view in a browser. This requires cmake, ctest, and lcov.
If you want to just run the tests without generating a coverage report (removing the need for lcov), run ./make test --no-coverage
.
All of the games in games/
are public domain, and came from here except for omnichip8, oc8, and their respective .c8 sources. Some of the opcode comments in src/chip8.c come from Cowgod’s Chip-8 Technical Reference