This is the last part of the DIY Arcade cabinet tutorial series. In this guide, I will show the overall steps to add an emulator. Since there are many different emulators, I cannot write a guide for every emulator. instead, I will show the default steps you should do when adding an emulator to your system.
This arcade cabinet is still a work in progress, the guides are not done yet, updates coming soon.
I highly recommend using “Bolt-on” packs that can be downloaded on the internet, these packs contain everything from artwork, roms, emulator… and should work with minimal setup work. You could build your own collection but that would take ages when someone else already did the work. A great place to find “bolt-on” packs is ArcadePhunks.com Downloads Page.
Disclaimer: None of the files are hosted on this website nor did I ever create, upload or distribute a bolt-on pack on any website.
Each system requires the following files, the %SystemName% should be replaced with the name of the console you will be adding
- %SystemName%.xml – List of all Rom files with some extra information (Release date, Developer…)
- %SystemName% – The emulator executable, usually MAME
- Images – Wheel images for each game in the database
- Sounds – Background music, scrolling sounds…
- Themes – The theme for the system, this is a Zip file containing assets and information on where to show rom information or videos
- Video – Short video of the game currently selected, usually mp4, avi or flv files.
- Main Menu
- Images – The wheel image for the system displayed in the main menu with all other systems
- Sounds – Sounds when opening or exiting the system menu
- Themes – The main menu theme for the system, this is a Zip file containing assets and information on where to show rom information or videos
- Video – Short system video, usually the original release trailer or a compilation of a few games available on the system
- %SystemName%.ahk – This is the script that launches the emulator, usually contains the rom path and a fullscreen parameter
- %SystemName.ini% – The settings for HyperSpin
- ROMS: Folder containing all ROM files, Sometimes this folder is located inside the emulator folder.
This is the database which holds all the filenames and information for each ROM, It’s important that the names in this file are exactly the same as the ROM’s filenames(without the extension) or the game will not be found. The XML containing all the ROM names should also be in its own folder named exactly as your system name in Hyperspin. eg: Databases/Bally Astrocade/Bally Astrocade.xml
This folder contains the emulator for the system. If the pack you downloaded does not contain an emulator, this usually means MAME is used to emulate the system and you can use the latest MAME version available on their website. When the emulator is included, this usually means MAME does not support that particular system. Different emulators require controller assignment and different startup parameters, I recommend using MAME if the system is supported in MAME. The startup parameters are quite hard to find but I included mine in this post.
The media folder contains all images, sounds, and videos for Hyperspin. This way when you select a game, you get a preview image with some game assets. The media for the system should be inside a folder with the exact system name for Hyperspin to pick up the assets.
The module file is a script that will launch the emulator, this script usually includes a -fullscreen parameter, a ROM path parameter and in the case of MAME it requires a parameter to tell what system we want to run the selected ROM on. The scripts you find online are usually too complicated and require libraries to be installed. I included most of my scripts in this post to download. I’m absolutely using the minimum script to run the games and should work for everyone. In some cases, the module file can be found in the RocketLauncher/Modules folder.
Settings.ini files contain the settings for each emulator. This usually consists of an emulator path, rompath, romextensions and a few more parameters on how to start the selected games and display its artwork. I recommend not using this file as in many cases the paths in these files are specific to the system of the creator of the media pack and won’t work for your setup. I recommend adding the system using the HyperHQ software which will create a clean INI file. Then add the ROM folder and Emulator path.
The roms folder contains all ROM files. I recommend moving this folder onto a large secondary drive (not your Windows SSD) since this folder will grow quickly. I personally have an 8TB HDD for this folder which is about 7TB in size now. In some cases, the ROMS are located inside of the Emulators/%SystemName%/ROMS folder of the downloaded pack.
This folder can be ignored & deleted, RocketLauncher is an alternative for the Hyperlaunch which provides some more options. Using RocketLauncher is still a valid option but in my opinion, this adds more complexity to your already complex Hyperlaunch setup. I chose not to use it as it will require a lot more work to set everything up and adds another layer to your setup which also means another point of failure. I try to keep my setup as simple as possible.
First, open HyperHQ.exe, click “Main Menu Wizard”. Click the green plus and type the name of the system you want to add (the name you give here will be referenced in this document with %SystemName%)
On the next screen, click yes since the wheel we’re adding will have a sub wheel (this sub wheel will load its content from the database XML)
Select one of your existing systems and click add before or after,
- I recommend adding them in alphabetical order
- Larger companies like Nintendo, atari with multiple systems, I usually prefixed with the company name (Nintendo Gameboy), this in combination with the previous hint will keep the systems a bit grouped by brand and will make it easier when you have to search a game console later.
Note: You can manually add systems by editing “Databases/Main Menu/Main Menu.xml”
Hyperspin will need media files to show your ROMs in a ‘fancy’ way, this is optional as HyperSpin will automatically show the ROM name in text but that’s not done.
These packs are widely available and usually contain all Media/Emulator/Roms ready for use. After extracting you will see a similar structure as your Hyperspin setup:
- Media: All wheel media files per system
- Artwork1-4: Depending on your theme Hyperspin will look in these folders for cd boxes, artwork,
- Letters: When searching alphabetically, these are the letters Hyperspin will show
- Pointer.png: The pointer on the right side in the ROM wheel
- Particle: Contains animation effects
- Special: Contains joystick animations
- Wheel: The image per ROM, must have the same name as the rom&database
- Background Music: Background music while in the ROM wheel
- System Exit: Sound when exiting the wheel
- System Start: Sound when entering the wheel
- Wheel Sounds: Sounds when switching between roms
- Wheel Click.mp3
- Themes: Theme.zip per ROM, must have the same name as the Rom & Database
- default.zip When no theme for the ROM is available, Hyperspin will take the default theme
- Video: Video for the game (name must match rom&database)
- Override Transitions:
AHK Modules will launch each emulator with the correct parameters, these AHK modules are widely available on the internet and I added most of my own modules in this post so you should not have to write your own. But if you ever find one of the modules not fully working it can be useful to know to fix common issues. If you are somewhat familiar with programming, AHK or AutoHotKey uses a basic scripting language that can be used to automate windows. Below are a few basic features of AHK for you to thinker with. For a better tutorial, visit the AHK Beginners Tutorial Page Here.
Empty AHK File, Minimum Requirements
Adding this to the bottom of your AHK Module will close the emulator’s process when pressing ESC.
Process, Close, %executable%
if (romExtension = “.cue”)
;MsgBox A cue file will not load, opening first bin file
RunWait, %executable% -f “%romPath%%romName% (Track 01).bin”, %emuPath%
RunWait, %executable% -f “%romPath%%romName%%romExtension%”, %emuPath%
This will show a windows popup with an OK button, I use this to notify of any issues with the emulator or extra steps that are not as clear to get a game running.
MsgBox Correct file found, launching
MAME is an all-in-one emulator supporting over 200 systems. There is no “official” system list for MAME but I found a WIKI page that has quite a big list of compatible systems however it is probably only 35% of compatible systems, I also made my own list including the parameter for selecting the correct emulator in MAME
- Aamber Pegasus – pegasus
- Acorn Electron – electron
- Amstrad CPC – cpc664
- Amstrad GX4000 – gx4000
- APF Imagination Machine – apfimag
- Apple II – apple2ep
- Apple IIGS – apple2gs
- Applied Technology MicroBee – mbeeic
- Atari 8-Bit – a800
- Atari 2600 – a2600
- Atari 5200 – a5200
- Atari 7800 – a7800
- Atari Jaguar – jaguar
- Atari Lynx – lynx
- Bally Astrocade – astrocde
- Bandai Super Vision 8000 – sv8000
- Bandai WonderSwan – wswan
- Bandai WonderSwan Color – wscolor
- Bit Corporation Gamate – gamate
- Camputers Lynx – lynx128k
- Casio PV-1000 – pv1000
- Casio PV-2000 – pv2000
- Coleco ADAM – adam
- ColecoVision – coleco
- Commodore 64 – c64
- Commodore MAX Machine – vic10
- Creatronic Mega Duck – megaduck
- EACA EG2000 Colour Genie – cgenie
- Emerson Arcadia 2001 – arcadia
- Entex Adventure Vision – advision
- Epoch Game Pocket Computer – gamepock
- Epoch Super Cassette Vision – scv
- Exidy Sorcerer – sorcerer
- Fairchild Channel F – channelf
- Fujitsu FM-7 – fmnew7
- Funtech Super Acan – supracan
- GamePark 32 – gp32
- GCE Vectrex – vectrex
- Hartung Game Master – gmaster
- Interton VC 4000 – vc4000
- JungleTac Sport Vii – vii
- Jupiter Ace – jupace
- Magnavox Odyssey 2 – odyssey2
- Matra & Hachette Alice – alice32
- Mattel Aquarius – aquarius
- Mattel Intellivision – intv
- MGT Sam Coupe – samcoupe
- Milton Bradley MicroVision – microvsn
- NEC PC-8801 – pc8801
- NEC PC Engine – pce
- NEC PC Engine-CD – pce
- NEC SuperGrafx – sgx
- NEC TurboGrafx-16 – tg16
- NEC TurboGrafx-CD – tg16
- Nintendo 64 – n64
- Nintendo 64DD – n64dd
- Nintendo Entertainment System – nes
- Nintendo Famicom – famicom
- Nintendo Famicom Disk System – fds
- Nintendo Game Boy – gameboy
- Nintendo Game Boy Advance – gba
- Nintendo Game Boy Color – gbcolor
- Nintendo Pokemon Mini – pokemini
- Nintendo Satellaview – snes
- Nintendo Super Famicom – snes
- Nintendo Super Game Boy – supergb
- Nintendo Virtual Boy – vboy
- Othello Multivision – omv1000
- Philips CD-i – cdimono1
- Philips Videopac Plus G7400 – g7400
- Philips VG 5000 – vg5k
- RCA Studio II – studio2
- Sega 32X – 32x
- Sega CD – segacd
- Sega Game Gear – gamegear
- Sega Genesis – genesis
- Sega Master System – sms
- Sega Mega Drive – megadriv
- Sega Pico – pico
- Sega Saturn – saturn
- Sega SC-3000 – sc3000
- Sega SG-1000 – sg1000
- Sega VMU – svmu
- Sharp X1 – x1turbo40
- Sinclair ZX81 – zx81
- SNK Neo Geo AES – aes
- SNK Neo Geo CD – neocdz
- SNK Neo Geo Pocket – ngp
- SNK Neo Geo Pocket Color – ngpc
- Sony PlayStation – psx
- Sony PocketStation – pockstat
- Sord M5 – m5
- Soundic Victory MPT-02 – mpt02
- Super Nintendo Entertainment System – snes
- Tandy TRS-80 Color Computer – coco3
- Texas Instruments TI 99-4A – ti99_4a
- Tiger Game.com – gamecom
- Tomy Tutor – tutor
- VTech CreatiVision – crvision
- Watara Supervision – svision
If anyone knows a complete list, please post a link in the comments below.
I uploaded my module folder to GitHub for anyone to use and update. The modules on this GitHub page include the used emulator and are as simple as possible to minimize points of failure.
(Github will be updated within a few days)
- Initial commit, GitHub
This is the last part of the “DIY arcade cabinet” tutorials. I hope I helped you get your own arcade cabinet done. If there are any questions, feel free to leave a comment below any of the DIY arcade cabinet tutorials and I will respond as soon as possible.