[Steve] wanted to do some ARM development and set his sights on the Game Boy Advance as a development package. In order to get his code onto the device he build an Arduino-based communications cable. It is necessary to have a microcontroller involved because the GBA uses a peculiar 16-bit serial communications protocol. This cable is an adaptation from the 8051-based cable developed by [Matt Evans] several years ago. [Steve’s] got it working by porting the 8051 assembler over for the Arduino, but we’d recommend adding a level converter to his hardware setup to step down from the Arduino’s 5v logic to the 3.3v logic the GBA expects.
He didn’t make up a wiring diagram, but in the code comments [Steve’s] laid out the connections as follows:
Arduino 8 to GBA SO Arduino 9 to GBA SI Arduino 10 to GBA SD Arduino 11 to GBA SC
That’s it, follow the README in his source code package and you’re on your way to some ARM development.
24 thoughts on “Arduino Based Multiboot Cable For Game Boy Advance”
Arduino’s …. Let the GBA program them :D
Like the idea, I just happen to have a multi-boot cable already. more RAM inside the gba or at least more program space would be nice. 256K bytes external WRAM isnt much…
Can one make mbc5 with ttl logic ? or older mbc ? http://tinyurl.com/gbambc
Ahh ardunio programming on a gameboy….
Oh yeah ,that’s better than a QWERTY keyboard anyday!
No, it’s using an Arduino as an adapter to load GameBoy programs written on a computer to the GameBoy
Awesome! If the GBA cable is the same as the old GB color cable (I know the GBA ones had a connector in the middle, but the plugs are the same I’m pretty sure) then I have half of one (it was a parallel-to-GB cord for no apparent reason, cut the parallel port off for another project). The GBA would make a good ARM dev-board because it has a screen, input devices (buttons), audio, etc. Even if the screen were just used for console output it’d be nice. I’ll have to get my old GBA out and build one of these things!
Great bit of work.
@CalcProgrammer1 : I suspect, if the cable you have wasn’t already for dev/debug, that it was likely used as a virtual gameboy printer, to interact with a GB camera, or other software.
i wonder what this can be used for?
This is slightly epic… :)
I just prefer using my DS flash cart to program my GBA cartridge. Much faster, and a lot more convenient. Still, this would be awesome to have, or to port to a different microcontroller.
And as it happens I did pick up bundle for the GB/GBA from a store in NYC, that naturally had no idea what heck they were. And that includes the cable used to connect two GBA devices together.
What’s wrong with a normal xboo cable (GBA serial connector, a diode..) + usb to parallel adaptor? If you get one of the flash carts that uses the GBA as a writer you already have such a cable.
If you’re learning ARM assembler yeah,.. but in the real world ARM based micro’s differ a great deal as it’s up to the vendor (NXP, AD etc) as to what they jam into their chips. I’m not sure how much of the stuff you would learn on the GBA would apply to any other machine than the DS.
Not to say that the hardware on the GBA isn’t interesting and fun to work with. As you say, you get a screen, buttons, sound etc and thanks to DebkitARM you don’t have to write your own linker scripts, startup code and other shit if you want to use free tools. But if you eventually intend to use one vendors ARM solutions just buy one of the Olimex boards with that vendors chip on board.
Why everyone likes “ARM” so much I dunno.
>i wonder what this can be used for?
The serial port is there for two GBAs to talk for mutliplayer games.. There is a protocol called multiboot that is meant to be used to boot a slave GBA without a game cart from a master GBA with a game cart for a limited 2 GBA multiplayer setup.
It just so happens that you can take advantage of multiboot to upload your own code and execute it ala homebrew. As the first poster said, you are limited to 256K though.. so it’s not like you can upload commercial games although some programmable carts do use a similar cable + multiboot program to write rom images from a computer. I wrote a multiboot prog that dumps the rom + eeprom/sram from the cart in the slot over the serial port Back in the Day ™…
Oh, having this sort of cable is also useful for sending debug messages too.. especially if you still haven’t work out how the display modes etc work.
cantido: USB-to-parallel adapters aren’t worth the plastic they’re made out of. They can only be used for printing, nothing else. All the various projects that have used the parallel port for this sort of thing require the ability to toggle individual pins in a carefully timed manner.
@rj they do exist, but are really expensive and I cant find the website. I believe someone in germany made them. but …
@cantido please use the Arduino method for “usb-parallel”. Here is why this hacks comes in. Cheaper and much easier if you don’t have an parallel port.
Just to be clear here, you’re now using a chip with more processing power than the GB itself to act as a cable interface?
C’mon people. Stop with the Arduino abuse.
I’m currently working on porting this to an ATTiny2313 which is a more sane choice of IC I’m just waiting for parts to arrive to test it.
The AVR chips can run at up to 20MHZ (and 20 MIPS) (which is admittedly faster than the gba) but thats not necessarily a good measure of usefulness as the GBA has more ram, a 15bpp screen, DMA hardware, audio output, a 16 bit processor (should be much faster at 16 bit maths than the AVR chips).
So the better choice for a project really depends what you want to do with the hardware.
low level timing critical pin IO then go with the AVR
display double buffered graphics go with the GBA
Also for £10 (including the GBA and all of the parts for an upload cable) you get a lot of peripherals for your money.
People are doing JTAG with a single FTDI USB->Parallel chip.. thats sort of what I was getting at… hell if you really want to use an AVR why not use the VUSB stuff and make it a single chip solution?
Well,.. the parallel port is going to be more useful because you can use all the existing xboo stuff with it. Is the arduino really cheaper? Really?? Whats the cheapest Arduino out there?
In the long run you’ll want to get your hands on all the address space the cart slot has anyhow.. 256K isn’t a lot of space if you need to store tiles etc.
“Really?? Whats the cheapest Arduino out there?”
like 5 bucks, 10 if you want a board and everything in a kit
“Just to be clear here, you’re now using a chip with more processing power than the GB itself to act as a cable interface?”
its funny, every time you open your mouth you sound abit dumber
yes, an 8 bit avr running at 16mhz is much MUCH faster than a 32 bit arm 7 running at the same clock speed
and your mom was right, your both handsome and special too
how feasible would it be to install a wireless module in the GBA’s cart slot, to use the console as a simple remote for home automation?
would that be pointless/overkill considering i could just rip the innards out and replace em with an arduino+xbee?
but I like the parallel port more… Can program my Eproms and my older CNC machiene doasnt like a usb-printer cable… its just not true parallel thingy.
can someone hack a real parallel port into usb for us ? XD
there is nothing about the title that I didn’t like
The link to the blog post is not working for me. Is there somewhere else I can find this source package?
@ParkerT or whoever is interested:
If the device operates at 5V, can we use it to link a Game Boy (DMG/Color) to a PC for multiplayer / data transfer?
Please be kind and respectful to help make the comments section excellent. (Comment Policy)