dorkhub

gb.teensy

Gameboy emulator for the Teensy 4.1 microcontroller

blazer82
C++1345 forksGPL-3.0updated 5 years ago
git clone https://github.com/blazer82/gb.teensy.gitblazer82/gb.teensy

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:

more like this

musicboy

A high-quality audio playback cartridge for Nintendo® Game Boy® and Game Boy Color®.

C50

gbops

The most accurate Game Boy opcode table

TypeScript50

AutomationShield

Arduino library and MATLAB/Simulink API for the AutomationShield Arduino expansion boards for control engineering educa…

C51

search

search projects, people, and tags