gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Hardware > Making a GBA Dongle

#141917 - Hornpipe2 - Mon Oct 01, 2007 5:10 pm

I have long since sold my GBA and GBA-GCN link cable. But I still have Animal Crossing, and it has some in-game features that are only available to people who can link up a GBA. Some stuff actually uses the netboot to put minigames and tools on the GBA, but others merely check for its presence before allowing access to certain areas (namely the island).

I'd like to create a fake GBA - that is, a piece of hardware that plugs into a controller port and identifies itself as a GBA, but fails when you try to download code to it. I think this should be pretty easy with just a couple of parts. Right now I'm considering a PIC wired into the controller port that does nothing but send 0x000400 as a response to every request from the GCN.

[Images not permitted - Click here to view it]

Looking at the datasheet for the PIC10F200, it says each instruction takes 1uS to execute. Great - that is exactly the length of one signal on the serial data line ( according to http://www.int03.co.uk/crema/hardware/gamecube/gc-control.htm - it's 4 signals per bit ). Unfortunately the inputs are unbuffered on this PIC, so there is the possibility that I could lose bits. That may turn out to be unimportant, as I could probably just plan to NOP 24 times after detecting a bit on the input line, then send out my response (as I don't really care about responding 'correctly' to the GCN - just being accurate enough to fool it in this case)

Your thoughts: Can it work?

EDIT: My schematic needs a revision I think. I should be using the output pin to control a pull-down resistor when sending my output - not just feeding bits straight on the data line. A transistor and a couple of diodes (plus the resistor) would probably make it work.
http://www.raphnet.net/electronique/x2wii/index_en.php wrote:
On the gamecube side, the data signal is held at 3.43 volts via a pullup resistor inside the Gamecube. When someone (gamecube or controller) wishes to set the signal to 0, it just has to pull the signal to ground. Otherwise, it just leave-it as-is.


EDIT2: Now I am curious if Animal Crossing runs any code on the GBA. I don't think it does... How could I (or someone) check?

#141927 - tepples - Mon Oct 01, 2007 7:26 pm

Hornpipe2 wrote:
I have long since sold my GBA and GBA-GCN link cable. But I still have Animal Crossing, and it has some in-game features that are only available to people who can link up a GBA.

All you can get on the island are coconuts (not worth significantly more than native fruit), Wario's Woods, one other NES game, and a source of money. I can help you with the money part: see Abundant Cash Player's Guide.

Quote:
I'd like to create a fake GBA - that is, a piece of hardware that plugs into a controller port and identifies itself as a GBA, but fails when you try to download code to it.

Do you have a second GameCube, or do you have both a Cube and a Wii?

Quote:
Now I am curious if Animal Crossing runs any code on the GBA. I don't think it does... How could I (or someone) check?

If a GameCube or other device is sending code to the GBA, you'll hear part of an ascending G major scale on the GBA, and "Nintendo" will start to flash. This happens during Advance Play, Mabel's pattern tool, and when you leave the island.

But still, let's see: You've sold your GBA, and you're posting on a GBA/DS forum. This means you probably play DS homebrew. Do you also play Animal Crossing: Wild World?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#141931 - Hornpipe2 - Mon Oct 01, 2007 8:00 pm

I used to visit the Island when I had my GBA, so I know what's out there. I would still like the option of going. No, I have only my one Cube. And no, I do not have a DS (used to, but had to make rent haha - I'll get a DS Lite one day...)

Now that I think about it, though, there IS some processing involved when you board the boat to leave the island: the Cube is checking the GBA to see if you already have a copy of the Island minigame running, and is copying the data back over. Phooey since it seems I'd have to emulate the 'no island here!' response from the GBA too.

HOWEVER: I am now thinking that with a more sophisticated setup, I could apply the dongle to a number of games - possibly even making it worth building! I am thinking that a (more advanced) PIC could checksum the incoming code, and then send back canned responses to the Cube to emulate various GBA connections in games. It could be extended to any game that does not need the GBA for processing, displaying on screen, or input. Here's a few examples:

* Animal Crossing: Visiting the island (which is covered above) - the dongle would pretend to be a coldbooted GBA in multiboot waiting, triggering the game to send the user to the Gamecube-saved island
* Metroid Prime: Unlockables - the dongle would pretend to be a GBA with a completed Metroid Fusion, unlocking the Fusion Suit and NES Metroid in-game
* Pokemon Colosseum - the dongle would pretend to be a GBA with a Pokemon game inserted, allowing the user to play Pokemon on the Gamecube. (An additional EEPROM would be handy to allow saving data but that's maybe too much engineering effort)
* Hot Wheels Velocity X - the dongle would act like a GBA with the GBA version of the game, and could unlock some additional cars.

In fact there's a whole list of these things that could be covered (a fine starting place...). I'd like suggestions and ideas if anyone's got them.

#142976 - Hornpipe2 - Mon Oct 15, 2007 7:52 pm

Revised the schematic above. The new version should actually work. IN just reads the 0 or 3.43v signal. Raising OUT drops the data line to 0v and lowering it leaves the 3.43v as is.

#144517 - HyperHacker - Sat Nov 03, 2007 3:47 am

Another idea: Buy a cheat disc such as Action Replay and make a code to bypass the GBA check entirely.
_________________
I'm a PSP hacker now, but I still <3 DS.

#144543 - tepples - Sat Nov 03, 2007 5:49 pm

HyperHacker wrote:
Another idea: Buy a cheat disc such as Action Replay and make a code to bypass the GBA check entirely.

People who bought a Wii to replace a worn-out GameCube would have to buy a GameCube too, as recent Wii firmware doesn't allow Datel discs to boot.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.