Difference between revisions of "Arcade Machine"
Line 14: | Line 14: | ||
NOTE: Currently, the input mapping instructions are out of date, they will be updated soonish | NOTE: Currently, the input mapping instructions are out of date, they will be updated soonish | ||
− | == Getting it to | + | == Getting it to start == |
− | There's a basic | + | There's a basic Dell machine in the Arcade Box; with Wake on Lan. Just send the |
WOL packet to the right mac address, which can be found on the machine: | WOL packet to the right mac address, which can be found on the machine: | ||
+ | |||
00:21:70:03:31:1b | 00:21:70:03:31:1b | ||
Line 24: | Line 25: | ||
sudo etherwake 00:21:70:03:31:1b -i wlan0 | sudo etherwake 00:21:70:03:31:1b -i wlan0 | ||
− | Or: | + | Or, equivalently: |
+ | |||
wakeonlan 00:21:70:03:31:1b | wakeonlan 00:21:70:03:31:1b | ||
Line 41: | Line 43: | ||
The Arcade Machine input exposes itself as a single keyboard over USB and PS/2. | The Arcade Machine input exposes itself as a single keyboard over USB and PS/2. | ||
This is problematic for most games, with the exception of MAME and a few | This is problematic for most games, with the exception of MAME and a few | ||
− | emulators. | + | emulators. Some games expect an input device per player, so one "keyboard" |
− | + | then simply is not enough. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Basic instructions: | Basic instructions: | ||
Line 72: | Line 66: | ||
This should be handled by the Input over PS2/USB as well. It is probably mapped | This should be handled by the Input over PS2/USB as well. It is probably mapped | ||
− | to a key. | + | to some a key. |
=== Video === | === Video === | ||
Line 88: | Line 82: | ||
It mostly boils down to two tasks: | It mostly boils down to two tasks: | ||
− | 1) disable/enable the "keyboard" interface: ~/disable_*.sh or ~/enable_*.sh | + | 1) disable/enable the "keyboard" interface in X (to avoid double input): |
+ | |||
+ | ~/disable_*.sh or ~/enable_*.sh | ||
2) start/stop uinput-mapper with the right configuration: | 2) start/stop uinput-mapper with the right configuration: | ||
− | sudo | + | sudo input-read -D /dev/input/by-id/usb-Cypress_I-PAC_Arcade_Control_Interface-event-kbd | sudo input-create configs/techinc.py |
And just hit ^C to stop it. | And just hit ^C to stop it. | ||
Line 101: | Line 97: | ||
==== Super Hexagon ==== | ==== Super Hexagon ==== | ||
− | Disable uinput-mapper and enable the | + | Disable uinput-mapper and enable the "keyboard" interface. |
+ | ==== Jamestown ==== | ||
+ | |||
+ | Disable the "keyboard" interface; enable uinput-mapper with techinc.py configuration | ||
==== Emulators ==== | ==== Emulators ==== | ||
Line 117: | Line 116: | ||
Code: https://github.com/MerlijnWajer/uinput-mapper | Code: https://github.com/MerlijnWajer/uinput-mapper | ||
− | + | For usage instructions, see: http://hetgrotebos.org/wiki/uinput-mapper | |
− | |||
− | |||
− | + | And the techinc.py config can be viewed online: | |
− | + | http://googleco.de/uinput-mapper/tree/configs/techinc.py | |
Map: | Map: | ||
Line 137: | Line 134: | ||
Yellow Button: BTN_3 | Yellow Button: BTN_3 | ||
+ | == User Interface == | ||
− | + | TODO. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Games == | == Games == |
Revision as of 23:55, 23 May 2013
Projects | |
---|---|
Participants | Control-k, Maijin, Realitygaps, Wizzup |
Skills | Programming |
Status | Active |
Niche | Software |
Purpose | Fun |
Contents
Arcade Machine
We now own a <MODEL> Arcade Machine. The plan is to bring new life into the machine by putting a computer in there and hooking that computer to the joystick input and screens. The computer runs MAME and other emulators, such as Amiga or SNES emulators.
NOTE: Currently, the input mapping instructions are out of date, they will be updated soonish
Getting it to start
There's a basic Dell machine in the Arcade Box; with Wake on Lan. Just send the WOL packet to the right mac address, which can be found on the machine:
00:21:70:03:31:1b
Here is an example command line that will turn on the machine (etherwake defaults to eth0, so wlan0 is specified)
sudo etherwake 00:21:70:03:31:1b -i wlan0
Or, equivalently:
wakeonlan 00:21:70:03:31:1b
From: http://gsd.di.uminho.pt/jpo/software/wakeonlan/
Input
Arcade Machine input
The input can be read as PS2 (and USB); using a chip that we got alongside the Arcade Machine:
http://www.ultimarc.com/jpac.html http://www.ultimarc.com/jpac2.html
The Arcade Machine input exposes itself as a single keyboard over USB and PS/2. This is problematic for most games, with the exception of MAME and a few emulators. Some games expect an input device per player, so one "keyboard" then simply is not enough.
Basic instructions:
./disable_unusable_keyboard.sh cd uinput-mapper/ make sudo ./map
Other Input
We attached two PlayStation controllers, but I (Wizzup) am not a big fan of them. Regardless, there's a USB hub so feel free to plug in other controllers! It would be nice to have proper SNES ones.
This may be useful: https://www.thinkgeek.com/product/f08d/ and http://www.amazon.com/Classic-USB-Super-Nintendo-Controller-PC/dp/B002JAU20W Or we can make our own.
Coin Input
This should be handled by the Input over PS2/USB as well. It is probably mapped to some a key.
Video
We replaced the built-in monitor with a TFT monitor.
Sound
The sound works and is connected to the computer as well.
Common tasks
There are a few simple tasks until we've written a pretty interface + set of scritps.
It mostly boils down to two tasks:
1) disable/enable the "keyboard" interface in X (to avoid double input):
~/disable_*.sh or ~/enable_*.sh
2) start/stop uinput-mapper with the right configuration:
sudo input-read -D /dev/input/by-id/usb-Cypress_I-PAC_Arcade_Control_Interface-event-kbd | sudo input-create configs/techinc.py
And just hit ^C to stop it.
Games (with instructions)
Super Hexagon
Disable uinput-mapper and enable the "keyboard" interface.
Jamestown
Disable the "keyboard" interface; enable uinput-mapper with techinc.py configuration
Emulators
- ZSNES (SNES)
- UAE (Amiga)
- MAME
- ...
Writing our own input driver
Axes to axes, Buttons to buttons
Code: https://github.com/MerlijnWajer/uinput-mapper
For usage instructions, see: http://hetgrotebos.org/wiki/uinput-mapper
And the techinc.py config can be viewed online:
http://googleco.de/uinput-mapper/tree/configs/techinc.py
Map:
- Creates two joystick input devices in /dev/input
- Both joystick devices are mapped sanely.
- HAT0X / HAT0Y seem to work now that we specified absmin and absmax.
Keys are mapped like this:
HAT -> HAT0X, HAT0Y Red Buttons, left to right: BTN_0, BTN_1, BTN_2 Yellow Button: BTN_3
User Interface
TODO.
Games
List of games:
Native
- Jamestown (works with joysticks)
- Syobon (not yet! Ubuntu didn't have it in their repo ☹)
Amiga
In UAE, just add the games as floppies.
- SWIV (Great shoot them up game)
- Pinball Fantasies
SNES
...
Other uses
- We can use it to control a variety of stuff. (light, sound)
- We can hook other consoles into it.
- ???
brain-dump AndreasR (possible user interface)
https://aur.archlinux.org/packages/mamepgui/
http://qmc2.arcadehits.net/download.html
http://mame.mindkiller.com/?section=downloads&project=mame
http://gmameui.sourceforge.net/
http://www.raspberrypi.org/phpBB3/viewtopic.php?t=15915&p=163781
http://rbelmont.mameworld.info/?page_id=163
http://gxmame.sourceforge.net/
Addition by Wizzup: http://www.anti-particle.com/wahcade.shtml