https://github.com/geaz/emu-chip-8
A CHIP-8 emulator written in C++
https://github.com/geaz/emu-chip-8
chip-8 chip8 chip8-emulator emulator opengl
Last synced: about 1 year ago
JSON representation
A CHIP-8 emulator written in C++
- Host: GitHub
- URL: https://github.com/geaz/emu-chip-8
- Owner: geaz
- License: mit
- Created: 2019-09-08T12:06:51.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-05-17T13:22:55.000Z (about 5 years ago)
- Last Synced: 2025-04-11T05:16:13.790Z (about 1 year ago)
- Topics: chip-8, chip8, chip8-emulator, emulator, opengl
- Language: C++
- Size: 2.94 MB
- Stars: 25
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# A CHIP-8 emulator written in C++
This project was done to learn how to write a simple emulator, get a bettter understanding of CPUs and to learn a bit of C++.
Because I wanted to display some debug information, I was forced to learn a bit of OpenGL (core mode), too.
I wrote a small "screen" framework for OpenGL. The CHIP-8 output, memory debugger and register debugger are all
seperate "screens", added to the OpenGL window by defining a simple grid layout. The grid layout is very naive,
but enough to be used by this application. It also includes a simple resource manager to load shaders and fonts.
The font class contains a method to render text and uses *stb_truetype* to create a bitmap of the font file.
This emulator should run cross platform. Use CMAKE to compile it and run it with the roms in the *roms* folder.
Usage example (Windows):
```
emu-chip-8.exe roms/BRIX
```
The emulator is in **pause** state on start.
Use **p** to pause/play.
Use **n** to step to next operation.

## Ressources
- http://learnopengl.com
- http://devernay.free.fr/hacks/chip8/C8TECH10.HTM