https://github.com/tmpstpdwn/chip-8
A CHIP-8 emulator written in c.
https://github.com/tmpstpdwn/chip-8
c c-programming chip8 chip8-emulator emulator low-level-programming
Last synced: 10 months ago
JSON representation
A CHIP-8 emulator written in c.
- Host: GitHub
- URL: https://github.com/tmpstpdwn/chip-8
- Owner: tmpstpdwn
- License: mit
- Created: 2025-07-20T06:50:16.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-20T11:41:12.000Z (11 months ago)
- Last Synced: 2025-07-20T12:14:25.478Z (11 months ago)
- Topics: c, c-programming, chip8, chip8-emulator, emulator, low-level-programming
- Language: C
- Homepage:
- Size: 788 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CHIP-8 Emulator
A simple, functional CHIP-8 emulator written by me as a learning project. It supports most CHIP-8 programs.
> ⚠️ **Note**:
> - This is strictly a standard CHIP-8 implementation.
> - This implementation does not support audio output.
---
## Screenshots
### Space Invaders

### Lunar Lander

### Tic Tac Toe

---
## Dependencies
This emulator uses [raylib](https://www.raylib.com/) for rendering. Make sure it's installed before building the project.
---
## How to Run
1. Clone the repository and build:
```bash
git clone https://github.com/tmpstpdwn/CHIP-8
cd CHIP-8
make
```
2. Run the emulator with a ROM:
```bash
./chip8 path/to/rom.ch8
```
3. Keyboard controls:
CHIP-8 uses a 4×4 hexadecimal keypad:
```
1 2 3 C
4 5 6 D
7 8 9 E
A 0 B F
```
Mapped to your keyboard as:
```
1 2 3 4
Q W E R
A S D F
Z X C V
```
---
## ROMs
You can find public domain CHIP-8 ROMs [here](https://github.com/dmatlack/chip8/tree/master/roms).
---
## Resources used
- [Building a CHIP-8 Emulator [C++]](https://austinmorlan.com/posts/chip8_emulator/) by [Austin Morlan](https://austinmorlan.com/).
- [Chip-8 test suite](https://github.com/Timendus/chip8-test-suite/tree/main).
- [Chip-8 opcode table](https://chip8.gulrak.net/).
## License
MIT License — free to use, modify, and distribute.
---