Setting up a Ipac2
-
@riverstorm said in Setting up a Ipac2:
he thought being is unless you dig in and start somewhere and ask for help you'll have to settle for very basic input configuration which actually works quite well.
So knowing that the iPac2 is default and that the keys are mapped to a joystick with 6 player buttons 1p start and a 1pstart what do you change to get out of FBA?
-
@battlecat said in Setting up a Ipac2:
So knowing that the iPac2 is default and that the keys are mapped to a joystick with 6
player buttons 1p start and a 1pstart what do you change to get out of FBA?To get escape/exit to work as Player 1 start + Player 2 start (1+2) I modify
/opt/retropie/configs/all/retroarch.cfg
and modify the two lines below.- input_enable_hotkey = "num1"
- input_exit_emulator = "num2"
That sets your hotkey and exit key for all Libretro cores. "num1" and "num2" can be anything you choose.
-
Hi guys.
First of all, thanks for all the useful guides and hints I've found here. I've just finished building recently my first arcade cabinet running Retroarch. It uses an IPAC2 controller for 2 players. I've wired everything, and hardware-wise it's all working fine.
However, i've been struggling for weeks with a problem that I just cannot find a solution for... I've read a lot of pages and all the guides I could find in this site (most liked to in this page). My problem is that I cannot get the 2nd player working.
Meaning, when I ask EmulationStation (or in retroarch) to remap the keys, I select the buttons and joystick directions so that player 1 works fine. But player 2 buttons are never recognized or even asked for. When I reset everything, the system only recognizes 1 controller and not 2 (which makes sense, since I only have 1 IPAC2, but i have 2 full sets of joystick+buttons wired to it)... However, if I use the player2 joystick and buttons during configuration, then those work but player 1 joystick+buttons do not. Meaning, I am sure all the buttons and joysticks are correctly wired (I can work with either p1 side or p2 side, but not both). Also if I exit to a retropie system prompt, pressing all my buttons (both p1 and p2) will show keys, so both sides of the layout are working.I checked all the examples you guys gave of opt/retropie/configs/all/retroarch.cfg, but it only shows how to setup the individual keys. Not how to get the system to work with 2 controllers from IPAC2... Right now my CFG files only show 1 controller (which I guess it's the default). Can I force it in some way to assume I have 2 controllers (even though I only have 1 IPAC2, which is recognized as a keyboard), and then use both sides of the IPAC2 to map keys for both players?
Many thanks for any suggestions you may have!! I'm close to dispair after dozens of hours trying to solve this myself...
-
@r_simoes Yes, edit the
opt/RetroPie/configs/all/retroarch.cfg
and add all of your player 2 input keys like the example above. If your IPAC is truly setup as a keyboard, this will work for libretro core emulators just fine. -
@caver01 said in Setting up a Ipac2:
@r_simoes Yes, edit the
opt/RetroPie/configs/all/retroarch.cfg
and add all of your player 2 input keys like the example above. If your IPAC is truly setup as a keyboard, this will work for libretro core emulators just fine.thanks for the suggestion, but I have done that previously and it still does not work. Don't I need to define a second controller earlier in the retroarch.cfg file? Right now the file only has 1 controller defined.
-
@r_simoes if the IPAC is truly running in keyboard mode, you do only have one controller—the keyboard. You end up mapping keys for player 1 and for player 2 (or in my case with an IPAC4, I have keys mapped for 4 players in my retroarch.cfg file). What do you mean by define a second controller? All you should have to do list the keys mapped for each player.
Sometimes people use curly smart quotes by accident in the retroarch.cfg file and that won’t work. Also, you can’t just arbitrarily pick keys you want to use—they have to be the keys sent by the IPAC. Do you know what keys are sent by the switches you have connected to each button? Are you using defaults? If you know the answer to these questions, how do you know the answer? Have you checked with WinIPAC utility?
-
@r_simoes said in Setting up a Ipac2:
Don't I need to define a second controller earlier in the retroarch.cfg file?
You need to think of the keyboard as a single controller/device that's capable of handling input for multiple players. Traditionally controllers are one device per player and that might be what's making it confusing. In all honesty you could actually map player 2 controls on the player 1 controller but that wouldn't make much sense. It's different with the keyboard.
When doing you're initial config on bootup you can use either the IPAC keys or the keyboard because they are treated the same as far as Retroarch is concerned. You can play any game on either (keyboard or IPAC) at the same time too!
Also they keys defined during the initial setup are for player 1 only but there's a surplus of keys on a keyboard so you're next step (if player 1 is working correctly) is to follow @caver01 's example link to setup the player 2 inputs, from the keyboard, using keys that weren't used for player 1.
If you didn't change your default IPAC keys those are the keys you want to use when working in the all/retroarch.cfg in the example link caver provided.
Default IPAC keys:
-
Hi Caver01 and Riverstorm.
Thanks for the input.
I think my problem is that since I am using an 'image' that I recorded to an SD card, the controller might not be properly configured... But I am not sure.
I have tried resetting the controller configuration by calling the 'Configure Input' option of EmulationStation, which basically asks me to click on each button at a time and move the joystick in each direction at a time, but that only asks for 1 player controls, never a 2nd player.
I am including here some photos I took of the screen. Could you please check if something here hints at a wrongly configured system?
Also, could you please share the entire opt/RetroPie/configs/all/retroarch.cfg file configured for a keyboard, instead of just some parts?
Many thanks again. Sorry for my newbieness...
-
@r_simoes I am not by my Pi but since I have a bunch of custom stuff in my retroarch.cfg, I don't share the whole thing, as it will break other people's systems in most cases.
One thing I do see right off the bat is that you have numbers assigned to l and r which is odd. First of all, you cannot set numbers like that "5" won't work, but "num5" will.
Also, it seems like the keys you have for l and r are what I normally have for start and select. MAME default for Player 1 start is "num1" and coin(select) for player 1 is "num5". Do you have them wired wrong? Just a thought. It would probably work if you use the proper "num" designation, but it is definitely not default.
-
Hias Caver01.
But this works fine for player1, yet ignores completely player2... Is it possible the setup is configured as a pad and not a keyboard, and thus, does not expect more than 1 player buttons+joystick?
Is it normal that when I exit to a prompt I get "[info][controller 1] Created devices /dev/input/js0 (joystick) ?? <<< See first image I posted.Is there a way to completely reset the controller configuration in a system where a controller has already been configured?
I understand your point about the buttons. I think I wired the joystick 'rotated' and also wired the buttons with wrong positions, but that should only lead to the wrong buttons working, and not the system only accepting either all player1 side, or all player 2 side (but not both). I really am starting to think it's a matter of the controller not being a keyboard, but I have no idea how to fix that.
thanks!
-
@r_simoes the only way I know of to check/correct the IPAC mode is using the WinIPAC utility. That means you have to connect it to the USB port on a windows machine, load the software from Ultimarc and set the configuration as a keyboard. I think there is also firmware you can load with the utility that ensures it is properly detected as a keyboard, but this is beyond my experience because my IPAC 4 is like 10 years old and ONLY works as a keyboard.
You are right that if you wired things a little differently you can still map things to correct the changes, but it adds an extra hassle when the IPAC comes preset with MAME defaults that work as raw inputs. For example, if you were to use AdvanceMAME, (not a libretro core, so it ignores everything you do in retroarch.cfg) it would work perfectly without any changes--but not for you--because you have it wired in an unexpected fashion, you would have to remap things to fix that.
Yeah, I also don't get that [info][controller 1] stuff on my screen. Might be an automap joystick configuration? It's also a little odd that your input_libretro_device_p1 = 3 and p2 = 3--I have all of those lines commented out in my retroarch.cfg.
-
@r_simoes I still think you should fix your numbers to num5 and such. If you look just above your inputs for player 1 you can see the commented block of text where they are giving you the possible values for input mapping. See how numbers all have "num" in front of them? Maybe straight numerals works, but who knows if all cores respect that deviation? Why not use what you are supposed to use?
-
Hias.
Yes, I am definately going to change the "5" to "num5" in all buttons.
Regarding the IPAC, I used it right out of the box. I did not change anything at all. So everything in the IPAC is for sure set to default. What isn't right is in which IPAC connectors I wired each button and joystick direction...
When I said I think the problem is the configuration not being set as keyboard, I meant in retroarch or emulationstation... Not the IPAC... How do I force EmulationStation to accept the IPAC as a keyboard?
Since I used a pre-made image that already had everything installed (retropie, retroarch, and emulationstation, in addition to ROMs), I think the person who made the image had a controller (like a PS pad), and thus he probably set config for that. -
@r_simoes said in Setting up a Ipac2:
Since I used a pre-made image that already had everything installed (retropie, retroarch, and emulationstation, in addition to ROMs), I think the person who made the image had a controller (like a PS pad), and thus he probably set config for that.
Oh, geez. Burned again. You violated the 5th rule of the !! READ THIS FIRST !! document:
- Make sure you are using an official image, or have done a manual install yourself. We will not support 3rd party images.
So, unfortunately, all bets are off. That image you have could have any number of goofy configuration problems. Even if you think it is fine, there's no way for anyone to know. Why aren't you asking the person who built it for help? That's is your best option.
Now that that's out of the way, your second option is to reload RetroPie from an official image, and read the documentation. It's there for good reasons (as you are finding out the hard way).
Finally, I will tell you that a default configuration of IPAC does not mean it won't be detected as a gamepad device. Just search the forums. Many people use IPACs out of the box and the default firmware often shows up as a gamepad/joystick. That's why I suggested that you check it with WinIPAC utility.
Look, all of the advice above still stands. I have given you good troubleshooting ideas. At this point though, I think we have to stop. Until you start using an official image, your best source of support has to be the person who you got your setup from. Sorry, but that's the way it works.
-
Hi Caver01.
Thanks. I understand. I will try the WinIPAC, then if that does not work, follow through on reinstalling an official image from scratch, and go from there.
Two last questions, if you don't mind:
I checked the retroarch info, and also the emulationstation info, and I cannot seem to find an official image that already has a complete basic system installed (meaning: retroarch, emulationstation, and emulators)... Everything needed except ROMs. Is there such an image, and I am just not finding it? Everywhere I read it seems that emulators have to be individually installed and configured. Is that correct?
In your IPAC4, if you ask EmulationStation to configure the controller again, does it ask for buttons for all 4 players?
Cheers.
-
@r_simoes said in Setting up a Ipac2:
Is there such an image, and I am just not finding it?
You just described the official image. It is the easiest one to find in the whole world.
In your IPAC4, if you ask EmulationStation to configure the controller again, does it ask for buttons for all 4 players?
I don’t recall it asking for inputs for all 4 players. In any case, my setup is unique, as sometime my player 3 and 4 are actually players 1 and 2. I setup my additional players controls by editing retroarch.cfg.
-
@r_simoes said in Setting up a Ipac2:
In your IPAC4, if you ask EmulationStation to configure the controller again, does it ask for buttons for all 4 players?
No it will not. You'll need to manually add and edit players 2, 3 and 4 in
opt/RetroPie/configs/all/retroarch.cfg
. The same file you're already modifying. (Use player 1 as a cut-n-paste "template").You keep forgetting "Input Configuration" is per device not per user. The keyboard is one device but it is split among up to 4 players.
Finally, I will tell you that a default configuration of IPAC does not mean it won't be detected as a gamepad device.
If you run "Input Configuration" and hold a key down it will be detected as a keyboard. For configuration purposes it will always be a keyboard (with defaults settings) so you don't need to worry about that yet but if you would like to change your firmware to keyboard only.
You can locate the keyboard only firmware on the official Ultimarc website. Firmware belongs to basically two camps old (2004-2015) and new (2016-present). Below is referring to newer IPAC's.
Starting with version 34 there are separate firmware versions which have the game controller device present/not present.
Versions without game controller (ie with keyboard and mouse support) have the first version digit as "4" eg 1.44.
Versions with game controller (ie with gamepad button, keyboard and mouse support) have the first version digit as "3" eg 1.34.
When changing versions it is necessary after the firmware change to locate the "composite device" under the USB Controllers entry in Device Manager and "Uninstall" this so that Windows can re-detect the new version correctly
I've never seen those controller errors in the pic either. It sure likes like some modifications have been done and your config does look a little bit odd but maybe you wanted to remap your input devices. You have input for player 1 and 2 set to keyboard. Is this an attempt to override the original PS controller config that seems to be hosing you up.
Also I would pull your joystick and mount it correctly along with the buttons. I see in your config left=down, right=up, etc. Wouldn't you prefer to have your buttons in some type of layout to make them easily accessible. It would seem odd to have button "A" in the top right corner and button "B" in some other random location.
If you do run AdvMAME or mame4all-pi you're going to have to press right to go up, left to go down, etc. or manually remap every non-libretro emulator.
The latest image is located on the main page under the "Download" link. I know RetroPie has a learning curve but it levels out pretty fast. I think you'll get done faster starting with a fresh image and you'll get extremely efficient.
I can take a new image and have it completely set up in roughly an hour. That's heavily tweaked. You get quick.
Hopefully you didn't pay for that image as the official images' price tag is in the ballpark of zero dollars...hmmm...ok it is zero dollars! For everything else there's piracy. RetroPie, except no imitations!
-
@riverstorm This was a great explanation of one of the most frustrating things the EXIT command!
I had to take some time off from the whole thing because it was getting far too frustrating.
I have reimaged my SD card and I am just taking careful notes. I hope to use these notes to supplement @caver01 's wiki.
So far I have come up with the easiest process is to get through the initial startup config and once the system is powered on and on the wifi to edit the master retroarch.cfg file with the correct inputs for an iPac. Messing with the startup auto config is just a pain in the but to guess what joystick command should map to what button.
-
So back at it. Started the SD card from scratch. Trying to document out the steps for this type of setup.
Here is the part of the retroarch.cfg that I changed. I have not yet tried it as I am not at home yet.
############################################### # P1 and P2 Buttons # ############################################### # Uses the built in iPac2 Hotkey to give the ESC input_player1_start = "num1" input_player1_select = "num2" # Used for player 2 joystick. # Not needed on an arcade setup. # input_player2_start = 2 # input_player2_select = 6 ############################################### # PLAYER ONE # ############################################### ############################################### # Joystick One # ############################################### input_player1_left = "left" input_player1_right = "right" input_player1_up = "up" input_player1_down = "down" ############################################### # Row One of Three Buttons - Six total # ############################################### input_player1_a = "ctrl" input_player1_b = "alt" input_player1_x = "space" ############################################### # Row Two of Three Buttons - Six total # ############################################### input_player1_y = "shift" input_player1_l = "z" input_player1_r = "x" ############################################### # PLAYER TWO # ############################################### ############################################### # Joystick Two # ############################################### input_player2_up = "R" input_player2_right = "G" input_player2_down = "F" input_player2_left = "D" ############################################### # Row One of Three Buttons - Six total # ############################################### input_player2_a = "a" input_player2_b = "s" input_player2_y = "q" ############################################### # Row Two of Three Buttons - Six total # ############################################### input_player2_x = "w" input_player2_l = "i" input_player2_r = "k"
ALSO I changed these two lines in the file elsewhere:
input_exit_emulator= "num2"
input_enable_hotkey="num1"Fingers crossed.
-
@battlecat I am not sure I understand the formatting of your message above. It looks like a combination of section notes and actual retro arch configs.
I do have a couple observations:
In the very verist section you say:Uses the built in iPac2 Hotkey to give the ESC
input_player1_start = "num1"
input_player1_select = "num2"The second line there looks like a typo. If not, I would NOT recommend using "num2" as select for player 1. It should be "num5" to align with MAME defaults. It also conflicts with what you have listed for:
input_player2_start = 2
This line is actually aligned with MAME, so I would us it, but I would fix it to be "num2" and not just 2. Same for the next line which should be "num6" instead of 6.
Then, as a final suggestion, you may end up with some confusing hotkey stuff. If you really are only using hotkey for exit, you could try these:
input_exit_emulator= "esc"
input_enable_hotkey="nul"
These would essentially remove the hotkey functionality and allow the IPAC shift function to handle sending ESCAPE to exit.
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.