IPAC2 and Player1 Start (Shift)
-
I did some searching around and due to the different options for keyboard emulators, I wasn't finding my specific problem.
As you can see in the title, I'm using the IPAC 2, and when I am in a 2 player game, and player 1 dies, it prompts for player 1 to hit start to get back in. By default, the P1 start is also the shift function on that board. So what happens is I have to hope that no other keys are being pressed when I am trying to get back into the game. This is pretty hard to do when in certain games, and it also resulted in us both trying to get back in at the same time which activated the shift from P1 and the button press from P2 escaping out of the game entirely.
I like the shift function of the IPAC in the games, as I can turn volume up and down, as well as pause the games, so I wouldn't want to disable it completely while in the emulator.
This isn't a huge burden, but I can't imagine I'm the only one that has had to deal with this. Which is why I was kind of surprised when my searches didn't come up with much. Let me know if you have any information on this.
-
@noremaC1337 Hopefully you found this thread. There are a few points regarding hotkeys and shift functionality. The bottom line is that your post underscores the need for a wiki page related to the iPAC controllers. At the very least, we should compose a list of configuration questions/concerns. Ultimately, how one decides to leverage the shift function vs. hotkeys is a personal choice, but a comprehensive help page might be really handy.
In my experience, I was seeing conflicts with the retroarch hotkeys during actual gameplay, not issues with iPAC shift, but I can definitely see your point. Yours was the first message I have seen that articulates the challenges associated with using shift during actual gameplay. My advice is to setup SHIFT functions that don't overlap with buttons during normal use. For example, don't setup a shift function that goes beyond P1 buttons. That way, if you press P1Start, you aren't running into the possibility of another player hitting a shifted function. It's unlikely you would hit start while pressing other action buttons, so this might help keep shifted functions isolated.
-
@caver01 I forgot to mention that this is strictly regarding mame4all emulation. From my understanding, that doesn't use the retroarch configs. Isn't that correct?
Also, I thought the way the shift function worked, was that once you hit the shift button (p1) it would wait for a second button to be pressed before it would release. If that is the case, I don't think it would matter if I configured a second button isolated to just the P1 side, once that shift button (P1) gets pressed, and P2 hits any button, or has the joystick moving around, I believe it would register that, and still potentially not get P1 back in the game, as the game never saw a P1 start .
I need to see what it does in a 1 player setting. I have read this probably 20 times, and I feel like it is working just the way this description explains (from Ultimarc site):
When you press the "Start 1" (shift) button nothing happens immediately. The I-PAC waits to see if you are going to press another key at the same time. If you do press the "Player 1 Button 1" the shifted "Coin 1" code is sent. If you don’t press any other button the "Start 1" code is sent when you RELEASE the "Start 1" button. So you don’t get any unwanted key codes.
So what I think is happening, is that it isn't registering my P1 start action, because of timing of me pressing P1 (shift) and player 2 pressing any other button, so IPAC thinks it performed a shifted function, but player 2 has no shifted buttons out of the box, so it doesn't end up sending anything. That is when player 1 has to repetitively hit P1 start to try to get it while no other buttons are being pressed, which isn't impossible to do, it's just kind of a burden. This, however, is where you run the risk of player 2 hitting P2 start at the same time, and is when you get exited out of the emulator.
I wonder if the solution would be to eliminate the shift key functionality, and perform the hot key. That way nothing would be shifted while playing, and when I want to exit, I could make P1 start (num1) the hot key, and then P2 start (num2) the escape command? Is that how that would work?
-
@noremaC1337 Well, there is a mame4all libretro core that DOES use retroarch, so it will depend on which mame4all you are running, but I see your point. I would definitely stop the P1Start-P2Start exit function. That's just a problem waiting to happen.
Have you verified that IPAC accepts a shifted function where one isn't defined? In other words, if there isn't a shift associated with the P2 buttons or stick, does it register anyway? If so, what does it register? Or, does it allow P2 to continue while you are holding P1Start until you also press a defined shift button? I haven't tested this situation, but it's definitely worth knowing the answer.
I do recognized that IPAC waits on your P1Start to see if a second button is pressed which is why P1Start triggers when you let go normally.
There's definitely potential for conflicts with hotkeys, but as you mentioned, if you are not using Retroarch, you won't have to worry about it. I try to use libretro cores whenever possible to leverage the excellent shaders, but I disabled the hotkey function and I don't tend to use shifted keys either. I have a few dedicated admin buttons on my control panel for pause, exit, etc.
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.