Overclock.net banner
1 - 6 of 6 Posts

1,508 Posts
Discussion Starter · #1 ·
An attempted MAME+other project on-a-budget

Part 1: Assembling the pieces

Haven't come up with a name yet. Possible name... Mame-opoly, Terms of EnMAMEment, MAMErization, MAMEsanto... I'm into a couple shows featuring H. Jon Benjamin, can you tell? Anybody got a better name?

The idea for this came about largely from watching my young niece and nephew excitedly playing the ever-disappearing arcade games (for them, these are a rare treat/novelty). So I got the idea to build a Mame/emulator cabinet. Sometimes I get a little carried away in research. I'm sure that won't happen this time though(tm).

Blue Dragon pointed out what hadn't really occurred to me: some people may not be familiar with Mame or the idea of creating a custom cabinet around it.
Mame is an emulator for "old school" arcade games of the 70s/80s/90s. The project is supposed to be kind of a record of this old technology that would otherwise be entirely lost to history with a convenient side-effect of also playing all those old arcade games.

Or here's the description from the Mame Wiki:
"MAME (an acronym of Multiple Arcade Machine Emulator) is an emulator application designed to recreate the hardware of arcade game systems in software on modern personal computers and other platforms.[1] The intention is to preserve gaming history by preventing vintage games from being lost or forgotten. The aim of MAME is to be a reference to the inner workings of the emulated arcade machines; the ability to actually play the games is considered "a nice side effect".[2] Joystiq has listed MAME as an application that every gamer should have"
MAME does a very good job of running almost every arcade game from pac-man/centipede/robitron all the way up to the various street fighter/Tekken games of the 90s. And Golden Tee if you want to get really "recent". Thanks to this some people have taken to constructing their own home made arcade cabinets with custom control specifically for playing arcade games. Most recently Raspberry Pi has been the platform of choice (which isn't what I'll be using but would most likely make it way easier!).

There's a sister project called MESS that emulates various old school home game consoles along with old and/or obscure computers (Acorn, TRS-80, BBC-Micro or whatever it's called).

I'm determined to make what would already be pretty difficult that much more difficult however. For instance use the PCB from a USB keyboard in place of simply buying a specific-purpose device for keyboard controls (the i-PAC, more specifically). And I found an article about adapting an optical mouse for as as a trackball. I'm also taking the opportunity to properly learn how to solder stuff.

The original plan for this wasn't so ambitious but it's done a bit of ballooning since then. I think the budget has remained relatively low.
Up until now I have been planning on a horizontal "cocktail table" style of cabinet but I'm starting to realize this is really more of a . Even if I added two sets of controls how easy would be to play a famous two player game like one of the Street Fighters or Double Dragon + Battletoads. It did occur to me I could use two 4:3 monitors flipped different directions and mirrored. Might be distracting when playing alone, but that's the only way I could think of. Unless it can be scripted to enable monitor 2 in certain games and leave disabled in everything else. Or a little physical button that just powers one or both of the monitors off/on. Still brainstorming, as you can tell.

I was hoping I could either use the iCade case (see below) as either directly attached to the chassis or at least as a template for what will be eventually attached to the chassis for the controls. I might just use the iCade case as a template for the button layout since I will probably have to do create a custom "control panel" if I want to use a trackball.
  • Acer Iconia w8: Atom CPU, HDMI out, 2 gigs memory, 32 gig internal storage and SD card slot, 18 months old (mid 2013). Should be able to handle mame and anything else I need.
    Advantages include its size and a ready-to-go copy of windows 8.1, relatively little power use, silent, built in battery backup, very little in the way of heat. Built in speakers but i doubt I would ever use/need them. Also has bluetooth already.
    Disadvantages would be how difficult (or not) it is to hit the power button when for at least powering it on (disassemble and wire up a button? Spring loaded button on the outside?), needs a hub for for use with multiple USB devices, and very little internal storage. Also, no user-upgradable parts at all. So it's stuck at that amount of memory. It does not have a physical NIC so any netboot options are out (and I couldn't get a USB one to be recognized for some reason).
  • Acer Revo R1600 "nettop": Atom CPU, currently at 1 gig of memory (upgradable), currently a 160 gig HDD (upgradable), an SD card slot, dated from 2010: Seems like nettops were forgotten as a thing pretty quickly.
    Advantages are the two video outputs, little power use, relatively silent though it does have a fan, easily upgradable, already included really compact case/little room needed for the power brick, and the number of USB ports (at least 6). It does have a physical NIC, so there's always the possibility of a disk-less workstation with this.
    Disadvantages: Some amount of noise, may have to buy memory to ensure performance and even with at least 2 gigs of memory I wouldn't try to run windows 7 or 8 on this little thing.
  • General Atom-based motherboard: 4 SATA ports onboard, would have to bring-my-own memory, storage and power.
    Advantages: between the onboard sata ports and the PCI card slot it's much more upgradable. A decent number of USB ports.
    Disadvantages: No chassis so I would just screw into whatever enclosure (although that might be an advantage). Would have to use one my existing (noisy) PSUs for power or buy a specialized PSU just for this which would cost (estimate) at least $60. CPU has a fan, adding to noise. No onboard wifi, bluetooth or anything else, just the NIC.
Unlike prior projects I won't be shy about actually learning to solder for this (it's been an issue before). And wiring up circuitry as required too. In fact I ordered a how-to-solder kit and will be starting on circuit diagrams and better understanding the roles of capacitors/resistors/diodes/etc. I wanted to do this at least some-what cheaply so I am going to try and re-use other things/devices whenever possible.
The first thing I thought use in that spirit was the "iCade" - a (bluetooth) mock-arcade sort of setup aimed at iPads. The cheaper of the two, the "iCade Core", is currently less than $20 and comes with a stick and six buttons. The cheapest arcade buttons individually (that I could find) were between $2.50 and $3. And that's just a button, no underlying switches. I wanted to study the layout and how the buttons work as well, but it may well be a "push" cost-wise. I know there's packs with lots of buttons/sticks for $60 or whatever. Probably less than 12 buttons for more than $40 though.

For the actual controls, there are circuit boards called i-Pacs, that can be connected up to the buttons and stick(s) to send standard keyboard keystrokes to the PC. But since that's too easy and costs more than free I want to try chopping up a keyboard and using that circuit board. It's kind of "the hard way" but since I have spare keyboards and my work is tossing out keyboards all the time I figured I didn't have much to lose in trying and maybe I would learn something along the way.
For a trackball, which I haven't decided yet if I'm actually going to try and use, I could order a whole kit-with-mount and cables for ~$60. Or I could use the trackball (and possibly mount/other parts?) from the TV Games Deluxe Golden Tee and my old gaming mouse with the bad clickers for connecting it to the computer. There's at least one youtube video and an article on instructables detailing how to utilize an optical mouse as a base for a track ball. And Golden Tee comes with some buttons too. Though they probably won't match the iCade ones so I may not use them (maybe as for some other purpose like power/reset/pause/add credit). Gold Tee TV game was only $13.
For the screen I was going to use an old 24" LCD TV (as somewhat rare 24" 1080p panel). I assume I'll have to figure out a new bevel if for no other reason than having to wire up a separate switch for power, volume and possibly input selection.

As mentioned above I was contemplating what I assume to be a very unique idea: a two monitor setup setup mirrored for the benefit of two player games with each player on opposing ends of the "cocktail table". This would most likely work best only using two identical 4:3 monitors.
If I can swing it, I was going to try and make a homemade coin insert out of the lid of a penny bank jar with a spring loaded coin insert slot. I don't know if I'll be able to connect it to a button that does something in a game or if it will be decorative. It will endlessly entertain the kids though, I'm sure.

I'm not sure if I'll put in a separate button for player 1/player 2, powering off or putting the the PC to sleep, insert coin or whatever else. I'm still thinking about that.

I actually have a micro USB bluetooth 2.1 adapter I purchased in 2011 which is apparently some broadcom chipset. Which is lucky for me because it has turned out to be much more compatible with random bluetooth devices than my various laptop onboard bluetooth hardware. I thought this might come in handy if I do need to adjust the something on-the-fly. And perhaps using the guts of a cheap usb keyboard to convert a console gamepad to bluetooth. But I'm not sure about that yet.
Would only use this if I went with the Iconia. I would slim down the installation as far as possible and do a bunch of other performance tweaks so the games ran that much better. The Iconia only has 32 gigs of storage and 2 gigs of memory after all!
This would be a good choice for the performance angle. I've developed a lot of skill in backing up and auto-installing this OS and even on hardware from 2010 and little memory it would run really, really well on the hardware leaving resources for the games. If I didn't go with Iconia I would most likely go with XP. The updates thing isn't an issue since I was going to not have this cabinet on the internet necessarily.
Perhaps Strange this is my third choice but it just doesn't have any advantages over XP. I can think of way of utilizing symbolic links, which 7 has support for natively, but if it were really important I could get a third party utility for XP. Feel free to point out any advantage I'm missing. Remember this is old hardware that would run better with more resources.
I'm slowly familiarizing myself with Linux but I don't know it well enough yet it would be worth the frustration to use it over Windows at this point. A lot but not all the frontends are also on Linux but Windows actually has more Frontends and Windows versions seem as good/better. And I don't think the Iconia works with Linux. Has the advantage over XP of still getting updates. Unless something significant changes, I don't think I'll go with Linux.

I think it's safe to assume DOS won't be a candidate at this point.
I think I would stick to Mame and relatively old (pre-2000 consoles). For Nintendo I know I'll add NES/SNES/GB/GBC/GBA. For Sega gamegear/master system and Genesis at least, TGFX (no particular reason), various Ataris (for completeness if nothing else) including Lynx(?), and maybe some old computer systems like Apple ii, commodore, whatever.

I'll list the emulators as I add them in.
  • Mame/MESS: When I came across AdvanceMAME it prompted me to try and find if there were any MAME "forks" and I started at wikipedia. Which didn't have any info on Forks for MAME but did lead to info in MESS which I realized I actually knew very little about. I haven't decided yet if I'll use MESS for game consoles and other systems or if I'll get dedicated emulators for each.
    • Not sure if this is a grey area or not but The Internet Archive actually has MAME ROM sets for download. And the games are playable in the web browser for that matter. I hope it's okay to say that. Thousands of ROMs for download free (42 gig zip file) from the Internet Archive. The official MAME site still only has like 7 public domain ones. Not sure what the deal is with that.

To test the performance of the various front ends/etc, and also because it looked cool, I purchased the iPega Wireless Bluetooth Telescopic Game Controller to wrap around my Iconia and interface with the various arcade games. Since it's bluetooth it should also work for testing when outputting to a TV with HDMI (couldn't get it to stream Steam games though).
Since these are listed as supported on the GameBase wiki, (info on gamebase below) I've decided this is the perfect list of candidates.
  • Atomic FE
  • HyperSpin
  • Khameleon
  • MaLa
  • MAMEWah
  • Maximus Arcade
  • MultiFE
  • Also, GameBase itself is frontend
GameBase (http://www.bu22.com/)
Not sure that it gets a lot of play but I was reading the documentation for GameBase, an all-in-one database specifically for tracking ROMs for emulators. From the GameBase homepage:
GameBase is an emulator front-end and database utility. You can use it to catalogue, browse and play all of your favourite old games from the golden age of videogaming.
And further expanded from the wiki:
GameBase was originally designed to be both a database front-end, and an emulator front-end. Although these are still it's main uses, you can use it really for any arbitrary collection of data.
ROMLister (http://www.waste.org/~winkles/ROMLister/)
Since the GameBase wiki mentions ROMLister as necessary for using game base with other frontends, I know I will end up using this utility.
From the home page:
OK, you've just spent 6 months working on your arcade cabinet. You've just copied the entire set of MAME ROMs over to your machine.
You call your buddies over for gaming night, and one of them picks "spy hunter" from the full list of games. Whoops. You don't have a steering wheel or a throttle control on your machine.
OK, OK, skip that, you get your friend to forget that game and pick another one. Area 51! Yeah! Oh wait, you don't have a light gun installed. Isn't this embarrassing? Wouldn't it be better to only put games on your machine that your machine is capable of playing? That's what ROMLister is for.
Unlimited, customizable search parameters.
For example, you can find all the non-adult, fighting games that use an 8-way joystick, 6 buttons or less, and are horizontal. Or you could just do stuff like locate all the cocktail games, or any combination you can dream up.
AdvanceSCAN (http://advancemame.sourceforge.net/scan-readme.html)
Hosted on the same site as AdvanceMAME, appears to be a MAME ROM management utility. Not sure if this is redundant next to ROMLister/GameDB. Description from site:
The main features are :
  • Directly read, write zip archives without decompressing and re-compressing them for the best performance.
  • Add, copy, move and rename files in the zip archives. Any rom that you have is placed automatically in the correct zip.
  • Recognize the text files added by rom sites and delete them.
  • Recognize the text files added by the rom dumpers and keep or delete them.
  • It's safe. On all the zip operations any file removed or overwritten is saved in the `rom_unknown' `sample_unknown' directories and kept for future uses. This will prevent any unwanted remove operation.
  • Generate differential rom sets.
  • Backup/pushing changes: I was thinking about using bittorrent sync for transferring files to the device, whichever I use, making it easier to organize the directory structure and backup the games and configurations I do have. I could also use dropbox or some form of Git for this.
  • Macro software such as AutoHotkey: Haven't decided if this will be necessary yet, it may be useful for adapting key mappings on a per game/per emulator basis. Or perhaps just disabling certain keys like the Windows key or F1.
  • Custom written ones: I could hypothetically write my own help utilities as a CMD shell, powershell script or something with Windows Script Host.
  • Custom bootup image software: This may help with the "immersion level" for the arcade treatment. There's debate over whether this is possible with an OEM UEFI BIOS/Windows 8 but would be relatively simple with Windows 7/XP and/or legacy BIOS.

I'm assuming assembling all the parts, wiring everything up and sending the proper signal the right time will be the most difficult and time consuming part...next to the actual, physical chassis. Since my current plans are for a horizontal sort of a orientation I was trying to think of somehow re-purposing an existing piece of furniture that has a flip-up lid, thinking it would be easier. I got the idea when I saw a pic of an old horizontal Donkey Kong machine that looked like an elementary school desk with flip up lid.

Part 2: Assembly of Said Parts

In the subsequent ~2 months since starting this thread I have continued collecting what I assume would be the parts and learning a lot. I guess that where the emphasis really was, the learning/experience part.

I am way better at soldering than I was, which one would expect. I am also entirely too good and mapping out keys off of keyboard circuit board pins. Fortunately I have a seemingly endless supply of keyboards that my work is throwing out (horray). Though a lot of them have different pinouts so it's just a lot of the same thing over and over for different keyboard models.

This is the very beginnings of what I have learned is called the control panel of the arcade unit.
How the many parts are going to come together is finally starting to become clear. The inside of the iCade is actually just this itty bitty circuit board with all the wires from the buttons connecting to it. And the wires slide right out of their captive slots (see image I took below. I need to take better pic).

What I'm going to do is carefully de-solder the connector on that circuit board and connect it to a blank circuit board so I can still use the iCade wiring and connectors (which are really nice). Then run some wires over to the keyboard circuit board which go the the appropriate pin combinations. See below for my new-and-improved soldering skills. Remember I just got my soldering iron/started in late January.

This approach is inspired largely by this really old blog entry here.

On a side note, which I apparently cover before, there are several ways of implementing a keyboard encoder including an i-Pac2 and implement an Arduino. I wanted to learn soldering anyway and those i-Pac2s are ~$40 each so I decided to go with modded keyboards instead. I mean, why not?

I have also found a youtube video with something similar (albeit for a wireless gamepad mod) that incorporates diodes, which I may have to also incorporate (haven't decided yet).

I still have some additional steps. Like the custom frame around the screen, how that will relate to the actual controls and how those two things will fit with the actual thing I'm going to be placing all of this on top of (which as mentioned above now has casters). And I have been working on how I'm going to integrate the trackball kind of in the back of my mind/on the side. The actual mount design at least will likely be largely inspired by the ideas on this page.

Whilst learning this I also finally got the casters on what I'm planning to to use as a base for this arcade unit (pics pending) and also made some progress on the software side: my auto-installed-and-prepped install of XP is maybe 85-90% complete.

I do still have some things on the HyperSpin/MAME end of things. I was going to use gamebase but the site with a lot of info and a wiki (http://www.bu22.com/) apparently no longer exists. So I probably won't use that.

other[/I] side project]As a side-side-project, mostly in my head, I've actually been working a supplement to this arcade cabinet. I'll cover the actual build in a separate thread. The idea is to take either an old wireless keyboard (really old, with a large RF receiver) or a cheap bluetooth keyboard and in similar fashion to what I've been doing put the wired up circuitry of the keyboard into a hollowed out game pad. The receiver (if I went non-bluetooth) would be mounted inside the cabinet. So as a back up or just for an additional player there's a convenient gamepad. A few minor details to overcome of course. Like will I use one or more re-chargeable batteries and if so will there be a re-charge port on the outside.

Sure I could use the kit from Adafruit, and may still, but I would like to be able to say I can do this all on my own more-or-less spare parts.

The eventual goal was to put the parts in a Sega Saturn "phat" edition game pad. Either the original or the one with the analog stick. Haven't decided yet. That normal phat Saturn gamepad was the most comfortable I've personally ever used (thereby making it the single best feature of the Saturn).

The idea was actually inspired from the iCade since that is exactly what iCade is: a custom bluetooth keyboard controller (it shows up as a bluetooth keyboard device on i-devices/other OSes with some work) that runs on batteries connected up to convenient arcade buttons...

1,508 Posts
Discussion Starter · #3 ·
This project apparently didn't garner a lot of commentary or discussion (thanks Blue Dragon) but I'm still plugging away on it. I'll finish it eventually, even if I don't get any comments...

677 Posts
a lot of these young guys might not know what MAME is... here is a quick def. for those who do not know or feel like looking it up...
"MAME (an acronym of Multiple Arcade Machine Emulator) is an emulator application designed to recreate the hardware of arcade game systems in software on modern personal computers and other platforms.[1] The intention is to preserve gaming history by preventing vintage games from being lost or forgotten. The aim of MAME is to be a reference to the inner workings of the emulated arcade machines; the ability to actually play the games is considered "a nice side effect".[2] Joystiq has listed MAME as an application that every gamer should have" -off of Wiki

maybe if you renamed the title something like Homemade ROM cabinet or Oldschool Emulator box, more people might know what it is... also, been doing a lot of research on web user habits and attention spans... way too many words, and not enough pictures. noticed people want to be able to understand what they are looking at before they read anything (other than title) or have a lot of pictures of high end parts to grab interest.

pretty sure once you get some of your cabinet pics up, people will start to take notice. I'm really interested in how it turns out, keep up the great work you're doing!

1,508 Posts
Discussion Starter · #5 ·
Wow, thank you for the feedback. I know it's a little wordy right now. My normal writing process usually involves getting it all out in front of me then slowly whittling it down. I mean assuming a shiny object doesn't distract me. Sometimes I have to write it down as it's occurring to me or I'll forget it later. That explains the mention of the gamepad mod. Just had to write it out as it came but not really necessary.

I thought for some reason this crowd would be familiar with MAME and arcade cabinets because there's a couple different projects here on OCN (one sponsored) and there have been a few headline-grabbing "Raspberry Pi Mame machine!" stories lately. I'm going to change the title of the thread though.

Oh and now that I have a half-decent camera (says me) I'll be posting a lot of pictures as soon as there is something to post.

1,191 Posts
Good luck! I have a mostly unfinished upright MAME machine and I would highly recommend getting one of these:


For playing the best game ver

EDIT: Also, real coin doors with mechs are a bit pricey (i think I paid like $125 for a dual-slot?) but they function really well and come with microswitches which are really easy to wire up to your controls or a keyboard.
1 - 6 of 6 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.