in keyboard mode and followed the extended guide on this forum. In this mode ES wont recognise it as a gamepad so I cant configure it in the menu.
That is strange! Because, even if ES configure Input Menu is telling you it hasn't detected a gamepad, pressing a "keyboard" key should get you through the configuration of the controls for player 1 (same as with only a real keyboard connected)! Have you tried pressing a button (mapped as keyboard key), or does the message that no gamepad was found had mislead you to assume that a keyboard cannot be configured via the UI? Going through that should give you a valid retroarch.cfg (as said for player 1), to add player 2 controls you still have to edit the file.
Thank. God. That was so much easier (though I still confused myself.) At least doing it that way I can test it in the game and change it on the fly if it wasn't right. Megadrive/Genesis is mapped correctly, so now I just need to work on the MAME games themselves (which I can save per game config instread of per core.)
This is what's exactly in the file for the button mapping for P1 and when I go into Super Street Fighter alpha 2 it doesn't work. Made a rom specific cfg too and still doesnt work. Now here's the super weird part ... tried Star Fox 2 and controls seemed to work fine. Tried Super Star Wars and same problem as SFA2.
Edit: Also how do I go about reinstalling an emulator?
@mitu I redid the controls again for the "v" key (from everything I can tell this is not used elsewhere). This time I used the in game menu with the tab key. Still the right direction does not work. Also I have several existing directional buttons mapped to keys that are used for other functions but all of those keys are functioning normally.
I have an old model IPAC4 that I used back in 2008 running Win98, XP, etc. and I eventually rebuilt my system around the PI (you can see details linked in my profile or signature below). Anyway, my IPAC has the PS2 connector but works with a USB adapter cable.
Here is the thing--the IPAC is a keyboard. Or at least it looks like one to the computer to which it is connected. Your joysticks, assuming they are microswitch-based, could be pushbuttons. There is nothing about the fact that it is a stick vs. a button--it is simply shorting the input on the IPAC to ground.
So, what happens if you wired a joystick to BUTTON1,2,3,4 on the IPAC? I would think this would let you trigger those buttons when you move the stick to short the respective inputs. If true, you should conversely be able to wire a button to one of the joystick inputs and pressing the button should trigger that key. And this brings me to my point. . . Do you know what keyboard keys are getting sent by each directional trigger? How are you testing on the Pi? Are you opening a text file in Pixel for example? My player 1 joystick maps to the arrow keys I think. So, if I open a text fine on the Pi, I can move the cursor around just like I am typing arrow keys.
I know I am not offering an answer but more of a testing method. Mapping keys can get really confusing once you launch an emulator, so my approach is to verify the raw inputs are getting out of the IPAC and into the Pi.
One approach to testing keyboard inputs is to launch the keyboard testing executable from AdvanceMAME at commandline. This will let you watch on screen what the PI is receiving when you pound on buttons or move your sticks. I don't remember the test command off-hand, but if you dig into the Docs here on the RetroPie and look for the Spinners/Trackball page, there is a similar test you can run for Mouse input. I know, we are not testing a mouse, but there are three executables in there for AdvanceMAME that let you test each Mouse, Joy and keyboard inputs. Might be worth a little time looking that up. Sorry , don't have my Pi handy to check.
My thought is that once you know the inputs are getting sent, you are no longer troubleshooting the IPAC, but rather the mapping. Knowing that much can go a long way to figuring out the next step.
@axrst ARCADE is not an emulator, its a folder where you place roms and then choose an emulator to run them using the run command. If you are electing to choose a non-libretro emulator such as mame4all or pifba, they will not be configured on startup.