Skip to content

Latest commit

 

History

History
83 lines (55 loc) · 3.32 KB

README.md

File metadata and controls

83 lines (55 loc) · 3.32 KB

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