• 0 Posts
  • 291 Comments
Joined 2 years ago
cake
Cake day: June 30th, 2023

help-circle
  • Yeah, I can say that covers most of the “troubleshooting” I’ve had to do with games that don’t work. I usually go in thinking “uh oh, maybe it’s time for me to have to check a bunch of proton versions, this will be a pain” only to see that it’s trying to run it natively and switching to proton at all resolves any issues.

    The only other thing that comes to mind is that I use dvorak and something about the way keyboard layouts are handled means it tries to “preserve” the bindings when I switch layouts in game, so it keeps the messed up QWERTY keys but dvorak layout even when I switch (and can tell it’s switched from typing things like in chat). Most games let me rebind the keys so I just need to go through the bindings, hitting the key currently bound each time as if I was using QWERTY and it rebinds. Though I suspect that due to the “preserve the layout” behaviour that keyboard input is handled specially by proton and maybe I can tweak settings to get the desired behaviour (ie, changing layouts in game means I want the bindings to change).


  • It is a translation layer, but the bit you added “to native code” sounds like you’re misunderstanding what translation layer means.

    Games use a collection of APIs (DirectX is a set of APIs, but there’s others to handle offer operations like network access and such) to interact with OS functionality, and also receive communicarion back from the OS (the windows message loop). Proton and wine are implementations of those APIs that translate the API calls to their equivalent in linux, as well as setting up their own message loop that translates messages from the linux kernel and UI system into their windows equivalent before sending them to the registered windows messaging loop functions.

    A simple example would be if a function header in windows looks like int32 SomeFuncWin( int64 index, char* name ), but looks like int32 SomeFuncLinux( std::string name, int64 index ), then the translation would be something like:

    int32 SomeFuncWin( int64 index, char* name ) {
    std:string TranslatedName( name );
    return SomeFuncLinux( TranslatedName, index );
    }

    So it doesn’t change/translate any of the code of the program itself, it just provides the environment that behaves exactly like a windows environment by translating the “hey could the OS do this for me?” requests from windows to linux. Note that not all translations are that simple, there might need to be more processing on the values, missing arguments might need to be filled in, irrelevant arguments ignored, sometimes data needs to be translated to another format, etc.

    The speed ups can come from improved efficiency in the underlying implementations (which Vulkan has, as I understand even using a translation layer from DX to Vulkan in windows can result in better performance) or having fewer services running in the background.







  • Yeah, when I got my most recent GPU, my plan had been to also get a 4k monitor and step up from 1440p to 4k. But when I was sorting through the options to find the few with decent specs all around, I realized that there was nothing about 1440p that left me dissapointed and the 4k monitor I had used at work already indicated that I’d just be zooming the UI anyways.

    Plus even with the new GPU, 4k numbers weren’t as good as 1440p numbers, and stutters/frame drops are still annoying… So I ended up just getting an ultra-wide 1440p monitor that was much easier to find good specs for and won’t bother with 4k for a monitor until maybe one day if it becomes the minimum, kinda like how analog displays have become much less available than digital displays, even if some people still prefer the old ones for some purposes. I won’t dig my heels in and refuse to move on to 4k, but I don’t see any value added over 1440p. Same goes for 8k TVs.




  • I recently learned of MDisc (there’s a CD and DVD version, too, iirc) and decided to get a burner and convert my old data CDs.

    While I haven’t verified every single bit, I did check that the files copied off of it were still functional and didn’t see any issues. Also didn’t get any errors. I was surprised because I’ve had some of them for over 20 years now and didn’t do more than put them in CD binders to protect them (during the days when I didn’t even consider the longevity of the media, other then obvious things like scratches.

    Only disc I wasn’t able to get the data from was a packet CD, which was a special format that facilitated treating the disc more like diskettes, where you could read or write at will via the filesystem rather than writing the disc as a special package from the start (or having multiple sessions if there’s still room on the disc after one such write). I was able to find references to the tech, though not if it was a standard or just a name a few different companies used for different implementations, but I wasn’t able to find Linux drivers that could do anything other than rip the ISO and a few strings or tell me it can’t find anything. Though it’s possible that corruption is really what happened here because I’d expect RW CDs to last a shorter time than the write once ones.

    Though I suppose I could try it on my old windows machine and see if drivers are more readily available there.





  • When I used to have a cat, at the time I usually slept on my side but I’d switch sides occasionally. She’d be sleeping right on my hip/butt. If I wanted to roll over, I’d just shift a bit first to warn her, then just roll over a bit more slowly than normal and she’d either just jump off while I moved or sometimes just stay on me like a slow rolling log walk. Then, once I’d settled, she would do the same, unless she felt like she was needed at the window or something.

    We kinda trained each other… Sorry, cat, but I need to switch sides from my side, claws if I moved too quickly from hers (not because she was pissed at me but to help keep her footing), but it didn’t take long to sync up with each other.





  • Just note that (unless they’ve changed the default), you need to enable a setting in Steam to make it always use proton, or it will look like reality matches up with your previous expectations. I believe the setting is under compatability in the steam global settings.

    Also be aware that the steam deck compatability icon cares about two things that might not apply to a linux desktop: it loses points for keyboard/mouse centric games (which work fine if you actually use a kb/m instead of controller), and it also cares about how that game will perform on steam deck hardware, though if your gaming PC isn’t very strong, that one might be useful for you.

    Protondb has the more accurate compatability info, though it’s crowd sourced, so might not have up to date info on more obscure titles (though it does seem kinda like every single game has at least a small community obsessed with it that consider it the greatest game).