Skip to content

benwebber/chp8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chp8

                         ██████ ██   ██ ██████   █████
                        ██      ██   ██ ██   ██ ██   ██
                        ██      ███████ ██████   █████
                        ██      ██   ██ ██      ██   ██
                         ██████ ██   ██ ██       █████

A CHIP-8 implementation.

Usage

chp8 /path/to/rom.ch8

Features

  • Zero-dependency, no_std core
  • Quirks

Architecture

The system is divided into two main components: the virtual machine Vm and host Host.

block-beta
  columns 1
  io<["I/O"]>(up, down)
  block:Host
    Display
    Sound
    Keyboard
  end
  space
  block:VM
    CPU
    Memory
  end
  Host <-- "Syscalls" --> VM
Loading

The virtual machine integrates the CPU and memory. It has no dependencies and is compatible with no_std environments. The Host trait provides the Vm with access to the keyboard, framebuffer, and sound.

Think of Vm as the interpreter and Host as the emulator. The chp8 binary implements a host using SDL2.

Acknowledgements

I found the following resources helpful:

About

A CHIP-8 implementation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages