|
2 years ago | |
---|---|---|
examples | 2 years ago | |
res | 4 years ago | |
src | 2 years ago | |
.gitignore | 2 years ago | |
BuildUNIX.sh | 2 years ago | |
BuildWin64.bat | 2 years ago | |
CHANGELOG | 2 years ago | |
CMakeLists.txt | 2 years ago | |
LICENCE | 4 years ago | |
README.md | 2 years ago |
README.md
C8E
C8E is a threaded emulator for the Chip-8 platform written in C++. C8E is designed to be lightweight, efficient and threaded, while being cross-platform and supporting all possible CHIP-8 features.
CHIP-8 ROMs in the examples
directory are not mine.
Usage
C8E is mostly being developed on x86-64 Linux with Clang.
Dependencies
- CMake >= 3.12, to build
- SDL2, to build and run
Building
UNIX
To build C8E on UNIX, run
BuildUNIX.sh
or
cmake -S . -B build && cmake --build build
Windows
To build C8E on Windows, run
BuildWin64.bat
orBuildWin32.bat
- SDL 2.0: Can be downloaded from https://www.libsdl.org/download-2.0.php
Include and Lib folders must be placed either in the project root directory, in C:/Programs/SDL2 (on Windows), or CMakeLists.txt must be edited to include the correct paths. These directories must be added under the link_directories and target_include_directories options.
To run the compiled binary, SDL runtime libraries must also be installed.
Running
Note that C8E was initially written on Windows, and as a result, does not currently properly 100% of the time on Linux.
Run
./bin/c8e *file*
, where file is a CHIP-8 ROM.
A C8E window will open, and CHIP-8 controls are mapped where 1
maps to the top
left CHIP-8 key (1
), 4
to the top left CHIP-8 key (C
), Z
to the bottom
left CHIP-8 key (A
), and so on.
QWERTY -> CHIP-8
┌─┬─┬─┬─┐ ┌─┬─┬─┬─┐
│1│2│3│4│ │1│2│3│C│
├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│Q│W│E│R│ │4│5│6│D│
├─┼─┼─┼─┤ -> ├─┼─┼─┼─┤
│A│S│D│F│ │7│8│9│E│
├─┼─┼─┼─┤ ├─┼─┼─┼─┤
│Z│X│C│V│ │A│0│B│F│
└─┴─┴─┴─┘ └─┴─┴─┴─┘
Meta
Copyright (C) 2019, Jakob Wakeling
All rights reserved.
OMKOV Permissive Licence