/DBGC

A Game Boy cartridge using the Raspberry Pi RP2040 with RTC and MBC support.

Primary LanguageC

DBGC: Deltabeard's Game Boy Cartridge

A reprogrammable Game Boy cartridge that utilises the Raspberry Pi RP2040.

Front preview of PCB Back preview of PCB

Supported Features

  • Support for No MBC, MBC1 and MBC3 games (but only in single-speed mode).
  • Real Time Clock (RTC) with battery backup.
  • FRAM 32KiB for save support.
  • NOR Flash 16MiB with support upto 8MiB ROM size.
  • Can only play the one game programmed in at compile time.
  • USB-C firmware upgrade support.

Proposed Features

  • Support multiple games on NOR Flash.
  • USB-C flash storage explorer to store and retrieve save files and ROMs.
  • USB-C networking support.

Flash Storage

The flash storage will be partitioned to allow the user to either support large ROM sizes or increased number of ROMs stored. By setting the maximum ROM size to a smaller value, there will be more space to store other ROMs on the Storage partition. An example partition scheme is shown below.

Partition Size Purpose
Firmware 256KiB Stores firmware for the RP2040
Storage Remainder Wear-levelling filesystem holding ROMs and save files

USB-C Networking

By utilising RP2040 and TinyUSB features, the USB-C port can act as a networking device, which when attached to a host, will allow the RP2040 to connect to the Internet. Future features will allow supported Game Boy games to make connections to the internet.

Notes

BOM is optimised for purchase from JLCPCB with SMT assembly. The cost of producing a single cart of this revision is approximately £15. This version of the PCB has major errors that can be seen in the errata.md document. Do not manufacture PCB version 0.3 or below; instead wait for the next version or the one on the master branch.

License

The majority of the software within this project are licensed under the terms of the ISC License. Please see the header of each source file for license terms. In brief, the copyright and permission notices must not be modified.

The PCB schematic and layout are licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. In brief, you may modify and share but only under the same license to allow others to continue modifying and sharing.

This project includes Libbet and the Magic Floor and 2048-gb, which are both licensed under the terms of the zlib license, and are included within this project in an unmodified binary form for testing purposes.

Showcase

  • Pokemon Polished Crystal. A major fan-made upgrade to Pokemon Crystal. Uses MBC3 with battery backed SRAM and Real Time Clock. The version tested had CGB double-speed disabled, which caused minor graphical glitches within the game. An effort is made to fix these graphical glitches at https://github.com/deltabeard/polishedcrystal. DBGC does not currently support double-speed, so using it to play Polished Crystal may not result in the intended experience.

Pokemon Polished Crystal

  • Mega Man 1. This commercial game uses MBC1 ROM banking.

megaman1

  • 2048-gb. Open source homebrew game. Uses no ROM banking.

2048