====== Playing Visual Novels on GNU/Linux ====== This page explains how to play Windows-only visual novels on GNU/Linux, but there are some native GNU/Linux visual novels available, which we touch on [[#native_gnu_linux_games|at the end of this guide.]] There's no need to be a command-line wizard—aside from pasting a few commands into your terminal in the beginning, you'll be living in graphical programs most of the time. If your visual novel was released on Steam, see the [[visualnovel:winedistros#steam_play_proton|Proton]] section. If you bought your visual novel from anywhere else, the rest of this guide is for you! What are you waiting for, Senpai? Join the **GNU/Linux Visual Novel Club**! ====== Using Wine ====== Most visual novels are designed only to run on Windows, but many can likely run on GNU/Linux through Wine. Wine works by providing Linux-compatible replacements for the Windows features these games rely on.((For a more technical explanation of how Wine works, see this article by CodeWeavers: https://www.codeweavers.com/blog/aeikum/2019/1/3/working-on-wine-part-1-the-wine-ecosystem)) However, most visual novels that are encumbered by DRM do not work in Wine. You should first check [[visualnovel:problems#drm_and_region_restrictions|if the visual novel you want to play is DRM-free]]. ===== Setting Up Your Environment ===== The first step is to install Wine for your distribution and setup your environment to work with Japanese visual novels. We recommend Wine Staging, as it contains many useful but experimental patches not found in the Wine Development branch. * [[#pills-ubuntu|Ubuntu]] * [[#pills-mint|Linux Mint]] * [[#pills-fedora|Fedora]] * [[#pills-suse|openSUSE]] * [[#pills-debian|Debian]] * [[#pills-arch|Arch Linux]] ==== Ubuntu ==== These steps may not apply to all Ubuntu-based distributions. To install Wine on an Ubuntu-based distribution, you should refer to your distribution's documentation. Open the **Terminal** program and enable 32-bit libraries: sudo dpkg --add-architecture i386 Import the key for the WineHQ repository: sudo mkdir -pm755 /etc/apt/keyrings sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key You now need to add the WineHQ repository. The following command will automatically detect your Ubuntu version and add the relevant WineHQ repository: sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources sudo apt update Install Wine Staging with **all** recommended dependencies: sudo apt install --install-recommends winehq-staging If any of the above steps don't work, see the [[https://wiki.winehq.org/Ubuntu|WineHQ Ubuntu]] page. We now need Lutris so we can install and manage our games. You can get the latest version of Lutris from https://github.com/lutris/lutris/releases/latest. You need to download the ''.deb'' package and install it: sudo apt install ./lutris_x.x.xx_all.deb You may need to install some unmet dependencies before you can install the package: sudo apt --fix-broken install When a new version of Lutris is released, you will need to repeat the process. Open the **Language Support** program, click **Install / Remove Languages**, select **Japanese**, and click **Apply**. This will enable Japanese Locale and install a set of language packs with Japanese fonts. ==== Linux Mint ==== Open the **Terminal** program and enable 32-bit libraries: sudo dpkg --add-architecture i386 Import the key for the WineHQ repository: sudo mkdir -pm755 /etc/apt/keyrings sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key You now need to add the WineHQ repository. The following command will automatically detect your upstream Ubuntu version and add the relevant WineHQ repository: sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/$(awk -F= '{a[$1]=$2} /DISTRIB_CODENAME/ {print $2}' /etc/upstream-release/lsb-release)/winehq-$(awk -F= '{a[$1]=$2} /DISTRIB_CODENAME/ {print $2}' /etc/upstream-release/lsb-release).sources Now pull the latest updates from the WineHQ repository: sudo apt update Install Wine Staging with **all** recommended dependencies: sudo apt install --install-recommends winehq-staging If any of the above steps don't work, see the [[https://wiki.winehq.org/Ubuntu|WineHQ Ubuntu]] page. We now need Lutris so we can install and manage our games. The packaged version of Lutris is old, so you'll need to install the Flatpak version. Open **Software Manager**, search for Lutris, and install **Lutris (Flathub)**. Go to the **System Settings**, open **Languages**, and click **Install / Remove Languages**, click **Add**, select **Japanese, Japan**, and click **Install**. Select **Japanese, Japan** and click **Install language packs**. This will enable Japanese Locale and install a set of language packs with Japanese fonts. ==== Fedora ==== Open the **Terminal**. Install Wine and Lutris to pull in all the recommended dependencies: sudo dnf install wine lutris Japanese Locale is enabled by default, so you only need to install the Japanese Language Pack: sudo dnf install langpacks-ja ==== openSUSE Tumbleweed ==== openSUSE enables Japanese Locale by default and pre-installs Japanese fonts, so you only need to install Wine and Lutris. Open YAST Software Management and search for Wine. Tick the box next to ''wine-staging''. Search for Lutris and tick the box for ''lutris'' too. Click **Accept** and click **Continue** to install **all** the recommended dependencies. ==== Debian ==== Open the **Terminal**. You need to switch user to root so you can make system-level changes. This will depend on how you've set up your system. If you set the root password, run this command: su - If you **didn't** set the root password, run this command: sudo su Enable 32-bit libraries: dpkg --add-architecture i386 Import the key for the WineHQ repository: mkdir -pm755 /etc/apt/keyrings wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key You now need to add the WineHQ repository. The following command will automatically detect your Debian version and add the relevant WineHQ repository: wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources apt update Install Wine Staging with **all** recommended dependencies: apt install --install-recommends winehq-staging If any of the above steps don't work, see the [[https://wiki.winehq.org/Debian|WineHQ Debian]] page. We now need Lutris so we can install and manage our games. There are several ways to install Lutris. Flatpak is the easiest way to keep it up-to-date, but if you just want to install it as a normal ''.deb'' package, download the latest release of Lutris for your version of Debian from here: https://software.opensuse.org/download.html?project=home%3Astrycore&package=lutris You can then right-click on the file, select **Open With...** and click **Software Install**. Run this command and enable the ''ja_JP.UTF-8'' locale with the Spacebar key: dpkg-reconfigure locales Install a set of Japanese fonts: apt install fonts-noto-cjk fonts-ipafont fonts-vlgothic You can now leave the root environment with ''exit'' or CTRL+D. ==== Arch Linux ==== Install ''wine-staging'' and ''lutris'' with all optional dependencies: sudo pacman -S wine wine-staging lutris giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 libpulse lib32-libpulse alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo libxcomposite lib32-libxcomposite libxinerama lib32-libxinerama ncurses lib32-ncurses opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs lib32-gst-plugins-good lib32-gst-plugins-base-libs lib32-gstreamer gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav vulkan-icd-loader lib32-vulkan-icd-loader cups samba dosbox (See https://www.gloriouseggroll.tv/how-to-get-out-of-wine-dependency-hell/ for an explanation of why these dependencies are necessary) Edit ''/etc/locale.gen'' and remove the ''#'' character from the beginning of the ''ja_JP.UTF-8 UTF-8'' line. Run ''sudo locale-gen'' to generate the Japanese locale. You need Japanese fonts to display Japanese characters. We recommend installing ''noto-fonts-cjk'' for good coverage, but it’s worth installing other Japanese fonts too.((Arch Linux suggests some additional Japanese fonts you could install: https://wiki.archlinux.org/title/Localization/Japanese#Fonts)) ---- ===== Installing Your Visual Novel ===== You've now setup Wine for playing visual novels! Next, find your game files. If you purchased a download edition that came in a compresed archive, you'll need to extract the files. If your game came on a physical disk, insert it into the disk drive. Now you can [[#using_lutris|install the game using Lutris.]] If you have a download edition with only a launch executable and no installation executable, you need to [[#from_the_terminal|create a Wineprefix]], then [[#lutris_configuration|add the game to Lutris]]. If you're having trouble with Japanese text not displaying properly, such as mangled filenames when extracting an archive, unreadable text files, or garbled text in the installer window and in-game, see [[visualnovel:problems#japanese_text_issues|Japanese Text Issues]]. ==== Using Lutris ==== Lutris is an all-in-one game manager for GNU/Linux. It supports various **Runners**; you can add native GNU/Linux games, games played through Wine, and games played through an emulator like Dolphin to your Lutris library. We recommend Lutris for both beginner and advanced users. Lutris has an installer wizard for Windows-only visual novels, which works well for most visual novels. Lutris uses DXVK by default, which requires you to have Vulkan drivers installed. Wine comes with its own graphics stack (WineD3D), which //can// work for many visual novels, but we recommend DXVK for better compatibility. If you don't want to use DXVK, or your GPU doesn't support Vulkan, you can toggle it off in the game's settings inside the **Runner Settings** tab or Lutris' **Preferences**. You can check if your GPU supports Vulkan here (most GPUs released since 2015 do): https://en.wikipedia.org/wiki/Vulkan#Support_across_vendors See the Lutris Documentation for [[https://github.com/lutris/docs/blob/master/InstallingDrivers.md|installing vulkan support for your distribution]]. By default, Lutris suggests ''%%~/Games/game-name%%'', but you may want to install your games in a directory like ''%%~/.local/share/Games%%'' to avoid cluttering your home directory. To change it, click the ≡ icon in the top-right, click **Preferences**, click **Global Options**, and set the path for **Default Installation Folder**. === Installing The Game === Once Lutris launches, follow these steps to install your visual novel: 1. Click the **+** icon in the top left, then select **Install a Windows game from an executable**. 2. Provide the **Game Name** and select **Windows XP 32-bit** as the preset. 2a. If you're installing a Japanese language visual novel, change the Locale to ja_JP.UTF-8. 2b. Click **Install**. 3. Click **Install** next to **wine**. 4. Accept the installation directory and click **Continue**. If you want to change it, we recommend setting the **Default Installation Folder**—instructions for this are above. 5. Click **Browse** next to **Select the setup file** and find your game installer. It's often named **Setup.exe**. 6. Click **Install**, wait for it to create the Wineprefix and pop up the installer window, and follow the prompts to install the game. 7. Wait for the game to install. The game will likely install inside of your new Wineprefix's ''drive_c/Program Files'' directory. 8. When the installer finishes, click **Launch** to launch the game. This video guides you through the installation process. {{visualnovel:install-h2o-in-lutris.mp4?400}} If you're playing a Japanese language game, see [[#configuring|Configuring]] for your next steps. Otherwise, if the game launches successfully, you're done! You can sit down and play your visual novel now! You may also want to [[#add_the_game_to_your_program_launcher|add the game to your program launcher]] so you can launch it without opening Lutris, or [[#finding_banner_images_and_cover_art|find some nice banner images and cover art for your game]]. If the game fails to launch, it's possible that Lutris is not picking up the correct directory for the launch executable. Look around your file manager to see if you can find the executable, and select it under **Game Executable** in **Game Options**. You can get to this menu by right-clicking the game and clicking **Configure**. If you get a "Bad Exe Format" error, try again with the **Windows 10 64-bit** preset, as this indicates the installer requires a 64-bit environment. If Japanese text isn't displaying properly, you may need to apply the [[visualnovel:problems#in-game_text_not_displaying_properly|fakejapanese quick fix]] to the Wineprefix Lutris created, then try the Lutris install process again with the same Wineprefix. If you have issues when playing the game, like the game [[visualnovel:problems#broken_media_playback|crashing when it tries to play a video]], or [[visualnovel:problems#japanese_characters_aren_t_displaying_properly|Japanese text not displaying properly]], see our [[visualnovel:problems#gnu_linux|Troubleshooting]] section for more assistance. === Configuring === These instructions apply if you installed a Japanese language visual novel. Right-click the game and click **Configure**. **System Options** * Under **Game Execution**, add a new environment variable. Use ''%%TZ%%'' as the key and ''%%Asia/Tokyo%%'' as the value for the environment variable. * Set **Locale** to ''%%ja_JP.UTF-8%%''. * You can configure **Gamescope** at the top of the tab, and get more options by enabling Advanced. Gamescope is useful for [[visualnovel:problems#fullscreen_is_broken_and_other_windowing_issues|solving windowing issues]] and for upscaling games, but you need to install it first. Click **Save** to finish configuring the game. You can launch it with the **Play** button. If you’re experiencing issues, click the dropdown button next to the **Play** button and click **Show Logs** so you can get a better understanding of what is going wrong. Then have a look at the [[visualnovel:problems#gnu_linux|troubleshooting section]] on our [[visualnovel:problems|Problems page]]. ==== From The Terminal ==== If you couldn't install the game through Lutris, or you don't want to use Lutris, you can use the **Terminal** to install your game. Some visual novels will only work in a 32-bit environment, and some will only work in a 64-bit environment, so create a 32-bit and 64-bit Wineprefix((A Wineprefix is a directory that contains all of the files and directories a Windows program expects, like many of the system libraries, the Program Files directory, and the Users directory. 32-bit is more mature than 64-bit, so we use 32-bit by default.)): mkdir -p ~/.local/share/wineprefixes WINEARCH=win32 WINEPREFIX=~/.local/share/wineprefixes/vn32 wineboot WINEARCH=win64 WINEPREFIX=~/.local/share/wineprefixes/vn64 wineboot We use the ''WINEARCH'' environment variable to specify the architecture together with ''wineboot'', which will build a new Wineprefix. We use ''WINEPREFIX'' to specify where we want to create the prefix—we recommend creating them inside the standard directory, ''~/.local/share/wineprefixes''. Now, try launching the game in Wine with Japanese Locale set: WINEPREFIX=~/.local/share/wineprefixes/vn32 LANG=ja_JP.UTF-8 TZ=Asia/Tokyo wine Follow the prompts in the installer window to install the game. Once installed, [[#lutris_configuration|add it to Lutris]]. **Still having trouble?** See if you can find your issue on our [[visualnovel:problems#gnu_linux|Troubleshooting section]] on our [[visualnovel:problems|Problems page]]. === Lutris Configuration === Click the **+** icon in the top left and select **Add locally installed game**. **Game Info** * Make sure the **Wine (Runs Windows games)** Runner is selected. **Game Options** * Choose the Wineprefix. If you used the location we recommend, that will be ''%%~/.local/share/wineprefixes/vn32%%'' or ''%%~/.local/share/wineprefixes/vn64%%'', depending on which architecture you used to install the game. * Find and select the **Game Executable**. **Runner Options** * Choose the Wine-Staging (System) Wine version. * Disable **Fsync**, as the System version does not support this. **System Options** * Under **Game Execution**, add a new environment variable. Use ''%%TZ%%'' as the key and ''%%Asia/Tokyo%%'' as the value for the environment variable. * Set **Locale** to ''%%ja_JP.UTF-8%%''. * You can configure **Gamescope** at the top of the tab, and get more options by enabling Advanced. Gamescope is useful for [[visualnovel:problems#fullscreen_is_broken_and_other_windowing_issues|solving windowing issues]] and for upscaling games, but you need to install it first. Click **Save** to finish configuring the game. You can launch it with the **Play** button. This video guides you through the configuration process: {{visualnovel:add-game-to-lutris.mp4?400}} If you’re experiencing issues, click the dropdown button next to the **Play** button and click **Show Logs** so you can get a better understanding of what is going wrong. Then have a look at the [[visualnovel:problems#gnu_linux|troubleshooting section]] on our [[visualnovel:problems|Problems page]]. ==== Add the Game to Your Program Launcher ==== You can add your visual novel to your program launcher so you can launch it from your desktop without opening Lutris. To do this, click the dropdown menu next to **Play** and select **Create Application Menu Shortcut**, which will create a .desktop file in ''%%~/.local/share/applications%%''. It may take a few seconds to detect the new desktop entry, but you should now be able to launch it from your program launcher. ====== Troubleshooting Wine ====== If your visual novel didn’t work with Wine after following the steps above, don’t give up! There are plenty more tricks you can try, depending on the issue you’re facing. If you have issues when playing the game, like the game [[visualnovel:problems#broken_media_playback|crashing when it tries to play a video]], or [[visualnovel:problems#japanese_characters_aren_t_displaying_properly|Japanese text not displaying properly]], see our [[visualnovel:problems#gnu_linux|Troubleshooting]] section for more assistance. ===== Visual Novel Compatibility Databases ===== If you want to know whether a visual novel you want to buy is compatible with GNU/Linux, or are having trouble getting it to work, you can try checking a compatibility database. These databases are very much incomplete, but they’re a good place to start for popular titles: * [[visualnovel:problems#game-specific_issues1|Our Troubleshooting Page]] has a small, but growing list of visual novels with troubleshooting steps to get the game working on GNU/Linux. * [[visualnovel:compatibility-list|Our Compatibility List]] has a small, but growing list of known good/bad titles. * [[https://www.visualnovelwiki.org/en/vns|VisualNovelWiki]] has a list of visual novels that indicates whether the games are compatible with GNU/Linux and macOS, and explains how to get the game working. * [[https://appdb.winehq.org|WineHQ’s AppDB]] sometimes has an entry for the visual novel you’re looking to play, but the database doesn’t support Japanese text. * [[https://www.protondb.com|ProtonDB]] is a great resource for visual novels on Steam, although most Steam visual novels will work through Proton without any special configuration. ====== Miscellaneous ====== You've finished the main routes for this guide, but there's more to see! This information doesn't apply to everyone, but it may just be what you're looking for. ===== Wine Distributions ===== To learn about different Wine versions and managers, see [[visualnovel:winedistros|Wine Distributions]]. ===== Textractor ===== Textractor works well in Wine. For information on what Textractor is and how to use it, see this section in [[visualnovel:readinjp#textractor|Reading Visual Novels in Japanese]]. You should download the **(English Only) zip file**, which is a portable version of Textractor: https://github.com/Artikash/Textractor/releases/latest You can easily launch this version of Textracor from any Wineprefix. Textractor can only inject hooks into the processes for games it can see, and **it can only see games running in the same Wineprefix.** As such, it doesn't work on native GNU/Linux games. The easiest way to launch Textractor inside your game's Wineprefix is by clicking the dropdown menu next to **Play** for your visual novel, clicking **Run EXE Inside Wine prefix**, and selecting the x86 Textractor.exe file you extracted earlier. The relative file path is ''%%Textractor/x86/Textractor.exe%%''. ===== Native GNU/Linux Games ===== Some publishers will release a native GNU/Linux build of their game. The majority of these games are made in the Ren’Py engine, which has best-in-class cross-platform support. You can find these native games on several of the stores listed on our [[visualnovel:buying|Buying Visual Novels page]]. The stores we know offer native GNU/Linux games with a way to easily filter for them are [[https://jastusa.com/games?attributes=4_d2508b50-049b-11ec-875c-5a000385a85f&sort=newest&catalogCode=&priceMin=0&priceMax=0¤tPage=1|JAST]], [[https://www.gog.com/en/games?tags=visual-novel&systems=linux|GOG]], [[https://store.steampowered.com/tags/en/Visual+novel?facets13268=7%3A1|Steam]], and [[https://www.mangagamer.com/r18/product_list.php?page=1&goods_type=1&category_name=62|MangaGamer]]. ==== Playing NScripter Games with ONScripter ==== NScripter was a visual novel engine popular with developers in Japan for many years. Many 07th Expansion games, like TRianThology, were developed with NScripter. NScripter only creates Windows builds, but there exists a clone of NScripter called ONScripter, which works on many different operating systems. ONScripter is very compatible with NScripter games, meaning we can use this engine to play NScripter visual novels on GNU/Linux with no modification to the game data. The ONScripter page provides instructions on how it works and how to use it: https://onscripter.osdn.jp/onscripter.html It’s easy to [[https://onscripter.osdn.jp/onscripter.html#run|get games to run with ONScripter.]] In most cases, all you need to do is run onscripter in the game directory, and the game window will appear. If you're on Arch Linux, we recommend installing ONScripter with the two patches included in this AUR package: https://aur.archlinux.org/packages/onscripter If you experience issues with the GNU/Linux build of ONScripter, you can try running the Windows build of ONScripter through Wine. ===== Finding Banner Images and Cover Art ===== The default banner resolution in Lutris is ''%%184x69%%'', cover art is ''%%264x352%%'', and the icon is ''%%128x128%%'', but Lutris will accept most sizes. Lutris usually extracts the icon from the executable when selecting it, but if it doesn’t, you can use ''%%icoextract%%'' to extract the executable’s bundled icon. The banner resolution is the same as Steam’s banner resolution. All games on Steam have banner and cover art, so if the game is on Steam, you can get the banner from ''%%https://cdn.akamai.steamstatic.com/steam/apps/[APP_ID]/capsule_184x69.jpg%%'' (''%%[APP_ID]%%'' should be replaced with the game’s Steam App ID). You can get cover art for the game from ''%%https://cdn.akamai.steamstatic.com/steam/apps/[APP_ID]/hero_capsule.jpg%%''. For example: * Take A Year of Springs’s Steam page: https://store.steampowered.com/app/1688580/A_YEAR_OF_SPRINGS/ * The App ID is ''%%1688580%%'', so we can get the Banner art with this link: https://cdn.akamai.steamstatic.com/steam/apps/1688580/capsule_184x69.jpg That works for Steam, but most visual novels don’t have a banner with the aspect ratio Lutris expects, so for the majority of VNs you will need to learn how to create something decent with [[https://www.gimp.org|GIMP]], [[https://krita.org/en/|Krita]], or another photo editor. To acquire a source image to work with, visit the visual novel’s official site, explore every single page, and see if you can find an image that matches something closely to what you want. Use inspect element (right click and select **Inspect**) to grab individual image assets and create something with them that somewhat matches the look of the game’s cover art but in banner form. It might take some work, but your game library will look much nicer for it. {{visualnovel:lutris-library-01-cropped.jpeg}} Lutris showing cover art. {{visualnovel:lutris-library-02-fs8.png}} Lutris showing banner images. ===== Quick-Access Shell Functions ===== Try out these [[https://github.com/Winetricks/winetricks/wiki/Shell-Tips-&-Tricks#shell-functions-for-quick-access|quick-access Shell Functions]] to work with Wine more easily in the terminal. ===== Microsoft Windows Virtual Machine ===== Before attempting to use a virtual machine, make sure to visit our [[visualnovel:problems#gnu_linux|troubleshooting section]] to see if you can get the visual novel working in Wine. If all else fails, you can run Windows in a virtual machine. While virtual machines have very basic graphic acceleration unless you pass-through a GPU((Some information on PCI GPU Passthrough available here: https://wiki.archlinux.org/title/QEMU/Guest_graphics_acceleration#PCI_GPU_passthrough)), the majority of visual novels will run acceptably even on integrated graphics. We recommend downloading the Japanese version of Windows for maximum compatibility with DRM schemes. [[https://wiki.gnome.org/Apps/Boxes|GNOME Boxes]] is the simplest virtual machine manager for GNU/Linux, and it has better performance than Virtualbox. For a more advanced libvirt-based virtual machine manager, try [[https://virt-manager.org/|virt-manager]]. Virtualizing Windows is almost never necessary unless the game is encumbered by DRM.