logo
navigationGo.pngQuick Navigation
allprojects32.pngAll projects
hardware32.pngHardware
links32.pngLinks

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

github32.pngGitHub
AlanFromJapan

navigationMail.pngContact me

alanfjmail.png
3flags.pngWho's Alan?


Akizukidenshi
Elec-lab
Rand Nerd Tut
EEVblog
SpritesMods
Switch-science
Sparkfun
Suzusho
Datasheet Lib
Reddit Elec
Ermicro
Carnet du maker (fr)
Marutsu
ATmel blog (defunct)

Gameboy homebrew cartridge

kalshagar - Gameboy homebrew cartridge
nintendo-game-boy-icon.pngSee my other Gameboy related pages

Introduction

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.

Parts


Schematics

See on Google SVN.

README:
  • 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

Code

See on Google SVN.

Fuses

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

Documentation


Oh another promising tutorial http://gameboy.mongenel.com/asmschool.html
Good tutorial on the card making and z80 http://www.digital-circuitry.com/8-bit_Memory_Mapping.htm

Internal

External

Hackaday :

GBPins.gifgb_cartridgeeprom.gif
All content on this site is shared under the MIT licence (do what u want, don't sue me, hat tip appreciated)
electrogeek.cc ~ Formerly known as Kalshagar.wikispaces.com (AlanFromJapan [2009 - 2017])