visualnovel:problems

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
visualnovel:problems [2024/12/21 10:54] – created yesvnsonlinuxvisualnovel:problems [2025/08/17 04:41] (current) – mention Gamescope crashing since color management protocol, offer workaround yesvnsonlinux
Line 1: Line 1:
-====== Microsoft Windows ====== 
- 
-===== General issues ===== 
- 
-The first thing you should do, before even installing a visual novel originally written in Japanese, is to change your system locale to Japanese.  
- 
-Some visual novels are a little more finicky, and may require you changing your timezone to JST. 
- 
-Older visual novels may require you to use a combination of compatibility mode as well as needing to be run in administrative mode. You'll also want to avoid installing them to ''%%C:/Program Files (x86)%%'' 
- 
-For some games, it may be required that your installation be pure Japanese (eg, just setting locale won't work). It might be best to use a virtual machine for this kind of game. 
- 
-===== Game-specific issues ===== 
- 
-None currently known, perhaps you can contribute? 
- 
 ====== GNU/Linux ====== ====== GNU/Linux ======
  
Line 39: Line 23:
 ==== "Bad EXE Format" ==== ==== "Bad EXE Format" ====
  
-You probably need to use a 64-bit Wineprefix. If you're using the terminal, use:+You probably need to use a 64-bit Wineprefix. You can create a new 64-bit Wineprefix like this: 
 + 
 +<code bash>WINEPREFIX=~/.local/share/wineprefixes/vn64 WINEARCH=win64 wineboot</code> 
  
-<code bash>WINEPREFIX=~/.local/share/wineprefixes/vn64</code>+Then select the Wineprefix you just created inside of the **Configuring** settings in the **Game Options** tab for the game in Lutris.
  
-=== Video Doesn't Play And/Or Crashes The Game ===+==== Video Doesn't Play And/Or Crashes The Game ====
  
 The game likely expects Windows Media Player to be present. You can install Windows Media Player 10 in your 32-bit Wineprefix with this command: The game likely expects Windows Media Player to be present. You can install Windows Media Player 10 in your 32-bit Wineprefix with this command:
Line 75: Line 61:
 <code>LANG=ja_JP.UTF-8 WINEPREFIX=~/Games/game-name wine <game-executable.exe></code> <code>LANG=ja_JP.UTF-8 WINEPREFIX=~/Games/game-name wine <game-executable.exe></code>
  
-You can also specify Japanese Locale inside of Lutris in the game's settings under the **System Options** tab, or globally in Lutris in **Preferences**.  +You can also specify Japanese Locale inside of Lutris in the game's settings under the **System Options** tab, or globally in Lutris in **Preferences** or in the installer wizard.
- +
-There is currently no way to use Japanese Locale for Lutris' installer wizard.((Open issue here: https://github.com/lutris/lutris/issues/4935))+
  
 === Mangled Filenames === === Mangled Filenames ===
Line 163: Line 147:
 These two free software libraries contained many of the filters visual novel developers wanted to use. LAVFilters has by far the larger library of filters and is more mature, while ffdshow was abandoned in 2006. These two free software libraries contained many of the filters visual novel developers wanted to use. LAVFilters has by far the larger library of filters and is more mature, while ffdshow was abandoned in 2006.
  
-DirectShow was Windows’ main Video API until 2006, when Media Foundation was introduced. It took quite a long time, but by 2011, DirectShow was officially deprecated. Of course, that doesn’t mean developers moved to the new platform immediately after that date, either.+DirectShow was Windows’ main Video API until 2006, when Media Foundation was introduced. It took quite a long time, but by 2011, DirectShow was officially deprecated. Of course, that doesn’t mean developers moved to the new platform immediately after that date, either, so it's difficult to know for sure what multimedia framework a game uses based solely on the release date.
  
-We need to to install Quartz for DirectShow support:+Because developers often used third-party libraries with DirectShow, we may need to install multiple components to enable full media support for DirectShow. 
 + 
 +First, we need to to install Quartz for DirectShow support:
  
 <code bash> <code bash>
Line 222: Line 208:
 </code> </code>
  
-You could also try [[visualnovel:vnsonlinux#wine-ge-custom|Wine-GE-Custom]] inside of Lutris, which includes more Media Foundation patches.+You could also try [[visualnovel:winedistros#wine-ge-custom|Wine-GE-Custom]] inside of Lutris, which includes more Media Foundation patches.
  
 ==== DRM And Region Restrictions ==== ==== DRM And Region Restrictions ====
Line 234: Line 220:
 All you need to do is set this environment variable when launching the game: ''%%TZ=Asia/Tokyo%%''. All you need to do is set this environment variable when launching the game: ''%%TZ=Asia/Tokyo%%''.
  
-[[https://wiki.comfysnug.space/visualnovel:buying|Our Buying Guide]] exhaustively lists DRM-free publishers, so we recommend reading it before making a purchase. Unfortunately, Japanese publishers rarely identify whether their physical releases are encumbered by DRM, so it’s harder to know, but [[http://www.settec.jp/patch/search.asp|Seiya-Saiga.com]] has a large list of DRM in physical Japanese releases.+[[https://wiki.comfysnug.space/visualnovel:buying|Our Buying Guide]] exhaustively lists DRM-free publishers, so we recommend reading it before making a purchase. Unfortunately, Japanese publishers rarely identify whether their physical releases are encumbered by DRM, but there are two sites that document DRM in releases. VNDB [[https://vndb.org/r/drm|lists the type of DRM, if any, a game is encumbered with]]. It indicates DRM status for releases in all languages. You can easily [[https://vndb.org/r?f=kwDRM_dfree-|filter for DRM-free releases]]
  
-Seiya-Saiga.com indicates whether the game can be played “ディスクレス” or not. If the answer is “可”, then the game either does not come encumbered by DRM, or the publisher has provided a DRM-removal patch, as in the case of [[https://seiya-saiga.com/game/august/eustia.html|August with Aiyoku no Eustia.]] The answer you want to look out for is “初回のみ不可” and similar wording, which means it performs a DRM check to ensure the disk is in the drive on first startup. Most disk-checking DRM does not work in Wine.+[[http://www.settec.jp/patch/search.asp|Seiya-Saiga.com]] has a large list of physical Japanese releases with their DRM status and started tracking DRM long before VNDB, so is currently more comprehensive. The site indicates whether the game can be played “ディスクレス” or not. If the answer is “可”, then the game either does not come encumbered by DRM, or the publisher has provided a DRM-removal patch, as in the case of [[https://seiya-saiga.com/game/august/eustia.html|August with Aiyoku no Eustia.]] The answer you want to look out for is “初回のみ不可” and similar wording, which means it performs a DRM check to ensure the disk is in the drive on first startup. Most disk-checking DRM does not work in Wine.
  
-If you already have a visual novel encumbered by DRM, see if you can identify your DRM below:+If you already have a visual novel encumbered by DRM, and it isn't identified on VNDB, see if you can identify your DRM below:
  
 === Disk-Checking DRM === === Disk-Checking DRM ===
Line 257: Line 243:
 |DMM Game Launcher (DMM) |Doesn’t work|          | |DMM Game Launcher (DMM) |Doesn’t work|          |
 |Buddy Launcher (DMM)    |Doesn’t work|          | |Buddy Launcher (DMM)    |Doesn’t work|          |
 +
 +== Generic Disk Checking DRM Fix ==
 +
 +It's sometimes possible to bypass disk-checking DRM by creating an ISO copy of the game disk in your drive and load it with CDEmu. One way to create such an ISO is using GNOME Disks.
 +
 +You then need to load the disk file with CDEmu. With any luck, the game will detect that the disk is present and let you play the game. Some information on how to start working with CDEmu can be found [[https://wiki.archlinux.org/title/CDemu|here]].
  
 ===== Fullscreen is Broken! (And Other Windowing Issues) ===== ===== Fullscreen is Broken! (And Other Windowing Issues) =====
Line 268: Line 260:
 ==== Installing Gamescope ==== ==== Installing Gamescope ====
  
-Gamescope can be installed as a Flatpak package, which can integrate with Lutris and [[visualnovel:vnsonlinux#using_bottles_as_a_wine_manager|Bottles]]:+Gamescope can be installed as a Flatpak package, which can integrate with the Flatpak versions of Lutris and [[visualnovel:winedistros#using_bottles_as_a_wine_manager|Bottles]]:
  
 <code> <code>
Line 286: Line 278:
 <code bash> <code bash>
 gamescope -- wine <game-executable.exe> gamescope -- wine <game-executable.exe>
 +</code>
 +
 +Note that for GNOME, Hyprland, and other Wayland compositors that are lacking a certain feature, Gamescope will crash. [[https://github.com/ValveSoftware/gamescope/issues/1825#issuecomment-2894660601|This comment]] provides a workaround for GNOME:
 +
 +<code bash>
 +gamescope --backend sdl -- wine <game-executable.exe>
 </code> </code>
  
Line 293: Line 291:
  
 Don’t bother with virtual desktops—just use Gamescope! Don’t bother with virtual desktops—just use Gamescope!
 +
 +==== My cursor isn't working in Gamescope! ====
 +
 +If clicking on something in a window managed by Gamescope does nothing, your cursor isn't being captured. This tends to happen with visual novels that draw their own cursors.
 +
 +Try forcing Gamescope to capture your cursor:
 +
 +<code bash>
 +gamescope --force-grab-cursor -- wine game.exe
 +</code>
 +
 +The cursor will now always be captured within the Gamescope window.
  
 ===== Investigating Compatibility ===== ===== Investigating Compatibility =====
Line 312: Line 322:
 <panel type="info" title="What’s The Difference Between WineD3D, VKD3D, and DXVK?" icon="fa fa-info-circle"> <panel type="info" title="What’s The Difference Between WineD3D, VKD3D, and DXVK?" icon="fa fa-info-circle">
  
-WineD3D works by translating the game’s Direct3D API calls to OpenGL callsa graphics API that supports Linux and many other operating systems. OpenGL was superseded by the Vulkan API in 2016. VKD3D is another part of the Wine project that translates D3D12 calls to Vulkan.+WineD3D works by translating the game’s Direct3D API calls to OpenGL calls. OpenGL is a graphics API that supports Linux and many other operating systems. OpenGL was superseded by the Vulkan API in 2016. VKD3D is another part of the Wine project that translates D3D12 calls to Vulkan.
  
-WineD3D has great compatibility for older versions of the Direct3D API and other DirectX APIs, but DXVK is a better option for newer versions. DXVK is another implementation of D3D9, D3D10, and D3D11 developed independently from the Wine Project, which translates Direct3D calls to Vulkan. Vulkan offers better performance than OpenGL, especially for newer games. +WineD3D has great compatibility for older versions of the Direct3D API, but DXVK is a better option for newer versions. DXVK is another implementation of D3D9, D3D10, and D3D11 developed independently from the Wine Project. DXVK translates Direct3D calls to Vulkan. Vulkan offers better performance than OpenGL, especially for newer games. 
  
 There is ongoing work to provide an alternative Vulkan translation layer in WineD3D for newer Direct3D versions,((To enable the Vulkan renderer backend in WineD3D for D3D9/10/11, you need to [[https://wiki.winehq.org/Useful_Registry_Keys|set the registry key renderer=vulkan.]] You can also do this using winetricks with winetricks renderer=vulkan.)) but DXVK’s implementation is more mature in most cases. There is ongoing work to provide an alternative Vulkan translation layer in WineD3D for newer Direct3D versions,((To enable the Vulkan renderer backend in WineD3D for D3D9/10/11, you need to [[https://wiki.winehq.org/Useful_Registry_Keys|set the registry key renderer=vulkan.]] You can also do this using winetricks with winetricks renderer=vulkan.)) but DXVK’s implementation is more mature in most cases.
  
-WineD3D’s default D3D9/10/11 implementation, which uses OpenGL, is focused on compatibility for software in general, while DXVK is focused on compatibility and performance for games. DXVK’s D3D10 and D3D11 implementations are generally much better than WineD3D’s, but WineD3D’s D3D9 implementation is more compatible than DXVK’s equivalent. +WineD3D targets compatibility for all types of Windows software, while DXVK targets compatibility and performance for games. DXVK’s D3D10 and D3D11 implementations are generally much better than WineD3D’s, but WineD3D’s D3D9 implementation is currently more compatible than DXVK’s equivalent.
  
-If you’re experiencing issues with WineD3Dyou should try DXVKAdditionally, VKD3D-Proton has support for more features in D3D12 and has better performance than VKD3D.</details>+VKD3D-Proton is Valve's fork of VKD3Dthe Wine project's D3D12➜Vulkan translation layer. VKD3D-Proton has support for more features in D3D12 and has better performance than VKD3D. Neither of these translation layers are as mature as those available for D3D11 and older. Some games can fallback to D3D11 rendering. We recommend choosing this option when available.
 </panel> </panel>
  
Line 333: Line 343:
 </code> </code>
  
-**Note:** If you install DXVK with Winetricks, it will not prompt you to update the DLLs when there is a new release of DXVK. In fact, there is no built-in update mechanism for Winetricks verbs at all. Winetricks initially only supported installation for specific versions of verbs, so this feature did not make sense.+**Note:** If you install DXVK with Winetricks, it will not prompt you to update the DLLs when there is a new release of DXVK. It will also not allow you to update it if you execute the verb normallyYou need to run Winetricks with ''%%--force%%'' to force Winetricks to install the newest version of DXVK: 
 + 
 +<code bash> 
 +WINEPREFIX=/Games/game-name winetricks --force dxvk 
 +</code> 
  
 You can also manually install DXVK using the [[https://github.com/doitsujin/dxvk#how-to-use|official install instructions]]. You can also manually install DXVK using the [[https://github.com/doitsujin/dxvk#how-to-use|official install instructions]].
Line 359: Line 373:
 ==== Overriding Builtin Components ==== ==== Overriding Builtin Components ====
  
-Non-free libraries are also called "native" DLLs, in comparison to the re-implemented DLLs provided by Wine, which are referred to as "builtin" DLLs. If your program complains about lacking ''%%mfc90.dll%%'', you could override the builtin DLLs from Wine with the native DLLs from the non-free Visual C++ 2008 Libraries released by Microsoft.+Non-free libraries are also called "native" DLLs, in comparison to the re-implemented DLLs provided by Wine, which are referred to as "builtin" DLLs. If your program complains about lacking ''%%mfc90.dll%%'', you can override the builtin DLLs from Wine with the native DLLs from the non-free Visual C++ 2008 Libraries released by Microsoft.
  
-The easiest way to install non-free libraries is with [[https://github.com/Winetricks/winetricks|Winetricks]], a shell script that installs primarily non-free DLLs into a Wineprefix, as well as offering verbs to tweak Wine settings+The easiest way to install non-free libraries is with [[https://github.com/Winetricks/winetricks|Winetricks]].
  
 You can see a full list of the DLLs Winetricks can install with: You can see a full list of the DLLs Winetricks can install with:
Line 369: Line 383:
 </code> </code>
  
-To install non-free libraries selectively, you need to understand the errors you’re receiving. If you’re using Lutris, you need to go into Show Logs when running the game. If you’re running Wine from the terminal, it will provide output by default.+To install non-free libraries selectively, you need to understand the errors you’re receiving. If you’re using Lutris, you need to go into **Show Logs** when running the game. If you’re running Wine from the terminal, it will provide output by default.
  
 The output may contain an error like this: The output may contain an error like this:
Line 377: Line 391:
 </code> </code>
  
-The important thing to notice is the mfc90.dll part. Because Winetricks lists the DLLs each verb provides, we can look through the DLLs list:+The important thing to notice is the ''%%mfc90.dll%%'' part. Because Winetricks lists the DLLs each verb provides, we can filter the output easily:
  
 <code bash> <code bash>
Line 395: Line 409:
 </code> </code>
  
-It's good to specify the ''%%-q%%'' option for Unattended Installs, as some installers are broken and will fail to install.+We recommend always specifying the ''%%-q%%'' option when installing a Winetricks verb, as the installation will more reliably complete successfully when run silently
  
 Now you can try running the visual novel again in this Wineprefix, and //hopefully// the non-free library will be agreeable to the game. Now you can try running the visual novel again in this Wineprefix, and //hopefully// the non-free library will be agreeable to the game.
Line 403: Line 417:
 === Advanced: Debugging & Recovering a Wineprefix === === Advanced: Debugging & Recovering a Wineprefix ===
  
-Winetricks provides the ''%%alldlls%%'' verb, which can be set to ''%%default%%'' or ''%%builtin%%''. Normally, you would never need to touch this verb, but if you manage to break your Wineprefixor need to compare between Wine’s builtin DLLs and the native DLLs you installed with Winetricks, this verb can be useful.+Winetricks provides the ''%%alldlls%%'' verb, which can be set to ''%%default%%'' or ''%%builtin%%''. Normally, you would never need to touch this verb, but if you manage to break your Wineprefix or need to compare between Wine’s builtin DLLs and the native DLLs you installed with Winetricks, this verb can be useful.
  
 ''%%alldlls=builtin%%'' will tell Wine to use builtin DLLs where possible. Wine does not provide a replacement for //every// DLL Winetricks installs, so Wine will still use the native versions of those DLLs. ''%%alldlls=builtin%%'' will tell Wine to use builtin DLLs where possible. Wine does not provide a replacement for //every// DLL Winetricks installs, so Wine will still use the native versions of those DLLs.
Line 467: Line 481:
 These games needed [[https://proger.me/vn/old/#sono+hanabira+ni+kuchizuke+wo±+linux+wine+fix|fjfix]] to launch before [[https://bugs.winehq.org/show_bug.cgi?id=10767|this game-breaking bug]] was fixed in Wine 7.10. Wine 8 and later versions should work with Sono Hanabira games out of the box. These games needed [[https://proger.me/vn/old/#sono+hanabira+ni+kuchizuke+wo±+linux+wine+fix|fjfix]] to launch before [[https://bugs.winehq.org/show_bug.cgi?id=10767|this game-breaking bug]] was fixed in Wine 7.10. Wine 8 and later versions should work with Sono Hanabira games out of the box.
  
 +==== Silky's Plus Visual Novels ====
 +
 +Every game by Silky's Plus is encumbered with some form of Disk-checking DRM at install. It's possible to get these games to install through Wine using [[#generic_disk_checking_drm_fix|this fix]].
 +
 +==== Chrono Clock ENGLISH ====
 +
 +I encountered serious difficulty trying to get the 32-bit executable to run, luckily this game also ships with a 64-bit executable. 
 +(cmvs64.exe and cmvsConfig64.exe)
 +
 +==== Muv-Luv ENGLISH ====
 +
 +Muv-Luv will not boot if you are missing mfc140u.dll, which you can rectify with
 +<code bash>
 +WINEPREFIX=$PWD/.vncompat WINEARCH=win32 LC_ALL=ja_JP.UTF-8 winetricks mfc140
 +</code>
 +
 +====== Microsoft Windows ======
 +
 +===== General issues =====
 +
 +The first thing you should do, before even installing a visual novel originally written in Japanese, is to change your system locale to Japanese. 
 +
 +Some visual novels are a little more finicky, and may require you changing your timezone to JST.
 +
 +Older visual novels may require you to use a combination of compatibility mode as well as needing to be run in administrative mode. You'll also want to avoid installing them to ''%%C:/Program Files (x86)%%''
 +
 +For some games, it may be required that your installation be pure Japanese (eg, just setting locale won't work). It might be best to use a virtual machine for this kind of game.
 +
 +===== Game-specific issues =====
 +
 +None currently known, perhaps you can contribute?
  • visualnovel/problems.1734778475.txt.gz
  • Last modified: 2024/12/21 10:54
  • by yesvnsonlinux