Virtue ethics & Effective Altruism: What can EA learn from virtue ethics?
Brad's MAME arcade story - Build your own vintage arcade!
1. MAME Arcade Construction 101
157.5 : 1
Wherein Brad shares his
experiences creating a MAME
arcade machine in 2013 from a
vintage Taito cabinet from 1981.
2. Early in 2013 I discovered MAME
and I began to dream of my own
arcade machine. Once I got the bug
it was only a matter of time before
I built one and put it in the
basement. I actually dreamt of it in
the living room, but my lovely wife
has veto power up there.
When I was a 13-year-old kid in
Nanaimo I went to the “Fun Centre”
arcade with my cousin Trent and
plugged quarter after quarter into
the buzzing, beeping machines. I
wasn’t very good nor did I have the
attention span to develop real skill,
so I dreamt of having unlimited
quarters.
I would have never guessed that
come 2013, and thanks to the
volunteer open source
programmers who created MAME,
I’d have something better than
unlimited quarters – unlimited
games AND unlimited quarters!
3. Vintage arcade machines are not
just for playing alone, the fun is
exponential by the number of
people.
5. What is MAME?
MAME = Multiple Arcade
Machine Emulator
Project created to save old
video games from extinction
The fact that they can be
played has created a bit of a
cottage industry
ROMs are “read” into source
binaries and MAME fools them
into thinking they are on a
board
6. ROMs
Legal ROMs are available on
the MAME website
http://www.mamedev.org/ro
ms/
Other ROMs are under
copyright by their respective
owners
I will not publish mechanisms
to find these files
7. MAME is Configurable
To accommodate all the
different cabinet types,
MAME has developed a large
amount of configurability
The key files are:
All Games.mlg (for MALA)
catver.ini
controls.ini
nplayers.ini
These files are also used by
RomLister
8. Arcade Front Ends
MaLa
The front end created by some
of the same open source team
members as MAME
Simple, and highly
configurable
HyperSpin
Flashy and built for machines
that contain many emulators
Others
There are many other, less
popular, front ends
9. Configuring MALA — First Run
On first run a bunch of files
get created
“all games” files are most
important
Must re-run initial start to get
the file if anything happens to
it
Then you get…
10. The default MaLa layout is
workable, but let’s face it, you’ll
want to customize it for your
cabinet!
11. Configuring MALA — Games List
Create full game list that
contains only the games you
want
MalaGamelist allows you to
create a more manageable
list
RomLister auto-generates
based on the controls you
have
12. Configuring MALA — Games List
RomLister created a list that
was too long for me, and I
wanted the older games, so…
Scan screen captures to see
what triggers memories
This process re-discovered
games I would never have
remembered
Sort games by date in the GUI
Recognition vs. recall
I made a spreadsheet to
ensure that I made the right
choice on my control panel /
screen orientation…
13. Example of the information I
compiled about my target games to
determine how many buttons to
use and which orientation for the
screen.
14. Configuring MALA — Screen
MALA uses a layout file to
create the screen
MalaLayout.exe
Time
Marquee
Screen Shot
Control Panel
Game Details
Game Name
Game List Details
Cabinet Shot
And many more…
15. Here is the version I’m using now,
except the brochure is replaced
with the cabinet photo.
17. The Cabinet — Build
Build or Buy?
Build
You can get exactly what you
want
Room for as many controls as
needed
Will take some woodworking
skills, tools, and a workshop
18. The Cabinet — Build
Build or Buy?
Build
You can get exactly what you
want
Room for as many controls as
needed
Will take some woodworking
skills, tools, and a workshop
However!
Beware the Crapmame
syndrome
20. The Cabinet — Build Kit
Sometimes you can find a
local guy with access to a
CNC machine can make kits
For example, in Toronto:
1-player bartop: $150
2-player bartop: $175
Small cocktail: $250
Large cocktail: $300
Visual pinball: $350
Bartops can be made as full
uprights but pricing is $425
Kits use mortise and tenon
joinery and glue together
21. The Cabinet — Buy
Build or Buy?
Buy
Cabinet can be authentic to
the time you remember
They tend to be smaller (but
you can build smaller ones)
Buying is way easier than
building
However!
You won’t be able to get all
controls on one panel
Solution: multiple panels!
23. When I found two cabinets for sale
on Craigslist the vintage Taito won
over the home-built model
because:
• It fit in my Honda Fit
• It had wheels for rolling
• It was a real cabinet from 1981
• It fit in my Honda Fit (can’t stress
that enough)
24. I single-handedly got it out of the
car, and the wheels made it easy to
get into the garage.
25. It was already mostly gutted, but
still had to clean it up, rip out the
wires, and make a list of tasks to
get it together.
26. Scale drawings of the available
control space
I created a space in Visio where I
could play with different layouts at
scale. The shaded regions are
where the cabinet wood intrudes on
the control surface underneath.
27. My first control panel (not the
only control panel)
The first control panel ended up
looking like this. These are enough
buttons for the games I want and
the two player layout fits perfectly
in the vintage cabinet. Notice I
failed to include the 1- and 2-player
buttons, they show up later.
28. One day…
I’ve been playing with some
graphics that I want to print at
GameOnGraphix.com and overlay
the wood panel.
Recently I had the idea of getting
the whole control panel printed at a
laminating shop directly on
fiberboard and mount the controls
on that. It seems like it should
work.
29. The parts are affordable!
Joystick:
Adam Allan is always willing
to help
Pushbutton:
Control board:
$12.00
$1.85
$23.25
http://www.multicade.ca/
Other sites as well if you can
stomach international
shipping, depending on where
you are. I haven’t heard of
any issues but do your
research.
http://www.ultimarc.com/
http://wiki.arcadecontrols.com/wiki/Vendors
30. The parts arrive from Multicade.ca!
It’s great to have a parts source in
Canada so I don’t have to deal with
random border issues.
31. Don’t Over-design
There is a lot of information
online about creating control
panels
My experience is that over
planning just gets in the way
Create your layout and screw
the damn thing together
http://www.slagcoin.com/joystick/mounting_layering.html
32. For Example…
It turned out that one hardboard
layer and the plywood was fine, I
didn’t need the second layer for the
joystick mounting plates.
In fact, I think the plywood would
have been fine on its own, just
make sure to get cabinet-quality
wood that has a “good” side that is
nice and flat.
The hardboard does provide a great
surface so I may still do this on my
next control panel.
33. Align and bolt the two pieces
together. Make sure the second bolt
is in the right place for trimming
the panel width.
Cut to correct dimensions.
Now you have a clean cut through
all the sandwiched boards and
you’re ready to drill some more bolt
holes.
You can’t countersink hardboard by
hand using a large drill bit – it rides
up the bit every time. Buy a special
countersink bit for this task.
34. Pieces bolted together and the
pushbutton holes started.
A spade bit worked, but you’ll get
cleaner edges with a hole saw. It’s
worth the extra few dollars.
For the joysticks I just traced the
mounting holes. You can mount in
any orientation as the wires will
define up / down / left / right.
Oops, a red button was missing
from the order. And where are my
1- and 2-player buttons going to
go?
35. Painting the monitor mounting
board and the control panel
traditional black.
The buttons in place. This is
starting to look like a control panel.
Buttons and joysticks mounted. I
didn’t need to sandwich them, the
joysticks were plenty long enough
to mount under the plywood.
The Xin Mo USB control board came
with all the wiring I could possibly
need. A great kit for the money.
36. Using an old, cheap, Bic-style pen
made great offsets for the board.
The height afforded by 1½” wood
screws gives lots of room to work.
37. The pushbuttons with the relays
mounted.
The joysticks were a close fit with
the edges of the cabinet where the
control panel rests so a couple of
the connectors had to be bent a bit.
Initial wiring to the Xin Mo board.
This shows the positive leads being
connected to the pins on the board.
The negative leads will be daisychained across the controls using
the provided cables.
My initial wiring of the buttons was
wrong – they were set to alwayson. A quick flip of the positive wire
fixed that. The windows game
control panel made short work of
the diagnosis.
38. Testing USB Joysticks
Open the Game Controllers
dialog (from Devices)
You should see two USB
Joystick controllers
Opening properties will show
the joystick movement and
the buttons
Test all connections
Then map connections in
MAME
39. Mapping Controls in MAME
Start any game
Select Input (general)
The general setup is used by
all games by default and can
be changed on a game-bygame basis
Press Tab to open the MAME
configuration controls
Map your User Interface and
Player 1 & 2 Controls to the
correct buttons
40. Testing the control panel on a
handy laptop. It’s great to be able
to set up MAME on a laptop and
then move everything over to the
arcade system on a USB key. It
works this way because the
programmers are careful not to
depend on OS-specific things like
the Windows Registry etc.
In theory I could connect the XP
machine to my internal network
and just copy the files over but I
want the system to be standalone
so I don’t need to ever apply
further patches so I’m never going
to connect it.
41. The full wiring. Notice that the
negative leads (the top ones on the
relays) are daisy-chained to one
connection on the controller board.
43. My first choice for a PC was an old
IBM system I had hanging around. I
remember it being slow but I
thought it should be ok.
44. This old computer couldn’t even get
out of its own way. I was afraid of
all the IBM hardware re: clean
install of XP so I abandoned this
one.
45. My next one was a great old
2.0GHz Intel board. I was confused
when it wouldn’t get past BIOS and
I finally discovered a nick in the
CPU traces on the motherboard. I
should improve my storage
techniques.
46. Finally, success! I found an old
Optiplex 2.6GHz board on Kijiji for
$10. Three hour trip later (traffic in
Toronto is always hell) and I had
my board.
I had to figure out the Dell pinouts
to get it to boot, but once I got it
running I just set it to auto-boot on
power.
In the background you’ll see an old
ATI video card with NTSC out. The
Dell motherboard graphics didn’t
make the cut for MAME and this
way I can use a TV in the future if I
want to.
48. The old cabinets had quick-release
latches for the control panels. This
looks like it would make a great
way to mount my new panel.
Some wire clothes hangers
provided the raw materials needed
to create the control panel hangers.
Got both sides connected and they
are still holding four months later. If
the control panel slips fore / aft I
might needs pins but for now it’s
solid.
49. The coin mechs worked. This was a
shot before I stripped the wires.
50. A poor man’s VESA mount for the
LCD monitor. Finding the right
metric bolts was a pain, but
Canadian Tire came through where
Home Depot failed.
51. The motherboard came on a tray
from the original PC and this made
a great quick-detach mount for the
side of the cabinet. I kept all the
equipment on the wall to avoid
anything falling on it.
Always drill pilot holes in MDF, the
stuff is hard and will either strip the
hole or rip the head off the screw.
52. The first game started up on the
cabinet with the real PC and
monitor installed.
Purists say a real arcade monitor is
needed but I find the old LCD fine
for my purposes, and I had it free.
LCDs can get dark at some view
angles though, so YMMV.
Other options include old CRT TVs
(I chose a video card that would
work in that configuration), or old
CRT computer monitors.
53. Time to get the soldering iron hot,
we have some audio to install.
54. Cheap and plentiful, old PC
speakers provide plenty of volume
and sound quality for the electronic
sounds of the old games.
Some industrial-strength Velcro will
hold the board to the cabinet. I
could have mounted with offsets
like the controller board but this is
easier.
Ripping out the audio board was
easy, and the speaker wires were
simple to strip.
Velcro patch to mount the board.
55. The board mounted. The speaker
wire connections (large bolts) were
eventually covered in electrical
tape. The two speakers (right is
original) work fine and I don’t have
any real stereo games anyway.
56. The coin mechs with the wiring that
connects to the Xin Mo controller
board. These connections map to
pushbuttons that are set as Coin 1
and Coin 2.
Not shown are the wires to the coin
lights. Let’s face it, you simply must
have the coin lights working.
Beware some games that map the
Coin relays to more than one credit
(Williams games had Coin 2 set to a
dollar bill reader and gave 4 credits
in Joust).
The bulbs used in the old cabinets
are not easy to find, but a quick
search found the 6V, 0.15A,
bayonette bulbs at places I could
order from online in Canada. I used
RP Electronics.
57. The 6V bulbs weren’t very bright so
I wired them to the +5V and -5V
(which provides the equivalent of
10V). The bulbs burned very bright
but the power supply had a 1Amp
breaker on the -5V side and it
failed.
Back to plain old 5V operation. The
bulbs aren’t as bright but they
should last forever.
58. Shots of the final layout and wiring
of the cabinet interior. I kept
everything on the walls to keep the
whole thing organized and clean
and protect the motherboard from
anything that might fall on it.
59. Eventually, I ripped the power strip
wiring apart and mounted it
through the original on/off switch in
the front floor of the cabinet. This
allows me to turn it on and off
without messing with an external
power bar.
I have MaLa set to shut down
Windows when I hit a two-button
combination and the motherboard
boot-on-power setting takes care of
the rest.
61. There are great places to have
bezels printed, but for efficiency I
decided just to paint the back of
the Plexiglas black.
The job isn’t perfect, and I’ll want a
real bezel one day, but for now it
totally fits the bill.
Using masking tape and black spray
paint did the job. Don’t read the
hype online about how to cut
Plexiglas, it’s way too anal. If you
won’t be seeing the edge, just grab
your skill saw and have at it.
Don’t make the same mistake I did
and cut the tape on the Plexiglas
with a knife, the blade will score the
plastic.
Oh well, it’s not “the bezel” … it’s
the “first bezel.”
62. It’s starting to look like an arcade
machine. A couple of cigarette
burns in the Plexiglas are the only
things that would make it look more
authentic.
63. There is still the issue of the giant
gap under the control panel. The
original control panels often
wrapped around and covered this
area.
64. Some hardboard and a couple of
wood mount hanger bolts will hold
this in place.
First, mount the bolts into the
cabinet wood, then put some black
ink on the ends and press the
hardboard onto them.
That’s where you need to drill your
holes.
Hanger bolt
67. I really want a marquee printed by
GameOnGrafix.com but the guys
were coming over for the inaugural
Vintage Arcade Party so I needed a
quick fix.
Masking tape and some colorful
spray paint did the trick.
It is far from perfect, but there is
color there where there wasn’t
before. This now looks like a real
arcade machine!
68. The first guest to the party had the
honor of helping me get the
machine downstairs (thanks,
Franz). It’s heavy, but the wheels
on the back make it easy to move
and I had a straight-shot from my
side door to the basement.
Welcome to your new home, 1981
Taito cabinet!
70. Money — $419.60
Item
Cost, Ea.
#
Cost, Tot.
Date
Supplier
Taito Generic Cabinet, Green
$150.00
1
$150
27-Jul-13
Craigslist
Celeron 2.26GHz MB & CPU
$10.00
1
$10
15-Aug-13
Kijiji
80GB IDE HD
$-
1
$-
-
Existing
ATX Power Supply
$-
1
$-
-
Existing
Joysticks
$12.00
2
$24
5-Sep-13
Multicade
Push buttons
$1.80
8
$14
5-Sep-13
Multicade
Player start buttons
$1.80
2
$4
5-Sep-13
Multicade
Plywood mount for LCD
$25.00
1
$25
10-Sep-13
Home Depot
LCD Monitor, 19"
$-
1
$-
-
Existing
Keyboard
$-
1
$-
-
Existing
Mouse
$-
1
$-
-
Existing
Plexiglass panel
$45.00
1
$45
10-Sep-13
Home Depot
Xin Mo arcade controller USB with wires
$23.25
1
$23
5-Sep-13
Multicade
Hardboard for control surface
$5.00
2
$10
10-Sep-13
Home Depot
Speaker
$1.95
1
$2
5-Sep-13
Multicade
Bolts for controller construction
$10.00
1
$10
10-Sep-13
Home Depot
Strapping to secure monitor
$2.00
1
$2
10-Sep-13
Home Depot
Cable routing clips (pack of 10)
$2.00
2
$4
10-Sep-13
Home Depot
Black spray paint
$10.00
1
$10
10-Sep-13
Home Depot
Countersink bit
$7.00
1
$7
16-Sep-13
Canadian Tire
VESA mount bolts
$1.00
4
$4
30-Sep-13
Canadian Tire
Industrial Velcro
$6.00
1
$6
2-Oct-13
Canadian Tire
Monitor mount stove bolts
$2.00
4
$8
2-Oct-13
Canadian Tire
Zip Tie mounts
$1.00
3
$3
7-Oct-13
Canadian Tire
Replacement bulbs for marquee
$1.72
20
$34
13-Oct-13
RP Electronics
Hangers for marquee
$4.00
1
$4
11-Nov-13
Canadian Tire
Paint for temporary marquee
$5.00
4
$20
8-Nov-13
Canadian Tire
71. Computer
Item
Description
CPU
Intel Pentium Celeron single core 2.26GHz
RAM
1 GB
Video
ATI Radeon (PowerColor) c. 2001
Hard Disk
Seagate 7,200 RPM 80GB IDE
Arcade Controller
Xin Mo buttons-to-USB interface
Sound
Creative Labs SoundBlaster Pro c. 1995
Speakers
KOSS all-in-one PC speakers, dismantled
Keyboard
Generic PS/2
Mouse
Generic PS/2 (mechanical ball)
Operating System
MS Windows XP SP3, fresh install
72. Time — 157.5 hours
Task
Hours
Date
Research & load MAME
20
7-Jun-13
Find ROMS
20
7-Jun-13
Configure MALA
10
6-Sep-13
Pick up cabinet
3
29-Jul-13
Design control layout
5
6-Aug-13
15
6-Aug-13
2
30-Jul-13
Design control graphics
Clean cabinet
Map games to controls and screen orientation
10
1-Aug-13
Build control panel - 1st try
4
15-Sep-13
Pick up motherboard
3
16-Aug-13
Build control panel - 2nd try
4
16-Sep-13
Wire control panel
4
23-Sep-13
Home Depot 1
4
11-Sep-13
Canadian Tire
0.5
16-Sep-13
Paint control panel
2
17-Sep-13
Mount motherboard
1
24-Sep-13
Mount PC components
4
30-Sep-13
Mount monitor
4
30-Sep-13
Control panel locking mechanism
1
1-Oct-13
Wire coin mech
2
2-Oct-13
Install audio amp
2
2-Oct-13
Configure MALA
1
4-Oct-13
Configure MALA
4
5-Oct-13
Zip tie cables & wire coin mech lights
3
8-Oct-13
Cut plexiglass bezel
2
9-Oct-13
Paint bezel
2
14-Oct-13
Review Games
8
1-Sep-13
Configure MALA
8
8-Nov-13
Configure MALA
2
11-Nov-13
Bezel Mounts
1
11-Nov-13
Mount light power supply
2
13-Nov-13
Configure MALA
4
25-Nov-13
73. Summary
So far:
$419.60
157.5 hours
6 months
20 litres of beer
Coming next:
Printed Marquee
Printed Control Panel
Second Control Panel with
trackball and spinners /
steering wheels