navigationGo.pngQuick Navigation
allprojects32.pngAll projects

favoriteStar32.pngTop projects
Alan numitron clock
Clapclap 2313/1386
SNES Pi Webserver
USB Volume/USB toys
Smokey amp
Laser cutter
ardReveil v3
SNES Arcade cabinet
Game boy projects
Home Presence Detector


navigationMail.pngContact me

3flags.pngWho's Alan?

Rand Nerd Tut
Datasheet Lib
Reddit Elec
Carnet du maker (fr)
ATmel blog (defunct)

gameboy homebrew cartridge

nintendo-game-boy-icon.pngSee my other Gameboy related pages
This project does not work! Don't know why, I got the board, assembled, but I have problem programming the flash memory. I didn't had occasion to find where I messed up. It should work if you put an already programmed flash, but I couldn't test that. Use at your own risk (of resource waste).


This is a Gameboy original cartridge with a flash memory store homebrew games. I have no idea is you can put ROMs of commercial games on and I have no interrest in finding out. This is to be used by your unique creations, well, mine in fact :)

There will be 2 versions of that board, will be created in that order:
  • The modest: just holds the flash and a micrcontroller used to upload the flash without a special programmer (which I don't have anyway)
  • The DeLuxe: this time the mCU will sometime steal the spotlights and answer to the GB instead of the flash. Mainly idea is to use the mCU to read a RTC and return time, that's all: making your Gameboy clock.
I need to cut the complexity and I'd like to have something to play with before Chinese new year.

Modest version

2015-02-17-23-23-02_deco.jpgNo real time answering instead of the flash memory: just program or even skip the mCU entirely and just put the flash.



See on my Github.

  • Gameboy game port expects a 2-2.1mm thick board so
    • do that PCB 2mm thick, or
    • do it 0.6mm and you stick it in a existing cartridge or
    • (my current option) you make board 1mm thick, cut out the connector part of a spare board and glue/doubleface tape them: your connector part will be 2mm which should make your GB happy
  • Card was mostly autorouted with very thin signals 0.1524 wires. It works but signals are easily damaged by a hot iron or a careless tinkerer. Be careful.
  • Autorouted 'cause I'm lazy, but result is ok (at least it works)
  • I should stop trying putting a gnd mask everywhere, it's a risk with such thin wires
  • Stop using too small font: all the 0.6 font were just not printed, resulting in a blank pcb
  • Next time don't put wires below the insertion pads, friction will kill them (one day)
  • Next time have an option to just solder the flash, not use the socket: it's too thick and don't fit in a GB


On my GitHub.


ATmega64a are tricky little b*stards and letting a fuse set cost me 2 weeks of time.
You must unset JTAGEN (or pins PF4-PF8 won't be generic I/O) and unset CompMode. For the clock I picked EXTHIFXTALRES_1KCK_0MS: I run the mCU with a 16MHz crystal, the max speed for this model.

Here's what you should set:
  • Extended: 0xFF
  • High: 0xD9
  • Low: 0xEE


Oh another promising tutorial
Good tutorial on the card making and z80



Hackaday :

All content on this site is shared under the MIT licence (do what u want, don't sue me, hat tip appreciated) ~ Formerly known as (AlanFromJapan [2009 - 2019])