Setting up a Ipac2
-
@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.
-
@caver01 said in Setting up a Ipac2:
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.I like to leave my hotkeys enabled as I use save slot -/+, save game, load game & Retroarch pause vs MAME due to the blank screen issue. I disable some of the IPAC defaults so I can use those hotkeys on a control panel and another set for a joystick. One build to cover both arcade panels and/or joysticks. As Caver pointed out it's a preference depending on how you want your build to turn out. You'll definitely want to change
input_player1_select = "num2"
to"num5"
to align with MAME or something different altogether. Unless you planned on changing your player 2 start which wouldn't be ideal. -
@caver01 Hello. It appears that copy and paste in the forum does not retain a lot of formatting in the .txt file for some reason. SO it appears that there were unintended changes on the post not in the file.
In MAME it is "P1 (hotkey) + P2" to exit a game. This is the hotkey equivalent of pressing 'ESC'. I do not understand your reference to num5. That is a coin insert in MAME and is not used for any default hotkey commands. https://www.ultimarc.com/ipac2.html or http://easyemu.mameworld.info/mameguide/mameguide-controls.html
I have actual working coin doors. Remember arcade machine not cheap eBay arcade joystick. I do not want to add another button and I do not think that timing a quarter drop to a button press to exit a game is a good idea.
The part about input_player2_start = 2 was actually commented out in the retropie.cfg. The comment hashes did not carry in the copy and paste to the forum. Any ideas why?
# input_player2_start = 2 # input_player2_select = 6
-
@battlecat
Well there go my hash marks again lol. -
@battlecat https://retropie.org.uk/forum/topic/3/read-this-first
Format your posts! - put small logs in code blocks - see http://commonmark.org/help/ - and put large logs on a pastebin type site like http://paste.ubuntu.com/ http://pastebin.com/ or similar.
you need to put code/configs between a pair of 3 backticks.
eg
` ` ` #my log here ` ` `
(remove the spaces between the backticks to get it to work). i'll edit your posts to do that now.
-
@dankcushions said in Setting up a Ipac2:
tween the backticks to get it to work). i'll edit your posts to do that n
Well that is good info to know. How on Earth did you get that info out of the toolbar on this forum?
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.