6/27/21 EDIT: There are a few issues with the current OutFox build + Pi (at least for me) that are currently being discussed here. Nothing that permanently blocks you from playing, although it may result in a couple OutFox restarts needed. I will remove this note and update the below article when a working fix is found, either a manual fix or a OutFox update.
Seeing the relative successes of others out on the internet, I recently acquired my first Raspberry Pi for the purpose of turning it into a dedicated DDR machine, since my main computer moved where my Cobalt Flux pad can’t (or at least shouldn’t) follow. With this, I could again play to my heart’s content.
- A Raspberry Pi 2 or later. I’m using a Raspberry Pi 4B with 4 GB of RAM.
- SD card for storage of OutFox, plus the Pi OS. I recommend at least a 16 GB card, but having larger amounts of content (>1000 songs, or a fair amount of videos or themes) may require more.
- A power cable to power the Pi. Make sure it supplies the recommended amount of power.
- HDMI cable to hook up the Pi to a monitor or TV
- Keyboard and mouse to control the Pi, at least until it’s fully set up
- DDR pad connected to the Pi via USB
- (Optional but recommended) Cooling system for your Pi, such as a fan, to enable overclocking and increase performance.
- (Optional but recommended) On/off button for your Pi. This may come as part of your case, or your power cable, or may also be something you program yourself.
And now let’s get into the process:
- Setup Raspberry Pi OS
You may have gotten your Raspberry Pi like I did with a SD Card, with the OS pre-installed. If not, you can download the Raspberry Pi imager to install the OS on the SD card. Raspberry Pi OS with desktop is recommended, but you can install Lite or any other of the included operating systems if you know what you’re doing. Some of the OSs have different use cases.
There is a 64-bit beta of Raspberry Pi OS available (choose the latest available build from the link), which is generally recommended for use on newer Raspberry Pi models so you can get the most out of your Pi. I originally installed the standard 32-bit version, but then thought better of it, installed the 64-bit version, and experienced significantly better OutFox performance (case in point: 64-bit was better with OutFox WITHOUT overclocking the pi than the 32-bit was WITH overclocking). So yeah, do it if you have a RP 3 or 4 that supports 64-bit.
If you already have an OS and don’t know whether it’s 32 bit or 64 bit, go and type ‘uname -m’ into the console. If it shows something like armv7, you have 32-bit. armv8 indicates 64-bit. You can reinstall your OS at any point if you’d like, however, installing a new OS will wipe your entire SD card and you’ll have to start from square 1.
- Download/install Stepmania Project OutFox
Project OutFox is a current in-progress continuation of Stepmania, although lately it’s taken on a new roadmap as being a general-use rhythm game engine. They seem to have done a great job with it so far, and new alphas are typically released every month or two, although 2021 has been a lot more unpredictable for release timing. Since last year, they’ve also been including Linux ARM builds, which are specifically supposed to work with Raspberry Pi (2 or later). The alpha version I’m using for this article initially is 4.9.8, released late April 2021.
If a Linux ARM build is not available for the latest alpha, look to the past release. Linux ARM builds may be uploaded a few days after an alpha’s initial release.
You’ll want to know if you’re running 32 or 64 bit OS on your Pi so you know which to download. As discussed beforehand, if you can run a 64 bit OS, you’ll be doing yourself a favor by taking advantage of it.
Once you’ve got it downloaded, you’ll need to install the libopengl0 package – open up the terminal and type ‘sudo apt install libopengl0’. This is described in the faqs as for Ubuntu 20.04-based Linux distributions. On Raspberry Pi OS, failure to install this didn’t give me an error, but the game simply failed to start after the splash screen loading. After installing, though, I was good to go.
- “WAIT, WHERE’S THE SOUND?”
If you’re using 64-bit OutFox, the current build may require an additional fix if you’re not hearing audio. I found this fix on a reddit post – basically you’re going to want to locate OutFox’s preferences.ini file (which for me was located in ~/.stepmania-5.3/save/) and change the SoundDevice entry (which was actually blank for me initially) to ‘SoundDevice=plughw:1,0’ or ‘SoundDevice=plughw:2,0’. The one with the 2 was the one that worked for both me and the Reddit poster.
- Download all songs/themes/other addons
This is simple enough – search the web for any Stepmania themes, songs, and anything else you want. Anything labeled for StepMania should work in OutFox. OutFox itself only comes with about 4 songs, so that’s not going to keep you interested for long. The Zenius-i-vanisher site is a good place for content. For themes, check out their forums. For songs, check out the Games > DDR & DS > Simfiles section. You can either download them to your Pi directly, or do what I did (because I already had OutFox on my main computer) and transfer them from elsewhere via a USB stick or cloud storage service.
- While you’re at it, get a Pi power cable with an on/off button
A power button is something the Pi woefully lacks, so you have to supply your own or get one integrated with a case or power supply. Doing so will allow you to safely shut down the Pi without having to unplug the system each time. Without a mouse and/or keyboard constantly hooked up to your Pi, you won’t be able to do a safe shutdown without a external button.
- Create script to automatically start game on boot
Since I didn’t want to have to use a mouse or keyboard once the system was set up, automatically starting OutFox on boot is a must. The third option in this article worked like a charm. Once that’s set up, the only thing you would really need is a DDR pad to play!
- Tweak options in Stepmania for performance
A note before we begin tweaking for performance – I suggest doing this slowly, as a beta OS (64-bit Raspberry Pi OS) + relatively niche usecase (Raspberry Pi) + alpha software (OutFox) means things can potentially go wrong more often than you’d like. And if things do go wrong, the OutFox team is pretty good about squashing submitted bugs.
With our hardware looking good, now it’s time to boot OutFox. Adjust graphic settings and see how it reacts. Of course, your chosen resolution will be a huge factor. I would suggest starting at something like 1280×960 (for 4:3) or 1280×720 (720p, for 16:9). After that, you’ll also want to look at texture resolution (try starting from 512), texture color (16 bit), and turning fast note rendering on (which seems to give a significant boost). Your theme also contributes to performance, so try switching between themes as well. The default OutFox theme runs pretty well (as expected), it’s the other themes you have you’ll need to check on. You can also turn on ‘show stats’ in the graphic options to see your FPS at all times while you do this. It’s all about finding a balance between frame rate and graphical performance.
- (Optional) Alter config.txt to enable overclocking for extra performance
See here for the various config.txt options you have at your disposal to alter the behavior of your Pi. Using this as a starting point, I started tweaking with overclocking my Pi. At first, I ended up using more conservative settings than those shown, as I did not have a cooling fan (just a roomy case with simple heatsinks). I found arm_freq=1750 to be stable. You could push these values higher with a fan or other cooling options. Like mineral oil, I guess.
With a fan cooling the Pi, I was able to bump it up to arm_freq=2000 safely.
Once you set these overclocking options, be on the lookout for icons in the upper-right corner of your pi’s screen. Lightning bolt icons mean your pi is not getting enough power (increase over_voltage or decrease overclocking in this case). Temperature icons mean your Pi is getting overheated (decrease overclocking or improve cooling to your Pi in this case). Having your Pi regularly overheat can shorten its life. And also, some overclocking options (but not the ones provided here as far as I know, at least at the values shown) can void your warranty.
Once all that is done, sit back and enjoy the fruits of your labor! And then stand up and dance, because this isn’t the sitting kind of game!
My general experience is that I started out getting sudden crashes, notes juttering in place, and/or audio loss every song or two (each session). But then there are times when I can get through 10 songs without anything odd happening. If something goes wrong, just quit and start OutFox up again!