[:::] Picture log of the construction process [:::] Ingame snapshot/animation [:::] Guestbook [:::]

Index

1. Planning
1.1. Choosing cabinet type
1.2. Interfazing the input devices
2. Acquiring the goods
2.1. Examples of costs:
3. TV/Monitor and how to save $400
3.1. Tips if messing with TV monitors:
4. Psychadelic ColorZ!
4.1. Painting the cabinet
4.2. Creating the marquee
5. Software
5.1. Menu system
5.2. Emulator
5.3. Configuration files
5.3.1. advmenu.rc
5.3.2. advmame.rc
5.4. Synchronization

1. Planning

bilde
Web directories are good for finding and checking out other projects.

1.1. Choosing cabinet type

1.2. Interfazing the input devices

We are going for the IPAC from Ultimarc. This because of the shift-feature and because it avoids the problem with key blockage when pressing two ore more buttons on a keyboard simultaneously.

2. Acquiring the goods

Plantasjen, Rema 1000 and other stores that you would not expect to be selling hardware are selling cheap hardware like electric saws, battery powered screwdrivers and other stuff that cuts through wood like knives in butter. These bad-quality tools are very cheap and you will probably need to exploit^H^H^H^H^H^H^Hmake use of the warranty once or twice during the project.

2.1. Examples of costs:

bilde

PowerT Electrical Drill $21
Einhall Circular Saw $42
Scan Tools Jig Saw $35
Clamps $3
100W Halogen light $11
500W Halogen light $10
Power Cord Extension $14

3. TV/Monitor and how to save $400

DISCLAIMER: ELECTRICITY CAN BE DANGEROUS IF YOU DO NOT KNOW WHAT YOU ARE DOING. THE PEOPLE WORKING ON THIS PROJECT HAS VARIOUS DEGREES OF EDUCATION IN ELECTRONICS AND TV-REPAIR. ALSO, WE ARE BROKE, NO POINT IN SUEING

bilde
bilde

Yes, I speak with experience :-/ Remains from the 25kV charged tube stings like a bee on proton pills

bilde
 

3.1. Tips if messing with TV monitors:

4. Psychadelic ColorZ!

bilde
You have got to have nice sideart, mon. There are several places on the Internet from where you can buy big plasticy sheets with graphics of your choice, but they cost a couple of bucks and it is probably more fun making it yourself!

4.1. Painting the cabinet

We are using a layer of normal primer on the MDF. It looks like there is something out there called "MDF Primer" but we could not find primer made especially for MDF in the local stores.

The cabinets will be painted black. Black is good for hiding cracks and other nasty things caused by inexperience. Bengalack mixed with a bit of whitesprit for the first coating should do the trick nicely.

4.2. Creating the marquee

Basic idea: press a printout between two plates of plexi. We need plexi! Or maybe we get a printshop to be printing it right onto the plastic!

5. Software

The systems are running Linux with some version of the Mandrake distribution. We chose "Advance Mame / Menu" because of the exceptional possibilities of configuration. The system is running under X.org automaticly starting advmenu from Xsession to ensure a restart if advmenu should happen to be closed or die.

5.1. Menu system

AdvanceMENU has a lot of configuration settings that are not easily discovered at a first glance. It supports animated (.mng) icons with sound in the gamelist. You can also sort the list in many different ways. Anything from number of times each game has been played, to the category you have labeled the game (eg. "BAD", "CRAPPY", "OLD-SKOOL", "ELITE").

5.2. Emulator

We chose AdvanceMAME as the emulator because we were already using AdvanceMENU for our menusystem. But it is a very nice emulator and the authors are really good at keeping it in sync with xmame.

5.3. Configuration files

Configuration files for advmenu and advmame.

5.3.1. advmenu.rc

My advmenu.rc has modified colors to allow for a dark type of background image. The ui_background I use is an image from the movie Tron. I think I found my ui_font in /usr/lib/kbd/consolefonts but advmenu supports all ttf and pcf type fonts.

I have also added some custom groups that I sort the games by. These are "blodharry" (a word describing a person who likes cars, base, wears mokkasiner and hang out at a gas station Saturday night while burning rubber) "chinenglish" (or engrish) for those games with intresting translations. If you want to add a group just add a group and a group_include line in the configuration. I have bound the group-menu to <1pl credit>-<1pl right> key combo.

Finally I have added some extra commands. It is sometimes nice to be able to find an xterm if your network is down so you cannot do maintenence through sshd. Also I don't like those "Mahjong" games (and I don't have enough buttons for them) so I added a "Delete Current Game" option. I should also mention that I have disabled the autosave feature so I can do modifications directly in the configuration file and restart advmenu without it overwriting the file.

5.3.2. advmame.rc

The advmame.rc file is a bit tricky to get right. I guess some of the display settings vary a lot according to what type of display you use be it TV, arcademonitor, etc.. One thing that will help in boosting performence a bit is changing the device_video_output from fullscreen to overlay (to make my videocard do hardware scaling) I had some trouble at first with a blue box (the overlay color index) appearing instead of advmame's menues. This turned out to be a bug in advmame and everything is now working perfectly using the latest version of advmame.

Another feature worth looking at is the display_expand option. It will strech the width of games that use a vertically aligned monitor so that you will utilize a bit more of your TV/screen (assuming you have aligned it horizontally)

I have also set the input_idleexit option to 300 seconds so that advmame will exit when idle to make sure the fine screensaver in advmenu will be shown more often.

And now for some hacks.... as you have probably seen in the pictures and such we built two arcade machines. To make the highscore files of both arcade machines syncronized we have set some of the script_ options. These are script_emulation and script_play which each run a shellscript at the beginning and end of the game emulation as described in the next chapter. The last hack is from the example files included with advmame. It makes the player buttons automaticly insert a coin before starting the game. This is done with the script following the option script_start1 and script_start2.

5.4. Synchronization

We want to be able to synchronize stuff between the two arcades. Stuff like highscore lists and video capture from the different games would be nice. Advmame will save most highscore lists as .hig-files with the help of the file 'highscore.dat' wich contains information on where in RAM the different games store the highscore table. Some games however store the highscore information in NVRAM so they will probably cause a small problem when we are going to try to synchronize the files.

There will probably also be a bit of a problem on the fact that we have to lock the highscore files when someone is playing a game so that scores will not be overwritten. This will prevent two people from playing the same game at the same time.

We used to use two BASH-scripts for syncronization of highscore files. But we are now replacing these with an AdvanceMAME patch. The scripts worked nice, but won't scale well. You can download them here: hiscore-lock.sh and hiscore-unlock.sh as well as the common configuration in hiscore-config.sh. You need to set SYNC_HOSTS variable in hiscore-config.sh to the hostname of the other arcade(s) at each arcade you want syncronized. We use keys with ssh to be able to ssh between the arcades without a password. This doesn't scale well so if you have a lot of arcades you should probably make a hiscore daemon or something for the locking and hiscore transfer.

We are currently working on a patch for AdvanceMAME to enable the highscores to be transferred to a MySQL-server instantly when exiting a game. This is currently working quite well and scales a lot better than the BASH-script hack. We are planning on cleaning up the patch before releasing it to the general public. For future plans we are thinking of making parser scripts for the highscore data (the data is dumped directly from the games RAM so no game has the same structure) for displaying the highscore lists for some of the games.

Contact us at: arcade@interfazed.net