Skip to content

csixteen/chippy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chippy

CHIP-8 emulator written in Rust. This is intended to be a project for gaining experience writing emulators and practice Rust.

Dependencies

You'll need to install the SDL2.0 Development Libraries. The README of the rust-sdl2 project has very detailed information on how to install it in different platforms and it also covers scenarios that may be relevant to you.

Usage

$ cargo run -- games/<GAME>

You should replace <GAME> with whatever game tickles your fancy. The games under games/ are public domain.

Testing

$ cargo test

Keypad

The original CHIP-8 16-key hexadecimal keypad has the following layout:

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

I'm using the following mapping:

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

Screenshots

Space Invaders

alt text

Blinky

alt text

References

And here is a list of some of the projects that I've read and used as a source of inspiration. I didn't copy any of the code, but some names may be exactly the same simply because there was no better alternative.

License

See LICENSE.

Releases

No releases published

Packages

No packages published

Languages