====== Wine Distributions For GNU/Linux ======
This page covers a few notable builds of Wine and software often distributed with Wine, Wine Managers, and their compatibility with visual novels. It explains the strengths of these Wine builds and how to use them.
===== Using Bottles as a Wine Manager =====
[[https://usebottles.com|{{visualnovel:bottles-logo.svg}}]]
While this guide is designed around using Lutris for managing visual novels, we also recommend [[https://usebottles.com|Bottles]]. Bottles makes managing your Wineprefxes easy, while Lutris leaves you to do this on your own unless you're using their installer wizard.
Here is a brief overview of the advantages and limitations of Bottles:
^Advantages ^Limitations ^
|Can be installed on any distribution with Flatpak.|There is no installer wizard for visual novels, so you need to add the installer executable as a shortcut, install the game, delete the shortcut, and add a shortcut for the launch executable. Lutris has an installer wizard that automatically finds the launch executable in most cases.|
|Smoothly integrates with Gamescope Flatpak.|You can't add native visual novels to the library. Bottles is a Wine manager, not a game manager.|
|You can manage all your visual novels in a single Wineprefix and easily create dedicated Wineprefixes with special configurations.|If Bottles can't find cover art for the game, you will need to manually link cover art in the ''library.yml'' file. See this post for a guide: https://forum.usebottles.com/t/guide-custom-cover-arts-in-library-view/673|
|You can easily install compatibility components like ''cjkfonts'' into an entire bottle with the click of a button.| |
|Includes handy tools like Task Manager, Snapshots, and Backups.| |
|Automatically grabs cover art from the web based on the executable name.| |
|Simple, beautiful interface.| |
==== Basic Bottles Setup ====
You can install Bottles with Flatpak (check your distribution's wiki for instructions on installing Flatpak):
flatpak install com.usebottles.bottles
There are three ways to set up your games in Bottles:
* [[#filesystem-home|Grant Bottles Access to Your Home Directory]]
* [[#move-game-files|Move Your Game Files]]
* [[#symlink|Symlink Method]]
=== Grant Bottles Access to Your Home Directory ===
This method grants Bottles access to all the files in your home directory. This is the easiest method of ensuring Bottles can access your game files properly, but **continue at your own risk**.
Install [[https://flathub.org/apps/com.github.tchx84.Flatseal|Flatseal]]. Under the **Filesystem** section, enable ''%%filesystem=home%%''. Restart Bottles if it was already open.
Click **Add Shortcuts...** and add your game executable.
=== Move Your Game Files ===
Open Bottles and create a new Gaming bottle (call it ''vns'').
Move your game files to this directory: ''~/.var/app/com.usebottles.bottles/data/bottles/bottles/vns/drive_c/Program Files''
Click **Add Shortcuts...** and add your game executable.
=== Symlink Method ===
You can keep your game files where they are and link them to Bottles with a symlink. You need to install Flatseal first.
flatpak install com.github.tchx84.Flatseal
Open Flatseal and grant Bottles the **All User Files (filesystem=home)** permission. Then, open Bottles and create a new Gaming bottle (call it ''vns'').
Close bottles and go to the directory of the new bottle you just created in a Terminal, replacing ''[YOURUSERNAME]'' with your own username:
cd ~/.var/app/com.usebottles.bottles/data/bottles/bottles/vns/drive_c/[YOURUSERNAME]
You need to create a symbolic link to your game directory. If your game directory is ''~/Games'', then the command will look like this:
ln -s ~/Games games
Now you can add the game. Open Bottles and click **Add Shortcuts...** Click through that new ''games'' directory, which is a link to your ''~/Games'' directory, and find your game executable.
----
If you're trying to play a Japanese language visual novel, click the **Settings** button for the bottle, and scroll down to **Environment Variables**. Set these two variables:
* Variable Name: ''LANG''
* Key: ''ja_JP.UTF-8''
* Variable Name: ''TZ''
* Key: ''Asia/Tokyo''
You can now launch the game by clicking the ▶ button.
=== Installing Compatibility Components and Other Dependencies ===
Bottles doesn't use Winetricks—it has its own dependency management system that lets you easily install compatibility components for your bottle.
To get a list of available dependencies, click **Dependencies**. Many Japanese language visual novels require ''cjkfonts'' to display Japanese text correctly, so if you encounter garbled text, we recommend installing it.
=== Gamescope Integration ===
If you want to use Gamescope, you need to close Bottles and install it with:
flatpak install com.valvesoftware.Steam.Utility.gamescope
You can now re-open Bottles and configure Gamescope inside the bottle's **Settings**.
===== Lutris Runtime =====
Wine relies on several libraries for providing the functionality a visual novel needs. Lutris has made this easy by shipping as many of these dependencies as possible in the Lutris Runtime, which comes with Lutris. Lutris will automatically update the runtime on every launch.
The Lutris Runtime includes DXVK, VKD3D-Proton, and Winetricks. You can see all of the dependencies the Lutris Runtime installs in the ''%%~/.local/share/lutris/runtime%%'' directory.
You can disable the Lutris Runtime for a particular game inside the **System Options** tab, but this usually isn’t necessary. For debugging issues with the Lutris Runtime, see the [[https://github.com/lutris/docs/blob/master/LutrisRuntime.md#debugging-runtime-issues|Lutris Documentation.]]
===== Wine-GE-Custom =====
Glorious Eggroll provides Wine-GE Custom for Lutris. It includes extra patches for games that depend on Media Foundation for video playback, so it might be worthwhile giving this build a try in Lutris if you’re having video playback issues with a visual novel.
[[https://github.com/GloriousEggroll/wine-ge-custom#installation|Get Wine GE Custom here.]]
===== Steam Play/Proton =====
CodeWeavers has worked with Valve to create Proton, which is a collection of Windows compatibility tools designed to allow Windows games to run on GNU/Linux. It’s built-in to Steam. To enable Proton, click **Steam** in the top-left corner of the Steam client, then click **Settings**, go to **Compatibility**, and make sure **Enable Steam Play** is on.
Some games on Steam have a Japanese language option. If the game has Japanese text, you may need to insert ''%%LANG=ja_JP.UTF-8 %command%%%'' as a launch option to get Japanese text to display correctly.
If you're having trouble with DXVK, you can fallback to WineD3D’s OpenGL renderer with this launch option: ''%%PROTON_USE_WINED3D=1%%''
===== CrossOver =====
CodeWeavers is responsible for upstreaming over 50,000 patches to Wine, hosting the WineHQ and AppDB websites, hosting the annual WineConf developer conference, and employing many Wine developers. Their main product since 2002 has been [[https://www.codeweavers.com/crossover|CrossOver]], which is a commercial version of Wine with a proprietary graphical interface. Crossover is designed to be easy to use and to better support certain software((CrossOver Linux has much better support for Microsoft Office than upstream Wine.)) with hacks that aren’t possible to send upstream.
CrossOver, in our experience, does not work any better for visual novels than upstream Wine and uses an older base than Wine Staging. It's possible to add the compatibility enhancements mentioned on our [[visualnovel:problems#gnu_linux|Troubleshooting section]] to a CrossOver bottle if you prefer the interface, however.
CrossOver is currently the best Wine offering for macOS players and much of their energy is spent getting games working on macOS. Apple has made it too difficult for upstream Wine to continue supporting the platform in any major way, but CrossOver has managed to keep up with the platform.