Contra Cabinet

Summary

From sign

NOT Contra -
The Edge’s Arcade Cabinet
This cabinet was originally built by Peter Musk and others at The Edge as part of the May 2015 Brisbane Powerhouse “IRL Digital Festival”, where it was a part of a series of cabinets made to showcase a series of classic games.
Most the other cabinets found new homes, however after being stripped of it’s computer, ‘Contra’ was left in the Fabrication Lab’s junk store where it languished for many years.
In mid 2017, after a few false starts and looking for a break from larger projects, some of the Thursday Hack the Evening group decided to repair and recommission the cabinet to a modern system for public use.
Attempting to leave as much of the original intact possible and using only found pieces, the rebuild was completed near the end of 2017. It was installed in its current location, adding it’s ‘NOT’ sign, during the end of year holidays.

Resources

Materials

MDF for the top. (From internal stock)

Buttons/switches. (In box labeled 'Arcade Machine')

Control hardware. (Same)

New screen. (Maybe? Maybe current one is good enough.)

Tools

MultiCAM CNC: Cut new control panel and (maybe) screen frame

Soldering/electronics

Basic hand tools

Vinyl cutter: For new panel graphics

Jobs

Restore

Decide on layout and make new panel

Wire up remade panel

Work out layout/design for new screen.

Install new sound system

Find, install new PC and set up OS and basic games

Install MAME on PC

External USB ports

External headphone port

New graphics for front panel

Tidy up existing graphics(tape?glue?)

Future

CNC new panel

Remember to allow for pockets for the joysticks.

Removable control panel system

Top should be removable with no tools (Magnets? Catches?)

Token accepting (Start 15min(?) countdown timer to allow fair play)

Display case for carts

Multi cart reading

LED 'current games' display: Led Dot Matrix 64x16pixel

New player one joystick: https://www.ultimarc.com/ultrastik_info.html

Trackball. If we can find a way to disable when not in games

Cabinet and Hardware

NOTE: Theses segments are in rough chronological order. However further progress on the same item is added to that item.

Old top

This is kept stored inside the cabinet for future reference and to keep all the original woodwork in the same place.
It uses a gutted xbox controller for the cabinet's original use. Buttons were salvaged but microswitches left intact.
When the replaceable panel system is built, it would be nice to reinstate it that as one of the options.

Layout

Measurements

New top

Layout

Based on a modified Street Fighter layout that seems to be one of the most versatile single panel options.

http://www.slagcoin.com/joystick/layout.html http://www.slagcoin.com/joystick/layout/hybrid36_m.png

New panel drawn out and cut using hand tools, a bit rough but will do.

IPAC2 controler wired up. Tested.

New control panel Painted.

Replace screen

The old LCD TV screen was a missing it's power supply and a few other parts.

A newer much better computer screen was found in the piles of equipment. Old screen was removed and front cut to fit new one.

Fix viewing angle

The cabinet's original design was based on plans with a few design problems for the current use and included a large overhang above the screen that prevented any adults not sitting down from using it.

This was the only major piece of rebuilding that was done to the cabinet and a decision was made to not change as little as possible while making it usable.

All materials were salvaged from previous changes or recut to suit the new angles and major joins were filled and sanded but minor imperfections were left.

Test fitting

Bog and sanding

Finished

Sound

A sound system with external volume control and optional internal lighting was installed.

External USB/Volume

Four external USB ports were added, two on the lower part of the cabinet, two above the main panel.

3d printed sockets were used: https://www.thingiverse.com/thing:650689

http://www.ebay.com.au/itm/3FT-Dual-USB-2-0-Port-Male-to-Female-Panel-Mount-Cable-Waterproof-Cords-Black-/162664572450?

Replace top sockets with:

http://www.ebay.com.au/itm/1M-3-5mm-USB-2-0-AUX-Socket-Extension-Lead-Panel-Cable-Car-Dashboard-Flush-Mount-/362025141079?

Securing and Cooling

Originally fans were planned to keep the cabinet cool due to having a large LCD monitor and a PC running inside it,
however during testing it was found that leaving speakers or other parts out at the top created enough of a chimney effect to provide more than adequate cooling.

As just cutting slots in the top would be ugly and allow dust ingress, louvered down vents were donated and installed. The cabinet now stays cool.

Once it was realised that the cabinet would end up being installed in open public areas and games started to be donated, a simple lock was installed.
As the cabinet is just screwed together anyway, something that would prevent opening without tools was chosen as adequate.

Analog Joystick

Cheap, robust but functional analog joystick for playing games that require smoother control.

Analog stick is mounted on an acrylic plate to allow easy replacement as final design will likely be Ultimarc UltraStik 360 installed as Player One's main joystick with a trackball replacing the current stick in a new peice of acrylic. It was done this way to experiment with analog inputs and play with a budget option as the UltraStik will be close to $100 instead of about $20 for this one.

Joysick Library: https://github.com/MHeironimus/ArduinoJoystickLibrary

Curve correction: https://www.chiefdelphi.com/media/papers/2421

Ultimarc UltraStik: https://www.ultimarc.com/ultrastik_info.html

Cutting the hole for the new joystick and building the actual joystick:

Underside and finished control:

'Fix' button and Lighting

https://www.aliexpress.com/item/Full-Color-RGB-LED-Strip-Driver-Module-Shield-for-Arduino-UNO-R3-STM32-AVR-12VDC-V1/32829348653.html?

Computer and Software

Tasks

A new computer was found, Linux was installed, along with a bunch of open source and donated games and the current menu system written.

Graphics card

etc

Graphics? Test GL? (New computer?)

Screensaver. (Pulls from directory on machine)

Map joysticks and keyboards to same devices each time. (https://ubuntuforums.org/showthread.php?t=1595666)

Auto start and menu. (Mostly done)

Power switch? Wake on power? http://forum.arcadecontrols.com/index.php?topic=134179.0

Useful links

Linux:

https://github.com/rbarrois/inputexec

http://blog.troyastle.com/2011/06/run-scripts-when-gnome-screensaver.html

http://www.retroarch.com/index.php

Emulator/Frontend:

http://www.retroarch.com/

http://www.koenigs.dk/mame/eng/mamefrontends.htm

http://mamewah.mameworld.info/screenshots.htm

http://www.advancemame.it/

http://attractmode.org/about.html

http://www.emulationstation.org/#features

https://alternativeto.net/software/hyperspin/?platform=linux

nestopia duck-hunt.nes

https://www.reddit.com/r/RetroPie/comments/4a8ncv/ipac2_config_on_retropie_works_with_mame_nes_snes/

Games

Donated

N64: Mario Kart64

N64: Super64 Mario

N64: Yoshi's Story

Atari 2600: River Raid

Atari 2600: GORF

Atari 2600: Pole Position

Atari 2600: Mario Bros

Atari 2600: Stargate

PC: Welltris

Loaned

SNES: *Super Mario* All*Stars

SNES: Tetris & Dr Mario

PC: Jazz Jackrabbet

Shareware

PC: Commander Keen

PC: Quake

Open Source

Frozen Bubble

Neverball

Extreme Tux Racer

Digger Remastered

Descent Rebirth (Currently running shareware levels)

OldSkoolGravityGame

Evil Tetris

Blockout II

https://en.wikipedia.org/wiki/SuperTuxKart

List of other games:

https://github.com/leereilly/games#user-content-native

https://github.com/leereilly/games#user-content-arcade-1

https://wiki.archlinux.org/index.php/List_of_games#Arcade

Photos

Development notes

Hardware/cabinet:
Cabinet is made from CNC (for the sides) and hand cut(for the rest) MDF(?size?). Painted on the edges and decorated with vynal and masked spraypaint.
Improvements can be made by routing corners to create curves, by hand or machine. And by using laminate or push in edging strips.
Most minor pannels are removable to give easy access. However this does compromise strength in some ways.
Screen is a standard LCD set back at an angle and installed into a wooden bracket. There is plenty of room to install a CRT without it's case for a more tradtional look.
The pannel the screen is installed in is a removable peice to allow modifcations later. Screws fix in from the back.
The front has a sheet of 1mm PETG(Acrylic or polycarb also works fine) to protect the screen from touches, keep dust out and allow for easy cleaning. This does cause problems with reflections in some areas.
Back door is hinged, due to the materials and methods, the whole frame does twist when the door is opened, requiring a slight lifting to close.
The bottom 30cm of the cabinet at the back is open, allowing access to machine controls. This is fitted with wooden bars preventing machine removal.
Cabinet is fitted with a latch and lock, allowing the contence to be secured when in public or semi-public places.
A light duty lock is fine, as a screwdriver is all that is required to get in anyway by removing panels anyway. Planning and glue can be used to trade security for ease of future modication.
Due to the large bottom opening and simple electronics, ventlation is done entirely passivly. Two lovoured external type vents are installed on the back near the top, allowing hot air to escape.
A more secured design or powerfull gaming machine may require a fan drawing air in at the lower back and exausting at the top.
The control panel has been made to be easly replaceable, keeping any connections back to the electronics simple plugs and requiring either few or no tools to replace. It's hand cut MDF but new versions can be CNCed.
A more solid/secure cabinet would have fully screwed in top. It's not recomened to glue this in place due to changing nature of games and controls.
Current layout is 'modified street fighter' allowing most games to be mapped in some sane way to the controls.
This is the main reason why the removable top was chosen, to allow for layout changes. More than likely this design will change over time as it's turned out to be non-ideal for systems such as SNES.
Cabinet includes internal hooks and storage for cables, spare parts, spare control panenels and other peices, keeping everything together. This was extensivly taken advantage of during the restoration to hoard parts until needed.
Electronics:
As flexabilty was in mind, the cabinet's electroncs are as generic as possable. Allowing changing out for diffrent systems as required.
The current primary goal was a simple Linux PC based MAME/Emulator/PC Game system, the computer dosen't need to be very powerful but some requirements must be meet.
(Insrt specs here)
This allows anything from somewhat current PC games to original arcade emulators. A much more powerfull 'gaming' PC could be easly installed.
For low energy use, screen could be replaced with a modern ultra low power LED backlit LCD tied to a a raspberry Pi 3 running RetroPi or similar.
Sound is done through two second-hand speekers from a TV with black grills over the top and a cheap 15W amplifier connected up to the PC.
External volume control is installed bewteen the PC and amp, allowing easy control despite many diffrent games having diffrent volume levels as well as complete muting.
An external headphone socket will be fitted in the future.
RGB LED lighting is fitted behind the speeker grills for future work.
The control panel is built around a Ultimarc I-PAC 2 Arcade Controler. ( https://www.ultimarc.com/ipac1.html )
Chosen for flexabilty and software surport. However any similar device will work fine. Including arduino based designs.
Controls are standard off the shelf microsswitch style arcade buttons and joysticks. Excact choice of buttons and styles will depend on chosen layout.
https://www.aliexpress.com/wholesale?catId=0&SearchText=arcade+button+microswitch https://www.aliexpress.com/wholesale?catId=0&SearchText=arcade+joystick+replacement
Four external USB ports have been installed. Two on the right hand side of the screen(Soon to be 1 USB, 1 headphone). (http://www.ebay.com.au/itm/1M-3-5mm-USB-2-0-AUX-Socket-Extension-Lead-Panel-Cable-Car-Dashboard-Flush-Mount-/362025141079? )
As well as two on the right side below the control panel. ( http://www.ebay.com.au/itm/1m-Car-Dashboard-Mount-Flush-Mount-Dual-USB-Socket-Extension-Lead-Panel-Cable-/401357279542? )
This allows games to be brought from home, controlers such as analog joystick or gamepads to be connected, as well as a keyboard and mouse for matinance work.
A button on the right hand side of the control panel connects to the power switch on the PC, allowing easy switch on/shut down.

Feedback/Problems

Keyboard controller(IPAC2) sometimes stops responding to some keys. Unplugging and re-plugging(power cycle) fixes this.

These panels take a pounding. After 6 months of use every single switch came loose. Hot glue has now acts as as thread lock to hold them in place.

Children always find a way to break things. Even if you have no idea how they do it.

Hide the keyboard and mouse. People are too used to computers and will try and use them.

References

Files

This is where you put files for laser cutting, Excel sheets of suppliers etc..

Project Progress

Project	Percent Complete	Project Lead	Status	Budget Req	Budget Approved	Next Major Milestone	Subsequent Milestones to complete
Contra Cabinet	95%	Byron	Basic layout complete ...	> $10	All hardware is now operational ...	- Lighting & Sound to be revised ?