Local Connectivity for Sydney’s ITG Builds
Context
Here in Sydney, every now and then, whether it be a request or perhaps keeping up to date with The Spreadsheet, I need to connect to the ITG cab to make changes.
Back in the past, this meant doing stuff like:
- Asking for the keyboard from staff, which, after we realised this was going to be a common recurring thing, we just provided our own
- ...Assuming there were working USB ports. The Ed Park cab had USB slots at the front, but one of them didn’t work, so we had a ‘backdoor’ USB slot hidden inconspicuously with duct tape at the back. The Koko cab, being a 5th Mix convert, doesn’t have USB slots at the front.
- Quitting StepMania to make changes (i.e. possibly long durations of downtime if cache isn’t happy)
- Making sure whoever was working on shift was someone we knew to allow this to happen in the first place
- As the “PC” was a motherboard screwed onto a wooden panel (typical of old school builds), we had to shift the entire cab to make space to pull the panel out
When the OG’s system hard drive started to throw in the towel, I was tasked to replace it with a new PC. Inspired by a cab in Canberra built by one of our friends, I chose to use a mini PC (Intel NUC) and solve loading time problems with an SSD.
The most important part of the system, which I overlooked at the time, was that the NUC came with an in-built wireless module. This meant:
Wireless Connectivity
No keyboard. No USB. No exiting the game. Amazing.
With the OG cab living in Edmonson Park, I can’t just ask for a keyboard, let alone work on the pads. I don’t know the staff there, and they don’t know how my (purposefully advanced) system works.[1]
Thankfully, with the ease of Linux[2], I don’t need to physically touch the machine (well, technically) to get new songs on the cab. Here’s my “Sydney” setup; it’s standard run-of-the-mill:
- Most importantly, the wireless module needs to be in hotspot mode, whose password and SSID can be configured through the GUI. For other stuff like switching the hotspot’s security from WEP (seriously?) to WPA2, those are set in a file in
/etc/NetworkManager/system-connections
- Secure shell, preferably restricting use to only key-based authentication
- SFTP
The usual procedure to modify files on the system:
- I connect my device to the local hotspot
- Then, I use an SFTP client to connect: WinSCPWin, FilzaiPad, or MiXplorerAndroid
The songs are now on the cab, but they need to be reloaded through the service menu. Whilst I could do this remotely, my policy is to at least pay for a game:
- Insert a credit so we can get to
ScreenTitleJoin
- In this screen I use the
CodeMessageCommand
event listener to enter a “menu code” on the pad to transition me to the service menuScreenOptionsService
- Reload songs from the last option in the menu
The only downside to copying songs this way is that it’s slower than a USB transfer – you’re limited to the max speed of the hotspot, which for some reason seems to capping at 802.11g
speeds of ~4 MB/s despite the hotspot being recognised as n
. This can be worked around by plugging the USB into one of the non-reserved StepMania slots (yep, we’ve got that set up too) and using the CLI to copy whatever, mount
ing if necessary.
Other Features
If you have wireless access to the cabinet with everything Linux has to offer, you have a lot of power at your hands to do some cool shit with it. Here’s some of the other stuff we got going on:
- Nginx as a reverse proxy
- ufw for standard network protection (can’t hurt having it)
- Apache HTTP Server for serving basic web stuff
- .NET Core to run my deployed apps
[1] Any regular can ask for the keyboard, and so we had a player who would... fill the cab with their low-quality, 20-minute simfiles.
To counter-act this, on the OG Windows PC, we got rid of the desktop by changing its shell from explorer.exe
to OpenITG. (The cool thing by doing it this way is – just like you’d know when Explorer crashes – if the game does, Windows will boot it up again.) Except that this player eventually learnt the solution of bringing up Task Manager to start Explorer. However, that’s Windows, and I’m confident they wouldn’t know how to navigate Ubuntu.
In that similar vein, I’m actually reluctant to share the ins and outs of the PC with any of the staff, in the event the curiosity of a ‘tech’ gets the better of them and breaks something. Most technicians are of the hardware kind, so it’s highly unlikely I’ll trust someone unless they can prove to me that they know their way around Linux.
[2] Linux, because it’s free. The old PC was running on Windows XP, which I didn’t have the CD and service packs readily available at that time.
Actually, the interim PC I used for the meantime was Windows 8.1. Let’s not get into how tedious it was to make that arcade-ready and performant within 2 GB of RAM. Windows Defender please...