Possible to connect GBA Link cable to a NES controller port?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Possible to connect GBA Link cable to a NES controller port?
by on (#54413)
Is it possible to connect a GBA link cable to a NES controller port, and have a GBA control the NES?

by on (#54415)
I imagine if the GBA communicates the information about button presses with the link cable (which I'm sure it does), then I'd think you just need something to rearrange that information in a way that the NES can interpret. If you can have that, then I don't see why not. I don't know for certain, but it seems possible. I guess that doesn't help though.

by on (#54417)
One problem is that with the cable by itself, you would need to do flow-control in software or come with some other kind of acknowledgment scheme so the NES doesn't miss anything. NES would have to keep polling until something comes through, or time itself out.

It also depends on the GBA COM port being at a speed the NES can handle (I usually did 19.2kps on it, but it can go faster IIRC).

Also the GBA might not like 5V on it's input, so that may need to be translated to 3V.

by on (#54420)
That's kinda funny, me and memblers were talking about doing that with squeedo a few days ago :P

by on (#54495)
Memblers wrote:
One problem is that with the cable by itself, you would need to do flow-control in software or come with some other kind of acknowledgment scheme so the NES doesn't miss anything. NES would have to keep polling until something comes through, or time itself out.

It also depends on the GBA COM port being at a speed the NES can handle (I usually did 19.2kps on it, but it can go faster IIRC).

Also the GBA might not like 5V on it's input, so that may need to be translated to 3V.


The only guaranteed way I can think to do this that is to code a 'game' that simulates the button presses into signals that the NES can understand, but I can foresee latency issues in doing that.

I don't know the VO spec for the GBA COM port, but I also suspect that it is lower (~3.3V).

It may be possible — and I stress possible — to apply wiring directly to the internal connections from the control circuitry in the GBA and lay out a secondary wiring pattern to an NES controller cable, but if the pulses used by the GBA to communicate and transcode button presses into the CPU aren't compatible with those used by the NES, this would fail.

You’d have to whip out an oscilloscope and test them to be sure firstly, before splicing into solder points or traces. if you do go that route, remember to use low-melt point solder (SMD type) or you'll damage the logic board.

You may need to provide an external/supplementary method of power in any case, if the expected VI is too low. Stepping 3.3V up to 5V, or staging 5V down to 3.3V is not impossible (although it's no batch of cod), but it's not going to happen within the GBA, as there's not much room to spare and it would be unwise in any event to start sticking caps on loose wire inside the unit, as they are likely to shift a bit during use.

-Xious

by on (#54500)
I would guess the GBA's "normal" SIO mode, intended for use over GBC link cables, is probably the closest match for the NES's protocol. But to see the strobe signal, I guess a GBA program would have to spin on RCNT to know when to load in a new data byte.