If you have an arcade-related question not answered here, try leaving a message on the BYOAC message board, or contact me.
NOTE: This is the FAQ page for my "not yet released" arcade controller page. Therefore some of the answers won't make sense, but I thought the page would be useful and wanted to get the info out. (Last update 24 April 2003)
Is MAME illegal?I would say not, as I understand software law, but I'm not a lawyer. Here's my interpretation - MAME is software which emulates computer (arcade) hardware. AFAIK, this has never been tested in court. However, hardware which simulates computer hardware, and software which simulates computer software have both been found legal, so it follows that MAME should be legally okay. Examples:
Hardware simulating Hardware - Intel sued AMD early on (and lost) over AMD's K6 chip copying the Pentium hardware. Basically, the result was that the chip was not a copy of the Pentium and reverse engineering was difficult to prove, so AMD won.
Software simulating Software - Lotus sued (I think Borland Quattro (?) and lost over the "look and feel" of 1-2-3. For that matter, I don't think it was ever challenged, but Windows 3.1 was basically a variation of the Macintosh OS of the time, which itself was derived from Xerox copier operating software.
OTOH, AMD and Microsoft can afford much higher profile lawyers than the MAME dev team, so if it ever gets challenged in court, legal precedent may not matter!
This is another frequent topic of discussion. Basically, I think the only ROMS which it is technically legal to own are the following: Gridlee, PolyPlay, and Robby Roto, which are available from www.mame.net, and, if you purchased a HotRod SE from hanaho directly after they made the licensing agreement, you are entitled to the following fourteen Capcom games: 1941 - Block Block - Commando - Exed Exes - Ghouls'n Ghosts - Magic Sword - Mercs - Sections Z - Side Arms - Son Son - Street Fighter (Hyper Fighting) - Strider - U. N. Squadron - Varth.
Following are some common arguments regarding ROMS and my take on them (basically in
order from least merit to most merit):
These ROMS are over 20 (15, 10, 5, ?) years old, so they're now public domain and free to
own. Doesn't apply to software and intellectual property. As best I can tell,
public domain laws apply to published works and these ROMS were never
"published", so they don't apply. Even a liberal interpretation of the
law, based on this page, shows, for games created
after 1-1-78 (almost all arcade games), they are protected for 120 years from creation, so
in about 2200 you MIGHT be able to make this argument.
I can't even buy these ROMS from the legal copyright holder, so they're legal to own. Doesn't apply. I can't buy Fantasia from Disney DVD (unless this is one of those five-year window periods when they re-release it "for a limited time") but that doesn't mean I can burn a copy of my neighbors Fantasia DVD for my own use.
I purchased (Return of Arcade, Atari Classics, etc.) commercial PC software which contains versions of the games based on these ROMS so it's legal to own the ROMS. This might make YOU feel better but it's not legal. Microsoft undoubtedly obtained license rights from Namco/Midway, before they put Pac-Man on the game. They then license their version of the software to you to use on your computer. Neither Microsoft or Namco has granted you a license to use the attendant ROMS on your PC. This is similar to when people used to make their own cassette copies of vinyl LP's (remember vinyl ?, remember cassettes (?) !) because the pre-recorded cassettes sounded so bad. It wasn't legal either, but it made you feel better, because at least the artist was getting his royalties.
I just downloaded them for 24-hours for evaluation purposes and then I'll delete them, so it's legal. Yeah, sure you will! This is an invalid interpretation of U.S. copyright law. There is not a 24-hour evaluation rule. If you don't believe it, try taking commercial software back to the office supply store the next day and getting your money back.
I actually own a (Tron, Assault, Pac-Man) arcade main board (PCB), so I can keep the ROMS as backups. This is not correct either. There is typically a gentlemen's agreement among software companies that they allow you to make ONE copy for archival/backup purposes. They are not required by law to do this, and none of the arcade game companies have done so. Even if they did, the strict legal interpretation is that you could take your PCB and make a backup of the ROMS on the PCB (using the appropriate harware) to have a copy to burn on a blank ROM chip if your PCB chips fail. It does NOT entitle you to download the ROM that works in MAME, nor does it allow you to use your dumped ROM images in MAME.
I am using these for educational purposes (as a MAME dev, etc.) so it's legal. This is probably the most valid of the arguments. It is a little known fact that say, copying an encyclopedia article at the library for a term paper does not violate the copyright of the encyclopedia. However, if you plan to use this argument, it would be a good idea to be able to produce the actual software code that you have written for the ROMS.
Having said all this, I don't know of any individual getting in trouble for having ROM images on their computers. I know a lot of web sites no longer offer ROMS and most often they blame the ISDA, but I am not sure whether this is legit, or whether they want a scapegoat for an unpopular decision. ROMS create a lot of traffic, but they also take up a huge amount of bandwidth.
As a general guideline, I would not recommend downloading a ROM unless you actually intend to play the game at some point. (Don't download every ROM from a site just to say you have a complete set of the latest ROMS, unless you are doing it to start burning ROM discs for others.)
What MAME licensing concerns do I need to know about?
Basically MAME is pretty liberal on licensing. Here are the key points:
1. Don't distribute MAME and any ROMS on the same web page, same disc, etc.
2. Don't sell MAME, it is supposed to be freeware.
3. Don't make a profit off MAME. Strictly, I interpret this as you can't charge your friends or kids a quarter to play your MAME machine, or if you own an arcade and the actual game board dies, you can't replace it with a MAME computer running that particular game. Of course, if you did, who would know?
4. Don't distribute a variation of MAME without the source code changes and the original documentation files. For this and the next question, I don't think E-mailing a copy to a few friends constitutes a distribution, but posting it on a website and announcing it (even for a day or two) probably does.
5. Don't distibute a version with the OK screens disabled like I tell you how to do below.
How fast of a computer do I need for MAME?
The data below is based on MAME 0.65 or so, newer MAME's are likely to be a little slower.
Depends on what games you play. I use a Pentium 200 MMX with 128M Ram and a 4M PCI (Rendition Verite) Video Card. Old games like Pac-Man, Centipede, and Galaga play fine. Games with background art like Top Gunner and Twin Cobra run at about 85% at Frameskip 9 or 10, but are still highly playable and fun. Games like OutRun and Afterburner play at about 50% at Frameskip 11 and are basically unplayable. Games with the new artwork functions (even Space Invaders) are basically unplayable. It's time to upgrade!!!
The latest game, especially the Cruisin' USA series, require very fast harware, probably in the Pentium 4 2.2 Ghz (XP 2200) class to be playable and faster than this for full speed emulation.
Note that I use the latest MAME (0.65) on my
system. I have noticed that a lot of games are 4-5 frameskips slower than they were
a couple of revisions ago (Games that used to run near full speed at FS 4 or 5 now run at
FS 8 or 9). I could gain some speed by running a previous version of MAME, but to
me, I enjoy seeing what is new in MAME and what the game could do on a faster machine, as
much as actually playing it.
To get back to the main question, I have played older versions of MAME on a Duron 650 system with 128M of RAM and gotten
decent results. I have an 850 Duron processor, so that is what I will be upgrading
to. MAME is highly processor intensive, followed by RAM intensive, followed by video
card intensive. Note that unlike UnReal Tournament or some of the newer games, you
don't need the fastest 3D video card, but you do need decent 2D video. In
perspective, with the hottest card out there being a GeForce 4 Ti 4600 or a Radeon 9000,
MAME should do fine with a GeForce 2 or ATI Radeon 7500 (or less)
The following information was posted on BYOAC by Howard Casto, and I agree with his assertions:
"The general rule of thumb around here are these specs:
Never have less than 64 Mb of RAM if you can help it.
With that being said....
For the classics:
Minimum 200mhz with 64 Mb of RAM or more
For the street fighter era and below (up to 1993 games)
300mhz with 128+ megs of RAM
For a generally good MAME cab that will run most of
the newer games at high speed:
500-600 MHz 256+ megs of RAM
For a machine that will run all MAME games save one
or two...
700-900 MHz with 512 megs of ram
For an overkill machine that will run all but two or three MAME games full speed as well as the newer 3d emulators....
1.2 gigs + with 512 megs of ram
Other factors that are important (some were mentioned before)
If the processor is halfway decent, get a mb for it with an AGP slot as the better graphics cards are usually in AGP form.
Get a video card that best suits your needs. If you're using TV out, you need to go with an ATI, if you aren't as concerned about that then the GeForce cards are slightly faster for 3D performance. ATI's still out-perform the GeForce's in 2d though.
Get a decent sound card to reduce cracks and pops. A genuine sound blaster is best. DOS likes the old ISA sb 16's. For windoze, get a nice sb live.
I personally have an AMD Athlon 900 MHz with 512 megs of ram. As far as MAME is concerned it gets the job done and then some. For the newer 3d emulators it's starting to show it's age a little though. Despite this it's still fast enough for playability in all respects."
Is DOS MAME faster than MAMEW?
Faster, yes. Significantly faster, not really.
First off, now that the development build of MAME is windows based, I would expect mamew to outperform mamed in a DOS box under Windoze. So the only gain would be under pure DOS. I tried running DOS MAME under DOS about a year ago. I couldn't get the drivers for my sound card set up under DOS so I had to run without sound. Without sound, DOS MAME was at most frameskip 1 faster than mamew without sound, if that much.
I would only use DOS MAME if say, you had a MAME cab and needed the dual serial port support for two trackballs and didn't want the resource overhead of Windoze, but I wouldn't recommend it just as a performance boost.
Can I keep multiple versions of MAME, why would I want to, and how would I set it up?
You can and probably should. Here are some of the reasons to: MAME is constantly being updated, so some games won't work in the current version, although they did work in previous versions. You may need mamed for dual serial trackballs, but prefer mamew for all other games, etc.
Here is how I have it set up:
The current version is MAME 0.61. All my 0.61 mame.exe's are included in my main folder which is called "C:\MAME". ROMS are in "C:\MAME\ROMS", etc. and my mame.ini file calls out the complete folder name.
In a few weeks, MAME 0.62 will be released and things will progress as follows: My "C:\MAME" folder will be renamed to "C:\MAME061". The new mame will be extracted to the new "C:\MAME" folder and all my ROMS and support files (artwork, hi, cfg, ctrlr, snap, etc.) will be moved from "C:\MAME061" to "C:\MAME". (Roms which were changed will keep the previous version in "C:\MAME061\ROMS").
In the new "C:\MAME" folder, the main executable is always MAME. Generally this progresses like this (and never reaches the end):
First: MAME with Mahjongg and adult and fighting games eliminated - MAME.exe
Second: MAME with nag screens eliminated - old mame.exe becomes MAMEcn.exe (custom nag screens)
Third: MAME Analog + with nag screens eliminated - old mame.exe becomes MAMEcnn.exe (custom non-nag).
I actually never get beyond this, but next would be adding support for M.A.S.H.'s fixes like sound in Armor Attack, adding Pong, adding Monaco GP, etc.
Once I am satisfied that I don't need it, "C:\MAME061" is removed.
What are the significant MAME "milestones"?
I won't go all the way back, but it is useful to keep track of some of these changes so you know what is/isn't available when you have to use an older version of MAME:
R36B10 - R36B16, The PONG Dynasty. Pong was supported by these MAME versions. It was later removed. Because of this, binaries of these version are difficult to find (they are not on www.mame.net), and source files are even harder to find.
R36B12 - AND key sequences added.
R36B13 - OR and NOT key sequences added. Alpha Blending enabled, which significantly slows down vector games with artwork (BattleZone, Asteroids Deluxe, etc.)
R36B14 - The old driver based hi-score saving support is disabled.
R37B6 (or previous?) - The new hiscore.dat based hi-score saving is enabled.
R37B11 - Discrete sound system enabled. Games like Asteroids sound much worse than previously, although the system is better now than when it was first introduced.
R37B15 - mamew is born. Hardware stretching allows MAME to display all games at full screen resolution.
R37B16 - Last release under the beta numbering system. Last working System 16 build
0.53 - New numbering system. System16 games broken.
0.54 - 8-bit video modes removed.
0.54 - 8-bit video modes removed.
0.60 - Controller.ini files added. Provides ability to edit a text file to change key assignments.
0.61 - New artwork handling routines enabled, Analog pedal mods incorporated.
0.63 - Option to skip startup screens. Now compiled with Mingw 2.0
0.66 - Requires GCC 3.2.2 to compile.
How do I get rid of the blasted "Click OK to continue?" screens
Three ways: The simplest is to just move your joystick right or left. NOTE: MAME is actually looking for "O" followed by "K", "Analog Joystick X-" followed by "Analog Joystick X+", or "UI LEFT" followed by "UI RIGHT" Therefore, if you are using a keyboard hack and your joystick is mapped to "A" for Left and "D" for Right, you need to remap the UI LEFT and UI RIGHT keys in MAME to "A" and "D" for this method to work.
For DOS MAME, the ArcadeOS front-end has an option to automatically bypass the OK screens, or
You can recompile the MAME source and then the screens will never even show up. Here's how to do it:
To compile your own without nag screens, follow these changes stolen from the Mameworld compile board:
For MAME 0.60 and previous (line numbers may be different):
Open up mame.c and edit line 1195: if (settingsloaded == 0) and change it to: if (0).
In line 1202: if (showgamewarnings(real_scrbitmap) == 0) change it to: if (1).
For MAME 0.61 and 0.63 (line numbers may be different):
Open up mame.c and edit line 502 -> if (settingsloaded ||
showcopyright(artwork_get_ui_bitmap()) == 0) I change it to if (1)
In line 505 -> if (showgamewarnings(artwork_get_ui_bitmap()) == 0) I change it to if
(1)
For MAME 0.63 and later, you can skip the initial startup screen and the game settings screen through the mame.ini file. Be sure to save any previous ones and run "mame.exe -cc". However, you still get the "Screen flipping is not supported in cocktail mode, The colors are wrong", etc. messages. A fix that I devised to avoid this is as follows:
Open mame.c and around line 505 you will see the following code:
/* show info about incorrect behaviour (wrong colors etc.) */
if (showgamewarnings(artwork_get_ui_bitmap()) == 0)
Change the second line to > if (options.skip_gameinfo || showgamewarnings(artwork_get_ui_bitmap()) == 0)
With this change, if skip gameinfo is enabled in mame.ini, you will not see any incorrect emulation warnings or startup screens. If this setting is disabled, you will see both the game warnings and the game info screens.
***
In my custom compile, I also remove the "Bad or missing rom, Press any Key" screens as follows: (Data provided by Ciro of Emuloader) (Some of the code has changed since he sent this, but you should still be able to figure it out.
"I discover where you can avoid that message (not only "No Good Dump Known", but "bad CRC" and "bad Size" as well).
Follow these steps:
1. Make a backup copy of the file "mame\src\common.c"
2. Open the file "mame\src\common.c"
3. Go to the line 880 (not sure if this is the exact line) You will see this function:
......
/*-------------------------------------------------
display_rom_load_results - display the final
results of ROM loading
-------------------------------------------------*/
static int display_rom_load_results(struct rom_load_data *romdata)
......
4. Comment this "IF" sequence (everything, including the " } "
character on the end of it)
The commentary characters are:
- to open the commentary use : " /* " (without the quotes)
- to close the commentary use: " */ " (without the quotes)
...........................
/* if we're not getting out of here, wait for a keypress */
if (!options.gui_host && !bailing)
{
int k;
/* loop until we get one */
printf ("Press any key to continue\n");
do
{
k = code_read_async();
}
while (k == CODE_NONE || k == KEYCODE_LCONTROL);
/* bail on a control + C */
if (keyboard_pressed(KEYCODE_LCONTROL) && keyboard_pressed(KEYCODE_C))
return 1;
}
............................
5. Delete these two commented lines from the "IF" statement or the compiler will generate an error...
/* loop until we get one */
/* bail on a control + C */
6. Save the file and re-compile MAME... That's it!!!
PS: Always keep the .o (object files). If you change only one file, you will not need to wait for all the compilation to be over...
In the compilation folder, just delete the file "common.o" from "mame.obj" folder (this folder can be different for other types of compilation, mine is "mameppro.obj" because I use the Pentium optimized compilation) so it will recompile only the "common.c" file and you will not need to wait too long... "
***
NOTE: If you build a custom compile, I recommend keeping a copy of the original version (with the nag screens) around also. The original version includes the screen sizing routine and the warning screens might tell you something is broken and keep you from looking like an idiot on MAMETesters.
What are the best features of your design?
First, the design is modular, meaning for most one-player games, I can play with simply a 12-inch by 12-inch panel on the desktop. But I can also expand the layout to allow 4-player games as required.
Secondly, except for the joystick panels, much of the design is plug-and-play. Meaning that if I had the hardware, I could let someone play a spinner game on one PC, someone else play Star Wars on a different PC, two other people play trackball games on different PC's, someone else play a racing game on a different PC, while I play a shoot-em-up on my PC. (!!!)
Also, none of the MAME controls are remapped, so if I am used to using L CTRL for FIRE in Asteroids, and someone else is using the controller, I can still play on the keyboard. (The controller uses Button 6 for FIRE, but because of the programmable I-PAC, this is re-mapped to L CTRL for this game.)
The design is also easy to build. No soldering is required except for the mouse hacks for the Trackballs, Yoke, and Steering Wheel, and the cabinetry can be done with very simple tools.
Finally, the controls translate. Here's what I mean: For the Street Fighter panel, when it is plugged into Port one, the left joystick is mapped to my default Player 1 movement keys and the right joystick functions as Player 2. When it is plugged into Port three, the left joystick is mapped to my default Player 3 movement keys and the right joystick is mapped to Player 4. What this means in real life is that I can use pretty much any of the panels with any game by selecting the port correctly. For example, if I am playing a game of Ikari and want to switch to 1943, I don't actually have to disconnect the Street Fighter panel and connect the Primary and Secondary ones, the game will play with the same way with just the Street Fighter panel.
What games can I play with this set-up?
Virtually all MAME games can be played with this set-up, to varying degrees. Most games can be played almost completely accurately.
What games won't work with this set-up?
Sinistar and Arch Rivals used a unique 49-way joystick and can't be played with this setup. The joystick used a 49-way optical joystick and a unique "centering spider" which placed increasing tension on the stick the further it was moved from center. More information and reproduction spiders are available here. Also, OSCAR found the following fix on Retrogames which allows keyboard encoders to work better with these games. Quote: Sinistar, MAME & keyboards - I recently had an exchange with someone regarding Sinistar (and many other analog joystick games) not controlling properly in MAME. He didn't know that Advance MAME has a fix for this, so I thought it'd be worth noting in the news here as well. All you need to do is turn X & Y Center ON in the analog controls menu. Once done, Sinistar, Food Fight, EPROM & others can work just great with keyboards, HotRods or any other keyboard based device. :) Run coward!!! Raaaaaarrrrrr!!! - prophet
Machine gun games (Operation Wolf, Operation ThunderBolt, etc.) are playable, but not authentic, although there is a way to implement this and I may be adding this soon :-)
Light-gun games, although some progress is being made in this area. (These can still be played using the trackballs as MAME supports this input for these games).
Dual yoke games (2-player Roadblasters style, Road Riot 4WD), although you can play these if you add an additional yoke or use the Assault or Sarge stick for the second or third yoke. (In most cases, a yoke can be considered a two-button joystick.)
720 degrees, which used a rotating joystick handle mounted at an angle atop a spinner. You can play the game quite well using the spinner and a fix for MAME is available to allow game play using an 8-way joystick.
Three pedal driving games or multiple player driving games with pedals, although you can play these games using buttons, or you could convert the pedals to USB and make additional pedal sets, or add another pedal set and use a gameport splitter cable.
Six-player street fighter (if that exists), or any game requiring more than 28 (24 realistically) independent inputs. Six player street fighter requires 60 inputs apart from coin, start, etc. This could be supported using an MK64 or KE72 encoder,
Four player Street Fighter or 6-player 2 button per player games require either the encoders above or the I-PAC/4. I have mentioned a way to add a fourth DB25 port to the I-PAC enclosure, but I don't plan to actually build this configuration.
When would I need an I-PAC/4 Interface?
I support 2-player games with up to six buttons, 3-player games with up to four buttons, and all 4-player 2-button games using a standard I-PAC/2. I don't know of any 2-player or 3-player games that required more buttons than this. There are a handful of games (in MAME) which are 4-player 3-button (xmen6p appears to only support this configuration, despite the name!). You can play these games with three players using an I-PAC/2. More players requires an I-PAC/4. There are also definitely arcade games requiring 4-players and 4 buttons per player and 6 players and 2-buttons each. While I don't know of any of these being currently supported in MAME, however, they could be added in a future revision. I briefly cover how to use an IPAC/4 and an additional DB25 port to cover these games. As I see it, you might want to consider an IPAC/4 if either 1) You want to be sure that your controller is ready when MAME gets around to supporting these games (or you have more than one friend and you really like the 3-button games). 2) You are building an actual arcade cabinet and don't want to be swapping panels as often, or 3) You don't want to have to re-define as many inputs for each game.
NOTE: My keyboard mappings are based on an I-PAC/2 and maybe changing to an I-PAC/4 down the line. If you are using an I-PAC/4 initially, you may be able to map some controls differently and get better results.
Are you going to sell these commercially? Will you build one for me? Why not?
No and No. First off, I built these with the minimum tools available so I don't have an easy way to mass produce them. Also, I had a hard time convincing my family to let me build them in the first place, and I don't see them being keen on my building more controls for someone else. Finally, it would be hard to price them at a point where I felt I was being fairly compensated for the time involved, yet still be reasonable to where someone would pay for it. BTW, the closest product to mine was an item called "The Game Brick" which as far as I can tell is no longer available (at least the web site for it disappeared), so that's not a good sign.
On the other hand, it doesn't take any great skill to build the controls I show here, and all the information is provided. If you want to use my ideas in a commercial project, I have no objections, but I would like to be informed first. One thing I do ask is that you don't advertise "Arcade Controller Plans" on E-bay or your own site and then just provide a link (or a copy) or the info on this site, because that would be pretty tacky.
This is a frequent topic of debate on BYOAC. If you're just looking at the parts cost then yes, you probably can. If you're realistically looking at the entire picture, the simple answer is no, probably not. Basically, it's hard to beat a professional at their own game, and if it weren't, none of these companies would still be in business.
Now let's put some real numbers in the discussion. I will compare building a HotRod style controller to the (listed alphabetically) HotRod, OzStick Ultimate, SlickStick Fighter, and X-Arcade. BTW, I will stack the deck against the commercial controllers as follows: I will not account for the fact that the fit and finish of any of this controllers is much better than anything an amateur can produce on a first attempt with hand tools. I will use Bob Roberts price data (but the commercial sticks get volume discounts, so this is fair). I will assume that shipping the parts from the individual vendors will cost the same as the shipping cost for the commercial stick (it will actually be more). I will assume that you already know how to wire the controls up (simple to learn). I will assume that you already have all the required tools, that you know how to use the required tools, and even more, that you know what tools are needed (you don't spend money on a tool just to find out that this wasn't really the tool for the job and now you must buy something else). I will pro-rate the wire, nails, paint, glue, and Formica (you only need a 2 foot x 1 foot section, but the smallest you can buy is 2 feet x 4 feet for $11.30, etc.) Finally, I will not account for the time involved in getting the components, running back to the store for stuff you forgot, or the actual time spent building the components.
Here are our costs: Two Happ Super joysticks - $20, twenty arcade buttons - $30, I-PAC encoder - $45, Wood - $10, Wire - $2, Quick Disconnects - $5, Formica - $3, Paint - $1, Cement - $1, Nails - $1, Rubber Feet - $2.
Our total cost - $120.00
The competition -
HotRod SE - retails for $200, often available new for $100. Uses a proprietary interface instead of the I-PAC.
OzStick Ultimate - $130, uses the I-PAC, uses joysticks by Supreme Exim, rather than Happ Supers. Does not have room to mount Happ Supers without modifications.
SlickStick Fighter - $239, uses the I-PAC, uses the Perfect 360 joysticks, which would add about $60 to our cost. Is finished in Formica on all exposed panels.
X-Arcade - $150, uses a proprietary interface, can also be used with console systems (X-box, Dreamcast, Playstation) as well.
So we are between $20 over and $10 under the least expensive commercial controllers. Now, just to make it more realistic, let's add back in some of the costs I left out initially. I hate doing this because each situation is different: Some people have a complete wood shop waiting to build something, and very few people have no tools whatsoever, anyway . . . Let's assume you have a power drill and a saw that will get the job done. You may not have a Dremel kit or bits - $45, a spade bit - $6, a combination square - $5, paint brushes - $4, etc. So add $60 in tools. And assume this project will take about 10 hours to build if you're new to this and you will work for $5/hour for something fun like this (if it is fun to you!) Add $50 for labor. New realistic cost - $230! If you thought you would save yourself some money, you're kidding yourself.
So why should I build it myself, if it's going to cost me more money?
First off, while it will probably cost more, it's only a few dollars more and you get the exact layout you want (most commercial sticks charge considerably more for customizations). Besides, none of the commercial sticks support rotary joysticks, none include a trackball (at this price point, and there are more reasonable ways to add one than what they do offer). None support dual spinners, or Star Wars yokes, or steering wheels, or two-button trigger sticks, etc.
Besides, to me it's more satisfying to say "Look what I built!", (Anyone can say "Look what I bought").
I already have a commercial joystick, can I still use your ideas?
Sure, use your current joystick instead of my primary and secondary panels. Either add a DB25 connector to the back panel of your commercial stick for the other panels to plug into (and wire it into your commercial stick's encoder), or remove the encoder from the commercial stick and mount it in a project box and connect the commercial stick using DB25 connectors like in the plans included here.
Can I connect your controls up to a console system like X-arcade does?
I don't know the specifics, but yes, it can be done. My design has the I-PAC in a separate enclosure that the other panels plug into. Basically, you would want to buy and hack a gamepad for your console system and then connect DB25 connectors to it so that you could use it with the arcade control panels.
Are there any shortcuts I can take to reduce the cost even more?
Yes, but I took a lot of shortcuts already to keep my cost low. The one's I didn't take I don't really recommend. Here's a list though:
The cheapest alternative is as follows: (I have not tried this and don't know for sure if it will work!!! This is in no way an endorsement of these products). Get this adapter a $20 adapter to allow two PSX controllers to connect to the USB ports. Get two of these PSX six-button fighter joysticks for less than $20 each. For less than $60, you get all the controls that are available on the primary and secondary panels. The quality/feel won't be as good, and you lose the ability to program on-the-fly, but since these are USB inputs instead of keyboard inputs, the keyboard defaults will not be affected. I am curious to know how this works, if anyone wants to experiment ;-)
You can use a keyboard hack instead of the I-PAC. Information on how to do this is here. I don't recommend this because it is difficult to set up, at most you will get 18 independent inputs (16 much more commonly, enough in either case for a SF-Style panel, though), lots of soldering is involved, and you won't be able to reprogram it, or even match the most common MAME keys, and you probably won't be able to duplicate it without going through all the setup and configuration again.
You can eliminate the terminal blocks and quick disconnects and solder the cables directly to wires and the wires directly to switches. I don't recommend this as it makes it more difficult to change your layout or replace components.
X-Arcade sells joysticks for $5 and buttons for 50 cents. They're decent quality, though not up to the standard of Happ controls. They're also only available in black which ruled them out for me, as I was doing the panels in black Formica and changing the button colors to add some variety.
You also may find deals on buttons, joysticks, and trackballs on E-bay. Just be sure you know what you're buying, what condition it's in, and what it's really worth.
I saved a fair amount of money, (more time really) by using laminate (Formica) on the top panel only (and not the sides also). This also saved me from having to buy a router. You could save even more money by not using laminate at all, but the controller would be less durable.
I also saved money by using contact cement rather than true laminate adhesive to attach the laminate to the panel.
I also saved some money by not using T-molding around the top panels.
I am not sure whether it is really necessary to use primer before painting panels such as this. I might buy the finish paint first and see how it does on some scrap wood before I buy the primer.
You could use screws to hold the bottom panels on instead of magnetic catches.
My Trigger-Fire joystick hack is about $20 as compared to $110 for the actual Tron Repro stick from Happ controls.
As stated below, you could get away with only one set of OSCAR 4-way restrictors. Alternately, a 4-way restrictor eliminates the diagonals already, so you could probably use these instead of the 2-way restrictors and eliminate two of these, but gameplay would be slightly less accurate.
I saved a ton of money on my trackball interface: The Happ 2-1/4-inch Trackball with USB interface is $145.00. My WICO 2-1/4 trackball is $25 and the hacked USB mouse is another $5.00. The enclosure and hardware are about $15.00
Even so, you can save a lot of money by not building controls that you don't need. $45.00 for a USB plug-n-play trackball is tough to beat, but if you NEVER play trackball games, you're $45.00 ahead to not build it.
In costing out the panels, it occurred to me that, except for 3 or more player games, there isn't much that I do with the Primary and Secondary panels that I couldn't do almost as well with just the Street Fighter panel. The main advantage to the Primary and Secondary panels is the button layout is a little better for classic games, and it let's your Competition joysticks take most of the abuse, rather than the more expensive rotary sticks. If these are not concerns for you, you could leave off the Primary and Secondary sticks.
You can save about $30 in shipping if you buy everything at once instead of making separate orders. I have consolidated some orders, but I don't recommend consolidating more, because I prefer to spend $50 and have something new to try out, and then spend another $50 and build something new, rather than spending $200.00 for a bunch of things I can't use until the next order comes in.
Finally, follow the sale ads and don't get locked into buying everything in the order shown. If you weren't planning to build your Star Wars yoke until after doing the trackball hack and someone is selling a pristine yoke on E-bay for $30.00, bid on it, the trackballs will be there later. Following E-bay will also give you a better idea of a reasonable price for these items. The trick here is knowing what is a good deal and what isn't. For instance, the Gravis Destroyer joystick usually retails for $8-$10. I bought one free with rebate (limit one). Later I saw them for $4 with rebate and didn't buy them. Later I saw them for $2, no rebate required, and no limit and bought enough to finish the Assault and Sarge panels.
Is there anything you might change if you were doing this again or for someone else?
If I had the desk space, I might combine the Primary and Secondary panels, and/or the Assault and Sarge panels.
If I played a lot of Street Fighter or Mortal Kombat, I would probably make Panels 1 and 2 with this button layout and use the Panel 1 and Panel 2 layouts on the Street Fighter Panel.
T-moulding around the top panel would be nice if I had access to a router and didn't mind adding an additional 3/8-inch of height to the overall panel.
If I planned on being abusive to the top panel, I would either use thicker wood, or go with hardwood plywood (available at hobby/model airplane shops).
If I were good at soldering and could find a USB gamepad with enough inputs, I might consider hacking individual gamepads for the joystick (Primary, Secondary, SF, Assault, Sarge) panels. This would probably cost more than the I-PAC, but would make all of the joystick panels completely plug-n-play.
It should be possible to interface both each sets of pedals to a USB Joystick or a Dual Strike, rather than running them through the gameport. I probably won't do this b/c I am not using the gameport for anything else, but it's an option.
Why are you recommending Competition Joysticks, EVERYONE uses Supers?
Check here for OSCAR's thorough review of the Happ Ultimate, Competition, and Super joysticks.
The general consensus around the BYOAC message board on joysticks is as follows: The Competitions are THE sticks for 8-way fighting games, but are not as good for 4-way games like Pac-Man. The Supers are generally considered decent for fighting games (better for Capcom fighting games) and good for general 4-way and 8-way use and are the best all-around stick which is why the HotRod uses them. The Ultimates use a similar design to the Competitions, but are generally considered not as precise and not a first choice. Nothing else is really recommended except maybe a dedicated true 4-way leaf-switch for games like Pac-Man or the Happ Perfect 360's for $40 each.
Interestingly, according to Bob Roberts, he sells two to one Ultimate joysticks versus Supers, and it was eight to one before the Supers got popular on BYOAC. He keeps a few Competition sticks on hand for the oddball like me that wants them, but they don't even sell close to as many as the Supers. To quote Bob: "It's like a Caprice vs a Cavaliar.... the Caprice may be better, but there are 5 times as many Cavaliars sold. Hmmmm ... but there is no difference in price between the Comp & the Ultimate.. so I have no idea why everyone chooses it."
With the OSCAR restrictor plates, the Competitions play as well as the Supers for 4-way games, so it was an easy decision to go with the Competitions for the best of both world's. Other advantages of the Competitions: slightly lower cost, choice of knob colors, less mounting depth, and regular cherry switches instead of tab activated switches which require periodic adjustments.
In my opinion, the whole issue is somewhat moot considering that I have been playing MAME with a PC flightstick for about two years now. It's similar to asking a Ford Pinto driver if he would rather trade for a Porsche 928S4 or a Ferrari 512BB. Or for you non-car buffs, would you rather update from a Pentium 75 MHz to an Athlon 2600 or a Pentium 4 2.5 gHz. In all cases, there are subtle differences between the two options, but either one is so much better than what I am currently using that it makes little difference in the end.
Can I still use Supers, though?
You can use anything you want!!! Seriously, though, the Supers will not clear the bottom panel of my design as planned. There are two options: If you have access to a table saw, you can cut 1x4's for the front and back panels to 2-5/8-inch width instead of using uncut 1x3's, which are 2-1/2-inches wide . . . or: You can cut a 2-1/2 to 3-inch hole in the bottom panel directly below the joystick and cover this with a 2-1/2 to 3-inch square piece of hardboard. (There will be enough hardboard left over to do this).
Do I need two sets of 4-way Joystick Restrictor plates?
As best I can tell, the ONLY games that use dual 4-ways are Karate Champ and Assault. Crazy Climber is dual 8-way.
Since I like Assault, I decided to buy the second set of plates to support this game. Sure it's overkill, but so is this whole concept.
Why did you choose 3/8-inch plywood for the top panel? Most people use 3/4-inch MDF!
Five reasons: First, like many people, I prefer a taller joystick. Many sites recommend using 3/4-inch MDF and routering out the joystick mounts to 1/4-inch thickness. By using 3/8-inch ply, I only lose 1/8-inch of stick height, while avoiding the cost of a router. Secondly, my design is too small to use the standard OSCAR restrictor mounting plate without interfering with the Player Start buttons. Therefore, I can't use the plastic shims that are normally used with the OSCAR restrictor plates. 3/8-inch is about the shim thickness required with the Competitions and the OSCAR plates for good 4-way performance, so again, I get decent performance without the cost of a router. Third, since this is a desktop controller, I wanted an absolute minimum height above the desktop. An additional 3/8-inch of height doesn't seem like much, but it makes a difference. Fourth, since I am tool skill challenged, thinner wood shows mistakes less (non-perpendicular button holes, non straight side cuts) and mistakes are easier to sand out and correct when you make them. Finally, 1/2 to 3/4 inch wood looks better with T-Molding, but this is difficult to groove without a router, and adds expense. 3/8-inch wood can get away with not having edge molding.
BTW, OSCAR recently commented to me that the HotRod routers their joystick mounts out to 3/8 inch thickness and he considers this the optimum thickness, so I lucked out in my choice.
NOTE: If you decide you would prefer thicker wood and are not using my dimensions, the OSCAR mounting plate allows you to cut a rectangular hole in the panel and have a tall joystick without using a router. If you go this route, I would buy an additional mounting plate for the right stick so that it is the same height as the left stick.
Is 3/8 inch wood thick enough?
For a small panel the size of mine or the size of a HotRod and with the amount of support these panels have, almost certainly so! I don't plan on being abusive to the panels anyway. For a control panel on a four-player cabinet, I would go with thicker wood, but then I would have to route out the joystick mounting area.
What if one of my panels requires more height than the others and I want to use them together?
This may be an issue with my design depending on the height of the trigger-fire joystick and what type of rotary joystick I use. I have a simple solution, however. Let's assume the Street Fighter panel is 1/2-inch taller than the standard panels. I simply cut a piece of half-inch plywood to the same length and width as the primary panels and stick it under the shorter panels. It can be held in place using magnetic cabinet latches. If the wood is too thin for the cabinet latch screws, double-sided tape can be used to hold the latch plates in place.
Why did you use multiple control boxes instead of removable top panels?
Three reasons: First, to save space, I was not originally designing all the top panels to be the same width. (In the final design, the Primary, Secondary, Assault, and Sarge panels all ended up being 12 inches wide, but this was more a matter of appearance than any practical decision). Secondly, I couldn't see an easy way to set up removable panels without two dangling cable ends with a connector. This would have worked for me personally, but I wanted something my kids could easily swap in and out. Finally, since I just store the panels under the desk when not in use, I didn't want all the wires and electronic circuit boards and joystick connectors, etc. sitting on the floor exposed, where they could get damaged.
Besides, the wood for the top, bottom, front, and side panels for the entire project only adds about $15 to the cost.
Why is the top panel covered with laminate, but the sides are painted?
Paint is cheaper, easier to work with, and more forgiving than laminate. Also, the proper way to cut laminate is with a router and a laminate cutting bit. Since I don't have one, I am cutting the laminate from the underside with a Dremel cut-off wheel. It would be difficult to use this method on the side panel laminate and not mar the finish of the top panel laminate. With the proper tools, you could cover the sides with laminate as well, but it will add to the cost and not be as easy to build.
What are other options for covering the top panels?
I will try to cover six (including laminate) of the more common options here and give the advantages and disadvantages of each. There are other options (Corian, phenolic, etc.) but I have not included them as they are either very expensive or very rarely used. Roughly in order of cost/ease of application, here are the options:
1) Paint - This is probably the least expensive and simplest solution. The drawbacks are that you need good surface prep or the wood grain will show through (unless you don't care), you're pretty well limited to solid colors, if you aren't careful you will end up with drip lines and brush marks, and the paint offers no protection to the panel from nicks and physical damage. Cost: about $5 for paint and primer for a single HotRod style panel, about $15 for all panels.
2) Stain/Varnish - Erikruud from BYOAC has a nice example of this finish here. It is even less expensive than paint as no primer is required. Drawbacks are that whenever I have tried to use stain I have had difficulty getting a nice even finish, it still provides no protection to the panel from physical damage, and to me it just doesn't look right for arcade controls. Cost: about $3 for a HotRod style panel, about $7 for all panels.
3) Vinyl Overlay - OzStick uses this on their panels. I was considering this until I found a way to make the laminate work. This is used for vinyl signs. It is self-adhesive and has a five year warranty against damage or fading for outdoor use. It often has a nice texture. Many colors are available. Print shops can even print graphics on it. Drawbacks are: I am not sure how smoothly you can get it to lay down. I don't know if you can wrap it around the control panel. I don't know how smooth of an edge you can maintain with it. Cost: Approximately $7 for a 15" x 10' roll which is plenty. Suggested source: sign shops or look on E-bay and search for "vinyl" or "plotter".
4) Contact Paper - This was my initial choice for panel finishing (before vinyl overlay and finally laminate). It is available in many colors, with the most popular being the black or white marble sold by Home Depot as shown on Brian's panels here. Drawbacks are: It may not stick that well to wooden panels. It is probably a good idea to use sealer/primer on the wood to get decent results. It is difficult to get it to lay flat without air bubbles. It offers little protection to the actual panel, and it tears fairly easily. (An option is to use contact paper and then cover it with Lexan/plexi via option 6 below.) Cost: approximately $5 for a fairly large roll. One roll is plenty for a HotRod style panel, two might be required to do all panels.
5) Laminate (Wilson-Art, Formica) - Slikstic uses this on all their panels and it is what I decided on for the tops of my panels. "Any color you want, as long as it's black!!!" Just kidding. Laminate comes in a wide variety of colors and textures; however, Lowe's only stocks it in 4'x8' sheets for $40. Home Depot stocks in in about 8 colors in 2'x4' sheets for $11.30. Of these, only black, white, and butcher block would possible be suitable for an arcade controller and black looks the best IMHO, hence the comment above. Home Depot charges a $20 handling fee to order colors they don't carry. Lowe's doesn't charge a special order fee, but their prices are $2.25 - $3.00/sq. ft. for special orders, or about double the Home Depot price above. Advantages: Laminate is very durable and very thin, has a nice finish and is comfortable on the hands. Disadvantages: Requires at least a Dremel tool and preferably a router to work with. Fairly high cost (especially for a single panel). Cost: $11.30 for a 2'x4' length, which is the smallest you can buy. This is enough to cover all panels except the yoke and wheel.
6) Artwork with either Lexan or Plexiglass: This can look really good. See madk from BYOAC's panel here or this page for an example. (Crude English translation of the second page here, courtesy of http://www.freetranslation.com). Basically, Lexan is more expensive than Plexiglass, but much easier to work with. Also, I noticed that Home Depot now sells something called Chrystalite for a little bit less than Lexan. Chrystalite and Lexan are both supposed to be able to be worked with power tools. Advantages: With the proper artwork, looks really good. Commonly used on real arcade cabs (for the purists out there). Very durable and resistant. Disadvantage: High cost or difficult to work with. Adds 0.93 inches to the panel height, which is basically insignificant, but might have a slight effect on the performance of OSCAR's restrictors. Many people recommend using screws and finishing washers to hold the ends down, but I don't like the looks of this, and I think the buttons and joystick carriage bolts would be sufficient to hold it in place. Cost: 12"x24" Plexi - $3, 12"x24" Lexan - $12, 24"x48" Plexi - $10, 32"x44" Lexan $30.00
NOTE: For Lexan, it is possible to cut and drill the material just like wood, but the cost is higher. For Plexi- it is recommended to use either a hole saw or drill bit at low speed in REVERSE and let the bit melt through the material. For cutting plexi, I would think the Dremel with the whizz-wheel would work well (I love alliteration), or you could score it with a utility knife or plexi-cutter and snap it off (hopefully, cross your fingers!!!)
What below panel depth is required?
I use 2-1/2 inches, which is about the minimum. My panel is unique in that the bottom panel is slanted at the same angle as the top so you can pretty well just figure on a constant 2-1/2 inch cross section. In a more conventional design, you will probably have more depth at the top of the panel, so you could mount controls higher up to gain more room. Also, with thicker wood, the joystick mounting locations could be routered out to save some space. Keep in mind some clearance for wiring and connectors in addition to these numbers. Finally, remember that pushbutton depth is measured from the top of the control panel, so the wood thickness affects the below panel depth. Here are the below panel depth requirements of some common arcade controls:
Happ pushbuttons
with Horizontal Microswitch: 2.5 inches below the TOP of the control panel
(includes the switch terminals) (according to Happ's website)
Happ Super Joysticks:
2.64 inches below the bottom of the panel (according to Happ's website) NOTE:
The Super Joystick had spacers for thin or thick control panels. I think the spacer
affects the stick depth, but I don't know which spacer they used for these measurements.
Happ
Competition Joysticks: 2.09 inches below the bottom of the panel (according
to Happ's website).
Happ Ultimate
Joysticks: 2.25 inches below the bottom of the panel (according to
Happ's website).
Happ
Mechanical Rotary Joysticks: 4.0 inches below the bottom of the panel
(according to Happ's website).
Happ
Optical Rotary Joysticks: 4.75 inches below the bottom of the panel
(according to Joey Holman, who owns a set).
SNK Mechanical Rotary Joysticks (IKARI): Approximately
2.75 inches below the bottom of the panel (according to Druin, who owns a set).
Betson/Imperial 3" Trackball Assembly:
2.625 inches below panel, enclosure is 6.25x7.75 inches total, 5.75 inches
across the flats, 3.25 inches tall including the ball height. (Courtesy of OSCAR).
What is the minimum button spacing that I can use?
The spacing that I show on my designs :-). (Seriously, I have fairly short fingers, so that's pretty close.)
Happ lists their buttons as having a 1.3-inch wide face. I measured the (non-Happ?) PAL nut from the Indy Heat wheel that I bought, and it measured 1-3/8-inches across the flats, so you could mount the buttons on 1-3/8-inch centers. At this spacing, the outer rings of the buttons would almost be touching and you would have to hold the nut and turn the button to install, because the button flats will be touching! NOTE: Some buttons may have a flanged PAL nut which would prevent this installation. Happ appears to be using a 1-3/8-inch total diameter nut (per their website) which would permit this installation.
The PAL nut on the button that I used measured 1.5 inches across the points and this is the center-to-center spacing that I used. At this spacing, you might not be able to get a wrench on the PAL nut, but hand-tight is usually good enough anyway. This is a very comfortable button spacing, IMHO.
Actually, that ends up being it. . . Thanks to Howard Casto of BYOAC for the following tips. I'll start basic and then make it more complex:
Using MAME numbering, the HotRod uses the following:
1 2 3
4 5 6
7
This works well for Street Fighter games, but for classic and Neo-Geo games, many people prefer
5 6 7
2 3 4
1
You can have it both ways and no game needs 7 buttons. If your encoder has enough inputs that the 7-input Hot Rod layout works then use it. If you want to free up two more inputs (I would recommend doing this), then use:
1 2 3
4 5 6
3
The drawback to this is that for classic games, you have to reach over the bottom row of buttons to play the game, and the default setup won't work for Neo-Geo games. There are workarounds that avoid this problem, though.
For classic or Neo-Geo games, if you're not hung up on the default keyboard settings, (i.e. you don't plan to ever use the keyboard to play these games), set
P1B1 - Space
P1B2 - L Shift
P1B3 - Z
P1B4 - X
If you're using MAME 0.61 or above, you can set this up in a ctrlr.ini file and have one file change all the settings for all games using the same driver. And you can copy and rename this file for other drivers. Info on setting up ctrlr.ini files is here.
If you are using an I-PAC, and you are hung up on wanting the keyboard mappings to be correct, you can use the WINIPAC software available here to set the controls above on your I-PAC (Map P1B3 to L Ctrl, P1B4 to L Alt, etc.), save the new settings as a classics.ipc file and then load it from a batch file like:
winipac.exe classics.ipc
mame.exe mslug
winipac.exe winipac.ipc
(You need the last line to reset the I-PAC so it has the correct settings again for games using the default layout.)
Either method accomplishes the same thing, but I prefer changing the MAME settings, as there is a slight time delay as the I-PAC is reprogrammed.
For more functionality, you could use rotary instead of standard joysticks so IKARI type games are playable. For even more functionality, you could add a trigger-fire stick in the center for Tron, BattleZone, or Zaxxon. For even more functionality, you can add a trigger-fire joystick on the right end for the second player, which ends up looking a lot like the Slikstik CO2 joystick.
Can you explain what Ctrlr.ini files are and what are the advantages of using them?
Ctrlr.ini files were added to MAME in Version 0.60. As I said above, see here for instructions on using them. Initially, I was skeptical, but the more I have used them the more I like them. What they do is allow you to set your button mappings using a text editor rather than MAME's (Tab key) User Interface. Why is this a good thing? Six reasons:
1) Especially with AND, OR, and NOT sequences or analog joystick controls, it is often difficult to set the proper sequence in the MAME User Interface. You must hit the controls with just the right time delay for them to register properly. With ctrlr.ini files, you just type the inputs that you want and you are all set.
2) Let's say I want to set up custom controls for the jackal series. With the MAME UI, I have to start Jackal and select the keys, then repeat for topgunr, topgunbl, etc. With ctrlr.ini files, I simply create a ctrlr.ini file for jackal and all games using that driver will use the same keys.
3) If I want to use the same controls for the 1943 series of games, I simply copy the jackal.ini file and rename it as 1943.ini.
4) Gamename.cfg files, where MAME previously stored this data may not be compatible between one MAME revision and the next. Ctrlr.ini files are much more likely to remain compatible between revisions.
5) It is possible to set a "KEYCODE_NONE" input in a ctrlr.ini file so that no key will cause the listed input to happen. I don't think you can do this with the MAME UI.
6) If someone else prefers a different key mapping than you do, you can set each mapping up in separate ctrlr.ini files and call the appropriate one from the command line.
Here are some items to consider:
MAME uses several files with similar names: There are the C:\MAME\INI\gamename.ini (default folder) files, which store video information, similar to the info in the C:\MAME\mame.ini file. There are the C:\MAME\CTRLR\MYINPUTS\gamename.ini files (which we are creating) which store key assignments. And there are the C:\MAME\CFG\gamename.cfg files, which store key assignments from the MAME UI, Dip Switch settings, analog sensitivity settings, etc. The .cfg file settings take precedence over the ctrlr.ini settings.
Let's assume our ctrlr.ini files are created in C:\MAME\CTRLR\MYINPUTS\. The
following lines must be present in the C:\MAME\mame.ini file:
Ctlr_directory
C:\MAME\CTRLR
Ctrlr
MYINPUTS
Also, be careful that your wording follows the conventions shown at Easy Emu. For example, you must use KEYCODE_PGDN, not KEYCODE_PAGEDN, nor KEYCODE_PGDOWN, etc.
Finally, since .cfg files have precedence over ctrlr.ini files, if you have modified any key assignments in the User Interface, you need to delete your gamename.cfg files and then re-enter your dip switch and sensitivity settings, or the ctrlr.ini file changes will be ignored.
What about the new artwork system? Is this the best or the worst thing to happen to MAME?
These are my thoughts: The new artwork system was just added in MAME 0.61. First off, I am amazed that Aaron Giles was able to create a system whereby anyone can now add bezels, overlays, underlays, etc. without changing the MAME driver by just editing the art file and creating a text file in accordance with the instructions in the MAME Source artwork.c file. (with a lot of luck!!!).
Actually, I don't use the art files, both because they are a huge performance hit, and because I hate to give up that much screen real estate. On a 27" or larger screen, maybe . . .
What I am excited about is this:
Aaron has agreed to add a "Crop to 4/3" option for the artwork files in an upcoming MAME build. This way there will be something to fill up the unused "black space" on either side of the screen when playing vertical games on a horizontal monitor.
NOTE: Please don't pester Aaron about when this will be available. He also does a lot of the chip decoding for MAME. If he's anything like me, this type of project usually gets put on hold until you get tired/frustrated with the really interesting stuff.
Is there a tutorial on the new artwork system?
SirPoonga from BYOAC has an artwork calculator here, which does the calculations for you and includes the text of the artwork.c file instructions. He asks that you download the file and run it locally to save his bandwidth. A couple of things worth noting:
First, all MAME artwork for the artwork.zip files is shown rotated 90 degrees clockwise. The artwork calculator is set up using the art exactly as shown in the art file. Thus, the width is really the height as displayed on screen, Point 4 is the lower right corner of the artwork, but the actual top right corner of the bezel when it is displayed on the screen.
Also, it is a good idea to make the game area used by the calculator slightly smaller than the actual mask area. This provides a border around the game screen and does not slow MAME down as much.
I'm impatient, how did you do the "crop to 4/3" image shown above?
Basically, I just cropped away the portion of the bezel and mask image above and below the screen area and then came up with new artwork.txt position values to make it display separately. And actually Smitdogg had to get the values to me, because I couldn't figure them out (the artwork calculator wasn't out yet). I don't recommend doing this as you won't be able to see the whole bezel again, without re-downloading the original art file.
Why did you use DB25 cables to connect the panels together?
I can get DB25 extension cables for about $2. I originally planned to use IDE 40-pin hard drive ribbon cables, but DB25's are sturdier, easier to connect and disconnect, keyed (so they can't be connected upside down) and unlikely to be accidentally plugged into something bad on the computer. (Older serial ports used a DB25 plug, but I attach the DB25 plug to the joystick and leave the DB25 receptacle connected to the I-PAC end free, so you can't even accidentally plug one into the serial port).
NOTE: Be sure and get fully populated and straight pass-thru cables. These are usually call extension cables or RS-232 cables. Some cables used only a few pins or crossed the terminations over between the ends which could be bad. (Actually, crossed ends are usable, you will just have a different color coding between the panel and the I-PAC. Missing wires are a definite problem, though.)
Why are the LED's only on the Primary and Assault panels?
I didn't use them on the Street Fighter Panel because I was using the bi-directional inputs and didn't want them flashing when I pressed a button. I didn't include them on the Secondary and Sarge panels, because I will always use these along with a main panel and the main panel has them. They would have looked good on the Star Wars Yoke panel, but I ended up not hooking this through the I-PAC and didn't have space on the panel anyway.
Why didn't you include the Scroll Lock LED?
I don't know of any game that requires it. Ajax flashes it sometimes, but it doesn't seem to mean anything. It would be useful for showing which bases have missiles remaining in Missile Command, but MAME doesn't emulate this, so basically it wasn't required.
Why is the Pause key mapping (and other key mappings, for that matter) so awkward?
Good question! It's the fault of the DB25 cables and the LED's. When I decided to move the I-PAC back to an enclosure, I only had 24 inputs (plus ground) on the DB25 cable and the Street Fighter panel required all of them. I was planning to either leave off the keyboard LED's or use a RJ45 phone cable to connect them, but I didn't like either option. Then I remembered that P1B7 and P2B7 on the I-PAC were bi-directional and could be used to drive the LED's. . .
But I wasn't originally passing these inputs on the DB25 cable from Port 1. The solution was to remap the two least used keys on the Street Fighter Panel (P2B4 and P2B6) to use the P1B7 and P2B7 inputs instead. This is what I have done. Here's a more detailed explanation:
The labels on the I-PAC circuit board are arbitrary. Normally, you connect Button 1 on your panel to the P1B1 terminal and the I-PAC sends L Ctrl when the button is pressed. But you could connect Button 1 to P1B3 and re-program the I-PAC to send L Ctrl when this input is closed and the end effect is the same. This is what I did, except using the P2B4 and P1B7 inputs, etc.
That worked fine except that the LED'S also needed a +5V source to use the Bi-directional inputs. That meant one input had to go. The easiest one to eliminate was the Pause button, which I had been mapping to Coin2 (and reprogramming Coin2 to P). However, I still wanted a dedicated Pause button. The solution was mapping the button to P2B5 on the Primary Panels and P1B8 on the secondary panels. This way, I have at least one available Pause button for about 85% of the games. For the others, I either use the I-PAC shift key function or the keyboard key.
Awkward, I know, but it works.
CAUTION: I don't really need the +5V signal on the secondary ports. I was originally planning to map the +5V pin to Coin 2 on the secondary port and map the pause key to this. This would work except that if I accidentally plugged the secondary panel into Port 1 and pressed the Pause button, I would instantly short the +5V keyboard voltage to Ground and blow the keyboard (or USB) port. For this reason, I STRONGLY recommend that you leave the +5V pin on your connectors as a dedicated pin assignment (for all ports) if you create your own layout.
Don't I need a Coin 2 input? Why don't you use one? How do I work around it?
Well, I didn't use one, because I originally was planning to use the Coin 2 input for a dedicated PAUSE key as I said above. Also, the single coin button looked symmetrical on the panel. Very few games actually needed the Coin 2 input. The majority of (even 2-player simultaneous) games, will allow you to use Coin 1 and then the 1- and 2-player START keys. For those that require it, here are some workarounds:
I have noticed that some games that require a dedicated Coin 2 slot (Skull and Crossbones, I believe), do not use the 1P and 2P start buttons at all. In this case, you could change the MAME key mapping so that COIN1="1" and COIN2="2" and use the 1P and 2P start keys as coin slots.
I similar fix works for 2-player games that DO have a separate input: You re-map MAME to take COIN1="1", START1="1", COIN2="2", START2="2", etc. This is not arcade-accurate, in that each coin input is also adding a new player, but since the only time you add coins is when you are about to play, it works alright.
Should I use a 3-inch or a 2-1/4 inch trackball?
This is more a matter of personal preference. Here are the considerations:
The 2-1/4 inch trackball was really only used in Centipede. Most other games (golfing games, Millipede, etc.) used a 3-inch or larger ball. The 2-1/4 should have less resistance (it should spin faster and longer), but the 3-inch should be physically easier to spin and easier to control. The 2-1/4 also allows you to substitute billiard balls for the normal trackball, which can give an interesting effect.
For me, it came down to cost. The WICO 3-inch trackball is $50 and the 2-1/4-inch is $25. For the same money, I decided I would prefer to have the capability to play 2-player trackball games.
Are there considerations to what interface to use with a trackball/spinner, etc?
Absolutely, not only interface considerations, but Operating System considerations as well. Here are the options: Serial port, PS/2 port, or USB. Also note that each port supports two axes, so you can connect two spinners up to one port and use MAME Analog+ to split the inputs to each character in MAME.
If you are using only one pair of spinners or one trackball, it really doesn't matter as Windows will assign them all to the SysMouse and they will all control the cursor (but you can split them out with MAME Analog+). The problem is in interfacing a second trackball etc.
Note that it is possible to use PS/2 and serial controllers together (one PS/2 mouse and one serial mouse, or two serial mice, or even a PS/2 mouse for windows use and dual serial mice for MAME (the PS/2 mouse and the first serial mouse will share cursor control in MAME and Windows)), but you can't have a PS/2 mouse and a second USB mouse in MAME. If you use USB, then all devices must be USB. Here are the options and interfaces:
Serial Port: (opti-pac controller) preferred for pure DOS use. Can be used with DOS MAME in a Dos Box under Windows 95, 98, or ME, but the second port must not be connected when Windows loads and then must be reconnected after booting is complete. You also must load a DOS mouse driver (optimouse driver, usually) for the second mouse before loading MAME (can be done from a batch file). Info on setting this up is available in the optimous.zip file available from http://www.mame.net/downmain.html. (Does not work under NT, 2000, or XP because of problems with the optimous driver being recognized).
PS/2 Port: (opti-pac controller, Hagstrom ME4 controller, Happ trackball interface). Most PC's only have one PS/2 port, so this doesn't apply for the second trackball. As mentioned above, you can use the PS/2 port for one trackball and the serial port for the second, with the same constraints as above.
USB: (Happ trackball interface, hacked USB mouse). Can be used with MAME Analog+, under Windows 95 (95 release 2 required to support USB), 98, or ME. (Does not work with pure DOS because USB is not supported. Does not work with NT, 2000, or XP because of an operating level "feature" (bug!!) that doesn't allow the operating system to support independent mouse inputs).
Did you notice that NT, 2000, and XP don't have any available options. Unfortunately, that is correct, NT, 2000, and XP can't use the second mouse driver required for dual serial trackballs, and the multiple USB mouse support code was not included in NT, 2000, or XP. I expect it will take someone on the MAME dev team (or well connected with MAME) to write a driver to fix this, and I would expect the driver to support USB, but that's just a hunch on my part.
How are trackballs/mice numbered in MAME Analog plus, and what are the limitations?
Okay, I'll give you the short information first and then come back with the details. MAME Analog+ supports up to eight USB mice and up to four (USB or gameport) total gamepads/joysticks. I will deal with the mice only, but the joystick/gamepads work the same way.
There are basically two ways to hook the mice up in MAME Analog +. For an arcade cabinet, you would probably want to hook all your devices up and leave them plugged in at all times. For a desktop controller like mine, you probably want to plug the panels in as needed and unplug them when not in use. Which method you use affects how you set up MAME, among other things.
The arcade cab setup is easiest, so I will start with that. Basically, all you have to do is make sure all your MAME-compatible mouse devices are plugged in ahead of your non-MAME devices. Then you just set MAME up to recognize the devices in the order you installed them. For example, if the steering wheel was the 5th item installed, you would set your driving games up to use MOUSE5 for input and they would work.
For the desktop setup, you simple install all the MAME controls and then plug in only the ones you need for the game. In MAME Analog+, you just set your games up for Player 1 to use MOUSE 1 and Player 2 to use MOUSE 2 and everything works. The only problem is if, for example, you leave your spinner connected and plug in two trackballs and start Marble Madness, the spinner may control one of the marbles instead of the appropriate trackball.
Also, for reasons best explained below, I recommend using the same type of hack for devices that will be used together, if at all possible, or alternately, using different hacks for every component, but this is much less practical. (All trackballs are Kensington Valumouse hacks, All spinners are Logitech Hacks, etc.)
Can you give more details on how this works?
Yes, I need to! I'll define some terms first and give some background then go to a hypothetical example, to show how things will really work.
First the definitions: For USB, installing a device means plugging a device in for the first time, or plugging a second device which uses the same driver in with the first device still connected. Uninstalling means going into Control Panel - System, and clicking the remove button to delete the driver. Plugging in and Unplugging the device refers to connecting or removing a previously installed device to the port without removing the driver. MAME only checks the USB ports on startup, so unplugging a device or plugging in a new device during gameplay has no effect. This shouldn't matter with command-line mame as the program is restarted whenever you change games, but it may be slight problem with MAME32, as follows: MAME GUI checks for joysticks at its startup but only for use in the GUI, MAME core still checks for mice, joysticks, etc at each game's startup. So basically, in the games you will have no problems with plugging in and unplugging devices, but you might have problems navigating the GUI with a mouse or joystick, if it is different from the one you started MAME32 with.
Basically, Windows assigns numbers sequentially to the devices as they are installed and on startup, MAME scans this list and sequentially assigns numbers to the connected devices. Windows also assigns all devices to SYSMOUSE so any connected device will control the cursor in Windoze, but MAME Analog+ can assign the devices individually as well. Once installed, plugging the same component into USB port 1 or USB port 4 or any other USB port should make no difference in how Windoze and MAME "see" the mouse.
Now for the hypotheticals: These are pretty close to reality, but are not necessarily the components I will actually use. Let's assume I have the following controls.
Trackball A - Kensington Valumouse hack
Trackball B - Kensington Valumouse hack
Spinner A - OSCAR Logitech Mouse hack
Spinner B - OSCAR Logitech Mouse hack
Spinner C - M$oft Intellimouse Mouse hack
Spinner D - M$oft Intellimouse Mouse hack
Steering Wheel A - Kensington Valumouse hack
Steering Wheel B - Kensington Valumouse hack
Here is how this works in text . . .
On device installation, Windows assigns devices to the lowest available mouse position. The exception to this is if a device with the same driver was previously installed and is unplugged, Windows will not install another driver. (I install Trackball A, unplug it, and plug in Steering Wheel B. Windows will think I just plugged Trackball A back in). Also when a device is uninstalled, Windows shifts the remaining devices up. (I install Trackball A, Trackball B and Spinner A in that order and then unplug them, uninstall Trackball A, and plug Trackball B and Spinner A back in. Trackball B is seen as MOUSE1 and SpinnerA is seen as MOUSE2.)
On MAME startup, MAME checks the DirectX device lists and checks what devices are currently installed and available (ie: plugged in), and assigns them item numbers based on the lowest slot in the list.
The order they were first installed and re-connected affects the order in the list. (For example, let's say I have installed all the devices above in the order shown. I now unplug all the devices and plug in (in this order), Spinner A, Steering Wheel B, Steering Wheel A, and Spinner C. MAME assigns Steering Wheel B to MOUSE1 b/c it is the first installed device using the Kensington Driver. It assigns Steering Wheel A to MOUSE2 b/c it also uses the Kensington Driver. Spinner A is seen as MOUSE3, b/c it uses the Logitech Driver. Spinner C would be assigned MOUSE5, but MAME assigns it to MOUSE4 b/c there is no second Logitech device connected.
Now for the real world examples, UrebelScum has provided this chart to show graphically what happens.
What if I have more than 8 USB mouse devices (or more than 4 joysticks)?
This would be more of a problem with the arcade setup. For the desktop, MAME will check all devices, you just can't use more than 8 mice or 4 joysticks at the same time. So if you had 25 different mouse-type devices installed, you could unplug all but Device 16 and Device 24 and on startup, MAME will "see" these as MOUSE1 and MOUSE2. For the arcade set-up, it becomes a matter of uninstalling some drivers and installing new ones, or being very careful which device you replace and configuring MAME to recognize the new device.
Did Arcade games use two types of steering wheels, which one do I need?
Yes they did, games like Spy Hunter used a potentiometer (Pot)-based wheel which was limited to 270 degrees of travel. Games like Pole Position, Indy Heat, and Super Sprint, used an optical wheel (like a mouse) which allowed for 360-degree rotation. Most PC (gameport) wheels use the Pot-based wheel.
I recommend hacking an optical arcade wheel because it will still work for pot-based games, while a pot-based wheel will not play properly for optical wheel games.
If you don't like buying one used off E-bay, OSCAR sell a very high-quality wheel for $75-$90.
Again, there are two types, some games used a pot-based design which allowed the pedal to be partially depressed. Other games used a microswitch so the pedal was either up or fully depressed. And some games used a pot for the gas pedal and a switch for the brake/clutch.
In this case, I recommend using a pot based pedal, as a pot will act like a closed switch when fully depressed, so again, this solution will work for either type of game. (And it really doesn't matter anyway, as I typically keep the gas floored even as I am skidding out of the turn with the wheel fully locked :-) )
Here it gets really complex, there were a number of styles and MAME is not always accurate, so you can't give a one-size-fits-all description.
Take the standard HI-LO 2-position shifter, as used in Pole Position: The actual shifter used a single microswitch, which was closed when the shifter was in HI position and open when the shifter was in LO position. The shifter was spring loaded so that it remained in whatever gear it was set for. Still other controls were spring loaded to LO and would only stay in HI was the shifter was physically held in that position. (Or vice versa.) And some DID use two microswitches.
In the case of Pole Position, MAME uses the space bar (P1B3) and a single keypress switches to HI or LO gear and back again. For accurate emulation, HI gear should only be available when the switch was held depressed, but this requires the shifter to be held continuously, which is NOT how the arcade game worked (It held the switch closed, but you didn't have to hold the shifter down.
I use my primary joystick as a shifter for racing games. In the case of Pole
Position, I must remap the controls so that either up or down activates the gear change.
This works, except that I can't look at the shifter and tell by position what gear
I am in. And I probably will need a unique setup for each game.
Xiaou2 has a much more accurate (true to the original) 2-way Turbo shifter made from a simple light
switch on his site.
The Tron Joystick that you mention is not available yet, and I really need one!!! What should I do?
Basically, you will have to build your own. This can be done using a PC joystick and an arcade joystick.
OSCAR has a write-up on building a trigger-fire joystick using a Wingman Warrior joystick and a Happ Ultimate joystick. The biggest drawback to his project is that there is no rotation stop to keep the stick from turning. But . . . 1Up has a modification that provides a rotation stop for the project. 1Up also has a conversion using a Raider Pro Joystick and "Glo-Wire" but it's not written up yet!!! Stay tuned.
Gaming Technology Xtreme (Retropolis?) has a write-up on using a Raider Pro joystick and a Happ Ultimate joystick. His project uses a removable shaft for the trigger stick. I personally do not really like that idea, but his method of controlling rotation is very unique and does not add any depth to the overall project.
The Rotary Joysticks you mention are not available yet and I want to play IKARI! What should I do?
The joystick that I plan to use consists of a Happ Super with an integral "clicker" mechanism and a mechanical switch actuator for rotation. Apart from this, there are basically three types of rotary joysticks currently available:
Happ Optical Rotary Joystick ~ $40 Basically a Happ super with an optical (mouse style) pickup mounted on the bottom.
Happ Mechanical Rotary Joystick ~ $40 Basically a Happ Super with a 12-position mechanical switch mounted to the bottom.
SNK LS-30 Mechanical Rotary Joystick Mechanical ~ $15 www.videoconnect.com The original yellow hex-handled Ikari stick.
Pros and cons are as follows:
Happ optical - Easiest to hook up. Lacks the tactile "click-stop" feel of the true Ikari sticks. Requires approximately 4-3/4-inches below panel clearance making desktop (non-cabinet) use difficult. Interface through either an Opti-pac, Hagstrom ME4, Happ trackball interface, or gutted mouse.
Happ mechanical - Has the tactile click-stop feel. Requires approximately four inches below panel depth. This stick and the LS-30 can only be interfaced with a PC using Druin's rotary interface. The most costly solution from the combination of the stick itself and the interface. Also maybe the best in term or realism combined with quality for non-rotary games.
SNK LS-30 - Requires slightly less below panel depth than a standard Happ super. Inexpensive, but is not as good for non-rotary games as a either a standard joystick nor as good for non-rotary games as either of the sticks above. Also, SNK is no longer in business, so these sticks are only available as NOS (New Old Stock, great oxymoron) or used.
Okay, great!!! So which stick should I use?
If you don't mind the extra depth, and you don't really need the click (and can stand the cost), the Happ Opticals are the easiest to hook up. Gut a USB mouse and connect the rotary inputs to the USB ports.
Personally, if I were building it, because I don't play often using the Ikari panel for standard games and IKARI isn't my all time favorite game (although I do like it); I would use the LS-30 joysticks with Druin's interface.
BTW, if you use any of the mechanical (non-optical) joysticks, I recommend using MC-Escher's custom MAME source files (see next question).
What are these MC-Escher source files (rotary games) and why do I need them?
Source code fixes were posted by MC-Escher and are available here for MAME 0.59. (You can use the custom 0.59 build for the rotary games and the later builds for everything else).
Here's the problem: In standard MAME using the keyboard, the character will continue to rotate as long as the key is depressed. This is the best way to play with a normal keyboard.
With Druin's interface (very extreme examples), let's say I rotate the joystick VERY slowly one click. The character might rotate 180 degrees, because to MAME I have depressed the rotate key for 2 seconds. Now let's say I rotate the joystick VERY quickly six clicks. The character might only rotate 45 degrees, because, to MAME I only depressed the rotate key for 0.1 seconds.
What MC-Escher's build does is modify MAME so that if you were to press and hold the rotate key for 30 seconds (and not get killed) the character would not rotate more than one click (45 or 30 degrees, depending on the game). This takes the rotation speed out of the equation.
Why are your yoke instructions so vague compared to the rest of the site?
Three reasons:
First, I am not convinced that the standards cover the length of the components involved. I am sure a PVC pipe cap has a specified inner diameter, but I am not sure about the outer diameter or length. I know I saw 2" couplers at Lowe's in different bins with a one inch or more difference in length. I would be upset if I cut everything exactly to someone else's plans and the item wouldn't work because one part was a little bit too short. Therefore, I tell you to measure Part A and Part B and cut Part C so the remaining length is Y inches.
Secondly, 75% of my design is directly from TwistyGrip's original idea. 15% of the design came from 1Up's Dual Strike Hack. I'll take credit for 10% of it. AFAIK, TwistyGrip is still SELLING his plans for yoke construction. It wouldn't be very fair to him if I posted the complete parts list for my yoke and said how to build it when most of the idea was his. Therefore I tend to use his names and parts and tell you to build it like his plans except for the following areas where you need to do something different. This way hopefully you will buy his plans and then modify the design to be like my page.
Finally, while the TwistyGrip design is not extremely complex, it is a little tough to visualize. And ideally, you should be able to assemble the yoke in your head before you ever start cutting any pieces. I know if I say cut this piece to 2.27 inches and glue in into Part D, you will just start building, without thinking about how the whole assembly goes together. By making the instructions detailed but not exact, it forces you to "think the design through" before starting.
Is there an easier way to build the Star Wars Yoke?
Actually, Star Wars can be played pretty well with an arcade joystick or the Tron stick. But for the authentic feel, you need a flight yoke. The original ones are frequently available on E-bay (search for yoke). They usually go for $75-$100, although I saw a Road Riot 4WD yoke, which is similar (only single-axis, though), go for $8 on E-bay recently. However, they are often pretty beat up, or missing buttons, triggers, stops, gears, etc., and replacement parts are only going to get harder to find. Also, I prefer to leave these available for someone repairing a dedicated Star Wars cabinet.
BTW, replacement Star Wars yoke thumb trigger buttons are available from www.classicade.com
I'm not sure how well a commercial flight yoke for a flight sim would work. Probably ok, but you would not get the authentic feel.
Using the original TwistyGrip design, the concept is slightly simpler to build, but looks nothing like a Star Wars yoke.
On my design, it is possible to not use laminate and use sheet metal for the access panels on the center box. It is also possible to eliminate the center box or use a project box instead, but you will have a less elegant centering option, and a less authentic look.
White handles and Red buttons on a Yoke don't cut it with me!!! Are there other options?
Yes, Bob Roberts sells these Grip Assemblies for $17 per side:
However, they were designed to sit on top of a Sarge or Assault joystick and would have to be modified to accept a shaft coming in from the side. Also, by the time you add $27 (b/c you don't have to spend $8 for switches) to the cost of the project, you could almost buy a used genuine yoke, which is an easier hack.
If you decide to stick with the TwistyGrip design: Both Mouser and Digi-Key sell (or can get) the thumbswitches in the following seven colors: Red, Black, Gray, White, Blue, Yellow, and Green. (These are the same switches used on the original TwistyGrip. NOTE: I think only the button color changes, not the switch body).
Lowe's carries the following options:
You could use almond (tan) CPVC instead of Schedule 40 PVC for a few pennies more.
You could use Schedule 80 (dark gray) PVC instead of Schedule 40, however, Schedule 80 is much more expensive. The handle cost will be about $15 instead of about $3 for the original plans.
But you really want black handles, don'tcha? I found a way to do it. Lowe's sells ABS (black) fittings. They are slightly less expensive than PVC :-), but the smallest size they are manufactured in is 1-1/4. However, this can still work. You will want to still use the spacers in the X-axis Tee so that the 1-1/4 inch grip shafts don't lock into the Tee. Mount the spacers flush with the edge of the Tee. Now you want to use some kind of spacer (card stock, maybe) and GOOP to attach the 1-1/4 inch ABS to the 1-inch axis shaft (after you center the large Tee). Basically, you end up with a stepped X-axis shaft which is 1-inch in the center, and 1-1/4 inch where the handles attach. (Unfortunately, Lowe's doesn't carry anything smaller than 1-1/2-inch fittings for the ABS. They also carry Polyethylene (PE, Sil-O-Flex) black pipe in 1/2, 3/4, and 1-inch diameters.
I haven't investigated yet how this affects the feel of the handles, or the clearance, or the overall length, or the centering mods, etc. However, I may well use this option, in which case, I will definitely have more specific detail on how it works.
Finally, Rampy from BYOAC suggested that it might be possible to use dye or the liquid truck bedliner stuff (technical term!) to make the white PVC handles black.
Why are your yoke thumb and trigger switches upside down?
Whaddya mean? Mine are right, TwistyGrip's plans are upside down! j/k. This seemed like a more logical way to mount them (in the planning stages). I might flip them the other way when I see how they actually feel.
The DOT spinner that you mention is not available yet and I really want one! What should I do?
Again, your best bet is to find and convert an original one from E-bay (search for spinner). These are a lot less common than the yokes. I would expect one to be in the $50-$100 range, but they could be more. The same spinner was also used in a game called Zwackery, BTW. Once you get one, I think it would be pretty simple to convert one to use the pickups and inputs from a gutted USB mouse. Alternately, 1-Up has a writeup on how to convert an OSCAR model 1 spinner to a DOT spinner.
This is not a major concern of mine, but I did a quick search of the archives of the BYOAC message board. This is where a solution is most likely to appear if someone figures this out. Actually, these can be interfaced. The machine guns (Operation Wolf, Operation Thunderbolt, T2, etc.) are actually just an analog joystick, so the same type of conversion that you would do for the original Star Wars yoke should work for these also. In fact, the newer guns (T2) use a solenoid to produce a recoil effect and this can be hooked up also although it requires a 24 V transformer to hook up. Unfortunately, the T2 guns also would fire slower as the gun heated up or ran low on ammo and I don't think this is implemented in MAME (yet!!!)
The following data was provided by 1-Up: Dave Widel did a hack on the driver for T2 so it sends the recoil signal to the caps lock LED, which can be used to control the recoil in the actual gun with a little electronics hacking. I've done this myself, and I'll post the circuit I used when my site is updated (very soon!!) Meanwhile, you can get the driver HERE (right click the link and select "save file as" to get it). You'll need to replace the one in the Mame source and recompile Mame to get it to work.
The main problem I see with this is these guns were designed to be mounted at a fixed height and a fixed distance from the screen and to have a fixed amount of travel. I think you could play with the settings on an arcade cab and get something reasonably close, but it might be hard to get one calibrated correctly so that you could sight down the gun and shoot accurately when you are taking the gun on and off the desktop.
Again, this is not a major concern of mine, but since this is one of the least understood elements of arcade controls, I thought I should comment on it. These are the pistol-type guns for games such as Lethal Enforcers, Under Fire, etc. Again, the BYOAC message board will be your best source of reliable information. Here's what I can gather. Act-labs makes a light gun for the PC. This will work with MAME and a standard computer monitor. It will NOT work with a TV or an arcade monitor. Support in MAME is not getting better, but still not perfect. The other option is arcade console (SNES, ATARI, PS2) or actual arcade guns which can be interfaced with an adapter to the computers LPT (printer) or USB port. These guns work with an arcade monitor or a standard TV, but NOT with a PC monitor. Impressions range from very good support in MAME to sort of hit-and-miss and difficult to control. Again, support may improve with time.