Skip to content

ifilot/gameboy-cartridge-reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gameboy Cartridge Reader

GitHub tag (latest SemVer) build License: GPL v3 License: CC BY-SA 4.0

This project is a Gameboy cartridge reader designed around the Atmel ATmega32u4 microcontroller. It provides an easy way to interface with Gameboy cartridges, enabling data reading, writing, and backup. The design includes a custom PCB, firmware for the 32u4, and a simple GUI for user interaction.

Note

Download a Windows 64-bit installer for the GUI via this link

PCB with components

Features

  • Custom PCB: Compact and optimized PCB designed for seamless connection with Gameboy cartridges and the 32u4.
  • Firmware: Lightweight firmware written for the ATmega32u4, handling cartridge communication and USB interfacing.
  • GUI: User-friendly graphical interface to manage cartridge data operations on your computer.
  • Open Source: All design files, firmware, and GUI are open-source and available for modification.
  • Writable Cartridge Support: Includes a PCB design with an SST39SF010 chip, enabling the writing of 32KiB Gameboy games.
  • Gameboy Camera Support: Easily extract photos taken with the Gameboy Camera and save them on your computer. The extracted images can be exported in a variety of color palettes for a personalized look.

Important

Please be aware of copyright laws regarding Gameboy and Gameboy Color games. Making copies of game data is strictly prohibited in many countries unless you own the original cartridge and are creating a backup for personal use where such actions are legally permitted. It is your responsibility to ensure compliance with local laws. This project is intended solely for educational purposes and lawful personal use.

GUI

The GUI allows users to interact with their Gameboy cartridges through a straightforward interface. Users can read ROM data from cartridges, create backups of save files, and write new save files to supported cartridges. Additionally, the GUI provides options for verifying data integrity, viewing cartridge metadata (such as title and game ID), and managing writable cartridges for flashing custom or homebrew games. Designed for simplicity, the GUI ensures that all operations are intuitive and accessible, even for beginners.

Graphical User Interface

Bundled games

The following games are bundled with the GUI and can be readily flashed by the user to a writeable cartridge.

PCB

The PCB primarily utilizes SMD components, with the exception of the 16MHz crystal and the push button, which are through-hole components. To simplify the soldering process, it is recommended that users order a solder paste stencil and use a hot plate to solder the SMD components efficiently and accurately.

PCB with components

PCB

Schematic

PCB schematic

Writeable cartridge

The writable cartridge for the Game Boy, based on the SST39SF010 flash memory chip, offers versatile support for both TTSOP32 and PLCC32 package variants. This flexibility allows developers and enthusiasts to choose their preferred chip packaging without requiring additional hardware modifications. The cartridge is designed to leverage the high-speed erase and write capabilities of the SST39SF010, making it ideal for prototyping or homebrew games.

Writeable cartridge

Gameboy Camera Features

  • Extract images directly from the Gameboy Camera cartridge.
  • Customize the color scheme of the extracted photos.
  • Preserve your Gameboy Camera creations in digital form.

Gameboy Camera

Firmware

The firmware for the ATmega32u4 must be compiled using Atmel Studio to ensure compatibility and proper optimization. Once compiled, the firmware can be flashed to the microcontroller using an ISP programmer, such as AVRDUDE, for seamless and reliable programming.

Fuses

See the firmware/<DEVICE>/scripts folder for reading and writing the fuses. The proper fuse settings for lfuse, hfuse and efuse should be 0xFF, 0xD8 and 0xCB, respectively.

Case

A 3D-printable case for the Gameboy cartridge reader is available in the cases folder, providing a protective and aesthetically pleasing enclosure for the assembled PCB.