Ultimate MAME: Computer

all material on these pages are copywrite Jeff McClain, 2000 and 2001 and may not be used without express permission

July 19, 2000 Picking and Ordering the Computer 10:26 AM

I have to admidt that I took some precious time at work and browsed through Price Watch looking for a cheap all-in-one PC motherboard that would power my new beast. This was definately a NEW experience for me, since I had always shunned the all-in-one pc and had normally centered on highly customized and powerful individual peices of computer equipment. Now, I was in a new land, where performance was not primary, but cost and functionality.

I knew from my reading on PC2JAMMA about monitors, that ATI cards were the best supported for driving TV's and Arcade monitors in MAME, and I had sort of proven that my 3Dfx Voodoo3 card with TV-out was sort of a joke for S-Video and/or TV/MAME work, so I was going to need an ATI with TV-out. Again, cost was everything here, so I couldn'g just go out and get an All In Wonder Pro. So I ordered a PCI ATI Xpert '98 @Play for $50. There was an AGP version that was $20 cheaper, but the motherboard I was looking at didn't have AGP port available.

A whole mess of parts

I ended up getting an Amptron M748LMRT motherboard and Intel Celeron 566 PPGA for around $160, shipped. The motherboard has built-in video, audio, LAN, modem and supports both Slot 1 and PPGA format CPU's and AT and ATX power connectors (sort of an amazingly flexible little piece of equipment, actually). Only 1 shared ISA or PCI slot, but that should be fine. The onboard video sucks, and is replaced with the ATI Xpert '98 @Play in the PCI slot with S-Video out.

The computer in the base of the cabinet

MY O/S choice was Win98SE on the machine (various reasons, but mostly for the best lan/video card support). Once the TV out is enabled on this ATI card, however, I can even boot into Linux with just the TV. I tried putting Linux on, but had some problems with the drivers for the XWindows like display. Have a partition for it and will work on this more later. Made a separate partition for MAME (just incase I could get Linux working) so it could be mounted by just about any OS and use the same ROM disk space. Had to pick up a cheap 3.5" disk drive, as you really can't hardly install ANYTHING without one. Also picked up a cheap AT style case (that is what this motherboard uses) from a friend and put a 4GB hard drive that I got as part of a swap for services. Still don't have a CD-ROM (probably will put my 24x Pioneer in there if/when I upgrade to a CD-RW on my main system), but used my second computer's DVD drive temporarily to install all the OS and stuff. Figure the 10/100 LAN will suffice for the rest of the installation and migration of stuff onto the computer. Put one stick of 128MB PC100 CAS2 memory in and she is ready to fly.

August 26, 2000 Getting it all working 8:00 AM

Finally, I was at a point where I could begin getting it all working. Well, after finishing with all the Control Panel wiring, and getting it and the track ball hooked up, I wanted to check everything out (even if they weren't the correct key presses programmed on the KE72. I plugged the PS/2 cable from the M24 track ball encoder into the little PS/2 to Serial mini DIN that I had been using, since this motherboard didn't have a PS/2. Well, as you can guess, it didn't work. Seems that PS/2 and serial ports are two different protocols (slightly), and while MANY newer mice will try to autodetect which port they are connected to, or else they come with a little PS/2 or Serial port switch on the side, the M24 does not. I was beginning to panic. Everything had fallen into place perfectly, and now I was going to have to get a whole new motherboard to get the track ball working?!?!? See, there wasn't even another expansion slot available, since I was using the ATI video card.

Well, I looked through the manual a little bit, but didn't see anything just flipping through. I went online and searched for PS/2 to Serial port converters (and did find some specialty products). I decided that I would call the local computer store and see if they had anything the next day. As luck would have it, I also tried sending an email to a bunch of friends of mine at work, asking them if they had any ideas. Of course, the first thing that they said, was just to go get one of the little mini-DINs and plug it in...it should work...sigh. From my searching on the net the night before, I had pretty much learned that the two formats are not the same, and unless you had a mouse device that would autodetect the connection it was making (PS/2 or serial) it just wasn't going to work. Logitech and Microsoft mice all seem to do that automatically (so I understood the confusion), but my track ball interface was PURELY PS/2. Anyway, one of them also asked if I had a USB or PS/2 header that just wasn't brought out to the back plane. I wasn't sure, and we looked at the Amptron web page for the specs. He mentioned that he had a motherboard that looked just like that on one of his computers (he has LOTS of them, cheap ones, he can't resist a $400 or less computer) and that it had a ribbon cable to get the PS/2 port out. Well, we browsed the specs a little more, and noticed that there was support for an optional PS/2, IR keyboard, and USB. All you had to do was buy this optional ribbon cable to plug into the headers on the board and screw in the back plane. We downloaded the manual, and looked at the picture of this optional component, and Randy said that was exactly what he had he thought. Well, turned out that that motherboard had gone bad on him, and they had replaced it for him, and he still had this component (what are the chances?). He brought it over to my house the next day, and I popped it in (yep, the header pins and everything were there). After going into the BIOS and enabling USB support (for some reason the PS/2 doesn't work without turning this on), windows booted up, detected new hardware, and VIOLA!! My track ball and two mouse buttons were controling windows! I can't tell you how happy I was.

Computer and sub-woofer in the bottom of the main bay

The next thing that needed to be done, was to figure out which of the 72 ports each button/joystick was hooked up to so I could begin writing the keyboard encoding config file. I opened up a sample file, and placed a bunch of KNOWN characters for each port (I was only using 37-72 for this two player console), ran the KE72LOAD.EXE program, and then opened Notepad. Began pressing keys, and writing down what came out for all the player 1/2 and MISC buttons. Once that was done, it was a simple matter to track down which character I had assigned to which port and to begin replacing that character with the MAME characters. Yea, I could have traced back all the wiring into the ribbon cable and back all the way down, but that was tedious and may have been easy to screw up. This GUARANTEED which port was connected to what.

Once all the keys were programmed, I spent the rest of the afternoon checking out some of the games and playing around with the config. It is probably a good idea to go into the TAB config in MAME and set all of the stuff up (even if you basically used all the same keys) for the General Control. For example, in games that use two joysticks for one player control, like BattleZone and Besserk, MAME doesn't use the Player 2 joystick as the Player 1's right joy. So, go into the General control, and change it (that way ALL two joy games will be setup this way). Also, I noticed that MAME doesn't have Player 2 buttons 5-10 assigned to any keys...you can fix that here also. Once this was done, all of these games played just fine by using the Player 1 joy as the left and Player 2 joy as the right control (BattleZone still sucked because I couldn't hit a fire button while holding both joysticks, but I just changed THAT game only to fire when I moved one of the joysticks left/right, since only forward/back control is normally used in that game). This brings up an interesting point. Where are the GENERAL key configs and the GAME SPECIFIC key configs stored? It seems persistant, and I'm going to have to look through the directories and see.

Major Hint!!!
One thing that was really screwing me up for a while, is that the default MAME key configs use [LEFT-SHIFT], [LEFT-CTRL], [LEFT-ALT], and [SPACE] as the primary 4 buttons. Well, anytime you press ALT-SPACE in Windows, it pulls up the current program's minimize/maximize/close window (and drops you out of the full screen window). This was beginning to anoy me during Street Fighter and Mortal Kombat. From my days of programming and using Thrustmaster joysticks, I knew that these were DEFINATELY keys to stay away from, because of their behavior modifying effects that they have on almost every other key (CTRL-ALT-DEL is NOT too hard to have happen when you are playing a two player fighter game and CTRL and ALT are player 1's PRIMARY buttons). Anyway, I'm still a little confused why the MAME authors would even THINK of putting these keys as the default in the game. Even as a little often used settings or control key, they are dangerous. Anyway, it was at this point that I decided to completely purge myself of the horrendous little offenders, and I pick some normal keys to put on all the player buttons and controls. I EVEN went as far as making Plyr1 B1 and B2 be O and K, so that I could quickly type O-K to the ROM copy write messages. I had originally tried having one of the MISC 5 buttons be the O on press and K on release, but the emulator wouldn't recognize it (even though it types O-K just fine in WORD and a bunch of Keyboard test utilities). It also didn't work very well trying to have one button type O-K (since you can program whole words, etc into a single press on the KE72). Probably needed to program in a slight delay between the letters or something. Instead, I just moved that key back to P for PAUSE and use the player 1 button 1/2 combo...works great.

One final thing I did, was get SNES9xW emulator working on the box. This is a Super Nintendo emulator, and it uses keypresses too, so I could pretty much set that all up from the control panel too. This worked ok, but the default MAME keys (like all the number keys 0-9) for coin and player start are SPECIAL CONTROL keys (like background on/off, mute, etc.) in SNES9xW. After I spent some time dinking around with this a little more, I just dropped back out and setup a completely new key def file for the SNES (one without all the number keys and some other reserved keys), and programmed the console. This worked perfect, and Yoshi's Island was quickly up and running

Last modified