INTRODUCTION
This page explains how to gain up to six additional inputs (for a six-player panel, realistically two or four inputs) from a keyboard encoder, by eliminating the Player Start buttons and using their inputs for other functions.
BACKGROUND
If you play Skull & Crossbones (Skullxbo) or Teenage Mutant Ninja Turtles - Turtles in Time (TMNT2) in MAME, you will notice that after you insert a coin, nothing happens when you press P1 Start (1 on the keyboard). Instead the game starts when you press P1B1 (L Ctrl). You will also notice that if you open the TAB menu and select "Input - This Game" there are no start buttons listed.
The initial impression is "The MAME Team messed these up!". Before you post on the MAME message board and embarrass yourself, consider the following:
Here is a picture of a Skull & Crossbones control panel (courtesy of SmitDogg):
You will notice there are no Start Buttons on the panel. In this case, Atari probably did this to save space on the panel. Of course, they could be mounted somewhere else on the cab that we don't see, but consider also the following info from PaigeOliver of BYOAC:
"I used to own Skull & Crossbones, it did not have start buttons at all. It just used the attack buttons to start (like Crystal Castles does). The funny thing was that if you had a fully JAMMA wired cabinet and stuck a Skull & Crossbones PCB in it, and pressed the JAMMA start button, then the game would dump some text on the screen and crash."
Fortunately, MAME did not emulate THAT, but it looks like they got the button inputs right!
Now for TMNT2 - First a couple more SmitDogg pics:
The first image clearly shows Start buttons, but the second image is missing them. What gives? If we could look at the underside of the first panel, we would find that the Player 1 Start button is actually wired in parallel to the Player 1 Attack button. Konami did this because the JAMMA (Japanese Arcade Machine Manufacturers Association?) standard has a limited number of inputs and Konami needed additional inputs. This is the same method we will employ with our encoders.
NOTE: With a classically wired panel, you can get the above games to work conventionally (at the expense of arcade accuracy) by going into MAME and mapping P1Button1 to "1 or L Ctrl", P2Button1 to "2 or A", etc. We will be doing the inverse of the above, i.e., mapping P1Start in a conventional game to "L Ctrl" and P2Start to "A" to free up the Start inputs.
ADVANTAGES
DISADVANTAGES
These are ordered from least severe to most severe.
If you press the P1Start button, etc. during gameplay, the P1B1 action will occur, but I can't think of when you would ever do this.
If you coin-up a game and accidentally press P1Button1, the game will start, but you are not likely to do this either.
If you are playing a game, have a bunch of credits racked up, and accidentally hit P1Button1 after you die, you will continue playing the game and have to suicide to end your turn.
A few games (1942, Arknoid2, Gng, for sure, but there may be others) were looking for you to press and hold Fire and then press Start to continue. For these games, pressing either Fire or Start will immediately continue. (I prefer this, actually, but it's not arcade accurate).
A few games (Rastan for sure, but there may be others), would allow you to press Start to continue, or Player 1 Button 1 to stop the counter and start a new game. For these games, pressing Start or P1B1 will continue and you will have to wait the full 10 seconds before starting a new game without continuing.
One game (Primal Rage, but there may be others) uses the Start button as an attack button, but it is not the same as P1Button 1. For this game, P1Button1 would have to be re-mapped, and the keyboard layout might be less than ideal, but this method will still work.
The problems are less severe than they sound, if you actually try it out. Note that you can do the software changes in MAME and test it out before you actually wire it into your panel.
IMPLEMENTATION
There are two ways to implement this, the skullxbo method, and the TMNT2 method. The skullxbo method does not include the start buttons, and uses the PxB1 inputs to start a game. This method would be used by persons with a small control panel area, or just a minimalist feeling for the number of buttons they want to see on their panel. In hardware, all that is required to implement this is to NOT install any player start buttons on your control panel. The TMNT2 method uses Px Start buttons on the panel and looks just like a standard control panel. In hardware, this is implemented by wiring the PxStart buttons in parallel with the PxButton1 buttons.
With either method, you have to make the following changes in MAME (and any other programs that this is compatible with): Assign PxStart to the PxButton1 input. For example (in a default set-up), P1Start would be mapped to "L Ctrl", P2Start would be mapped to "A", P3Start would be mapped to "R Ctrl", and P4Start would be mapped to whatever key you are using for P4Button1.
This can be done either through the TAB menu "Inputs - All Games" function, or (for MAME 0.60 and up) through the ctrlr.ini files function.
NOTE: You could set the inputs as P1Start = "1 or L Ctrl", etc., in case you ever wanted to play the games on a standard keyboard.
Now that this is done, you would then either re-program your encoder to assign the Start Inputs to a different function and wire buttons to them, or just connect buttons to them and reprogram MAME. (MAME has no problems with P3Button1 = "1" even if YOU might need a while to get used to it.)
Obviously, if you can't reprogram your encoder and your inputs are set as "1, 2, 3, and 4", you would NOT want to assign P1Start to "1 or L Ctrl" :-).
That's it!