Setting up a Ipac2
-
@riverstorm I bought 4-conductor shielded and insulated USB wire and a bunch of connectors, heat shrink, and I make my own from scratch and cover them in paracord sheath.
I replaced all of the various kinds of USB cables in my arcade cabinet with perfect, custom lengths. I don't use paracord for my arcade cabinet, but for other cables, like mech keyboards and chargers I do.
I also do iPhone lightning cables, but those I do make out of old cables. My cat likes to chew on plastic charge cords and he ruins plenty, so I save them for the lightning cable end so I can re-solder them to new USB. The cat does not bother the paracord.
-
@caver01 I have read the document and it is a great start. Unfortunately you are right I did already know relatively what is in the document.
The section "Emulation Station and RetroArch" says "It is ultimately up to you to decide which of your wired buttons will correspond to the virtual gamepad inputs used by the different emulators."
I feel that making an assumption about the setup of the iPac would be useful here. Given that an iPac2 or iPac4 has a specific set of inputs is there a way to publish a opt/retropie/configs/all/retroarch.cfg that is specifically tailored to each device?
That would save a lot of effort on the part of the person setting up the iPac+RPi#+Retropie.
Yes, I realize I am making the assumption that whoever is setting this up will not be using any additional USB joysticks and sticking to using the iPac2 or iPac4.
I am still trying to wrap my head around the whole abstraction layer with the RetroArch emulators. I think that something that is frustrating is when a person sets the system up by going through the first run setup they, meaning me, expects that setup to work in everything. When in reality the only time the first run setup works for all the emulators is if your using an X-Box controller yes?
The other thing that I hear a lot of my colleagues complain about is how hard it is to set up a player 2 controller in the console games. Do you think this will ever be addressed?
-
@battlecat I get that there is a bit of a cop-out with my statement that leaves an excess of possibilities out there, but I hesitate to post a .cfg file when examples of how these work are already available. As much as a turn-key solution could benefit certain people, I have always seen this project (and really ANY project with the Raspberry Pi) as a learning opportunity. I'd rather give someone the knowledge to build and customize their own config and understand how and why it works than to hand over something that may or may not work and that I would need to support down the road.
Here's a good example: Your question about Player 2 console gaming seems relevant, and although I have a few consoles setup, my focus is 99% on arcade games. Suddenly, I am not an expert in an important facet of that setup, and that is going to happen almost immediately because everyone has different ideas about what they want to accomplish. For example, how many users out there are building a 4-player cocktail cabinet to play vertical games rotated sideways so they need to re-orient Player 3 and 4 controls for games like Gauntlet and Stone Ball? My files are unique.
I guess I am saying, I could build a .cfg file but my own system build is unique and my IPAC is not even running the default mapping (not to mention it is a very early model with a slightly different set of configuration possibilities). I could change a potential .cfg to meet what I think are common demands, but I couldn't really test it. In some respects, the forums are better-suited for discussing specific use cases while the Wiki can provide a base for reference.
One of the things that resonates with me is the idea you mentioned that when a new user goes through the first-run steps, you could expect them to think they are done, configured, ready to add ROMs and play. But, as someone who has been doing this for years, the experience has always been way more complicated than that. Sure, some emulators will be ready to go, but others may not be installed, may not be Retroarch Libretro cores, may require editing config files to setup Player 2, etc. I think it's an accurate observation that as simple as it could be, there are many situations that require extra help. It's why we spend so much time on the forums exploring ideas and helping each other. Perhaps the true, low-hanging-fruit is the use case you described--the user who simply plugs in an X-Box controller and has a casual notion to play some retro console games. For those cases, the First-Run process is probably enough. I would not put IPAC customers in the same group.
Maybe we could put together a list of conditions like:
Using IPAC2, configured as Keyboard with ALL DEFAULT mapping
2-players, each using : six action buttons, Start, Select and Joystick, Start and Select.
Then say, if this is your setup, here's an example of the controls defined in theall/retroarch.cfg
and list the relevant mapping. What do you think? -
@andershp said in Setting up a Ipac2:
@caver01 Good work. Would've helped me back in the day.
Shouldn't this guide link to your keyboard controllers guide?I thought of the the Keyboard (IPAC) wiki I wrote the other way around. I thought of it in reference to your link, which I pointed to inside the document. That guide is written from the gamepad perspective which is probably the more common use case. Still, if the my Keyboard Controller guide has traction, it would make sense to link to it from there too.
-
@battlecat said in Setting up a Ipac2:
I am still trying to wrap my head around the whole abstraction layer with the RetroArch emulators. I think that something that is frustrating is when a person sets the system up by going through the first run setup they, meaning me, expects that setup to work in everything. When in reality the only time the first run setup works for all the emulators is if your using an X-Box controller yes?
no, not at all. i can't speak for ipacs, but to setup a USB controller (xbox, ps4, snes clone, whatever), is the exact same process as any other USB controller: https://retropie.org.uk/docs/Controller-Configuration/
The other thing that I hear a lot of my colleagues complain about is how hard it is to set up a player 2 controller in the console games. Do you think this will ever be addressed?
if you have two of the same controller, by doing the above you've set up player 2 already. if you have 2 seperate controllers, you'll have to either unplug player 1 (to trigger the https://retropie.org.uk/docs/Controller-Configuration/ screen), or 'configure input' in the emulationstation menu. it seems intuitive to me?
perhaps a better way could be to force the configure input screen every time an unknown controller is plugged in... maybe that already happens?
-
@battlecat It sounds like @dankcushions has some good suggestions for some of the challenges we hear about. If anything, these are problems and solutions outside the domain of keyboard controllers. If they really are frequent issues, perhaps there is a Troubleshooting > FAQ item is worth adding.
One of the problems with any documentation we could add is getting people to find it and read it, so there are diminishing returns on the time you could invest in writing docs. Still, I think it's worthwhile to build a base to reference.
-
@battlecat said in Setting up a Ipac2:
I am still trying to wrap my head around the whole abstraction layer with the RetroArch emulators.
I was thinking of making an infographic to illustrate the abstraction layers for people who have trouble visualizing it. I myself have had some interesting mind-bending sessions trying to remap a NeoGeo setup to Street Fighter with tables to get games to play correctly with MY button positions in FBA. I finally got it using a per-rom config file, but I could see how someone might throw in the towel not knowing where to begin.
-
@caver01 said in Setting up a Ipac2:
I bought 4-conductor shielded and insulated USB wire and a bunch of connectors, heat shrink, and I make my own from scratch and cover them in paracord sheath.
That's perfect that's what I was wondering.
-
@caver01 Thanks for responding.
I guess I see it like this. If you own a X-Box controller or two the setup is going to be consistent (pretty much) for each controller.
If you own an iPac2 or4 there is going to be a standard setup for each of those devices as well. For instance the iPacs have a set number of default inputs. Why make it hard to setup the retropie emulators if you stick to the standard default settings?
This is in part why I have stuck to the mame4All and AdvancedMame emulators. Each of those emulators is already ready to accept historically commonly accepted inputs for MAME.
I have been googling for an answer and reading documentation and I am amazed how many people using iPacs for arcade controller interfaces can't get the other built in emulators to just work with the iPacs.
I realize that I am probably not making a good impression here. I do realize that the average person coming to a Retropie setup will just buy the xbox controller because the point for them is to play the games not to learn to program or edit text files.
I recently have thrown my hands up when it comes to getting NES to play correctly and simply bought a set of USB controllers for the Retropie. I now hang them on hooks on the side of the cabinet when not in use. Of course it would have been nice to get the games to run with the arcade controllers.
I cannot figure out how to get things like FBA to exit using the same keyboard combo of P1+P2 or esc like the other mame emulators.
I do appreciate the help. I think though my the time put into this hobby just getting a controller to work across the board may be more than I am willing to dedicate.
-
@battlecat I know we can get you fixed up with a keyboard controller and libretro cores. It is true, the standalone emus like AdvanceMAME may seem better-suited because the default MAME key mapping is a match out of the box, but you are missing out on some of the benefits of RetroArch.
If you want to take the plunge, we need to talk specific emulators. Maybe on another thread we could look at your retroarch.cfg files?
-
@caver01 said in Setting up a Ipac2:
I was thinking of making an infographic to illustrate the abstraction layers
That would be great and really helpful as that challenge will probably be around for the foreseeable future. I had trouble understanding it.
Maybe we could put together a list of conditions like:
Using IPAC2, configured as Keyboard with ALL DEFAULT mapping
2-players, each using : six action buttons, Start, Select and Joystick, Start and Select.
Then say, if this is your setup, here's an example of the controls defined in the all/retroarch.cfg and list the relevant mapping. What do you think?I could see that being helpful also to view a snip-it of the all/retroarch.cfg where modifications would need to be made for a specific example to work from.
I know with the iPAC after going through the initial "keyboard" configuration on bootup I change my
input_enable_hotkey =
&input_exit_emulator =
. I think the default all/retroarch.cfg start is enter and select is rshift. I change start to 1 and select to 5 during the initial config which in MAME are player 1 start and player 1 coin. Then I go back and change my hotkey and exit in retroarch to match MAME as 1 & 2 to exit. It sounds like a lot of hoop jumping but really it only takes a few minutes but that's MAME and not consoles.@battlecat I feel that making an assumption about the setup of the iPac would be useful here. Given that an iPac2 or iPac4 has a specific set of inputs is there a way to publish a opt/retropie/configs/all/retroarch.cfg that is specifically tailored to each device?
Could you explain more here @battlecat? When it comes to these "keyboard" input devices you have to make assumptions from the get go I was thinking. The first thing I did was check the default keys of the iPAC, setup a button layout on my cab/box & then wired the physical buttons to the iPAC knowing button 1 (1SW1) is set to l-ctrl by default. When you boot up RetroPie for the first time and it asks for button A input your probably going to use l-ctrl or whatever your button 1 layout is on the cab which is hardwired to the iPAC's 1SW1 or another input as the default key. Unless you want to change them from the defaults.
My thought is you almost don't need to make assumptions as you have to plan and premeditate when using an iPAC or I might be misunderstanding what you're saying it might be helpful to make an assumption.
I keep wondering do joysticks work with consoles or maybe the early ones like NES, SNES, Atari 2600 (I think was analog but only 8-way?) Were they simple 8 way d-pad inputs or were they "full" analog?
-
@battlecat said in Setting up a Ipac2:
I recently have thrown my hands up when it comes to getting NES to play correctly and simply bought a set of USB controllers for the Retropie.
Sorry you posted between posting. I was slow! :) I don't remember doing anything extra and with the default keys I can play Mario. Bros. on the NES fine.
I cannot figure out how to get things like FBA to exit using the same keyboard combo of P1+P2 or esc like the other mame emulators.
When using Retrorach you might need to verify
input_enable_hotkey =
&input_exit_emulator =
to get Retroarch to match MAME. It's exactly what I do for consistency. That's kind of what I was trying to explain in the example in the other post.@caver01 has the most complex setup I heard of. If he can't walk you through it--no one can! ;)
-
@riverstorm so given the iPac2's P1+P2 exit combo being the same as ESC what do you set "input_enable_hotkey = & input_exit_emulator =" in what file?
Thanks,
BC -
@battlecat you set those in
/opt/retropie/configs/all/retroarch.cfg
-
@caver01 And what do you set them too? :)
-
@battlecat To the keys you want to use them for.
But this is where it becomes different strokes for different folks. For example,
I setinput_exit_emulator = escape
andinput_enable_hotkey = nul
because I used WinIPAC utility to specify a switch on my IPAC4 (I think it was probably Player 3, switch5) to send the ESCAPE key. That is wired to my dedicated exit pushbutton. I don't use hotkeys.However, for many people, they may not want to dedicate a button at extra expense (and inputs used). For them, the hotkeys are great because they allow you to do stuff in RetroArch like save states and so on. So the default would be to have
input_exit_emulator = num1
andinput_enable_hotkey = num5
to correspond with the Player 1 Start and Select (coin) inputs. These keys are the MAME defaults.Just make sure you don't specify the same line twice in the retroarch.cfg, as one would override the other
-
@caver01 said in Setting up a Ipac2:
So the default would be to have input_exit_emulator = num1 and input_enable_hotkey = num5 to correspond with the Player 1 Start and Select (coin) inputs.
It's exactly like @caver01 was saying. Here's where everyone starts tailoring for their specific setup needs. For mine after going through the initial input which defaults to
num1
&num5
I change my hotkey tonum1
and my exit key tonum2
. Pressing Escape on your keyboard exits the game but also when using an iPAC pressing 1 & 2 simultaneously sends the Escape key and exits. By configuring the Retroarch settings to 1 & 2 I am able to exit non-Libretro cores (i.e. mame4all-pi or AdvMAME) by pressing 1 & 2 together which sends escape (their defaults) and to exit Libretro cores (i.e. mame2003, lr-fbalpha or NES) I also press 1 & 2 together. This allows me to exit all emulators by pressing 1 & 2 together.The iPAC has a "shift key" which is similar to Retroarch's hotkey. The default is 1. So pressing 1 plus another key (within a specific time--a second or so) together sends a shifted key sequence (like 1+2 sends Escape). The neat thing about the iPAC is the shift key, normal keys and codes with shifted keys may all be set to whatever you want.
When I built my box I added a player 2 start key for player 2 start but also to exit. When I configure RetroPie on first bootup and it asks me to press a key for select I press 5 (the button I wired to my iPAC for player 1 coins--it's default--MAME defaults). I then can use 5 to add coins in MAME but also for changing from a one player to a two player game in Mario Bros. and hit player 1 start to begin playing.
Normally to exit it would be 1+5 (Libretro cores) but I go and modify the all/retroarch.cfg to make 1+2 my exit keys so it matches non-Libretro cores. This leaves 5 as my select key just not my hotkey then I move my hotkey to 1 and my exit key to 2. It's just a preference but you could also make your hotkey 2 and exit 1. It's mainly to match the iPAC escape sequence to simulate the Escape key for MAME. You may also have a dedicated exit key like @caver01 and disable the Retroarch hotkey but you loose the Retroarch hotkeys for save states, pause, etc. which I do use for some longer arcades games to save and restore if I die to often...which is the case! ;)
Another thing I can't quite remember if it's the iPAC or emulator right now. When exiting some emulators it doesn't seem to register hotkey+exit. So I press them in reverse exit+hotkey. So instead of 1+2 immediately in sequence I press 2+1. Subtle difference.
There are a lot of cool refinements and tweaks for streamlining things once you have this down. They kind of go on and on and they makes things work that much cooler but on the other hand they really aren't needed if you don't want to invest to much time and just get playing.
I get the turn key solution. I remember ripping my music CD's with EAC and using CUETools to verify the pressing offset for an exact bit perfect copy (well as close as you can get--miles of reading the nuances). I didn't want to know the whys or hows in the beginning just the steps to get it done but in the end I ended up learning way more than I cared to know on how to make bit perfect copies of CD's. ;)
-
@caver01 Okay. SO you just said that you are deviating from the standard setup by not using hotkeys. There is no way to predict every possible variation. That is true enough. I somehow doubt that the majority of people who would be seeking this type of basic answer would be as advanced a configuration as you are.
;)
-
@riverstorm Thanks for that detail.
Once more I am suggesting that there should be a baseline default setup for the iPac users that should require no remapping of keys or changes to any text files. I know I seem to be advocating this for those who just want to plug and play and not learn to edit files or remap keys. I understand that there are a lot of hardcore user out there of RetroPie. They may be the majority and yet I do not understand what the big deal is with including default setups for iPac users along side the heavily supported xbox controller user is. -
it’s not simple. first up, what are the default bindings you want to use? what keyboard > retropad binding gives a sensible ipac mapping for all cores? including arcade (fighting game layouts, etc). such a binding doesn’t exist for any controller as the cores aren’t unified in that way. this is a general problem.
“xbox controllers” do not have default mappings. the user has to bind them themselves. i don’t know why an ipac would be special, here.
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.