#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.
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?
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?