A modern CHIP-8, Super CHIP-8 (SCHIP), and XO-CHIP emulator written in TypeScript.
- 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.
- Visit the live demo
- Load a ROM by clicking "Load ROM" button
- Adjust settings using the configuration panel
- Enjoy playing!!
- Node.js (v23 or higher)
- pnpm (recommended package manager)
- fnm (optional, for easy Node.js version management)
Clone the project to your local machine:
git clone https://github.com/franciscodelahoz/Chip8-Emulator.git
cd Chip8-EmulatorIf you use fnm:
fnm useIf you use nvm:
nvm useOr manually select Node.js version 25 or higher.
Install all required packages with:
pnpm installnode --run dev- Opens the app in hot-reload mode for rapid development.
- Visit http://localhost:4000 (or the port shown in your terminal).
node --run build- Generates the static files for deployment in the
distdirectory.
- Cowgod's Chip-8 Technical Reference: Read the reference
- XO-CHIP Specification: Read the specification
- SuperChip Specification: Read the specification
