retroarch (libreto) is interpreting a single button press as 2 buttons together
-
Summary information .........
Pi Model or other hardware: Pi 3
Power Supply used: Official Pi Plugpack (2.5A)
RetroPie Version Used:4.1.5
Built From: Official RetroPie image (all binary installs)
USB Devices connected:I-Pac 2 (Ultimarc)
Controller used:I-Pac 2 Keyboard emulator
Error messages received:None
Log found in /dev/shm/runcommand.log (if relevant):N/A
Emulator: All Libreto emulators using retroarch configs (have confirmed on MAME, NES and GBA emulators)
Attachment of config files: http://pastebin.com/qDLzdrcLDetailed description:
I am using an I-Pac 2 as an input device on my console.
See https://www.ultimarc.com/ipac2.html for details of the device but it is essentially a keyboard emulator.
Using the Input names from the above link I have the following setup:
1 SW1 maps to L-Ctrl
1 SW2 maps to L-Alt
The problem I have is that when I press the "1 SW2" button then Libreto seems to be sending Both "Ctrl" and "Alt".
The obvious symptom is in any game with button 1 mapped to Shoot and Button 2 mapped to Jump then pressing Button 2 causes a Jump and Shoot at the same time.
I have used "showkey" to confirm that the I-PAC is sending a single keycode when each button is pressed (showkey indicates a press and a release) so it does seem to be a Libreto issue.
To further confirm I ran 2 scenarios ....
Running Mame4all and AdvMame I get a Shoot and a Jump as individual actions with each button press.
Running the same ROM on lr-mame2003 pressing button 2 gives the same jump/fire symptom.I am assuming I have something wrong in the retroarch config but simply can't see it.
Any suggestions?
-
I'm not fully knowledgeable on this, but IPAC has two sets of firmware - one for gamepad enabled and one for disabled.
I had to update the firmware on my IPAC so that it didn't take up a JS slot when launching games. If you have configured your IPAC in emulationstation, it could be that you actually chose a A/B button combination that is different that the emulator.
Perhaps it is sending input from both JS and input from Keyboard simultaneously, and you just happen to have those buttons swapped when you configured the "gamepad" in EmulationStation?
To make your life easier, I would change the firmware on your IPAC so that GamePad is disabled. This way, RetroPie will only see one controller - keyboard only, instead of keyboard + gamepad.
If nothing else, you are at least eliminating one potential source of frustration moving forward.
-
@Concat Thanks for the tip - I had already disabled the gamepad feature (had 1.44 firmware installed) so this wasn't the issue.
I have now resolved it though - using the in-game menu (f10) I remapped the keys (i.e. buttons) for the roms which were causing problems so now they work as intended. -
@Waylander I am going to venture a guess that the keys being sent are: 1. the virtual retropad key configured in the
/opt/retropie/configs/all/retroarch.cfg
(probably as a result of your initial setup in Emulation Station the first time you booted) and 2. The RAW key press itself, sent by the ipac.Case in point, if you launch any title using lr-mame2003 and open the MAME GUI menu (TAB) and attempt to remap an input, you will notice that it detects both a retropad input AND a raw key press at the same time. This is real. It's not just the way MAME documents the key choice. In an unrelated post I was running into this because I was trying to map controls for a tank stick that requires a bunch of <AND> and <NOT> combinations. It would never work because it always thought I was sending two inputs at the same time. I got around it by creating a retroarch config that set all inputs to 'null'.
I'm not suggesting you set everything to null, but I am offering a possible explanation for your symptoms based on experience. I think you need to dive into retroarch configs (make backups if you change something). Also, do a search here for "IPAC" as there are a couple of good threads like this one.
-
@Waylander I see you resolved it. I had some weird stuff like this when I was remaking some directional controls for 4-player Gauntlet. Halfway through the mapping in the MAME GUI I noticed directional control for the wizard was doing strange diagonal movement. Once I finished remapping it worked itself out. I never bothered to find the root cause, but it was probably the virtual + Raw inputs overlapping.
-
@caver01 Thanks for the added info. I had searched around on the forum for "IPAC" topics and did find some interesting information including the suggestion that you connect a keyboard up first and use that to set up retroarch before connecting in the IPAC.
I think I got my system in a mess initially as I started out with keyboard, i also used a gamepad, then an IPAC4 and finally the IPAC2.
So all the "auto-config" features got me a little messed up. I am only using lr-mame for 3 ROMs because it was the easiest way to get the trackball working - everything else is 'standard" mame.
So thanks all for the help - now if I'd started this as a request I could mark it "solved" but I think I messed that up as well! -
@Waylander I'm not sure what you mean by 'standard' MAME. There really is no such thing. Several versions exist in RetroPie and each has its pros and cons.
I can understand how easily different controllers might result in a messy auto config.
-
@caver01 should have said non-liberto rather than standard
-
@Waylander oh I see what you mean now.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.