A CHIP-8 game console emulator implemented on an FPGA chip (TinyFPGA BX) with hardware integration.
fpga-chip8 is a CHIP-8 game console emulator implemented on an FPGA (Field-Programmable Gate Array) chip. It recreates the classic CHIP-8 virtual machine in hardware, allowing it to run retro games with physical components like a keypad and OLED screen. The project solves the challenge of accurately emulating CHIP-8 behavior in Verilog while integrating real-world peripherals.
FPGA enthusiasts, hardware developers, and retro computing hobbyists interested in learning Verilog, hardware emulation, or building custom gaming consoles. It's also suitable for those exploring CHIP-8 implementations beyond software emulators.
Developers choose this project for its hands-on approach to FPGA development, detailed implementation insights, and practical integration with hardware components. It offers a clear, open-source reference for building emulators on FPGAs, with features like debug mode and efficient game loading.
CHIP-8 console on FPGA
Implements CHIP-8 CPU, memory, and graphics in Verilog with unit tests, correcting misconceptions from software emulators, as evidenced by the detailed test benches for cpu, gpu, and bcd modules.
Connects to physical SparkFun keypad and WaveShare OLED screen, providing a complete retro gaming experience with real hardware components, as described in the hardware section.
Uses icebram tool to load different game ROMs without rebuilding the entire bitstream, saving significant time compared to the 30-second build process mentioned in the README.
Includes a debug mode that displays registers, stack, and memory when specific keys are pressed, aiding in learning and troubleshooting FPGA emulation internals.
Consumes over 1600 LUTs and doesn't leverage dual-port memory, making it suboptimal for resource-constrained FPGAs like iCEstick, as admitted by the author in implementation notes.
Each instruction takes about 20 cycles with unnecessary pauses in memory access, leading to slower execution and missed optimization opportunities for clock cycle efficiency.
Requires specific TinyFPGA BX board and peripherals, along with IceStorm tools, creating barriers for those without exact hardware or FPGA development experience.
CHIP-8 interpreter and debugger programmed in BASIC inside another retro fantasy console
An IDE for development of CHIP-8, Super-CHIP and XO-Chip games
An emulator for many old microcomputers, including COSMAC VIP, Telmac 1800 and ETI 660, which ran early CHIP-8 interpreters (which are included in the emulator)
CHIP-8/Super-CHIP interpreter for TI-83 (Plus) calculators
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.