Skip to content

trya/chip8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yet another CHIP-8 VM implementation
====================================
by trya - [email protected]

Some peculiarities:
-------------------
- modular and exposing an API to easily reimplement the frontend in
pretty much any language or environment possible.
- core of the VM is written in C99-compliant C.
- SDL frontend is also written in C, but can only compile on Linux at
the moment, as it uses the Linux-specific timerfd for timer operations
- the interpreter does not limitate the number of instructions per
second, so it's up to the frontend to make the interpreter wait during
keyboard or display operations. For example, the SDL frontend waits
either on vsync or keyboard event.

Build instructions:
-------------------
$ make
Other targets:
- clean: remove binaries and object files
- chip8_dummy: build dummy executable without any interface (video,
audio, keyboard, timers) implemented
- chip8_sdl: SDL frontend, needs the latest version of SDL2

Usage:
------
- SDL frontend:
$ chip8_sdl rom_file
Controls only through keyboard at the moment, the keys are
layout-independant (that is, they're at the same location for any
PC keyboard). For example, on a QWERTY keyboard, the keys are mapped as:
1 2 3 4      1 2 3 C
Q W E R ---\ 4 5 6 D
A S D F ---/ 7 8 9 E
Z X C V      A 0 B F
Tab key resets the virtual machine.

About

Yet another CHIP-8 VM implementation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published