Retro Amiga Build with 2 * ControlBlock and SNES controller issue
I hope you can help me with a little information. I have almost completed a Retropi build using an Amiga 600 case. It’s not a dedicated Amiga project, I just wanted to use the case as it looks cool and provides me with a keyboard I can use. Internally I have
- Official RPI power supply
- Keyrah v2 for the Amiga keyboard
- Panel mount interfaces
- Two ControlBlocks.
- Boffintronics DB9 joystick adapter (just plugs to controlblock one using jumper wires)
- All updates have been run, including a controlblock driver update
The first Controlblock (arcade mode) is used for DB9 interfaces (old school joysticks), the second is used for SNES controllers (SNES mode) via the original SNES adapter inside the case (rear mounted). I have everything working well, but am having issues with the SNES controllers.
I have setup my second ControlBlock and set the solder jumper and implemented the required configuration changes. When I try and configure the SNES controllers in Emulation station, 4 gamepads are detected (I assume this is the 4 available via ControlBlock). The two DB9 joysticks work perfectly on controlblock 1 (this also has the power button and LED attached). On the second Controlblock I can configure a SNES pad to P1 and map buttons, however the up and down dpad seems to skip two lines at a time, so I cannot map down on the dpad. While the selection buttons map, then don't seem to qork quite right. I cannot map anything to P2, nothing is detected. I have tried using jstest and do not see any input from js3 (which is SNES P2), but I see output on js0/1 & 2.
Both SNES pads work OK, and no matter which pad I use on either port the experience is the same. All solder connections and shorts have been checked, all good.
Due to space problems inside the Amiga case I have connected the two controlblocks together using jumper wires rather than the GPIO terminal block attached to the board (I don’t have enough height available for a pi and two controlblocks in a stack sadly). I have only connected the following GPIO pins as per the article on the blog site
- 3.3V (pin 1),
- 5V (pin 2),
- (I didn’t connect these as the power button is on board one GPIO 17 (pin 11), GPIO 18 (pin 12)), MOSI (pin 19)
- MISO (pin 21)
- SCLK (pin 23)
- CE0 (pin 24).
Could my problem be caused by not connecting all GPIO pins? Are all required or just the ones above? Could power be a problem? I don’t have a lightning bolt, nor do I have any power warnings but I thought I would ask. Am I using the controlblocks in a supported configuration?
Any help or guidance would be appreciated. I can provide photos, configs and so on if needed…however I suspect this could be something simple I have missed doing.
Some additional testing tonight. I connected a button to player 1 data and player 2 data while in SNES mode. I can see that player 2 data works when the button is pressed, but I see nothing at all for player 1 data. That would suggest the problem is either with the controlblock, or perhaps due to me not connecting all GPIO spins. Does that help at all?
Another test confirms the controlblock works with data visible on that pin when set to arcade mode. In fact all pins check out; butbwhen set back to SNES mode nothing is visible on player 1 data, which is pin 5 on the player two side. Could this be a software bug in the controlblock driver?
Still struggling with this one, would really appreciate any help if possible, thanks:)
I have made a screenshot of the board layout that shows the pins that are used:
You should connect MISO and MOSI as well the other pins with index larger than 18. Maybe this helps?
BTW: Can you maybe make some pictures of your hardware setup?
Thanks for this pal:). I’ll have another look tonight to make sure I have all the pins connected; I think I have but I will check. As I am using a power connection to the first board I didn’t connect 11&12 to the second board, is that right? I’ll take a couple of pictures too, can I upload those here?
Yes, you can upload the photos here.
Not sure if these help or not :) Happy to supply more images if it will help. I tried connecting pin 3 too as from your image it looked like it was required, but it made no difference. Interestingly, when I run jstest /dev/input/js2 & jstest /dev/input/js3 while leaving the pad in the same port, I see output. When I move the pad to the other port I don't see output on js2 or js3. Feels like something is wired incorrectly, or perhaps not mapping correctly?
Did the pictures help? Have you been able to replicate the behaviour by any chance?
Yes, thanks. I am currently rebuilding that setup to replicate the issue. Will get that done today or tomorrow.
Ah that’s great, thanks for your help really appreciated:). Hope it isn’t something stilly I have done!