Please help me understand what is happening with my button mapping, so confused.
-
@rbaker said in Please help me understand what is happening with my button mapping, so confused.:
@SlowSL said in Please help me understand what is happening with my button mapping, so confused.:
The retropad is setup exactly how it should be
No idea what that is. What is it?
The input setup in EmulationStation, it's called the retropad
configure input - emulationstation
libretro - retropad explained -
@SlowSL The ipac2 does not work with configure input unless you reflash the firmware. See the discussion in my thread as linked.
-
@SlowSL You will be able to do all the things you describe but it will not work because you followed autoconfigure first. Don't ask me why. Now I was on 3.8 when I got in touch with Ultimarc so I don't know about future versions. The 2015 model of the ipac is configured as a joypad even though it presents as a keyboard. Firmware is available that removes this. Further details in the thread.
-
@rbaker
Okay, will try instructions in your post... very strange. -
Okay, didn't work, still the exact same, but I did see something strange that I've overlooked, that is likely the problem. It seems that the retropad keys are somehow getting miss-matched. So, unless I'm mistaken, emulation station requires that an input device be setup initially correct? This input device, (keyboard in my case), determines the retropad keys mapped.
Because of how my arcade buttons are laid out, 6 buttons...
1 2 3
4 5 6This is how I set the retropad (using the keyboard, not the ipac2. It matches MAMES default keys perfectly...
1(L-Ctrl, retropad Y) 2(L-Alt, retropad X) 3(space, retropad Left Shoulder)
4(L-Shift, retropad B) 5(Z, retropad A) 6(X, retropad Right Shoulder)This works perfectly for the emulated consoles, but MAME is the only problem. Now, if I open the global MAME input settings, I was ignoring the retropad inputs at first, only looking at the keyboard keys, but I just noticed that the retropad letters do not match up with the keyboard key that I had assigned them to when initially setting up the input.
In the mame global input dialog box, I get the following....P1 Button 1 LCTRL or RetroPad1 B or RetroMouse1 Left Click
P1 Button 2 LALT or RetroPad1 Y
P1 Button 3 SPACE or RetroPad1 X or RetroMouse1 Right Click
P1 Button 4 LSHIFT or RetroPad1 A
P1 Button 5 z or RetroPad1 L
P1 Button 6 x or RetroPad1 RThe retropad letters have all been mixed around, does this make any sense? I'm going crazy with this. So, I figured I'd just edit the global inputs right in the UI, but don't know how to just remove the reference to the retropad buttons, but leave the keyboard buttons. For example, If I clear out P1 Button 1, then just type the left control button, it automatically includes "or Retropad1 B"..... Any ideas?
-
@SlowSL said in Please help me understand what is happening with my button mapping, so confused.:
how to just remove the reference to the retropad buttons
Still no idea what your problem really is as you can configure controls in mame by just pressing TAB. You then navigate down and up, select a key with ENTER and press one of your switches. That's what I did and I have never had an issue.
-
@SlowSL You haven't mentioned your retroarch.cfg in configs/all. Have you gone in there? It's one thing do the mapping in Emulation Station and to see the buttons behave properly, as you say, for consoles (which, depending on the exact emulator you are using, may or may not be affected by retroarch config). But, since you are using lr-mame2003, you are definitely affected by the mapping that is specified in the retroarch.cfg.
I use an IPAC4. There are essentially three (4?) layers that come into play for lr-mame 2003:
- The actual hardware configuration (what keypresses are triggered by your wired buttons). Use WinIPAC utility to set this (or accept defaults), but recognize what keys get sent by the controller (seems like you have that part squared).
- The Emulation Station mapping to retropad virtual controller (the mapping you setup on first-run)
- The mapping that gets specified in retroarch.cfg file. (should match #2 above, but verify, as this gets used by any/all libretro emulator cores).
- Mapping inside the MAME GUI. (since you are using lr-mame2003, you can press TAB and access the GUI and remap stuff again! It seems like overkill, but this is very handy when yo don't want to change the defaults, but want to do rom-specific changes).
I am curious what you find if you go digging into #3 above, the retroarch.cfg. This is where you might have a keyboard key pointed to a virtual function that is triggering the unwanted game actions you are seeing. It's also where hotkeys are setup and (and Retroarch pause function)--stuff that might interfere with MAME functions, or your IPAC's built-in shift functionality. But we can get into some of that extra stuff after you get your game working correctly.
Also, you might ahve noticed in #4 MAME GUI that both the virtual retropad input AND the raw keystroke input are detected when you manually change things in here. I haven't found this to be an issue unless I am setting up complex boolean configurations (like needing a workaround for configuring a single joystick tank-stick for games like Vindicators). But knowing about the virtual input and the raw keys helps explain what you are seeing when mapping in the MAME GUI.
-
@SlowSL Take a look at mine, comapre it with yours as @caver01 suggests....
input_player1_a = "alt" input_player1_b = "ctrl" input_player1_y = "space" input_player1_x = "x" input_player1_start = "num1" input_player1_select = "num5" input_player1_l = null input_player1_r = null 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 = "q" input_player2_x = "k" input_player2_start = "num2" input_player2_select = "num6" input_player2_l = null input_player2_r = null input_player2_left = "d" input_player2_right = "g" input_player2_up = "r" input_player2_down = "f"
-
Yes, and if you make edits, beware of the infamous "smart quotes" trap. These are not the curly kind in here. ONLY use the true, double-quote key and watch out for auto-correct!
-
@caver01
Yes, thank you, it is starting to make sense now, seems to be a conflict between the retropad and keyboard inputs in mame only. I will check the retroarch.cfg and see what's in there, as well as see why my retropad mapping has gotten scrambled from how I originally set it. It must be a dumb mistake on my part, I don't see this problem anywhere else on the forums. Thanks rbaker, I will compare mine with yours. -
Success!!! Thank you so much guys. I knew there was the global retroarch.cfg, and a separate .cfg for each emulator, as well as for each ROM, and I understood how they all work and relate to each other, and which took priority. What I didn't expect though was that Retroarch/libretro would not at the very least keep the keyboard keys linked to the retropad assigned letter, the way they were setup in the GUI input setup. For example, I assigned my button 1 to L-Ctrl, to match MAMEs default, L-Ctrl for player 1, button 1. In the GUI input setup for the retropad, I wanted my button layout to match the SNES controller obviously, so I assigned the button 1 to retropad Y. This all worked great for the emulated consoles, but in MAME, using my button 1 for the example, does not show "L-Ctrl or retropad1 Y" like I would assume it should, but rather "L-Ctro or retropad1 B" Wait a minute.... I assigned retropad Y to L-Ctrl, why is it now B???? I can only assume there is a default retropad layout for MAME, even though I went through the retropad setup, MAME doesn't care, everything is left as the default, so when my retropad letters are different from the default, there is a conflict between the retropad button and the keyboard button. The retropad button takes priority I've found. That is why when using the in game GUI to check on the key assignments, I was first ignoring the retropad, I saw that my keyboard keys all were there and matched the way they should, but didn't notice the retropad letters were wrong, so there is where the problem was. I WAS able to click enter on player1 button 1, then click my button, and it then shows correctly as "L-Ctrl or retropad1 Y". So, lesson learned. Also, when assigning a key to a mame button in the GUI, is there an easy way to clear out the entry, making it "n/a"? I know how to "null" in the .cfg files, but I'd like to do it in the GUI as well. Right now, it just keeps adding more and more and more buttons, about 6 or so, before it clears the keys and starts fresh. Fore example, if player1 button 1 was assigned "L-Ctrl or retropad1 Y", if I press enter, then click M, it would then show "L-Ctrl or retropad1 Y or M". And keep adding and adding until it finally resets and leaves it as just one "M". I've read conflicting solutions depending on the mame version. One says just press delete before pressing enter, this will clear it out (this does nothing for me). Another says to hit enter, then hit escape, but this just exits the GUI. Any clues? It's lr-mame2003.
-
@SlowSL MAME GUI seems to generate additve "OR" keymaps while you remain on that line for input. If I want to remap a control, I simply move up or down to the next one, then back to the one I want to edit and remap. This always replaces what is there starting with a fresh mapping. If you just keep pressing ENTER on the same line they combine (as you noticed).
Sometimes, I will combine stuff intentionally. For example, I might combine coin drops when playing from the vertical ends of my cabinet (3-sided cocktail design). I might also map multiple action buttons for a game to give the player the option to hit one button or another button for the same function.
Understanding the "null" mapping in per-rom .cfg files is also really useful, as it blocks the retropad mapping and allows just the raw key inputs to reach the MAME GUI. This is necessary if you want to do complex boolean mapping (with "NOT" settings for example to setup a tankstick).
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.