Multiplatform CHIP-8 and Super-CHIP emulator.
The main goal of this emulator is to be as portable as possible, so it can easily run on any machine, from small microcontrollers to desktop computers.
- Compatible with CHIP-8 and Super-CHIP games.
- Written as a library in standard C99 with no other dependencies.
- Minimal requirements, can run on anything with ~5KB of RAM available.
- Easy to port, contained in just two files:
chip8.handchip8.c
The core provides two configurable options: Compatibility Mode and Vertical Wrap, both disabled by default. When these options are disabled, the core emulates the Super-CHIP 1.1 behavior, which is the most extended and supports most modern CHIP-8 and Super-CHIP games.
For old games that depend on the different behavior of the original COSMAC VIP interpreter, these options should be enabled. Known games that require the Compatibility Mode and Vertical Wrap enabled:
- Animal Race [Brian Astle].ch8
- Lunar Lander (Udo Pernisz, 1979).ch8
There are some other quirks not implemented because they also differ between original interpreters and no known game depends on them. These are well documented here.
chip8swemu has been ported to a wide variety of platforms:
![]() |
![]() |
|---|---|
![]() |
![]() |
Port for the desktop based on SDL2 and Dear ImGui. Features include:
- Compatible with Windows and Linux.
- Configurable CPU clock rate, 840Hz by default.
- Configurable color palette, black and white by default.
- Compatibility modes for games that require special settings.
- ROM files can be passed as an argument or dropped to the window.
- Native file selection dialog (only available on Windows).
For more information and building instructions please see: https://github.com/AlfonsoJLuna/chip8swemu/tree/main/platform/sdl2
Compiled releases are available here:
- Windows: chip8swemu-v1.2.0-win64.zip
- Linux: chip8swemu-v1.2.0-linux64.tar.gz
Port for the Game & Watch: Super Mario Bros. console.
See it in action: https://www.youtube.com/watch?v=n2IKZFr6tSo
For more information and building instructions please see: https://github.com/AlfonsoJLuna/chip8swemu/tree/main/platform/gameandwatch
Port for the chip8stm32 board.
See it in action: https://www.youtube.com/watch?v=vA76s3j4H90
For more information and building instructions please see: https://github.com/AlfonsoJLuna/chip8swemu/tree/main/platform/chip8stm32
Useful resources and documentation for developing a CHIP-8 emulator:
- CHIP-8 article on Wikipedia
- Mastering CHIP-8
- Cowgod's CHIP-8 Technical Reference
- How to write an emulator (CHIP-8 interpreter)
- Super-CHIP Documentation
- Mastering SuperChip
- Awesome CHIP-8
- CHIP-8 Research Facility
- r/EmuDev on Reddit
chip8swemu is licensed under the MIT license. See LICENSE.md for more information.
This repository may contain libraries or other files provided by third parties. The above license does not apply to these files.






