Play video arcade games
That 70's Show
If you went through your teen years sometime during the late 70's early 80's, then you were part of the early Video Arcade Game era. You know... those giant machines that you wished one day you could have in your basement 'game room'. PacMan, Asteroids, Frogger, Galaga, Space Invaders to name a few. Today we still have video arcades of course, and people still have game rooms in their basements, but the video gaming units have downsized into handheld devices or small boxes that you can plug into your TV.
Asteroids Rocks
I'm not particularly fond of the new games. The focus on sex and violence is absurd. My favorite game of all-time is Asteroids. You're in outer-space, trying to blast space-rocks before they pulverize your spaceship. Occasionally you need to defend yourself from an alien ship. That's it. No sex. No violence. It does require a lot of focus, hand-eye coordination and timing. And it is fun.
Introducing MAME
If you are like me, then you might want to know about the free software called MAME. MAME stands for the Multiple Arcade Machine Emulator, and as the name suggests, is capable of impersonating all the machines from the various manufacturers from that bygone era. The beauty of MAME is that it is capable of emulating the right environment on a host of hardware environments found today: everything from PCs with Monitors to TV out. Once you can emulate the machine, you can play the software games that ran on those machines. The game titles themselves were distributed as Read-Only Memory chips (aka ROMs). Today, those ROMs are available as files, and so the whole setup can be conveniently tucked inside your personal computer. Small note: XMAME is the same as MAME, only it is specifically developed and tested to run on the X-Window Graphical Desktop system (Unixes including Linux).
Choosing a Method
You can install XMAME on your Debian system using apt-get, but you have to set your apt configuration file use a 'non-free' repository due to the license determination. I chose to install a project called AdvanceMame, which adds extra video support features to the MAME project. [Aside: AdvanceMame projects, although free software, cost an estimated $2,671,244 to develop. Just another example of the tremendous dollar value that is available in free software, never mind the other values that come with the 'freedom' of the software]
Installation & Configuration
Installation is fairly straightforward and typical of many Linux programs, although certainly not at the level of a polished Installer. You go through the basics, namely:
- Download the source,
- Untar it
- ./configure
- make
- make install
And then you have to go through some configuration steps, plus add your ROMs.
The website has an install doc that you can follow.
Here is what I did. I installed the software in the /usr/local directory, according to the 5 steps listed above. Then I changed to my home directory and created folders to hold my personal configuration file (will generate in a minute), plus my roms etc.
greg@liberty:~$ cd greg@liberty:~$ mkdir .advance greg@liberty:~$ cd .advance/ greg@liberty:~/.advance$ mkdir artwork cfg diff hi image inp lowcase memcard mp3 nvram rom sample snap sta
Once the directories were setup, I copied my artwork, rom and image folders off my Windows machine (where I previously setup AdvanceMame).
The next step was to run advanceMame from the command line, in order to generate the default 'Resource Configuration' file.
/usr/local/bin/advmame
Note: the software installed itself into /usr/local by default, like the documentation says. However, because the documentation doesn't mention it, I wasn't sure exactly what command I was supposed to issue to run the program. Ie. what is the name of the program executable file? I took a look in the /usr/local folder where there was now an advancemame folder, and in that folder were a few executable files (actually symbolic links) to the same-named files that are installed into /usr/local/bin. The main program executable is called advmame. So if you've followed me so far, but are unsure of what it all means, I'm just saying that '/usr/local/advancemame/advmame' is equivalent to the command listed above.
Here's what the program told me:
Creating a standard configuration file... Configuration file `/home/greg/.advance/advmame.rc' created with all the default options. The default rom search path is `/home/greg/.advance/rom:/usr/local/share/advance/rom'. You can change it using the `dir_rom' option in the configuration file.
This was perfect, because I had already created the '/home/greg/.advance/rom' directory, and put all my ROM files in there.
Next, I tried a similar command to setup the AdvanceMenu program (to enable me to run the whole thing from a Graphical User Interface, rather than launch games from the command line.
/usr/local/bin/advm Unable to initialize the mouse driver. The errors are: event: No mouse found. Check the /dev/input/event* permissions. raw: No mouse found. Check the /dev/mouse and /dev/input/mouse* permissions.
As you can tell, I had some sort of problem with my mouse setup that AdvanceMenu didn't like.
http://www.bernieberg.com/mame/advmame.rc
Creating a dedicated Arcade Machine
See this page for information on how to tweak your start-up script, shutdown script and environment to make a PC-based Arcade Machine