GBlinkdl
Introduction | How
It Works | The Cable | Download
GBlinkdl uses
a simple 4-wire cable between the Game Boy's link port and PC's parallel
port, allowing for the two devices to communicate with
each other. By running GBlinkdl.gb on a flash cart and GBlinkdl.exe on
your PC, you can read and write the Game Boy's memory and registers from
the PC. It gives you the ability to write to a flash cart, dump cartridges,
read and write save data, probe the GB, reverse engineer mappers, and
more... ALL WITHOUT ANY HARDWARE MODIFICATION!
I originally built this to dump some cartridges before
they suffered from bitrot, and some other obscurities, including the
Super Mario 3
Special HK Original. The busier I get, the more I'm about simplicity,
or more specifically, taking the best approach which can be done in the
least possible time. Building a GB cart dumper with the features I wanted
would've
taken
more
time,
and I already had the link port<->parallel port cable handy from
my flash kit, the 'PC Linker'. As well, because this goes through the
real Game Boy, the mapper and such is written to directly as it is under
normal execution.
How It
Works
When the GBlinkdl.gb is run on a Game Boy, it loads itself into the
RAM at $C000 and waits for the PC. This happens immediately upon boot,
and when you see the text "Run GBlinkdl.exe on your PC now..." on
your Game Boy's screen, you can swap out the flash cart and pop in the
cartridge you wish to dump. With the cable connected between the GB and
PC, you are ready to run the PC program. It will read the header and
perform the dump.
The possibilities are endless and any cartridge can be
dumped. However, I only implemented support for the plain GB cart, MBC1,
and Super Mario
3 Special in the program. This is simply because those are what I needed
at the time of it's writing, and as I have released the full source code
for everything, you can add the support you need. For example, adding
MBC5 support is simply a matter for adding an extra write to the $3xxx
memory space.
Of course, I must mention there IS a catch to this simplicity.
As for the cartridge swap, the GB will usually reset itself. One fix
is to modify
the Game Boy to prevent this from happening... the second and simpler
is to use a Game Genie. Pop the flash cart into the GG and the GG into
your GB. Turn it on, skip the code screen, run the GBlinkdl.gb off the
flash cart, and then pull it out and pop the one you want to dump into
the GG. It's ready to go!
The ideal way to go would be open up the GB and solder
in an EPROM with the GBlinkdl ROM and a EPROM/cartridge selector controlled
purely by
software, so there would be no swapping needed at all. It wouldn't be
hard to do, and would make for a pretty powerful GB. Maybe one day I'll
get around to that. In the mean time though, if you have the GB PC Linker
and a Game Genie, you don't need any electronic skills whatsoever, and
can dump carts and do all the other cool stuff GBlinkdl allows you
to!
The
Cable
I simply used the cable which came with the PC Linker
flash kit. It's incredibly simple, as can be seen above.
Download
You can download the GBlinkdl package here (52KB).
It includes everything you need to take control of your GB from
your PC, as I've included the full source code to the PC and
GB programs and the cable schematic. Have fun!
Document and Information By Brian Provinciano
November 2nd, 2005
Updated November 2nd, 2005 |