Skip to content

Blobosle/CHIP-8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CHIP-8

CHIP-8 emulator/interpreter made in C and C++, with SDL2 for graphics.

Screenshot 2025-05-22 at 5 01 28 PM

Emulator/interpreter execution

Makefile specified for ARM based macOS with SDL2.

Inspect include directives in display.c for SDL2 implementation.

Supports usage of bytes.hex to convert hex digits into a machine instruction program tests/test.bin, using make test.

Architecture design

Specifications of emulation, in which some vary from the original CHIP-8/SUPER-CHIP design components.

  • Direct program access to 4 kilobytes of contiguous RAM.
  • Display is 64 x 32 pixels (adjustable) monochrome.
  • 16 8-bit adjacent general purpose registers & 1 16-bit register for indexing RAM.
  • 128 bytes of upwards growing Stack on a separate memory space from RAM (practically implies "unlimited" stack)
  • Two 8-bit timers (delay & sound).
  • Fonts loaded from 0x050 on RAM.
  • Programs loaded from 0x200 on RAM.
  • Post 1990s instruction set execution for 0x6 and 0xE op half-bytes.
  • Prioritization of BNNN over BXNN instruction formats.
  • Big-endian opcodes.
  • Single 16-bit instruction cycle.

CHIP-8 specific resources

An article for understanding the instruction set for the CHIP-8.

Sufficient background information about the architecture can be found on Wikipedia

About

CHIP-8 emulator/interpreter made in C and C++.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors