Wine works really well on popular games. But when I want to run a more obscure program I have spotty luck.

On a few of occasions I was able to get a few programs to run via Wine, but after an OS wipe I was unable to get them to work again. In those circumstances I know the programs CAN work, & I realize how terrible I am at troubleshooting Wine problems. Internet searches turn up very little advice for how to go about troubleshooting.

Do any of you have any procedures, rules of thumb, advice etc for troubleshooting Wine issues?

  • Yote.zip@pawb.social
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 year ago

    I prefer to set up each program in its own Wine prefix if possible - each Wine prefix is like a new “install” of Windows. When they’re all separated they don’t have any chance of breaking each other when they need special configurations. If you run Wine without specifying a prefix, it will use your default system prefix. If you use e.g. WINEPREFIX="/arbitrary/path/to/a/prefix" as an environment variable it will create a new prefix at that location.

    You’ll also want the winetricks package, which is probably in your distro’s repos. Then you can run e.g. WINEPREFIX="/your/prefix" winetricks -q -f dotnet48 vcrun2022 dxvk vkd3d to install DotNet stuff, Microsoft’s C++ stuff, and DirectX->Vulkan translators. Installing these will solve a lot of potential issues for a Wine prefix right out of the box. After those are finished setting up, you can run your programs by declaring your WINEPREFIX before you call wine, e.g. WINEPREFIX="/your/prefix" wine /your/program.exe

    If you want to use a prefix manager to handle some of this for you, you can try Lutris or Bottles. Lutris is primarily built for gaming but it can handle regular applications all the same.

    As for running specific programs, you probably want to search the internet to see if anyone else has run them in Wine and if they did anything special. Wine+dotnet48+vcrun2022+dxvk+vkd3d can get you a long way for compatibility, but it will quickly spiral into the bizarre if that doesn’t work.

    • GrappleHatOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      Thanks for the advice! I’ve made a habit of using individual prefixes for games & non-games alike (via Lutris), but I’ve rarely installed anything extra besides just the program/game in-question. Twice you mentioned dotnet48, vcrun2022, dxvk, and vkd3d. Are those particularly common “must haves” to include on the prefix in addition to the game/program?

      • Yote.zip@pawb.social
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        Not all programs will need those but as a shotgun method it’s a very easy first attempt at solving problems. If you’re already using Lutris it’s probably handling dxvk+vkd3d for you, so you can just add dotnet48 and vcrun2022 to see if that helps. You can also run winetricks through Lutris itself with this option, but there’s no way to “force” it via the -f flag like you can in the CLI. The -f flag is currently required to install dotnet48 IIRC because Winetricks is confused about which versions of Wine can accept that install.

        If you’re specifically trying to get a game to work you can also try installing physx and xact, which are sometimes required for older games. Another tip for games is that occasionally certain games get freaked out about NVAPI being enabled, so you can try disabling NVAPI under the “runner options” tab in Lutris configuration to see if that helps. Also, try using the latest Wine-GE Wine version in Lutris, if you’re currently just using stock system Wine. ProtonUp-Qt can download this into the right directory for you if you’re not sure how.