If you have purchased an Ipac2 and want to save time......
-
@rbaker I noticed in your original post, your complaint was that you were unable to play 2 player games. Only the 1 player side worked. I tested that both of my worked by loading up the simspson rom, which I know is a two player simultaneous game. Both sticks, and the buttons for each player work. It seems the only thing that I am unable to do at this time, is back out of a ROM into the MAME menu.
rbaker, 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?
I would really like to avoid a reinstall, as it has been a few months since I ran through the process. I am worried it will put me back further than it will get me ahead. I am, however, thinking that might be what I end up doing. I just cant imagine that there would be this many problems right out of the box. I figure that a config that was created for the gamepad that I have that may be interfering some how. I just cant isolate how. I have even removed all of the configs I could find, for the game pad, out of their original locations in an attempt to break the gamepad configuration. No dice. I am shocked that the game pad still works, I don't know where it is getting the config from for it now. (They used to live in the /opt/retropie/configs/all/retroarch-joypads).
I too noticed that the IPAC, out of the box, was configured for MAME. I got mine a couple months ago, I am not exactly sure what firmware came with it.
Here is what I have in the retroarch.cfg file that is located in /opt/retropie/configs/all/:
input_player1_a = alt
input_player1_b = shift
input_player1_y = space
input_player1_x = ctrl
input_player1_start = num1
input_player1_select = num5
input_player1_l = ctrl
input_player1_r = rctrl
input_player1_left = left
input_player1_right = right
input_player1_up = up
input_player1_down = down
input_player1_l2 = num1
input_player1_r2 = num0NOTE - I just changed the input_player1_start and input_player1_select after your suggestion. Trying now.
-
@rbaker It appears that changing this:
input_player1_start = num1
input_player1_select = num5in the retroarch.cfg in the /opt/retropie/configs/all/ did nothing. It just seems like it is getting it's values from some other file to me.
You are saying that if it was set up incorrectly before, it would recognize the IPAC as a joystick/gamepad, right? I will tell you that when I do a jstest in /dev/input/ it appears that the only option that would make sense would be "js0" at this time. I think that is the same value that was there when I did the jstest for the gamepad a few months ago. Are you saying that the only way to get the IPAC to recognize as a keyboard again would be a new install? I will also mention that I did the "configure input" option through the emulation station menu. when it tells me to hold a key for it to recognize what we are configuring, I will hold one of the buttons on my custom arcade that is hooked into the IPAC, and it pops up on the screen "keyboard". Does that mean anything?
-
@noremaC1337 I am actually glad @rbaker chimed in here. He has a much closer configuration to help. As I have said, my iPAC4, old as it is, may not be the best example. In fact, it's better to think of me simply using an actual keyboard with wires soldered to the keys.
There are actually several ways to get exit to work.
Method 1:
Configure your iPAC to send ESCAPE key (either dedicate a SW to that key and set it up with the WinIPAC UTIL which is what I did), or use the iPAC SHIFT combo Start1 (hold for a second) + Start2 which should also send ESCAPE
Then, you also need to setup RetroArch to interpret ESCAPE as I noted 7 hours ago, also disabling the retroarch hotkey.You can probably test method one even with a regular USB keyboard attached. If you press ESC on a regular keyboard, it should kick you out of MAME if retroarch is setup to do that.
Method 2:
Leave the hotkey setup in retro arch and simply use it. You would configureinput_player1_start = num1 input_player1_select = num5
and
input_enable_hotkey_btn = num5 input_exit_emulator_btn = num1
which would now let you press Start1 and Select1 and trigger the emulator to exit.
-
@caver01 Alright, what you mentioned is something I have already tried. With just a normal keyboard connected, once I get into the MAME rom, I hit escape, nothing happens. I am thinking it isn't using the retroarch.cfg file as expected...
-
@noremaC1337 What MAME are you running exactly?
-
@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.
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.