/gb.teensy

Gameboy emulator for the Teensy 4.1 microcontroller

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Teensy Gameboy

build-badge cpu-instrs-badge

This is a work-in-progress Gameboy emulator for the Teensy platform. It requires some custom hardware and wiring in order to work properly.

Breadboard Gameboy

Features

  • Runs Tetris
  • Passes Blargg's CPU instruction tests
  • Audio output (4 separate channels)

Dependencies

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.

Wiring

Display

For display wiring please refer to this guide for the FT81x Arduino Driver.

Buttons

Button wiring is straight forward and doesn't require any pull-up resistors:

Button Wiring

Audio

For proper audio output some filter and amplifier circuitry is required:

Audio Wiring

Tip: Audio output is most authentic with a Gameboy replacement speaker.

Running and Loading a Game

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");

Contributing

Any contribution is welcome! Please have a look at open issues and pull requests or create your own.

Credits

Substantial contributions have been made by:

The code builds upon the following libraries: