19,987
edits
m (more wording tweaks before adding instructions for running non-AE Oni) |
(solution for the sound problem, though it turns out to be due to my testing with a VM, so probably no one needs this advice but me) |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{UpdatedForOniX|1.0.0}} | {{UpdatedForOniX|1.0.0}} | ||
There is no official support for Oni in the Linux OS family. Nevertheless, it is still possible to run the game on Linux. The [[Anniversary Edition]] Installer can be made to run as well | {{Hatnote|If you are looking for help running Oni on the Steam Deck, see [[Playing on the Steam Deck]] for much simpler instructions.}} | ||
There is no official support for Oni in the Linux OS family. Nevertheless, it is still possible to run the game on Linux. The [[Anniversary Edition]] Installer can be made to run as well. | |||
== | ==Installing the needed packages== | ||
; Wine | ; Wine | ||
: A compatibility layer for running Windows applications on a Linux machine. | : A compatibility layer for running Windows applications on a Linux machine. | ||
# Open a Linux terminal and search for Wine packages. You need to know what your package manager is: apk, apt, dnf, emerge, pacman, yum, zypp…. Tell the package manager to search for "wine" and look for a 32-bit Wine package in the results. The package might be called "wine32" or "wine.i686". If you don't see either of those options, you may need to enable 32-bit architecture with a command such as (in Ubuntu) <code>sudo dpkg --add-architecture i386</code> followed by <code>sudo apt update</code>, then search again. In order to install Wine, the package manager may also need to install a ton of dependencies if this a fairly new Linux install, but it will probably not take too long. | |||
; Winetricks | ; Winetricks | ||
: A helper app for configuring various parts of Wine-created compatibility environments. In some distros, Winetricks is installed alongside Wine itself. | : A helper app for configuring various parts of Wine-created compatibility environments. | ||
# In some distros, Winetricks is installed alongside Wine itself. However it generally needs to be installed as a separate package, so search for "winetricks" and install it if it already hasn't been. | |||
You'll need this for installing the Anniversary Edition, if you want it (the game can be patched to run without installing the AE; this is covered below): | You'll need this for installing the Anniversary Edition, if you want it (the game can be patched to run without installing the AE; this is covered below): | ||
| Line 32: | Line 34: | ||
# Open a Linux terminal, export the "Oni" prefix file, navigate to the folder with the contents of the mounted CD, and initiate the installation process. | # Open a Linux terminal, export the "Oni" prefix file, navigate to the folder with the contents of the mounted CD, and initiate the installation process. | ||
#: <code>export WINEPREFIX=/full/path/to/prefix</code> | #: <code>export WINEPREFIX=/full/path/to/prefix</code> | ||
#: <code>cd /path/to/Oni/CD</code> (you may have to open the CD in your file manager to see its path, e.g. /run/media/ | #: <code>cd /path/to/Oni/CD</code> (you may have to open the CD in your file manager to see its path, e.g. /run/media/[user name]/001228_1801/ or /media/[user name]/001228_1801/) | ||
#: <code>wine OniSetup.exe</code> | #: <code>wine onisetup.exe</code> or <code>wine OniSetup.exe</code> (the capitalization of the EXE varies) | ||
# During the installation process, it is recommended to '''NOT''' place the game inside the prefix file's compatibility environment folder (that is, do '''not''' place it anywhere on the faux "C:\" drive). Instead, choose an appropriate place somewhere in your Linux machine's directory tree. The computer's native directory tree should be mapped by default as a different faux drive (usually "Z:\"). | # During the installation process, it is recommended to '''NOT''' place the game inside the prefix file's compatibility environment folder (that is, do '''not''' place it anywhere on the faux "C:\" drive). Instead, choose an appropriate place somewhere in your Linux machine's directory tree. The computer's native directory tree should be mapped by default as a different faux drive (usually "Z:\"). | ||
# The game should install without problems. When GLSetup runs and offers to install OpenGL, make sure to say '''"No"'''. | # The game should install without problems. When GLSetup runs and offers to install OpenGL, make sure to say '''"No"'''. | ||
| Line 66: | Line 68: | ||
==Troubleshooting== | ==Troubleshooting== | ||
;Gunfire kills the frame rate | |||
Some users experience a large drop in frame rate when certain actions occur such as firing a gun. This is a sound-related bug which indicates that you didn't follow step 3 under "Preparing the Wine prefix" :-) Make sure to install msacm32 with winetricks. | Some users experience a large drop in frame rate when certain actions occur such as firing a gun. This is a sound-related bug which indicates that you didn't follow step 3 under "Preparing the Wine prefix" :-) Make sure to install msacm32 with winetricks. | ||
;Sound stutters so badly that it's mostly inaudible | |||
This is only known to happen if you are running Linux inside of a VM, particularly Fedora Linux. The audio server, pipewire, does not allow enough headroom for virtualization. This can be fixed by making a copy of the config file: | |||
:<code>mkdir -p ~/.config/wireplumber/main.lua.d</code> | |||
:<code>cp /usr/share/wireplumber/main.lua.d/50-alsa-config.lua ~/.config/wireplumber/main.lua.d</code> | |||
…and then editing ~/.config/wireplumber/main.lua.d/50-alsa-config.lua to change this portion of the file as follows: | |||
["vm.node.defaults"] = { | |||
["api.alsa.period-size"] = 2048, | |||
["api.alsa.headroom"] = 16384, | |||
}, | |||
You may be able to get by with the numbers 1024 and 8192, but if that doesn't work, try raising them to the above figures. Unfortunately, the higher the numbers, the more latency Oni's sound will have. | |||
[[Category:Oni Support]] | [[Category:Oni Support]] | ||