Setting up a Ipac2
-
Another really helpful tip is you can completely configure your setup without your I-PAC using a keyboard and then wire in your I-PAC which consists of plugging in the USB cable. It doesn't make the distinction between a keyboard and I-PAC.
The newer model I-PAC has that great spinner interface where all you do is plug it in and off you go. Thanks to Caver for showing me how to use a spinner in AdvMAME it's finally getting some use.
-
I set mine up yesterday and it worked out of the box. I had to make some changes though as I wanted to add a load of extra shift-buttons. I only have six buttons on my controller so I mapped the shift functions to the buttons, plus you can also map shift+joystick directions to give you another four buttons.
I set my RetroPie up using the keyboard then just told the IPAC what switch was what button.
No config files were edited on the Pi at all, it looks a bit of a nightmare!
-
@Riverstorm said in Setting up a Ipac2:
Is this the /opt/retropie/configs/all/retroarch.cfg?
Yes it is! That's the main retroarch config that is the top-most config in a cascade of config files.
What file is mame-libertro configs are you modifying?
That config is here: /opt/retropie/configs/mame-libretro/retroarch.cfg
It's interesting because it is named the same as the one in configs/all. The way to think about it is that upon launching a game, the main config in the configs/all folder gets loaded. This sets up a base configuration. Hopefully, most of your mapping has already been done here in conjunction with choices you made in Emulation Station. Then, the selected emulator config gets loaded and any lines in there that are different (or additional) OVERRIDE whatever is in configs/all. Finally, any ROM-specific config gets loaded. The resulting configuration used for a game is an aggregate of all of them, each overriding the next.- All
- Emulator-specific
- ROM-specific
This allows for some very convenient changes from your base setup in configs/all. You can make the modifications apply to everything the emulator launches (convenient for applying shaders, for example), or you can make adjustments in a specific config for a ROM. The ROM configs live right next to the ROMs themselves and are named accordingly (1941.zip.cfg).
My setup is actually not much different from yours. I am using IPAC defaults for the most part which is basically MAME defaults. If all I wanted to run was arcade games, I would probably be set with a properly mapped configs/all and I would be done, but I also want to play console games. So many console games have similar buttons (or similar enough, like A,B,X,Y) that I have a big choice: Do I configure my ALL config to map my buttons to the typical console controllers, or do I map them to MAME buttons? This is probably why my config seems confusing--I chose to map to home console systems.
That decision means that to make my arcade games work, I needed to override a bunch of buttons BACK to how I have my panel setup--at least as far as libretro MAME is concerned (2003). But, because my ALL has my buttons mapped for home games, I don't have to really do anything special to run Atari, NES, SNES--any libretro emulator for home consoles is pretty much ready to go with the ALL config. It was just a numbers decision. Besides, I knew I would need to do a bunch of per-ROM configs for arcade games anyway, if for no other reason than to remap vertical games for rotation and cocktail mode (head-to-head screen flipping).
SO, with that said, I will add one more detail--the COIN and START buttons--I have these mapped in my ALL (via Emulation Station mapping like you) to the Select and Start buttons respectively. Again, this is because I standardized on home consoles in my ALL config. Conveniently, these line up with libretro MAME cores anyway, so nothing special is needed in my Emulator configs for coin and start.
Looking back now, I think I probably did make things more complicated, but I think I would be doing the same thing in reverse now as I get NES setup, and SNES--so, take your pick.
-
Something else, as I am thinking about it is this: When setting up arcade controls to map to home consoles, there's an inclination to map arcade button 1 (leftmost) to A, and button 2 to B and so on. However, if you look at an NES controller, button A is on the right, B on the left. Anyone who is familiar with popular NES games will play on the arcade console setup the way and the buttons will be backwards. I mapped mine with B on the left, A on the right and so on. This makes my arcade game mapping a little harder because 1 and 2 are reversed. Players shouldn't have to re-learn the buttons.
Another thing you mentioned was hot-keys. I disabled my hotkeys completely in the configs/all/retroarch.cfg. Because I have a dedicated arcade button for ESC, I mapped it to exit, so no need for a hotkey. Actually, the hotkey exit was driving me crazy in arcade games. There were occasional situations where I was dropping a coin (or a bunch of them) while frantically hitting START to re-enter a game. OOPS--that triggered an EXIT and my game is gone! I am thinking of SmashTV, or MetalSlug, or Gauntlet--games where two players might press the combo at the same time. So, no more hotkeys. For things like the RetroArch GUI, I just mapped that to NUM9 which isn't a key I have setup in my IPAC-4. I need an external USB keyboard connected if I want to mess with settings. Same for TAB, although the IPAC itself has hotkey tricks if I need them.
-
@caver01 said in Setting up a Ipac2:
Something else, as I am thinking about it is this: When setting up arcade controls to map to home consoles, there's an inclination to map arcade button 1 (leftmost) to A, and button 2 to B and so on. However, if you look at an NES controller, button A is on the right, B on the left. Anyone who is familiar with popular NES games will play on the arcade console setup the way and the buttons will be backwards. I mapped mine with B on the left, A on the right and so on. This makes my arcade game mapping a little harder because 1 and 2 are reversed. Players shouldn't have to re-learn the buttons.
That definitely helps in understanding. When it comes to the A&B button swap do you config the consoles first (like they should be) and then modify the autoconf.cfg (I think that's the file name) for A&B button swap? I think it was you that showed me that trick. That was a big help. It allowed the consoles to have the correct orientation for A & B but not X & Y.
Two things that I struggle with are my layout is something like below. In MAME I use the L and R buttons to page up and page down in the detail view of games. I also use the A-B button swap but below it illustrates a console setup even though they are swapped for MAME.
Y L R
B A XI wouldn't mind them being something like this (that way the A,B, X and Y are more inline with a console). How are you buttons layed out? And I could also use L & R for page up and down but I think that would throw off 6 button games.
Y X L
B A RThe other thing is if you hookup a joystick (I do that off the USB port that I extend to the side of the case with this type of connector):
USB A-B Reversible Gender Changer
The issue is everything wants to default to the I-PAC instead of the joystick.
-
@Riverstorm Good questions all around.
So, my IPAC is wired like this:
123
456This six button layout is primarily for fighter games (arcade) But I have them mapped in the configs/all to:
BAX
YLRThis is basically like your setup with the rows stacked the other way. So, yeah, my default config is going for console mapping first, and I can fix the arcade games with overriding configs. This setup has the advantage of putting A to the right of B, and it has L and R side-by side which is convenient. X and Y are a compromise, I guess.
Now, when it comes to "correcting" this config back to a MAME 123,456 layout, I have a couple options. I could simply remap them in configs/mame-libretro. That would be the best first attempt at getting the buttons right for some arcade games. The thing about arcade systems is that many have unique panels. Sure, a lot of classics have just the one button and a joystick which is easy, but look at Defender, for example. You probably need to put the REVERSE at button 4 so you can easily tap it with your joystick hand, but decisions have to be made about thrust and fire, smart bomb, hyperspace.
As I added ROMs to Arcade, I play test everything. Some games will be fine with defaults, but for others I will often lookup the original panel layouts and just go into the MAME GUI and remap controls the way I want.
Since mine is a 4-player cocktail style design (Players 1 and 2 are on the horizontal edge, Players 3 and 4 sit across from each other on the shorter vertical sides), I have a lot of remapping anyway. I also have per-ROM configs for every single vertical game to control rotation and to map Player 1 and 2 to the 3 and 4 positions on my panel. I set DIP switch to Cocktail cabinet when I can for these so the game flips upside down for player 2. So, games like Donkey Kong, PacMan, Dig Dug, and so on, all play from the vertical end positions and every single button is remapped to those positions (joysticks and coin/start too). I do most of these by duplicating the per-ROM configs, but make final tweaks in the MAME GUI.
There's just so much variability in Arcade games that customization is hard to avoid. I decided early-on that since I would be making so many adjustments to arcade controls, I might as well standardize against the home consoles. At least they will enjoy some consistency with ABXY buttons and I don't really have to worry about players 3 and 4 or vertical orientation.
-
@caver01 said in Setting up a Ipac2:
@Riverstorm Good questions all around.
There's just so much variability in Arcade games that customization is hard to avoid. I decided early-on that since I would be making so many adjustments to arcade controls, I might as well standardize against the home consoles. At least they will enjoy some consistency with ABXY buttons and I don't really have to worry about players 3 and 4 or vertical orientation.
Ok I think the lightbulb turned on finally. I am going to incorporate this more granular setup on my next go around (usually when a new version is released). There's so much going on there that I didn't understand before. You'll have to tag this thread because I'll probably come back with more questions at some point! ;)
I agree on the arcade games. Several require "hand tuning" to get them working properly. Defender is a great example. Another good one is Asteroids, the controls are just hard to duplicate in a "standard" arcade cabinet.
I haven't even thought of doing more complex setups yet. Like 4 player, rotating the views, etc. hence back to the joystick. For games like Karate Champ, Crazy Climber, Robotron, Cloak & Dagger that require two joysticks the XBOX 360 controller works great. Another game that really benefits from ROM tweaking is Toobin'.
I also spend time looking up control panels when a game seems wonky and you look it up and go that's why...a 2nd joystick, spinner, etc.
Thanks for explaining everything Caver and oh yeah a cocktail cabinet would be oh so awesome with an old school group that appreciates the arcades of past and the sounds they implored to be played! :)
-
I didn't realize Cloak & Dagger has a two-stick panel! I need to fix mine now.
I admit that I use the joystick in Asteroids to rotate, but this game is vector so I use AdvanceMAME at 1280x1024 for nice crisp vector lines so the retroarch configs don't matter. AdvanceMAME has its own config file--one file that covers the settings for EVERY ROM title. AdvanceMAME also comes into play for mouse controls (trackball and spinners).
The 4-player cocktail design is really versatile. Mine is somewhat portable as I built it as a custom road case, but it is heavy with a 19" LCD, trackball, spinners etc. Only the horizontal players have 6 buttons. The end positions at the vertical sides have 4 buttons, but probably don't even need that many. Here are a few pictures of my build:
Regarding interesting controls, Toobin is definitely a hard one to map. Vindicators is another. Sarge--any system that has two sticks for steering (tank sticks) can be mapped to a single joystick using boolean OR and AND mapping techniques, but I can't get this to work in MAME2003, so I have these games setup in AdvanceMAME.
-
@caver01 said in Setting up a Ipac2:
I didn't realize Cloak & Dagger has a two-stick panel! I need to fix mine now.
Yeah one for movement and one to fire. One push button to ignite bombs. Another game I had to remap to start was Space Duel. I can't remember but something is weird with selecting the 1 or 2 player options before starting the game. I could only get the selection option to go around clockwise for selection before start. But anyway something was odd with the default keys for that game but one of my favorites.
You've thought of pretty much everything when it comes to the configs it sounds. You've covered pretty much every scenario a person would come up against.
Dang, that's really a sharp case. I like that it's semi-portable it looks. I've built about everything except a larger scale project. I think the wife might go for something like that, maybe. :) It looks like you really put a lot of care and planning into the project. Clean wiring, lighted buttons too. Lighted buttons I think look really sharp in like an attract mode or just playing. On the internal pic are the white things in top left and right speakers? That's a show piece for sure! Great job!
-
@Riverstorm Thanks for the kind words!
Space Duel definitely has a strange start. Selecting two players appears to be dependent on getting the opening choice correct, then the controls have to be mapped correctly. It's messy, and although it seems like it might be fun to play with a friend, I imagine a few false starts, ESC, restart to get the game setup correctly--even with workable mapping!My cabinet has been a thought experiment for years. I had a prototype system with similar controls, but the roadcase design is where I finally landed and I really like it. I just wish it was lighter. I will probably rebuild it someday, as I really want to be able to carry it around. It literally hurts the arms to lift it. I am actually toying with the idea of replacing corners with inset wheels and adding an collapsable handle like luggage that slides into the lid. That might make it luggable at least.
Those white things are speakers. I picked up some inexpensive USB powered speakers at Adafruit thinking I would just mount he cone drivers. However, I lost so much bass that I put them into PVC pipe end caps. I basically rebuilt enclosures for the drivers. I should have shopped around for a better set of speakers. These work fine though. They output sound through holes drilled into the case wall that are hidden behind the latch strike plates.
-
The backlit buttons are a nice touch that I recommend. I am using ICE, or Nova, or something like that from Groovy Game Gear. I don't know if they make them anymore, but there are similar buttons out there. These don't run any kind of LED attract mode. Just straight power from a USB port. The buttons have 5mm holes in the bottom to accept a tight fitting LED, and I have the leads of the LEDs wrapping around the side of the button where I soldered the current-limiting resistor for 5volts and a two-pin header. This his hot glued for stress relief.
-
@caver01 said in Setting up a Ipac2:
The backlit buttons are a nice touch that I recommend.
Those white things are speakers. I picked up some inexpensive USB powered speakers at Adafruit thinking I would just mount he cone drivers.
Yeah Space Duel is great with a friend definitely give it a shot. Wow, that's really impressive! I like the idea of making a "rollercade". An arcade on wheels! :) I agree with the speakers I went through a few iterations but the sound just isn't the same so I settled with what I had instead of sinking more money into it, it's quite acceptable. It just seems by default arcade cabinets had a lot of white/negative space that gave the games a fuller sound or something.
-
Hi guys.
Thank you for all the info so far. I am able to edit the Cfg so i can get both sets of my buttons working so far.
How do i configure the buttons to work differently in each emulator ?
I appolgise if this is a basic question. Its my first arcade case so im learning on the job.if anyone can explain it in baby steps i would love it.
Thanks all
-
@mrt88 said in Setting up a Ipac2:
Thank you for all the info so far. I am able to edit the Cfg so i can get both sets of my buttons working so far.
How do i configure the buttons to work differently in each emulator ?It's a bit of a loaded question because there are so many emulators. Those with lr- at the front of their name like lr-mame2003 are libretro cores. All of these emulators share the RetroArch configuration and capabilities. For those, the keys are setup in the retroarch.cfg files. It starts with the one in the configs/all folder, and each lr- emulator can have it's own retroarch.cfg file within it's own config folder. These .cfg files "combine" or rather, the values set inside them augment the one in /all. This lets you do most of your configuration in /all and put adjustments or differences in each individual one.
For emulators that don't have "lr-" in the name, those emulators are all unique and each has its own configuration. I think there is some effort to push mapping done in Emulation Station, but it can help to understand how your chosen emulator handles the key mapping so you can edit as needed. For instance, AdvanceMAME has a configuration (one for each version 1.4 and .94) in a file that ends in ".rc". AdvanceMAME configs are totally different beasts.
All of this info and complete paths to files are all listed in the WIKI, but it can help going in to know what you are looking for. Also, it can be a lot easier if you have a computer on the same network to attach to the SAMBA shares and edit configs with a nice text editor across the network.
-
Hi y'all. Reviving this old topic, as I think the things mentioned aren't getting me all the way to a working setup.
As the guys earlier in the thread, I'm using an Ipac2 and cannot get the 2-player buttons to work.
Except, they work in MAME, after I did the configs/all/retroarch.cfg trick with coding player 2 inputs as caver01 mentions. But nothing else than MAME works.I tried to do the following, with no luck:
- Tried Ultimarc software to setup the Ipac as a gamepad, but that didn't work, just made it all worse, not working in MAME neither. So I went back to keyboard inputs.
- Tried copy/pasting the lines that did the trick in the configs/all/retroarch.cfg into numerous of the specific emulator config files, for instance I tried mastersystem, fda and genesis. No effect.
- I also tried making specifik rom-cfgs, for instance made a file named "Altered Beast (UE) (REV02) [!].gen.cfg".
Here's an example of the rom- or emulator specific cfg-files that I make, maybe I miss some little input to make it all work?:
#Settings made here will only override settings in the global retroarch.cfg if placed above the #include line
input_remapping_directory = "/opt/retropie/configs/fba/"
input_player1_a = "shift"
input_player1_b = "z"
input_player1_y = "x"
input_player1_x = "alt"
input_player1_start = "num1"
input_player1_select = "num5"
input_player1_l = "ctrl"
input_player1_r = "space"
input_player1_left = "left"
input_player1_right = "right"
input_player1_up = "up"
input_player1_down = "down"
input_player1_l2 = "keypad9"
input_player1_r2 = "keypad6"
input_player1_l3 = "a"
input_player1_r3 = "d"
input_player2_a = “w”
input_player2_b = “i”
input_player2_y = “k”
input_player2_x = “s”
input_player2_start = “num2”
input_player2_select = “num6”
input_player2_l = “a”
input_player2_r = “q”
input_player2_left = “d”
input_player2_right = “g”
input_player2_up = “r”
input_player2_down = “f”#include "/opt/retropie/configs/all/retroarch.cfg"
I tried with # and without # in front of the input remapping line, also with no difference.
Please, can anyone help? -
@AndersHP Please add a few more details. Where EXACTLY is this file you pasted above? What is the complete filename of the ROM that corresponds to it and where is that ROM?
Finally, what exact emulator are you trying to run? You need to be much clearer about this point. For example, you say only MAME works, but there are at least 6 versions of MAME officially supported. When you say MAME works, we don't know if it's because your iPAC is sending keys directly to the emulator, or if you are using a libretro core. In other words, your configuration of retroarch.cfg files may not even apply.
-
Thanks for taking the time to reply.
However, I must admit that the mistake was a very elementary one, since I was using the standard Mac "TextEdit" Tool to edit the cfg files, leaving the inputs dead. When typing the same inputs in TextWrangler, everything seems to Work now!
I'm typing the sample text into each retroarch.cfg file of the emulator-folders, e.g. the Megadrive folder. There's already a retroarch.cfg file there (as I can understand from your post, first the software reads the retroarch.cfg in the ALL folder, then the emulator folder, and lastly the ROM folder for the game).
I actually don't understand why I have to type the input lines into the emulators cfg files, since the same lines is written into the all-retroarch.cfg...
Well, next problem is that I cannot get Neogeo 2 player working. I only tested Metal Slug X, but 2 player inputs don't seem to Work at all...
-
@AndersHP Scrolling back up to your pasted list of inputs, I see that the Player 2 inputs have curly quotes around them. That won't work. Any chance that's the issue?
input_player2_a = “w”
will not work. It should be:
input_player2_a = "w"
-
@AndersHP And you are right--you should not have to enter the inputs in emulator-specific retroarch.cfg files unless you intend to override with a change or addition. I am not sure on the actual order that they are read (it might be read in reverse order) but the effect is as you have described--the config in the all/ folder is the beginning of a configuration cascade with each emulator config (and even individual rom configs) overriding. Perhaps you have curly quote in the /all that get corrected in your emulator specific configs.
-
@caver01 This was very helpful it really helped me figure out a solution to my own console.
Thanks
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.