I realize most of the "MAME" arcade cabs on YouTube have almost the same setup with a joystick, 8 buttons and if two player (which almost all are) another joystick and another set of 8 buttons - and then sometimes a trackball and/or spinner added as well.
Problems is - for almost all of my favorite retro arcade games from the 80s - they all have different controls from each other - and two of my favorites - are Karate Champ (which as far as I know is the grandaddy of all VS martial arts fighting games) and Battlezone.
Both of these games (as well as Robotron 2048, which I don't think I ever played actually) require two joysticks per player to maneuver (which I'm sure most of you know)
So...my question is - how do I configure this? DO I need a separate control board per joystick? Because most of them that I see seem to only have connectors for one joystick
I asked someone on YouTube this question, and he told me to get a Ultimarc I-PAC 4 (which I assume would be for a two player setup) and that board seems to have connectors for 1up, 1down, 1left, 1 right, as well as 2 - 3 - and 4 left, right, up down.
So does anyone know - or can confirm that I can use this board for two players - each using two joysticks ? And similarly - If I wanted to build just a 1 player Karate Champ Cab let's say - I could accomplish the same thing with using a Ultimarc I-PAC 2?
First thing to do is work through the design process in the
What type of build meets my needs? section of the FAQ.
https://wiki.arcadecontrols.com/index.php/FAQ#What_type_of_build_meets_my_needs.3F- Take your time with this process,
especially step #2.
- You'll also want to check out the
Dual Joystick game list. Game controls marked "per player" support simultaneous play by more than one player so "Smash TV -- 2 sticks per player" allows 2 players at the same time.
The way to calculate the number of inputs you need is covered in the
How many encoder inputs do I need for my control panel? section of the FAQ.
https://wiki.arcadecontrols.com/index.php/FAQ#How_many_encoder_inputs_do_I_need_for_my_control_panel.3FEach microswitch joystick needs 4 inputs (U/D/L/R)
- 2 joysticks per player ==> 8 inputs per player.
Each player button needs 1 input.
- 6-8 buttons per player ==> 6-8 inputs per player. (you probably only need 6 or less, depending on step #2 above
)
Each admin button needs 1 input unless you use "shifted functions".
- Coin and Start for each player ==> 2 inputs per player
- Pause and Exit ==> 2 inputs used by both players
- You can use dedicated admin buttons
or shifted functions
or you can trigger a shifted function from a dedicated button if you use blocking diodes. (for example, an Exit button tied to P1 Start and P2 Start inputs, diodes prevent the Exit shifted function from triggering when just P1 Start or just P2 Start is pressed)
https://wiki.arcadecontrols.com/index.php/FAQ#Number_of_admin_buttonsAn IPac2 has 32 microswitch inputs and three sets of optical axis inputs. (2 for trackball and 1 for spinner)
An IPac4 has 56 microswitch inputs but no optical axis inputs.
8 inputs P1 two joysticks
6 inputs P1 player buttons
8 inputs P2 two joysticks
6 inputs P2 player buttons
--- That's 28 inputs so far.
2 inputs P1 and P2 Start admin buttons (P1 Start is the designated "shift" button for the IPac, so you'll want to use these two inputs)
--- That's 30 inputs so far.
2 inputs P1 and P2 Coin admin buttons
2 inputs Exit and Pause admin buttons
--- You can do two of these last four as shifted functions and two as dedicated inputs with the IPac2
or do all of these and more inputs on the IPac4
or you can overlap player buttons and second joystick inputs like Fursphere suggested
or you can use an Arduino with a keyboard sketch as a supplemental encoder for the admin buttons instead of using shifted functions on the IPac2. (great option if you want to use the optical inputs on the IPac2, but want more than 32 microswitch inputs)
Lots of ways to make it work.
The best choice for your application depends quite a bit on your personal preferences regarding dedicated admin buttons vs. shifted functions, etc.
Scott