Skip to content

franciscodelahoz/Chip8-Emulator

Repository files navigation

Chip-8 Emulator

A modern CHIP-8, Super CHIP-8 (SCHIP), and XO-CHIP emulator written in TypeScript.

Chip-8 Emulator Screenshot

Features

  • Complete support for CHIP-8, SCHIP, and XO-CHIP instruction sets
  • Multiple font rendering options: Chip8, SCHIP, Octo, Fish'N'Chips, ETI-660, DREAM-6800
  • Custom color palette support with user-defined color schemes
  • Customizable quirks for accurate emulation behavior
  • Preset profiles for each supported chip type (CHIP-8, SCHIP, XO-CHIP)
  • Adjustable cycles per second for performance tuning
  • Configurable audio options
  • Responsive web interface
  • Progressive Web App (PWA) features, including support for .ch8, .sc8, and .xo8 file associations.

Demo

Try it live here!

Usage

  1. Visit the live demo
  2. Load a ROM by clicking "Load ROM" button
  3. Adjust settings using the configuration panel
  4. Enjoy playing!!

Development & Build Instructions

Prerequisites

  • Node.js (v23 or higher)
  • pnpm (recommended package manager)
  • fnm (optional, for easy Node.js version management)

1. Clone the repository

Clone the project to your local machine:

git clone https://github.com/franciscodelahoz/Chip8-Emulator.git
cd Chip8-Emulator

2. Set the correct Node.js version

If you use fnm:

fnm use

If you use nvm:

nvm use

Or manually select Node.js version 25 or higher.

3. Install dependencies

Install all required packages with:

pnpm install

4. Start the development server

node --run dev
  • Opens the app in hot-reload mode for rapid development.
  • Visit http://localhost:4000 (or the port shown in your terminal).

5. Build for production

node --run build
  • Generates the static files for deployment in the dist directory.

Documentation & Resources

About

A Chip-8, Super Chip-8 (SCHIP), and XO-CHIP emulator written in TypeScript.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors