If you have purchased an Ipac2 and want to save time......
-
@noremaC1337 By the way, you can use a service like pastebin to post the contents of your
/opt/retropie/configs/all/retroarch.cfg
and put the URL to that pasted stuff here in a message. That way we can see your config.Note that if you have a retroarch.cfg in your config folder for that emulator, it can override.
-
@noremaC1337 The thing is, I am confident we can get you straightened out. You should not have to re-image to get a working config. The question is more about how you want to perform your exit. Do you want to send ESCAPE (which by the way works in many emulators that may or may not be running inside RetroArch), OR do you want to use a hotkey combo (which only works in RetroArch)?
-
@caver01 I figure since Start1 and Start2 together send ESC from IPAC, I am wanting to go that route. Meaning to exit the ROM, I would hold Start1 then press Start 2 for it to escape. That would be great.
Can you tell me how to locate what version of MAME I am running? I made a note when I first started this project stating this:
MAME4ALL uses 0.37b5 ROMS
So would that be the version?
-
@noremaC1337 Where did you put your roms? What folder? If they are not in a libretro folder of some kind, you are NOT using a retroarch version of mame, so all of the editing inside retroarch.cfg files DOES NOT APPLY. Of course, it would apply, if you are using mame-libretro folder, and if so, you would pick which MAME you are running using the runcommand.
-
@caver01 mame-mam4all is the folder they are all in.
-
@caver01 after looking at the "runcommand" link that you put in, I realized a similarity to that strange issue I had earlier where the emulationstation.sh file was missing. After I renamed the emulationstation putting the .sh extension back on the file, every time I load a game now it has that grey box in the middle of the screen telling me it is loading. It used to just have text in the upper left of the screen. I wonder what caused this.
I also notice that there is a "runcommand.cfg" and "runcommand-launch-dialog.cfg" file now located in the /opt/retropie/configs/all/ folder that wasn't there before the strange emulationstation.sh issue...
-
@noremaC1337 ok. I can't really speak to your missing files, but that emulator doesn't use retroarch configs. You are running the standalone mame4all. It has its own configuration that I am not familiar with. Might be that it's not using escape to exit.
You could try putting your roms into mame-libretro folder and using run command to select lr-mame4all as the default. At least that way you would be running the retroarch version.
-
@caver01 I did try to run dropping one of my ROMS in there, but it did the start and stop. Where it was starting the ROM but then went back to the menu. I am thinking this had something to do with a missing BIOS? I remember having to find the BIOS and put them somewhere when I first set this up. Do they go in the same folder as the ROMS?
I ended up reformatting the SD card and putting the latest version of RetroPie on there. Pretty much followed this site to a T (which I believe is what did a few months ago):
https://howchoo.com/g/n2qyzdk5zdm/build-your-own-raspberry-pi-retro-gaming-rig
I then copied all my ROMS back into the same mame-mame4all folder I had them in before. I started one of them up, the same one I had been testing this whole time, 1941 I believe, and I was able to exit successfully by holding Start1 then pressing Start2.
So it seems like there is a config you have to do to navigate around through emulationstation, then a retroarch config for retroarch emulators. Then it sounds like another config for stand alones, like this MAME one that I am running? I don't know where this MAME config is located, but I believe you change the configuration by hitting "TAB" in a loaded ROM and it will allow you to make configuration changes. The odd thing about that, is I don't remember seeing an "exit" configuration in that menu, so therefore, I am unsure where it is getting the "escape" command to exit.
-
@noremaC1337 said in If you have purchased an Ipac2 and want to save time......:
So it seems like there is a config you have to do to navigate around through emulationstation, then a retroarch config for retroarch emulators. Then it sounds like another config for stand alones, like this MAME one that I am running? I don't know where this MAME config is located, but I believe you change the configuration by hitting "TAB" in a loaded ROM and it will allow you to make configuration changes. The odd thing about that, is I don't remember seeing an "exit" configuration in that menu, so therefore, I am unsure where it is getting the "escape" command to exit.
You have the right idea. When you ran that rom in another folder, it probably used lr-mame20003 but your rom is the wrong version for that mame. You have to use runcommand to specify lr-mame4all which probably would have worked.
In any case, glad it's working! Most of your answers about configs can be found in the wiki.
-
just so that I am not assuming, you are editing the retroarch.cfg file that is located in the /opt/retropie/configs/all/ location, correct?
Yes, that's the one.
It appears that changing this:
input_player1_start = num1
input_player1_select = num5
in the retroarch.cfg in the /opt/retropie/configs/all/ did nothing.This suggests that you are not running a libretro emulator when testing.
I will also mention that I did the "configure input" option through the emulation station menu.
In my experience this will cause problems with two player controls in libretro emulators even if you add them in here:
/opt/retropie/configs/all/retroarch.cfg
I started one of them up, the same one I had been testing this whole time, 1941 I believe, and I was able to exit successfully by holding Start1 then pressing Start2.
This functionality works out of the box for non-libretro Mame emulators. I use it to escape from Mame4All roms. lr-Mame2003 is different and uses Start and Select which is mapped to num1 and num5 above. But you must enable hot keys with this:
input_enable_hotkey = "num5"
Now this is the select button, 5 on the keyboard, Insert Coin on MAME. So you hold it in then tap 1 Player start to exit libretro emulators, not the other way around. Sounds like you got sorted in the end, ask if you have any other queries.
-
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"
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.