A modern CHIP-8 emulator built with Python and PyQt6, featuring a development GUI for debugging and ROM management.
- 🎮 Full CHIP-8 instruction set emulation
- 🖥️ PyQt6-based GUI with debugging capabilities
- 📁 Built-in ROM library with classic games
- 🔧 Development mode with step-by-step execution
- ⚡ Configurable execution cycles
- Python 3.10 or higher
- uv package manager
pip install uv
uv sync
Launch the emulator:
uv run main.py
Load a specific ROM:
uv run main.py --rom roms/tetris.rom
Run with limited cycles (useful for debugging):
uv run main.py --rom roms/pong.rom --cycles 1000
Flag | Short | Description | Default |
---|---|---|---|
--rom |
-r |
Path to CHIP-8 ROM file | None |
--cycles |
-c |
Max CPU instructions to execute | Infinite |
The roms/
directory contains several classic CHIP-8 games:
- Tetris
- Pong
- Breakout (br8kout)
- Flight Runner
- IBM Logo demo
- And more...
pyCHIP8-neo/
├── main.py # Entry point
├── emulator/ # Core emulation logic
├── runtime/ # GUI and development tools
├── roms/ # CHIP-8 ROM files
└── test/ # Test files
- CHIP-8 Technical Reference - Comprehensive technical documentation
- Guide to Writing a CHIP-8 Emulator - Detailed implementation guide
This project is open source. See the project files for more details.