This is a work-in-progress Gameboy emulator for the Teensy platform. It requires some custom hardware and wiring in order to work properly.
- Runs Tetris
- Passes Blargg's CPU instruction tests
- Audio output (4 separate channels)
The project uses a Teensy 4.1 as its main processing unit and storage device (SD card).
The FT81x Arduino Driver is used as a display system.
Additional wiring is required for audio output and button input.
For display wiring please refer to this guide for the FT81x Arduino Driver.
Button wiring is straight forward and doesn't require any pull-up resistors:
For proper audio output some filter and amplifier circuitry is required:
Tip: Audio output is most authentic with a Gameboy replacement speaker.
Game ROMs are not included with this repository and have to be provided via SD card! Make sure the SD card is formatted using the FAT32 filesystem using Master Boot Record partitioning style. File names should follow the 8.3 MS-DOS style.
As of now, the ROM to be loaded has to be specified inside src/main.cpp
, e.g:
Cartridge::begin("tetris.gb");
Any contribution is welcome! Please have a look at open issues and pull requests or create your own.
Substantial contributions have been made by:
The code builds upon the following libraries: