Linux (Konami)
Synopsis
Konami arcade games and associated community tooling are built to run on Windows.
This guide will document the best currently known ways to get games working on Linux systems.
Compatibility
ONLY the following game and versions are confirmed to work with the process described in this guide.
| Game | Version(s) | Caveats (if any) |
|---|---|---|
| Sound Voltex | Exceed Gear |
Subscreen clicks don't work |
| DanceDanceRevolution | World |
|
| Mahjong Fight Girl |
This guide was primarily written targetting arch-based systems running KDE and pipewire.
Instructions should still be distro and DE agnostic, but your mileage may vary.
Pre-requisites
- A Linux system with:
pipewireas an audio backendwinewith wow64 included (default on arch since June 2025)winetricks curl unzipinstalledgstreamer gst-plugins-good gst-plugins-ugly gst-libavfor codecs (package names may vary)
- Compatible game data placed inside a
📂contentsdirectory - Your game's regular setup guide opened in another tab
Extra requirements for NixOS
spice2x requires an optional wine feature which NixOS does not enable by default.
Apart from that, a patch for winetricks is needed due to weirdness with winetricks on NixOS with WoW64 wine.
To fix this, copy this to your confiuration:
environment.systemPackages = [
(
pkgs.wine-with-pcsclite.override {
wineBuild = "wineWow64";
}
)
];
nixpkgs.overlays = [
(
final: prev: {
wine-with-pcsclite = prev.wine.overrideAttrs (old: {
buildInputs = old.buildInputs ++ [final.pcsclite];
configureFlags = old.configureFlags ++ ["--with-pcsclite"];
});
winetricks = prev.winetricks.overrideAttrs (old: {
patches = [
(final.fetchpatch {
# make WINE_BIN and WINESERVER_BIN overridable
# see https://github.com/NixOS/nixpkgs/issues/338367
url = "https://github.com/Winetricks/winetricks/commit/1d441b422d9a9cc8b0a53fa203557957ca1adc44.patch";
hash = "sha256-AYXV2qLHlxuyHC5VqUjDu4qi1TcAl2pMSAi8TEp8db4=";
})
];
postInstall =
old.postInstall
+ ''
sed -i \
-e '2i : "''${WINESERVER_BIN:=/run/current-system/sw/bin/wineserver}"' \
-e '2i : "''${WINE_BIN:=/run/current-system/sw/bin/.wine}"' \
"$out/bin/winetricks"
'';
});
}
)
];
Automated setup (for spice2x compatible games)
- Download the
sp2x-linux-setup.shscript from NotAkitake/sp2x-linux-setup - Place it next to your
📂contentsdirectory contaning compatible game files - Make the script executable
chmod +x sp2x-linux-setup.sh - Run the script and follow instructions
Manual setup
This section will mostly describe what the automated process above achieves
Installing spice2x
This process is largely the same as windows and can be found in your game's setup guide.
Simply place the spice.exe or spice64.exe executable inside 📂contents.
We won't need spicecfg.exe however.
Instead we will later pass -cfg as a launch argument to the main spice2x executable later.
NVIDIA Stubs
For ALL graphics cards: If your game's setup guide has a Additional steps for AMD and Intel graphics cards warning in its Installing spice2x section, do what it says.
Wine prefix
Double check commands
We provide ready-made command for simplicity, however don't blindy copy and execute them.
ALWAYS double check command before running them, and substitute REPLACE_THIS_PATH with your own location.
Initializing
-
Create an empty
📂prefixdirectory in the location of your choosing
We advise creating a new prefix for every game and placing it next to📂contents. -
Run the following command to initialize a new wine prefix without being prompted for mono or gecko.
Common dependencies
Some dependencies are required across most games, install them to your prefix using winetricks as follows:
Game-specific dependencies
If there is no tab for your game, you may skip this step
(optional) PipeWire audio sink
You can create an audio device games will accept that routes audio to your desired hardware
It may not be necessary for all games as it depends on your specific setup and game.
You could try following the rest of the guide without this virtual sink first to see whether you need it or not.
- Create the
.config/pipewire/pipewire.conf.ddirectory in your home directory if it doesn't already exist
- Create a
spice2x-sink.conffile in that directory containing:
context.modules = [
{
name = libpipewire-module-loopback
args = {
audio.position = [ FL FR ]
capture.props = {
media.class = Audio/Sink
audio.format = S16LE
audio.rate = 44100
audio.channels = 2
node.name = spice2x41
node.description = "spice2x @ 44100Hz"
}
playback.props = {
node.passive = true
node.name = spice2x41.output
node.description = "SPICE2X 44100Hz OUTPUT"
target.object = "alsa_output.pci-0000_04_00.6.HiFi__hw_Generic_1__sink"
audio.format = S16LE
}
}
}
]
The audio.rate may need to be set to 48000 on a per game-basis, but for the games covered here, 44100 is fine.
The target.object set above means audio will be routed the first audio device it finds.
If you have multiple audio devices available and want to make sure it outputs to a specific one, run:
pw-cli list-objects | awk '/node.name/ {name=$0} /media.class/ && /Audio\/Sink/ {gsub(/.*= "|"/,"",name); print name}'
Replace the target.object device with the output line corresponding to your desired output device.
For example:
target.object = "alsa_output.usb-Focusrite_Scarlett_Solo_4th_Gen_S1APY0Z3611B4E-00.HiFi__Line1__sink"
- Finally, save and exit then restart pipewire. On systemd distros you may do it by running:
(optional) Launcher scripts
This section will help you create two bash scripts you may use to start and configure your game
They are not mandatory but very handy to have, rather than remembering commands to run spice executables with the right prefix, paths, arguments, etc..
Game start
Let's create the main launch script first, which will also be used by our second script.
- Next to your contents directory, create a
launch.shfile containing:
#!/usr/bin/env bash
# Game Launcher
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
export WINEARCH=win64
export WINEPREFIX="REPLACE_THIS_PATH/prefix"
# Default arguments
ARGS=""
# Optional: Add arguments per line
# ARGS="$ARGS -url localhost:8083" # Network URL
# ARGS="$ARGS -p 01FXXXXXXXXXXXXXXXXX" # PCBID
# Append args to this script
ARGS="$ARGS $*"
cd "$SCRIPT_DIR/contents" || exit
wine "spice64.exe" $ARGS
-
On the first highlighted line: make sure
WINEPREFIXpoints to your game prefix created earlier -
On the second highlighted line: replace
spice64.exewithspice.exeif necessary -
Make the script executable by running
chmod +x launch.sh
Game config
To get a graphical interface replicating what spicecfg.exe does, we can simply call our previous script and pass -cfg as an argument.
- Next to your previous script, create a
config.shfile containing:
#!/usr/bin/env bash
# Config Launcher
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
"$SCRIPT_DIR/launch.sh" -cfg
-
On the last line, make sure the file name matches the previous script
-
Make the script executable by running
chmod +x config.sh
Try executing config.sh
The spice2x configuration window for your game should appear.
Your game should also be detected and show in the top right!
If your game isn't detected, it's highly likely paths are wrong somewhere in your scripts.
Game-specific last steps
If there is no tab for your game, you may skip this step
- You need to patch
Shared Mode WASAPIto ensure audio comes through wine.
Either use the previously createdconfig.shto start spicecfg, or use the command in the next section.
If you don't know how patches work, follow instructions in our spice2x patching guide.
-
You need to set your monitor orientation to portait before playing
-
OR If you want to play the game windowed and keep your display in landscape orientation:
- Create a
wine_desktop.regfile containing:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Explorer] "Desktop"="Default" [HKEY_CURRENT_USER\Software\Wine\Explorer\Desktops] "Default"="1080x1920"- Fix the paths in the command below and run it. Then feel free to delete the
.regfile:
- Create a
What's next?
Linux-specific instructions are over
Head to your game's setup guide, straight to the "Configuring spice2x" section.
- IF you opted to use the PipeWire audio sink, set it as your default audio device before starting the game
- Skip the
Configuring audiosection - Skip any section asking you to install VCRedist and/or DirectX, our prefix takes care of that
-
Use the previously created
config.shinstead of spicecfg, andlaunch.shto start the game
OR If you opted not to create scripts, instead use this, fixing the paths and spice executable name:cd REPLACE_THIS_PATH/contents && WINEARCH=win64 WINEPREFIX=REPLACE_THIS_PATH/prefix wine "spice64.exe" -cfgAnd use the same command without the
-cfgargument to start the game.