There was not much to this one as the protocol is very much like the Game Cube with a bit shorter timing so using the already established code was not going to work right. The controller polling was pretty simple but I wanted to support the rumble pack. When the game starts up it seem to do a few reads and writes to see if we have a memory card or a rumble pack. Unfortunately this means write a communication function to deal with all 32 some bytes. The rumble pack is just a static memory card. So the game will test that and if found, it will use it.
Quite a challenging process as you need to handle check-sum and do some processing of commands. Though all of this just for rumble sounds a bit too much. So I used a few short cuts to make data assumptions. Another issues was that the n64 only offers 3 volts. So controllers like PlayStation will not rumble. A boost to 5v was needed and the current is just not enough. As a matter of fact, it powers down the circuit when it rumbles because of the power drain to turn that motor over. Good news is that is not the case with the smaller motor. So I made an adjustment so that the bridge only uses the small psx motor for rumble. The Dream cast also will not rumble with the pack I have, again too much power is needed for the boost. Tough those are removable and the controller works fine with out them. It is possible some rumble motors will work but they need to be small.
Another small tid-bit was the range, n64 is not 255 bytes like all other game pads. So the value taken form the Bliss-Box is cut down and anything past the n64 threshold is the max value. Using a test home brew app it looks like a perfect mach.
Tested a few games out for fun and as much as I always thought the n64 was a neat game pad… Yeah it’s much better with a GC pad, especially with that large attachment for rumble out of the mix. Not much else to this one, an easy 2 day job!