From my understanding, at least one other necessary component is dxvk, and that wine is not enough.

If I dont use lutris or some other manager, how can I game on linux? do I have to configure dxvk? do I need soemthing else too? vulkan?

Is there a guide that explains it?

  • MentalEdge@sopuli.xyz
    link
    fedilink
    arrow-up
    15
    ·
    edit-2
    1 year ago

    You really want to be using a separate prefix for each game, to keep any game-specific tweaks and settings separate.

    Managing that without something like lutris or bottles IS A HUGE PAIN IN THE ASS, DO NOT EVEN TRY IT. Literally no-one does this. You will not find a guide.

    But if you insist, yes, you’ll need a version of wine, as well as dxvk. Both you can install yourself.

    Vulkan you should have already on most distros.

    Then there’s a litany of optional windows dependencies that you can/have to install within a prefix, using winetricks, some of which will be necessary to run some things, while others will break other things.

    But seriously. If you want to fiddle with the details, while not going insane with tedious prefix management, just use Bottles.

    • Cyclohexane@lemmy.mlOP
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      My issue with lutris is that when I used it before and something didn’t work, or used to work but broke, I was completely at a loss, because I did not understand what all it is doing exactly. It just felt that what lutris is doing is a bit too obfuscated or unclear to me.

      Is bottles any better on that front?

      • MentalEdge@sopuli.xyz
        link
        fedilink
        arrow-up
        5
        ·
        edit-2
        1 year ago

        Yes. I find prefixes in bottles much easier to configure. It’s all the same stuff, but the UI is simply better IMO.

        But if that’s the problem you were having, setting off to manage wine yourself will only make it worse. You would be massively increasing the amount of legwork you’d have to do, not decreasing it.

        Also grab protonup while you’re at it. It can download specific proton/wine versions for you and put the files in all the right places for the extra versions to be selectable in bottles/steam.

    • KanariePieter@feddit.nl
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      This what I do and it works pretty flawlessly. I’ve never used Bottles or Lutris since I started adding the games to Steam. It also takes care of controller support.

    • Cyclohexane@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      what if I regret installing the thing and want to remove it? is it easy or would I be having to track files down?

  • Astaroth@lemm.ee
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    1 year ago

    From my understanding, at least one other necessary component is dxvk, and that wine is not enough.

    dxvk is not necessary but it massively improves game performance on a lot of games, also keep in mind some games will actually not run if you use dxvk, so you sometimes (very rarely) have to use OpenGL instead and the only way I really found to do that was to have a wine prefix without dxvk. (I might’ve just been stupid though)

    for the record only games that I had to use open GL for so far was Starcraft 2’s Galaxy Editor (although the actual game itself runs fine with dxvk) and I had some problems with alt tabbing in really old versions of Warcraft 3 (1.27 and older)

     

    Anyway, for a time I used Lutris a bit but now I always run wine through terminal because Lutris was great when it worked but there were seemingly no solutions for when it didn’t (while running wine directly has never given me a problem).

    And what’s great with running wine directly through the terminal is that either it will run and you’re good or you’ll get some error messages saying that some .dll or whatever is missing (usually .net, visual studio, msvcr100+.dll, mscvcp100+.dll, ms*.dll, etc.) and you just use winetricks and go through the list until you find what you need.

     

    One more thing that took a while for me to learn was that some games (if you’re using mods) will need to be run along with WINEDLLOVERRIDES environment variable https://wiki.winehq.org/Wine_User’s_Guide#WINEDLLOVERRIDES.3DDLL_Overrides

    for example when I play Need For Speed Most Wanted 2005 I start it with this command: WINEDLLOVERRIDES="dinput8=n,b" wine speed.exe

    another thing is sometimes you want to run games with some arguments, for instance before I got XCOM 2 on Steam and used AML I used to run it with this: wine XCom2.exe -noRedScreens -review


     

    Now here’s a pretty big caveat, which is that I use FISH instead of Bash which adds some big QoL improvements (in this case it’s mainly about tab completion).

    If I actually had to manually type in the commands or spend minutes going through history file every time I would never do it.

    Although I suppose you could make an alias for each game.

     

    Oh yeah and always run the games from the same directory as their .exe file is located in, more often than not it won’t work if you just do wine /path/to/directory/game.exe instead of cd /path/to/directory && wine game.exe

     

    Edit: some typos, and I just want to note that the && aren’t supposed to include the amp; parts

    • Sethayy@sh.itjust.works
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      If you don’t mind me asking, how would one go about diagnosing why a game/mod doesn’t work?

      Specifically im working on nitrox for subnautica, which does some DLL funkery - but has reports of users getting it working on older editions, and radio silence for the later. I figured out from a reddit post that a ribbon.DLL was needed, to even boo the launcher (and the error code was pretty descriptive about it). Once it’s added the launcher doesn’t ever actually launch the game though, and the console is pretty radio silent about it all.

      Again ignore all this if youre unsure/busy, but any tips are appreciated!

      • Astaroth@lemm.ee
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        1 year ago

        Why a game (unmodded) doesn’t work will usually be pretty obvious just from the errors you get

        I might’ve just been lucky, but so far the only time I had to look up a fix was for battle.net launcher, which ever since a while back has to be done after every update.

        https://old.reddit.com/r/linux_gaming/comments/yairmz/battlenet_fails_to_start_with_this_application/ituht4u/

        The problem is in a hidden flag that’s set on the qwindows.dll file in lastest B.net version which makes it hidden from the app.

        The fix is relatively easy, simply run this inside the Program Files (x86)/Battle.net/Battle.net.13801/platforms directory:

        setfattr -x user.DOSATTRIB qwindows.dll

        After this Battle.net will work again.

         

        But when it comes to mods it can be a lot trickier, and I don’t really have a general purpose solution. Hopefully the game is popular enough that someone else has a guide on what to do.

        I’ve never played subnautica so I don’t know, but if the mods have their own modified DLLs then you’re probably supposed to use DLLOVERRIDES, so maybe WINEDLLOVERRIDES="ribbon=n,b" since it’s called ribbon.dll

         

        Some other issues I’ve had with modding is that the mod might expect the game to be in a certain directory or for directories to have certain names or there might be some problem because Windows isn’t case sensitive while Linux is.

        Honestly the mods are generally not causing issues from my experience, it’s the mod loaders and what not.

    • Spectacle8011@lemmy.comfysnug.space
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      I had some problems with alt tabbing in really old versions of Warcraft 3 (1.27 and older)

      Have you tried Gamescope? I experienced similar issues with a lot of older visual novels. Gamescope was the cure-all for windowing issues like this. That said, if WineD3D works better than DXVK for the game, there’s not much reason to look into it.

  • azvasKvklenko@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    The classic way of using Wine is as simple as running any Windows binary using Wine program loader. If you’ve got Wine installed, you can likely just “Open with” in the Dolphin explorer, or simply wine program.exe in terminal. That is not a good idea however, because you just have a single Wine prefix (which by default is in ~/.wine and is controllable with env variable WINEPREFIX`) and also you will likely miss at least some dependencies for your game.

    Dependencies required for launching a game will be different depending on what that game was built with in what period. If the game uses Vulkan or OpenGL natively, you don’t need any translators, but it still might need .NET Runtime, VC Redistributables, some other Windows libraries that are not (and cannot be due to legality) shipped with stock Wine. If it’s DX 9/10/11 game, you need DXVK. if it’s DX12 you nees VKD3D-Proton. You can install these using Winetricks.

    To automate and ease all of that, I recommend Bottles. The app is focused on providing you with generic way to run Windows software instead of collecting scripts, it manages prefixes, install most needed dependences automatically and provide a way to manually install everything else.

    I think this is also a good idea to mess with native way pf running things with Wine if you just want to learn more on how it works.

    • lemmyvore@feddit.nl
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      How does Bottles know to install VC redistributable or .Net and other stuff kind that?

      • azvasKvklenko@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        While creating a Bottle, you choose a profile for “Application” or “Gaming”. It then createa a prefix with most common dependencies for that purpose. It might not install all you need though, but it has menu to install whatever you need manually within few clicks.

  • d3Xt3r@lemmy.nz
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    1 year ago

    Don’t use vanilla wine, use Wine-GE, which is basically Proton-GE, but designed for non-Steam launchers like Lutris.

    Wine-GE (and Proton-GE) already includes DXVK and VKD3D btw.

    You may also need to install proprietary codecs. Look up how to install the full ffmpeg and gstreamer plugins, or just “codecs” for your distro.

    As to what else you require specifically, that really depends on your distro, graphics card, and how you’re launching your games.

    The Arch Wiki covers some of this stuff, but note that some of it may not be applicable to you if you’re not using Arch (or an Arch-based distro). In saying that, a lot of it is applicable, but the package names may be different in your distro so you’ll need to look that up on your own.

    Alternatively, you wouldn’t need to worry about any of this stuff if you go for a distro that’s optimised for gaming, such as Nobara.

  • TPWitchcraft@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    Didn’t use Wine much lately, but when I do i use usually 2 prefixes; one for 32, one for 64 bit. Winetricks is often helpful; so is the appdb on WineHQ.

    Have fun!

  • Spectacle8011@lemmy.comfysnug.space
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    If you want to play visual novels, you should watch out for games encumbered by DRM.

    It’s possible to play non-Steam games without Lutris, Bottles, or Heroic Games Launcher, though it’s a little more annoying. The easiest way to install DXVK in a Wineprefix is using Winetricks. Just run WINEPREFIX=~/.local/share/wineprefixes/name winetricks dxvk.

    The problem is Winetricks doesn’t support updating DXVK. Lutris makes managing DXVK a lot easier; you can turn it on or off and it will update DXVK and other compatibility components automatically.

    Vulkan support is of course required for DXVK to work, but DXVK isn’t your only option for Direct3D translation. You can also use Wine’s OpenGL translation layer, WineD3D, which requires no setup. The downside is that WineD3D’s compatibility and performance is generally not as good as DXVK for the same versions of the Direct3D APIs. However, if your GPU doesn’t support Vulkan, then you need to use WineD3D.

    On the other hand, if your GPU does support Vulkan, Lutris’ documentation provides a good place to start on installing Vulkan support for your distribution: https://github.com/lutris/docs/blob/master/InstallingDrivers.md

    I wrote a guide explaining how the various components of Wine work to make games compatible. That might help you understand what exactly you need to do if you’re not using a Wine manager. And, if you want to make things easier when working in the terminal, you can try these Quick-Access Shell Functions the Winetricks wiki provides.

    • Astaroth@lemm.ee
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      The problem is Winetricks doesn’t support updating DXVK.

      Are you sure about that? Every time I run winetricks (once in a blue moon) it always says I have DXVK (Latest)

      • Spectacle8011@lemmy.comfysnug.space
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        1 year ago

        Reasonably sure, but willing to be corrected. See this section of the Winetricks code (it’s just shellscript):

                # Don't install if already installed
                if test "${WINETRICKS_FORCE}" != 1 && winetricks_is_installed "$1"; then
                    echo "$1 already installed, skipping"
                    return "${TRUE}"
                fi
        

        Followed by:

        winetricks_is_installed()
        {
            unset _W_file _W_file_unix
            if test "${installed_exe1}"; then
                _W_file="${installed_exe1}"
            elif test "${installed_file1}"; then
                _W_file="${installed_file1}"
            else
                return "${FALSE}"  # not installed
            fi
        
            # Test if the verb has been executed before
            if ! grep -qw "$1" "${WINEPREFIX}/winetricks.log" 2>/dev/null; then
                unset _W_file
                return "${FALSE}"  # not installed
            fi
        

        Winetricks determines whether a verb has been installed by writing and reading to a winetricks.log file found in the root directory of the Wineprefix you’re working with. It also tests if the file actually exists too, but let’s just focus on winetricks.log for simplicity.

        The first time Winetricks installs the dxvk verb, which takes the latest DXVK release at the time you run it, it writes dxvk to the winetricks.log file. When a new version of DXVK is released, and you run WINEPREFIX=~/.local/share/wineprefixes/whatever winetricks dxvk, it will hit winetricks_is_installed and read ~/.local/share/wineprefixes/whatever/winetricks.log to see if DXVK is already is installed. It will see that dxvk is in the log file and give up.

        When I was writing the Visual Novels on GNU/Linux guide, I did a lot of experimentation with Winetricks. I installed dxvk in a Wineprefix a few months ago and haven’t touched it since then. A new version of DXVK was released three weeks ago. When executing the dxvk verb in that Wineprefix again, I get:

        Executing w_do_call dxvk
        dxvk already installed, skipping
        

        Years ago, Winetricks would write a new verb definition for every new DXVK release. Presumably when it was much less stable. You can see remnants of that with the 100+ verbs for installing particular DXVK versions. Now it just takes the latest stable release. Yay for the maintainers, because that’s a lot less work. As a side effect, Winetricks doesn’t have a way of updating it normally.

        Why doesn’t Winetricks have the ability to update verbs? Well, you’re often installing very specific versions of a native DLL to override the builtin Wine component. You don’t want that changing on you randomly. The w_get_github_latest_release function, which extracts the latest release, was created purely for and only used for DXVK. DXVK is the only component that really works like this in Winetricks.

        There is an easy way of updating DXVK anyway. Just run Winetricks with --force:

        WINEPREFIX=~/.local/share/wineprefixes/whatever winetricks --force dxvk
        

        Now, admittedly, I misspoke about Winetricks “not supporting updating DXVK”. I learned this option exists just now. So you can force-update it with --force, which bypasses winetricks_is_installed and installs the latest version of DXVK. Guide has been updated accordingly; thank you for making me look into this again!

        • Astaroth@lemm.ee
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          1 year ago

          Years ago, Winetricks would write a new verb definition for every new DXVK release. Presumably when it was much less stable. You can see remnants of that with the 100+ verbs for installing particular DXVK versions. Now it just takes the latest stable release. Yay for the maintainers, because that’s a lot less work. As a side effect, Winetricks doesn’t have a way of updating it normally.

          Oh does it not add new entries for every new DXVK release anymore? In that case I guess my DXVK version is probably a year old by now even though it says DXVK (Latest) and that it’s from year 2023: https://i.imgur.com/lNaqTPG.png

           

          There is an easy way of updating DXVK anyway. Just run Winetricks with --force:

          WINEPREFIX=~/.local/share/wineprefixes/whatever winetricks --force dxvk

          Now, admittedly, I misspoke about Winetricks “not supporting updating DXVK”. I learned this option exists just now. So you can force-update it with --force, which bypasses winetricks_is_installed and installs the latest version of DXVK. Guide has been updated accordingly; thank you for making me look into this again!

          Oh I had no idea about this, and I normally just use winetrick’s GUI while using it so I would’ve had to look up how to update dxvk if not for you explaining it.

           

          Although as a side note I’ve got the winetricks-git AUR package, not winetricks so maybe there’s some fix for it somewhere already, I’ll have to look into it. So far I haven’t had an issue with DXVK being too old, but I mostly play older games

           

          When I was writing the Visual Novels on GNU/Linux guide, I did a lot of experimentation with Winetricks.

          Unrelated but I’ll check that guide out, I’ve had trouble playing VNs that are in Japanese, as without LANG="ja_JP.UTF-8" wine /path/to/game.exe they won’t even run but even with it the fonts don’t work and are shown as empty boxes.

          • Spectacle8011@lemmy.comfysnug.space
            link
            fedilink
            arrow-up
            2
            ·
            1 year ago

            Oh does it not add new entries for every new DXVK release anymore?

            Looks like the last time a verb for a new DXVK version was added was dxvk2010 or DXVK 2.1, in February this year. We’re up to DXVK 2.3 now. Because the Winetricks codebase is around 20,000 lines of shellscript and I’m not the best at reading shellscript…I don’t think the dxvk verb updates the Wineprefix’s DXVK version based on what the newest version is. I think that’s just an alternate way of installing DXVK; you can pull the latest stable release, or you can install a particular version.

            I think executing a particular verb for a DXVK version would override whatever DXVK dlls you currently have installed in that prefix, too. I have no idea how to check what DXVK version is installed a particular Wineprefix, though.

            even though it says DXVK (Latest) and that it’s from year 2023

            That’s based on the verb metadata; not what version of DXVK you currently have installed. A contributor bumped the year for the dxvk verb from 2017 to 2023 in a commit in February this year.

            Oh I had no idea about this, and I normally just use winetrick’s GUI while using it so I would’ve had to look up how to update dxvk if not for you explaining it.

            Happy if it helps. I’ve never used the GUI, but it’s awesome that they managed to create a functioning GUI frontend with shellscript. Insane, really. God I hate shellscript…

            So far I haven’t had an issue with DXVK being too old, but I mostly play older games

            You probably won’t get an issue with DXVK being “too old”, but newer versions of DXVK implement more features (particularly for D3D12) and include bug fixes to improve compatibility or performance. From the 2.3 release notes:

            Fixed a minor issue with D3D9 feedback loop tracking.

            Test Drive Unlimited 2: Fixed shadows on grass.

            Tomb Raider Anniversary: Improved performance.

            So you want to be running the latest version for better compatibility. That said, I mostly play visual novels. My biggest problems are still DRM and media playback, which DXVK has very little to do with.

            Unrelated but I’ll check that guide out, I’ve had trouble playing VNs that are in Japanese, as without LANG=“ja_JP.UTF-8” wine /path/to/game.exe they won’t even run but even with it the fonts don’t work and are shown as empty boxes.

            You’re the exact person this guide was written for! This sounds like an issue that’s easily fixed by installing fakejapanese with winetricks. More info here: https://wiki.comfysnug.space/doku.php?id=visualnovel:problems#japanese_characters_aren_t_displaying_properly

            And if you have .txt files in the game directory (like documentation or whatever) with garbled text, that’s probably because they’re encoded in Shift JIS. There’s an easy fix to make them readable: https://wiki.comfysnug.space/doku.php?id=visualnovel:problems#text_files_with_garbled_text

            (That last one had me scratching my head for a very long time)

  • VHS [he/him]@hexbear.net
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    1 year ago

    dxvk is available through the distro, if you’re on an ubuntu or debian-based distro just run sudo apt install dxvk. vulkan should come pre-installed on any modern distro.

    i’d highly recommend using some kind of manager, if you don’t want lutris than use playonlinux which is more minimal. this keeps things organized and lets you use different wine versions and tweaks for each game. for example, some newer games need proton-experimental or an otherwise very recent version to run, but you may not want to replace your system wine with this.

    • Astaroth@lemm.ee
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      afaik you need dxvk in the actual wine prefix, just having it on your system doesn’t do anything.

      I had installed dxvk from AUR and didn’t get why it wasn’t doing anything, turns out the point of having dxvk on your system is for symlinking it into your wine prefixes so you don’t have to get a dxvk installation for each prefix individually.

      when I found that out I just removed dxvk package and got installed dxvk directly to the my prefix with winetricks, because I only use two wine prefixes anyway (one for vulkan and another for games that have to use opengl)

  • Ark-5@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 year ago

    I used to manually port games to macOS using wine/wine tricks/wine bottler, and honestly it’s not that bad. Especially if using GUI versions of all of those. Yes it takes fiddling and tweaking and a decent amount of failure, but I found it worth it once I succeeded in doing it once. That was almost a decade ago, and while I haven’t tried it since (I rely mostly on steam at the moment) I have a few games from say GoG and other places I’m planning to manually port. Ignore the haters, and just go for. Read/watch a tutorial, fail miserably for a while, and eventually you’ll tweak enough parameters and change enough values you’ll find what works. Once you do that for one game all the others will be easier. Every game is a bit different, but the freedom and knowledge you’ll gain is great. If my 13 year old ass could do it on a school issue MacBook to share Skyrim to all my friends you can definitely do it with more modern tooling.

    EDIT: I think at one point I ported the windows version of steam, and then could use the “add non steam game” option and then could simply hit run. Didn’t work for everything, but there was a handful of games that was a quick and dirty work around for.

  • inode@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Like others have posted, I use Lutris. I usually have to supplement it with game posts on the protondb website so I know what fixes might be needed. Often they have some environment variables that might be useful or they list certain items that need to be installed via winetricks(or in steam’s case protontricks). Some games just don’t run but you can usually get a lot of them to run.