https://github.com/frederiktobner/chip-8
Simple CHIP-8 emulator written in C
https://github.com/frederiktobner/chip-8
assembler chip8 emulator interpreter programming-language virtual-machine
Last synced: about 1 month ago
JSON representation
Simple CHIP-8 emulator written in C
- Host: GitHub
- URL: https://github.com/frederiktobner/chip-8
- Owner: FrederikTobner
- License: gpl-3.0
- Created: 2023-02-03T11:42:47.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2025-03-12T19:35:09.000Z (about 1 year ago)
- Last Synced: 2025-03-31T12:24:07.675Z (12 months ago)
- Topics: assembler, chip8, emulator, interpreter, programming-language, virtual-machine
- Language: C
- Homepage: https://frederiktobner.github.io/CHIP-8/
- Size: 870 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# CHIP-8
[](https://github.com/FrederikTobner/CHIP-8/actions/workflows/build.yml)
[](https://github.com/FrederikTobner/CHIP-8/actions/workflows/tests.yml)
[](https://github.com/FrederikTobner/CHIP-8/actions/workflows/codeql.yml)
> **NOTE**: 🚧 Under active development. 🚧
Simple [CHIP-8](https://en.wikipedia.org/wiki/CHIP-8) emulator written in C, with a custom assembly language.

## Table of Contents
* [Dependencies](#dependencies)
* [License](#license)
## Key concepts
1. Programming in binary is quite complex, therefor we provide an assembly language
2. The assembly language should stay close to the opcode's actual representation in memory
## Dependencies
The emulator has the following dependencies
* [SDL 2.0](https://github.com/libsdl-org/SDL) a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware.
## IDE Integration
There is a plugin for vim and neovim. Another alternative is to use my own text editor YATE that has built in language support.
[](https://github.com/FrederikTobner/chip8.vim)
[](https://github.com/FrederikTobner/YATE)
## License
This project is licensed under the [GNU General Public License](LICENSE)