Ipac2 - no Player 2 controls in lr-fb alpha
-
@Riverstorm said in Ipac2 - no Player 2 controls in lr-fb alpha:
You can actually setup a retroarch.cfg that forces all inputs to “null” and a keyboard controller will still work in lr-MAME2003 if you hit TAB and map your inputs.
@caver01 - May I ask what are you doing when you do this? Are you modifying the all/retroarch.cfg or writing out a new <system> retroarch.cfg via RGUI and modifying it or just adding "override" changes into the existing retroarch.cfg. I've been writing out a new config, finding the correct parameters and just adding them to the existing system retroarch.cfg to keep it small. It seems if you delete the system retroarch.cfg it will write a new one but it's the full config vs just changes plus #include that's originally setup.
When set to nul is it just ignoring one set of inputs? I get the RAW input but when referring to "virtual/abstracted retropad inputs (if defined)" what is that exactly? Are you referring to the RetroArch inputs for the Libretro cores or the Libretro cores themselves? I've never been quite clear on what that meant.
By chance if you set them to nul can you map <NOT> operations or are two inputs still registered? I suppose since TAB is always accessible some of the original "input" code is retained. I am not sure if the Liberetro cores are written from scratch or they are using modified source code from the official MAME builds?
-
@Riverstorm You sorta hit the nail on the head with the CODE_NOT mapping. This applies to MAME2003. . . It is impossible to make boolean exclusions in the MAME GUI if you are:
- using a keyboard controller
- have retroarch mapping configured for your inputs
It is apparently not an issue if you use any kind of gamepad/joystick controller, but if you use a keyboard, MAME2003 responds to BOTH inputs at the same time: RAW keys, and mapped retroarch inputs. This can be easily demonstrated:
Say your P1 UP is mapped to the UP arrow in retroarch and indeed, that is the key you have setup on a keyboard controller for P1 UP (like standard wiring on an IPAC). Now, if you go into the MAME2003 GUI menu <TAB> and try configure the controls for a game, go to player 1 UP and press enter to remap, when you push UP on your joystick, the RAW up arrow gets sent, and so does the retroarch gamepad UP which you have setup. Wait a moment and you see that MAME registers both UP and Gampad_UP or something like that. I am not in front of my system, so I don't remember exactly. Try the same thing for Button 1, which I think is setup as LEFT_CONTROL on the IPAC. Map it in the MAME2003 GUI and you get two: LEFT_CONTROL and RETROPAD_B or whatever.
Basically, MAME thinks you are pressing two inputs at the same time, which is automatically represented as a CODE_AND which is a boolean combination of two inputs at once. Normally, that doesn't present any issues. Sure, it's extra, and maybe it is technically a double input (RAW and the virtually-mapped retroarch gamepad) but I have not noticed any problems with lag, etc.. HOWEVER, if you try to do a CODE_NOT mapping where you are trying to exclude certain combinations (like when setting up a tankstick using a single joystick) it won't work. You cannot <CODE_NOT> exclude an input that is already AND-ed to another input.
The solution to this admittedly rare circumstance is to setup a NUL input config file that sets all of the Player 1 and 2 inputs to "nul". I do this with a retroarch.cfg file specific to the ROM. The file sits right next to the ROM and would be named to match:
romname.zip.cfg
and inside, you specify all of the Player inputs you intend to use as ="nul". This effectively wipes the retroarch mapping. Then, you launch the game, go into the MAME2003 GUI and map inputs, only this time you will notice only the RAW key getting mapped. You can proceed with complex <CODE_NOT> mapping as desired. I use this technique for games like Vindicators 1 and 2 Sarge, Toobin, Ultra Tank, Tank8 --mostly tank games so I can play with a single joystick. (Actually, I think Sarge is broken in 2003 so I use a tankstick mapping in AdvanceMAME which does not use retroarch). This is great if you have a two player panel and you want both players to be able to control their own tank with one joystick.Anyway, long answer, but that's the full answer. There is another thread on the subject where I explored the problem with @dankcushions digging around in the code to see if there was an easy way to override the retroarch inputs for keyboard users, but it probably isn't worth the effort.
-
@caver01 Thanks a million for explaining that. There were several pieces that I wasn't clear on how the worked but it makes perfect sense now. This opens up quite a bit more flexibility in configuration and working around the double inputs and makes mame2003 just that much more usable! :) I was going to run another question by you but it's a better fit in another thread you have about advmame.
-
@udb23 What did you exactly do? I'm having a similar problem with my IPAC Ultimate I/O. I'm guessing I'm having the same issue as you.
I have my player 2 controls defined in /opt/retropie/configs/all/retroarch.cfg
Below is a snip of my "/opt/retropie/configs/all/retroarch.cfg" with my 1st and 2nd player controls defined.
input_player1_a = "alt"
input_player1_b = "ctrl"
input_player1_y = "shift"
input_player1_x = "z"
input_player1_start = "num1"
input_player1_select = "num5"
input_player1_l = "x"
input_player1_r = "space"
input_player1_left = "left"
input_player1_right = "right"
input_player1_up = "up"
input_player1_down = "down"input_player2_a = "s"
input_player2_b = "a"
input_player2_y = "w"
input_player2_x = "i"
input_player2_start = "num2"
input_player2_select = "num6"
input_player2_l = "k"
input_player2_r = "q"
input_player2_left = "d"
input_player2_right = "g"
input_player2_up = "r"
input_player2_down = "f"Which config did you edit exactly? Did you edit one of the other configs?
Much appreciated in advance!
-
@udb23 Nevermind, I figured out the problem.... It is a bad wire or pin on 2START on the IPAC. Here I was thinking the all the 2nd player controls were not working. Figured out opening WINIPAC V2 and notepad++, replacing the button switch (same issue), and then re-assigning a unused pin on the IPAC.
cheers! :D
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.