If you have purchased an Ipac2 and want to save time......
-
Just to add to this, I couldn't exit a game in FBA using Ipac2, I just couldn't seem to get the hotkeys working.
In the end adding:
input_enable_hotkey = "escape"
input_exit_emulator = "escape"to the /opt/retropie/configs/fba/retroarch.cfg
Means I can now escape back to main menu with [Player1 + Player2] simultaneous presses. I've know idea why I couldn't get it to work via configs/all but for now I'm happy and currently last in line to play 1943.....
-
@BigLarry said in If you have purchased an Ipac2 and want to save time......:
Just to add to this, I couldn't exit a game in FBA using Ipac2, I just couldn't seem to get the hotkeys working.
In the end adding:
input_enable_hotkey = "escape"
input_exit_emulator = "escape"to the /opt/retropie/configs/fba/retroarch.cfg
Means I can now escape back to main menu with [Player1 + Player2] simultaneous presses. I've know idea why I couldn't get it to work via configs/all but for now I'm happy and currently last in line to play 1943.....
Ahhhh! I think I know why this causes people so many problems. Here's what I think is happening to those of us with iPACs. . .
The Ultimarc controller has a built-in shift function with the default shift key set to P1Start. Coincidentally, that's the same key configured by RetroArch as the default hotkey. But they really don't work together in most circumstances. Here's why:
- You press P1Start (intending to hold it down and trigger the RetroArch hotkey function)
- The iPAC waits to send "Num1" by default--it detects possible shift function
- Then, the iPAC is listening, waiting for you to press another key (you are holding P1Start)
- You ALSO press P1Coin (normally configured as P1Select, or "Num5")
- iPAC sees you are invoking the shift function (holding P1Start)+P1Coin and sends NOTHING, because shifted P1Coin is not configured by default to be anything.
You see what is happening here? It's not triggering the RetroArch hotkey at all because of the built-in iPAC shift function. RetroArch, with a default config is looking for P1Start+P1Select (P1Coin), or Num1+Num5, but what it gets is an initial Num1, and then nothing. So, no hotkey, no exit.
You have yours working now because you have two things going at the same time. Basically, you are doing the above steps, except instead of #4 and 5 above, you are doing this:
- You ALSO press P2Start ("Num2")
- iPAC sees you are invoking the shift function (holding P1Start)+P2Start and sends ESCAPE, because shifted P2Start is configured by default to be ESCAPE.
- RetroArch sees an ESCAPE keypress and exits.
#6 works because you setup the
input_exit_emulator = "escape"
but only because you also setup the hotkey to be the same key which is really odd. It might have been cleaner to just disable the hotkey function in RetroArch by putting a "#" in front like this:#input_enable_hotkey = "escape"
which would just let ESCAPE to exit work on its own, or to push the hotkey to some button you are not likely to press with an iPAC, like "num9".It seems to me this is affecting a lot of folks and the solution is to either 1. disable hotkeys in RetroArch and configure ESCAPE as the exit key, or 2. disable shift features of the iPAC (if that's even possible), or 3. use something other than P1Start ("Num1") in RetroArch as the hotkey button.
-
I made a change after reviewing the Ultimarc documentation about the shift function. It appears that the iPAC won't send the shift key default assignment until it is RELEASED. This allows it to wait for a second, shifted key press if there is one.
What I don't know for sure, is this: When you press the P1START, hold it down, then press another button for which there is no configured shift key, then you release both, does it actually do nothing, or does it send the P1START on release, and also the second key? I suspect it does nothing--shift function invoked, but nothing defined for that combination.
-
Wow this thread is getting longer and longer. It is nice to see civil conversation.
I just got back from London & Paris and will pick my RPi3 and iPac struggle back up shortly.
What I was wondering after reading all of this is this "Is there a concise guide to using an iPac and setting up each emulator with the standard arcade 2 person layout?"
thanks,
BC -
@battlecat No, there isn't a standard "How To" for iPAC, but there should be, and I expect it should be a collaborative work in progress. It needs to be in the controllers section of the wiki.
There is actually a lot of ground to cover with the different models, and I was initially keen on writing the wiki page myself, but I realized pretty early that my experience is atypical. My iPAC4 is an older model that functions as a PS/2-USB keyboard only, no gamepad. So, if anything, the wiki I would write would not apply to most users. It could be abstracted as a "Keyboards" how-to with some additional details about iPAC (shift function for example).
At this point, I think it's also important to maybe align with Andy at Ultimarc. Some discussion has included re-flashing the firmware, and I'd like to understand his view on this, as it may not be necessary to do that with the right process documented--again, my iPAC is not representative of this.
-
@caver01 I own the Ultramarc iPac2. When I have used it in the past the iPac2 worked great on all other front-ends. I mainly used it just for arcade cabinet setups. I know that there are a list of keystrokes that it generates when say a button is pushed or a joystick is moved. I also understand that MAME expects the ESCAPE key to be pressed to exit a ROM. The iPac2 sends the ESCAPE signal when you hold P1 and then press P2. This has worked in the past for me.
I am unsure, after playing with the settings so frequently, if RetroPie's setting are set to default on this action. In other words if the iPac2 works out of hte box with the MAME emulators in RetroPie.
What I have to keep reminding myself is that the Emulation Station front-end can have a completely different set of key mappings than the emulators that it loads. Yes?
Well I am willing to toy with my iPac2 if you need someone to test things out on. I think that just getting iPac2 and iPac4 sections in the wiki is a great start as they are or at least were the most popular forms of arcade to computer interface for a very long time.
One thing I can say is I am not keen on changing the iPac2 by flashing it or by having to go to a windows machine to load the software to change keyboard commands. I haven't owned a Windows machine in 15 years.
Thanks,
BC -
@battlecat We basically on the situation. How old is your iPAC2?
My understanding is that modern versions of the hardware identify as a gamepad instead of a keyboard which is causing some confusion. Mine doesn't do that, and I too have used it for years on other front-ends and hardware platforms without issue, as MAME has always been built around keyboard input by default. In fact, I remember projects where people would literally hack an actual keyboard and solder their button wires to the keyboard key switch contacts.
Maybe I'll shoot a note to Andy and explain our perspective. I am a big fan of my iPAC4, so I appreciate Ultimarc's long history of building devices to support this hobby. What I want to avoid is making recommendations that contradict the design choices he has made with more recent firmware if there is a better way to do it. It's just that my iPAC is so old I can't verify anything, and depending on how long you have been using your iPAC2, you may be in the same boat.
-
@caver01 So newer version of the iPac2 and iPac4 have something in them that ID them as gamepads not as a keyboard but still have the same original MAME default keymap signals?
-
@battlecat When I purchased mine and plugged it in, retropie detected it as a game pad. I got "one game pad detected" on a fresh install. Now the problem is that if you configure it using the auto detect sequence, all goes well until you try to add configs for player 2. It just does not work. If the auto detect said "two game pads detected", you could go ahead and configure two sets of controls. When I made the purchase, I expected to see "Keyboard detected". The only solution I found was to configure a keyboard first for one player with the device not connected. You can then replace the keyboard with the iPac and it just works. I then had "Ipac not configured" in retroarch which can be hidden but suggested my method was incorrect. However, my method works and continues to do so and as a result, I have not had to re-flash the firmware. In fact, I don't really wish to reconfigure a thing by connecting it to windows as the MAME configurations remain as the default setting. I sent an email off and Andy responded quickly with an alternate firmware which I have not yet had to use, here is my email and the response:
"I have purchased an Ipac2. I have connected it to an install of Retropie 3.8.1. It appears to be recognized as a joypad on boot up and can be configured but only for one player. Even editing configs don't seem to enable player 2. So I solved it by connecting a keyboard and configuring that since it was recognized as a keyboard. Then I unplugged the keyboard and plugged in the ipac. Now everything works. However, I get a yellow warning telling me that the ipac is not configured as roms are launched. I cannot help but think my solution is incorrect. Do you have any advice that you could share? I have a fully working 2 player setup but I would quite like to use the device properly as intended. I thought it would be detected as a keyboard?"
"I believe there is a bug in Retropie which prevents it working properly if it detects a game controller present. I wish they would fix this! But in the interim I have attached firmware for the I-PAC which disables the game controller device and it is only a keyboard. A PC will be needed for the upgrade."
It seems as though he is aware of the issue........although it is still a keyboard decoder, emulationstation "sees" it as a game controller. It looks like retroarch sees it as an Ipac though hence the yellow warning. With regard to a guide, I have spent many hours tweaking but like @caver01, I am not totally sure about how to advise on the game pad thing at all or why it even there in the first place.
-
My IPAC2 is a recent purchase so, while not guaranteed - I'm guessing it's a new(ish) model.
Now, all I've ever done is plug it into the Pi after a standard Retropie install and it worked - I believe it's in keyboard mode as if I drop to a shell, I can type in standard keys with it (for both player 1 and player 2).
Player one didn't work initially but as mentioned above, I edited the default retroarch.cfg ti
input_player1_a = alt
input_player1_b = ctrl
input_player1_y = shift
input_player1_x = space
input_player1_start = num1
input_player1_select = num5
input_player1_l = z
input_player1_r = x
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 = w
input_player2_x = q
input_player2_start = num2
input_player2_select = num6
input_player2_l = i
input_player2_r = k
input_player2_left = d
input_player2_right = g
input_player2_up = r
input_player2_down = fin folder (/opt/retropie/configs/all) and then player 2 works (this I'm sure confirms I'm in keyboard mode too).
As mentioned above, I also get a yellow "warning" when I start games saying something along the lines of:
"Ultimarc ipac not configured"
-
@BigLarry Can you clarify that you did not use auto configure at anytime? That is where I had the issues. If not, you have done what I did to get it working.
-
@rbaker My older iPAC4 (with PS2 interface, and adapter to USB) does not show any errors when I launch games. I did, however, have an additional USB keyboard connected during the initial setup. The first few boots require some editing of configs, setting up localization, etc. and I usually do this with an additional USB keyboard, but the first boot into emulation station has me working through first-time controls setup sequence using my joystick and buttons, after which exit out of ES because my screen is upside down etc.. Once I have my Pi configuration setup, I start copying over roms and CFG files and eventually, I unplug the external USB keyboard and run solely using the iPAC.
I suppose I could do a test with a new RetroPie image and no other USB keyboard connected to see if ES prompts that it has detected a gamepad or not. I think it detects NONE and I have to hold a button down for the setup sequence to decide it's using a keyboard.
-
@rbaker I just plugged it in and went from there to be honest - I wouldn't know how to "auto configure".
-
@BigLarry When you boot up retropie for the first time, Emulationstation detects the Ipac and you have no choice but to autoconfigure it if it is plugged in. Did you not see this screen? If you didn't I am definitely missing something.
-
Sorry,
I think I know what you mean now! My excitement at getting playing games probably made me forget that step.
I first turned it on and I got a white screen where I had to tell it what lots of different commands where ie DPad left etc etc?
I basically moved the joystick and pressed buttons to get to the bottom and then got stuck at pressing "OK"
In the end player one and "left" on Player 1 joystick got me passed that bit.
After that everything seemed to fall into place and be OK as default (ie apart from enabling Player 2 in retroarch.cfg as above it just "worked")
-
@BigLarry Now that is an interesting thing. For me, no adjustment of the 2 player setting in retroarch worked after that autoconfigure. But...I was on 3.8, so maybe there is something "new" that doesn't cause my issue. Next time I rebuild the software, I shall investigate and report back my findings.
-
Hello:
I sat down last night and thought about what I did to get my iPac2 (vintage version) to work with the Retropie setup on my Raspberry Pie 3.
I started by hooking an old gamepad up to the RP3 via USB. It was old and didn't have a ton of buttons but that is fine with me.
On the first boot of RetroPie I walked through the white screen keypress process.
Once this was completed I was able to navigate around the menus and get into and out of NES, SNES, Genesis menus. I was also able to get into and out of MAME. I was able to load a MAME rom and start the game. I was also able to exit the game back to the RetroPie menu.
I attached the RP3 to my iPac2 and found that it wanted me to go through the whole White Screen keypress process again. I did this but the buttons the screen was asking me to press such as Right shoulder button or select button made no sense when using an arcade setup.
Sadly Retropie seems to be incapable of detecting the iPac as an iPac. It also offers no option to treat the controls as anything other than some form of a handheld controller.
After that edited the retroarch.cfg just for MAME and that seemed to work fine for MAME games. It of course did not seem to do anything for the console games as I did not play with them.
A difficulty comes in that console controllers and arcade setups are nothing alike physically.
I will be playing with the unit over the weekend. Anything anyone want me to try out if I can?
--BC
-
Something in retropie keeps the iPac2 from being seen as a keyboard. You need to update the firmware of the iPac so that it can be recognized as a keyboard. I was able to update the firmware of the iPac 2 to get it working. I contacted support at ultimarc and they sent me the proper firmware. Instructions to update can be found here http://www.ultimarc.com/fwupgrade.html. I have a Mac with a virtual windows machine and was able to update the firmware that way. I was then able to configure my control panel for player 1. I then went into the retroarch.cfg and configured the controls for player 2 as shown earlier in the thread. I think the recent iPacs might come with the correct firmware but ones prior to that need to be flashed.
-
@mrbone is flashing really necessary if you're going to edit the .cfg file for a P2 anyway?
-
@battlecat No it isn't, if you configure a keyboard first, you can then edit .cfg. If you follow autoconfigure, those changes make no difference. See my very very first post in this thread.
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.