Skip to content

soumitradev/chip8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CHIP8 Emulator

My first attempt at emulation. This Go project aims to emulate a fully working CHIP8 system complete with graphics, a working CPU, memory, sound, and keyboard input.

Everything works as far as I have tested, except for audio.

Usage

Usage: chip8 [--scaling SCALING] [--fps FPS] [--cpuspeed CPUSPEED] ROMPATH

Positional arguments:
  ROMPATH                Path to CHIP8 ROM file.

Options:
  --scaling SCALING, -s SCALING
                         Pixel scaling. Adjusts size of display. [default: 15]
  --fps FPS, -f FPS      FPS to run display at. [default: 60]
  --cpuspeed CPUSPEED, -c CPUSPEED
                         Speed of CPU relative to FPS. [default: 10]
  --help, -h             display this help and exit
  --version              display version and exit

Controls

Keys


1234
QWER
ASDF
ZXCV

map to

123C
456D
789E
A0BF

respectively


Screenshots

Brick Connect 4 Pong
Rock Paper Scissors Space Invaders Tetris

TODO (in no particular order):

  • Add more invasive features (e.g. Soft reset, Hard reset, memory manipulation, etc.)
  • Implement VIP/Super chip8
  • Implement audio (needs a better understanding of goroutines and channels)

Credits