dokutan / chip8

A WIP implementation of CHIP-8/SUPER-CHIP/CHIP-8X/CHIP-8E/XO-CHIP/…

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

chip8 emulator emulator

A WIP implementation of CHIP-8/SUPER-CHIP/CHIP-8X/CHIP-8E/XO-CHIP/…

The goal of this program is compatibility with a large number of different CHIP-8 implementations and behaviours. This is achieved through the use of emulation modes, which describe the features of the emulated hardware, the available instructions and the quirks which change their behaviour.

CPU emulation (e.g. RCA 1802) is currently not part of this project. The same applies to a debugger or (dis)assembler, due to the vast amount of good existing programs for these purposes.

Compiling

Required are SDL2 and a compiler supporting C++20, clone this repository, then run

make

Running

./chip8 <mode> program.c8
./chip8 modes/schip11.lua program.c8 # This runs program.c8 in the SUPER-CHIP 1.1 mode

Configuration

Colors, fonts, quirks, … can be configured by (copying and) editing the mode definitions in modes.

TODO

  • make keys, scaling configurable
  • add support for mapping the framebuffer to memory
  • add more modes

About

A WIP implementation of CHIP-8/SUPER-CHIP/CHIP-8X/CHIP-8E/XO-CHIP/…

License:GNU Affero General Public License v3.0


Languages

Language:C++ 84.2%Language:Lua 15.7%Language:Makefile 0.2%