Reading 1 Gamecube Controller and passing the inputs to 4 Gamecube Consoles #69
Replies: 4 comments 2 replies
-
I could be wrong, but I think it's coming down to clock speed. My current Arduino runs at 16MHz. I've purchased an Arduino Due that runs at 80MHz. I'll report back once I've had a chance to test it tomorrow. |
Beta Was this translation helpful? Give feedback.
-
Console.write is a blocking function. That is, when called, it will halt the program and monitor the data line waiting for the wii to send a command before it continues. It might be likely that the consoles do not request the data in the perfect order. So it's stuck on console1 when the others are trying to request data. If I remember correctly, it takes about 350 micro seconds to send the data packet. So sending to 4 consoles shouldn't be too problematic. Lastly, this library timing has hard coded assembly timing, so it only works on 16mhz avr processors. I known someone who made it work on a teensy using C, but I don't think the processor speed is the biggest problem. Perhaps there's a way you could edit the library to monitor all 4 console data lines at the same time, instead of individually. |
Beta Was this translation helpful? Give feedback.
-
@Skuzee Thanks for the response. That all makes sense. I'll see what I can do with the library's code. I'm not super familiar with assembly, so this will no doubt take me a bit. |
Beta Was this translation helpful? Give feedback.
-
Ok, I was able to get it working. I went the route of 5 Arduinos. 1xMega (has 4 serial connections) and 4xUnos (1 serial connection each). I went ahead and created a github repo for the project and uploaded everything. See prototype here: https://github.com/andrew171717/Gamecube-Controller-Multi-Console-Adapter |
Beta Was this translation helpful? Give feedback.
-
Any help would be appreciated. I'm trying to read one controller and pass the inputs to 4 consoles. Inputs pass just fine when calling CGamecubeConsole.write for one console, but when I call it for multiple consoles, none of them receive input even though no error is returned. Testing with two console calls results in the same issue. If anyone has any suggestions for what I could try to fix this, please let me know. Any comments would be greatly appreciated. I've attached my code below.
Beta Was this translation helpful? Give feedback.
All reactions