adafruit / Adafruit-Retrogame

Raspberry Pi GPIO-to-virtual-keyboard utility for classic game emulators
https://learn.adafruit.com/retro-gaming-with-raspberry-pi
355 stars 123 forks source link

Lacks Support for Eight Buttons #54

Open npba45 opened 6 years ago

npba45 commented 6 years ago

I have a custom built eight button Game Boy that runs off a Raspberry Pi 3. The controls for this unit are tied directly into the GPIO header. As a result, I have used Adafruit-Retrogame so that my controls can be configured via the text file and seen in EmulationStation. I have done the measure to complete RetroPie 2.0+ compatibility via "sudo nano /etc/udev/rules.d/10-retrogame.rules". My controls work and I thank you.

I do however have an issue. Because of the way the software is set up I can't get the 7th and 8th buttons working no matter how I arrange the buttons according to their pin layout. My Gameboy has six buttons on the front, a select button, a start button, and a D-pad. It also has two buttons on the back. Thus, my end goal is to configure A, B, X, Y, Left Shoulder, Right Shoulder, Left Trigger, and Right Trigger buttons along with select, start, and the D-pad. But since the text configuration file simply requires an L or R and does not differentiate between LS, RS, LT, and RT I am using the numbers 1 and 2 in lieu of this. But, when I do this only six buttons work in PS1 emulation; 1 and 2 do not.

Below is my configuration file. Again, I have confirmed the buttons actually do send input to the RPi3. Those pin outs work. I can swap the numbers and those pinouts become active. Here is the text for that file:

Really minimal syntax, typically two elements per line w/space delimiter:

1) a key name (from keyTable.h; shortened from /usr/include/linux/input.h).

2) a GPIO pin number; when grounded, will simulate corresponding keypress.

Uses Broadcom pin numbers for GPIO.

If first element is GND, the corresponding pin (or pins, multiple can be

given) is a LOW-level output; an extra ground pin for connecting buttons.

A '#' character indicates a comment to end-of-line.

File can be edited "live," no need to restart retrogame!

UP 26 # 'UP' button DOWN 13 # 'DOWN' button LEFT 19 # 'LEFT' Button RIGHT 6 # 'RIGHT' button A 7 # 'A' Button B 15 # 'B' button X 23 # 'X' button Y 14 # 'Y' button ENTER 0 # 'ENTER' button SPACE 5 # 'SELECT' button L 22 # 'Left' Shoulder button R 12 # 'Right' Shoulder button 1 21 # 'Left' Trigger button (back) 2 20 # 'Right' Trigger button (back)

This text is the end of the file. As you can see, everything is set up properly. I just can't make the back buttons work because it appears the sum of working buttons in RetroPie is six, unless there's alternative button labels besides 1 and 2 that will drive those buttons.

Thank you for any and all effort. And don't hesitate to get a hold of me.

Regards, Neil Bradshaw