This is my homage to Owen Rubin's wonderful 1979 arcade game Tunnel Hunt, which features eye-wateringly fast psychedelic visuals and ominous sound. I have tried to retain the key elements of the game as best as I can (given smaller palette and lack of analog joystick), while adding a few variations to enhance to experience...
Hurtle through the tunnel blasting anything in your path. Your craft will increase speed over time, but hitting walls will slow it down (while also heating the hull). You can use this to your advantage, but overheating the hull will result in death!
Lasers will also overheat if used too much, which will disable them for a time until sufficiently cooled. Shields can be activated to defend against enemy craft or fire (plasma balls), but will be reduced in power as a result. Shooting plasma balls will charge your shields fractionally (as well as award 50 points).
There are four different types of enemy, which will require 1,2,5 or 10 shots to destroy. Points will be awarded based on the type of enemy destroyed, the time taken to destroy it, and enemy hostility (this increases over time). A bonus life will be awarded after 10,000 points, and every 30,000 points thereafter.
Insert Coin = Up / GPIO input (defaults to free play so not required!)
U/D/L/R - controls ship
(O) / Z - shield
(X) / X - laser
DIP Switches (menu items)
CREDITS: FREE (default) / UP / GPIO }
GPIO OUTPUTS: OFF (default) / ON } NOTE altering these will reset game!
ATTRACT SFX: OFF / ON (default) }
Y-AXIS: NORMAL (default) / INVERT
GPIO Input / Outputs
IMPORTANT: GPIO pins are referred to by Raspberry Pi 'WiringPi' standards. See below for WiringPi configuration.
DISCLAIMER: I will not be responsible for damaging your device. Please do not enable GPIO settings, or connect anything to GPIO pins to anything if you are unsure what you are doing!
--- MINSOFT GPIO STANDARD ---
PIN TYPE SETTING FUNCTION DETAILS
0 INPUT (PULL UP) CREDITS: GPIO Credit switch Connect switch between pin and ground (via optional resistor, eg 1k ohm)
1 OUTPUT GPIO OUTPUTS: ON Start/Warning LED Connect LED between pin and ground (via suitable resistor, eg 220 ohm)
2 OUTPUT GPIO OUTPUTS: ON Start/Warning LED Connect LED between pin and ground (via suitable resistor, eg 220 ohm)
3 OUTPUT GPIO OUTPUTS: ON Vibration motor Connect motor via suitable circuit (eg http://playground.arduino.cc/uploads/Learning/solenoid_driver.pdf)
4 OUTPUT N/A N/A N/A
//set pin 0 as input, pull up (COIN)
gpio mode 0 in
gpio mode 0 up
//set pins 1-4 as outputs
gpio mode 1 out
gpio mode 2 out
gpio mode 3 out