Forums » StepMania Releases » StepMania as an AppImage

1
Hello. I wasn't sure where to post this topic, but anyway... I have created AppImages of both StepMania 5.0.12 and 5.1 (Beta 2) that run on most Linux 64-bit distributions.

An AppImage is basically a single portable executable that works on the most popular Linux distributions without the need to install additional dependencies. They are similar to Windows .exe files, but AppImages are stand-alone and distributed as a single file.

I only had to change something in RageFileManager.cpp (inside the "GetDirOfExecutable" function, around lines 226-228) to make them work as an AppImage. In short: I re-assigned the "sPath" variable to the value returned by /proc/self/exe instead of using argv0:

char buffer[1000] = { 0 };

readlink("/proc/self/exe", buffer, sizeof buffer);
sPath = buffer;

This would make StepMania load its data from the same directory as the executable and not from the path provided by argv0 or the current working directory, which is a requisite for AppImages.

-

Downloads:
StepMania-5.1-f1ebe8d-x86_64.AppImage
StepMania-5.0.12-x86_64.AppImage

-

To run the AppImage, you need to give it executable permissions with:

chmod +x StepMania-5.0.12-x86_64.AppImage

Or:

chmod +x StepMania-5.1-f1ebe8d-x86_64.AppImage

Then just double-click on the file or run it in a terminal like ./StepMania-5.0.12-x86_64.AppImage

Where do I install songs, themes, etc.?

By default, StepMania will create a directory named ".stepmania-5.0" (for 5.0.12) or ".stepmania-5.1" (for 5.1) inside your Home folder. This is where you'll want to install songs, themes, noteskins and other stuff. It's a hidden directory, so you'll need to tell your file manager to display hidden files and folders (usually by pressing Ctrl+H). Optionally, you can modify the "Preferences.ini" file located in the Save directory to add a custom songs folder or additional folders.

Lastly, these versions of StepMania do not have a loading window because I compiled them without GTK so I didn't have to bundle any GTK libraries in them (which is a mess when creating AppImages, btw).

-

In theory, the AppImages should work on any modern Linux distribution. They have been tested on the following distributions:
-Ubuntu 16.04 (used for building), 18.04 and 20.04
-Debian 9, 11 and 12
-Manjaro

I hope I am not breaking any rules or whatever for doing this though. I'm just trying to help and provide users with an easy and quick method to play StepMania on Linux without having to compile the source code from scratch or install dependencies manually. It would be nice to have an AppImage for OutFox too, but I think that one would have to be built on Ubuntu 16.04 as well (or 17.10 because that was the last version where the Mesa libraries do not depend on the GLVND stuff).

Last edited: 29 July 2023 9:23pm

Reply