I recently bought Control - Ultimate Edition, from GOG, but I was struggling to get it to launch.

My usual strategy for non-steam games is to use Bottles. And so far that has worked well for every game I’ve tried. But for Control, the game installed fine but when I try to launch it, nothing happens.

I have read on ProtonDB that the game generally works with no problems. This includes a couple of mentions of success with the GOG version. I saw no hint of any problem to be solved.

I’m not sure where to look for error logs. So it’s difficult for me to trouble-shoot. I did find that if I open with a terminal, it complained that Wine Mono was not installed. The obvious fix for that is that I should install wine mono in the bottle, which I did, and that error goes away but the game still does not run. The terminal does still give a heap of messages, but to my untrained eye it looks fine.

Anyway, after stuffing around with different settings with no success, I tried creating a fresh bottle - and that worked. The game in the new bottle launches fine.

That’s great, but I don’t like the idea of stuff just not working for reasons I don’t understand. So I’m still trying to find and fix the problem in the original bottle. All of my other games are installed in the original bottle, and I’d like to keep it that way - for neatness and ease of keeping track of were files are etc.

But I don’t know what else to try. I’ve compared all the settings I can find for the two bottles and made them identical. And I’ve tried uninstalling and reinstalling the game (which takes ages, because its a big game) - no success.

So I’m wondering if there is some way I can ‘repair’ or ‘refresh’ the bottle, because obviously something is wrong. And although all my other games work fine, I don’t like the idea that they are living in a broken bottle! (I’m also considering moving everything to the new bottle, but I think that would mean I have to reinstall them all one by one and manually copy settings and saves - so that’s not very appealing.)

I’ve compared to terminal messages of the version that works and the version that doesn’t - and they are almost identical. But the broken version has this:

10751.554:0124:0138:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Failed to map read-only cache: Z:\home\username\.var\app\com.usebottles.bottles\data\bottles\bottles\Game-bottle\cache\vkd3d_shader\vkd3d-proton.cache. (whereas the other one succeeds). So… that’s a hint I guess, but I’m not sure where to go from there.

So… if an experienced person out there has any ideas, I’d be appreciate the help!

  • StillDepressedMan@reddthat.com
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    2 days ago

    Anyway, after experimenting with different settings without success, I tried creating a fresh bottle – and that worked. The game in the new bottle launches fine.

    That’s good, it’s working now after reinstall. At this point, without logs, it could be anything. Maybe you changed the runner (wine version), or the game received some internal update that went wrong. Without logs, it’s hard to say.

    If you want to restore the old bottle state, for the furure just export the bottle and restore it if needed. If you are sandboxing your bottle from internet access, it can’t download the newest Mono (.NET). To prevent that issue, I recommend disabling the sandbox temporarily, switching the runtime to the latest Wine, and if nothing else works—just keep the sandbox enabled and reinstall Mono manually.

    Another thing: one directory above the C: dir or in the same level (IDK) there is a cache directory. Try deleting it—sometimes it prevents the game from running.

    Whenever something doesn’t work, make sure you are on the newest possible versions of dxvk, vkd3d, and Wine (there are multiple options—if you want “clean” Wine, you can use Kron4ek builds + Kron4ek staging with additional patches or just system wine, though system versions may be outdated depending on your distro).

    And one more personal tip: I never advise putting multiple games into the same wine prefix (called “bottle” in Bottles). Tweaking the settings often breaks compatibility: one game works, another stops. It’s much safer to keep one game per prefix.

    And if your game doesn’t need DirectX 12, disable vkd3d and see if it helps.

    • blind3rdeye@aussie.zoneOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      2 days ago

      Thanks a lot for the reply. I’ve been going through each of your suggestions.

      Firstly, I’ve tested using a few different runners, including caffe-9.7, ge-proton10-15, wine-ge-proton8-26, kron4ek-wine-10.14-amd64 and a couple of others. In every case, it fails on the original bottle but works on the new. I’ve got what I think are the latest versions of dxvk (2.7.1) and dxvk-nvapi (0.9.0); but not the latest vkd3d (there seems to be a problem with the download of this in bottles at the moment. I have 2.10.).

      By default, the game uses dx12. But if I launch it with -dx11 then it uses 11 instead. So I tried disabling vkd3d and launching with that command option as you suggested; again, it fails on the original bottle but works on the new one. When using dx12, there are heaps of messages in the terminal (mostly identical, but with that failure near the end only for the broken version). Whereas with dx11 there are very few messages in the terminal. The broken version gives me 00b4:err:hid:udev_bus_init UDEV monitor creation failed. (every runner gives me 002c:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -r" (126). - but I seem to get that all the time on every app even when it works fine. So I assume that is irrelevant.)

      I’m not sure what you mean about ‘can’t download the newest Mono’; because I’m not sure when / what might be trying to download Mono. Do you mean bottles itself, or the game, or something else - I’m not really sure how this stuff works exactly. In this case, I installed mono within the bottle manually by downloading and msi and running it in the bottle. I wasn’t able to find it in the dependencies list inside Bottles, so that’s why I did it manually. But I got the link to the msi download from the bottle dependency list on github. In both of the bottles, the windows uninstaller list tells me that I have 10.1.0 of the Wine Mono runtime.

      All the mono stuff looks right to me, but given that I don’t know what I’m doing, I reckon its quite likely that the root of the problem is related to that stuff. Maybe I didn’t install it correctly or something.

      I tried deleting the cache, and that didn’t work. I also tried copying the cache from the working version to the broken version; that didn’t work either.


      Anyone, thanks again for your thoughts and info on this. I feel like the underlying message in what your saying is that I should just accept that it works in the new one and not the old one - and take that to be the standard practice for how I should do it anyway! Which isn’t exactly what I want, but perhaps it’s the best answer I’m going to get.

      • StillDepressedMan@reddthat.com
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        2 days ago

        I’m not sure what you mean about ‘can’t download the newest Mono’; because I’m not sure when / what might be trying to download Mono.

        When you switch Wine to a newer version, if the Wine developers have updated Mono or Gecko, Wine will show a popup asking if you want to download them. That happens when your version is outdated or missing.

        002c:err:wineboot:process_run_key Error running cmd L"C:\windows\system32\winemenubuilder.exe -r" (126).

        Thats tatally normal.

        but not the latest vkd3d (there seems to be a problem with the download of this in bottles at the moment. I have 2.10.).

        For your information, the current version is something like 2.14. But never mind, I don’t think this is related to the Directx3D implementation, wine or Mono if these things did not help. I just wanted to know if everything was up to date, because always is possibility that could help.

        Wine is far from perfect and sometimes things just break—sometimes because of a system update, sometimes because of a Bottles update, sometimes due to changes in the prefix settings, game update or just bug in wine causing data corruption.

        You’re in a good position since reinstalling actually helped you. That’s not always the case. Sometimes you need to wait months—or even years—for regressions to be fixed.


        Appendix

        I don’t know how familiar you are with Wine, but for the future remember: dxvk is not the default Wine implementation for DirectX 9–11. By default Wine uses wined3d, which is slower but often more robust. So if something doesn’t work, just try disabling dxvk.

        However, in Bottles there’s currently a bug (I think) where to switch properly you first need to change the Wine version to an older one, and then back to the version you actually want to use.

        It’s best to enable performance monitoring and check whether the game is running with dxvk, vkd3d, or wined3d to be sure.

        • blind3rdeye@aussie.zoneOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 day ago

          When you switch Wine to a newer version, if the Wine developers have updated Mono or Gecko, Wine will show a popup asking if you want to download them. That happens when your version is outdated or missing.

          Hmm. But I’m not manually installing Wine. As far as I’m aware, the only implementations of Wine I have have been installed via Bottles (and via Steam, I guess). So for me, getting a new version of Wine basically means going to the ‘runners’ tab in the Bottles preferences menu, and clicking download on a newer version of something. And that has never shown any kind of popup. It just downloads it, and then I later select that new version in a menu for to choose to use it. So I guess I don’t really know when or if mono and gecko ever get updated. If it is integrated into the runner, I suppose they are upgraded like that - but I suspect they are not, because I manually installed wine mono to resolve that first error message.

          I reckon somewhere in this business is where the problem is.


          I don’t know how familiar you are with Wine, but for the future remember: dxvk is not the default Wine implementation for DirectX 9–11. By default Wine uses wined3d, which is slower but often more robust. So if something doesn’t work, just try disabling dxvk.

          However, in Bottles there’s currently a bug (I think) where to switch properly you first need to change the Wine version to an older one, and then back to the version you actually want to use.

          I didn’t know either of those things. And that’s good info for testing purposes. Thank you again.