Skip to content

A CHIP-8 interpreter written in C, using OpenGL and GLFW for cross-platform rendering, window creation, and input handling.

License

Notifications You must be signed in to change notification settings

GitHubUser82/chip8-c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chip8-c

A CHIP-8 interpreter written in C, using OpenGL and GLFW for cross-platform rendering, window creation, and input handling.

Screenshots

Tetris screenshot Tetris


Pong screenshot Pong


Space Invaders screenshot Space Invaders


Breakout screenshot Breakout


Installation, compilation, and execution

⚠️ Windows Users: You need gcc, make, and other basic GNU tools (like mkdir and rm) to be able to compile the source files using make.
Install them easily using MSYS2.

Steps

Install and compile with

git clone https://github.com/GitHubUser82/chip8-c
cd chip8-c
make PLATFORM   # replace PLATFORM with windows or linux 

Then use the produced executable to run a CHIP-8 ROM with

.\bin\chip8_interpreter.exe .\roms\ROM_NAME   # on Windows
./bin/chip8_interpreter.out ./roms/ROM_NAME   # on Linux

(Replace ROM_NAME with the name of the ROM you want to run)

Input

The original computer for which CHIP-8 was built (the COSMAC VIP) had a hexadecimal keypad that looked like this:

1 2 3 C
4 5 6 D
7 8 9 E
A 0 B F

Modern CHIP-8 interpreters use the 16 keys in the upper-left section of a standard keyboard to emulate the original hexadecimal keypad.

For a QWERTY keyboard, these are:

1 2 3 4
Q W E R
A S D F
Z X C V

For an AZERTY keyboard, these are:

1 2 3 4
A Z E R
Q S D F
W X C V

About

A CHIP-8 interpreter written in C, using OpenGL and GLFW for cross-platform rendering, window creation, and input handling.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published