Skip to content

jfuzaroa/great_chip-8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Great Chip-8 Emulator

Introduction

Chip-8 is an interpreted programming language developed for some microcomputer systems in the 1970s. The Great Chip-8 emulator aims to emulate the hardware of these computers in order to accurately reproduce their program execution.

If you would like to learn more about the specifications and implementations of Great Chip-8, consider browsing the repository wiki (if it exists) or the acknowledgments listed.

I have yet to implement any sound and there are still a few things to perfect like input handling and emulation speed.

This was my first emulator but probably won't be my last. In the future if I find the time, I would like to add extensive documentation with doxygen and optimize graphics and input.

I had good fun writing it and would recommend anyone interested in computer architecture, graphics, low-level programming, and/or game development try it out too. It's a great learning experience and is easily written in other languages if you're not a fan of C.

Dependencies

Great Chip-8 is written in C utilizing modern OpenGL for rendering and GLFW3 for input handling and window creation. OpenGL extensions are loaded using GLEW.

In short order:

  • C compiler (you should have this)
  • OpenGL (you probably have this)
  • GLEW
  • GLFW3

Building

Make

$ make release

CMake

$ CMake CMakeLists.txt

Running

$ cd great_chip-8
$ ./bin/great_chip-8 ./roms/[rom_title].ch8

Acknowledgements

Google

EmuDev Subreddit

CHIP-8 Wikipedia article

Cowgod's Chip-8 Technical Reference

How to write an emulator (Chip-8 interpreter)

Learn OpenGL