• 1Fuji2Taka3Nasubi@piefed.zip
    link
    fedilink
    English
    arrow-up
    4
    ·
    22 hours ago

    I know Proton has to fool the windows binary to some degree to make it think it is just running on windows, but I wonder if it is possible for a game developer to offer a “Played this game on a steam deck / steam machine”, or less specifically, “under SteamOS / Proton”, achievement without resorting to a separate Linux binary?

    • pivot_root@lemmy.world
      link
      fedilink
      English
      arrow-up
      8
      ·
      edit-2
      22 hours ago
      • Check for the existence of Z:/etc/os-release and parse it
      • Check for the steamDeck environment variables set by Steam
      • Check that the current account’s username is “deck”
      • Use assembly to directly perform a Linux syscall that would crash the application on Windows but not on Linux.

      It still can’t guarantee that the system is a Steam Deck, but combining all the above is reliable enough to that it would be easier to write an assembly patch for the game than to spoof all of those checks to pass.

      That being said: any developer who adds an achievement just for playing on a specific piece of hardware deserves to be kicked in the groin.

    • grue@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      21 hours ago

      I know Proton has to fool the windows binary to some degree to make it think it is just running on windows

      That’s phrased a bit more adversarily than warranted. The game isn’t trying to only run on Windows and Proton isn’t trying to trick it; the game just uses Windows APIs and Proton reimplements them for Linux. It isn’t like circumventing DRM or anticheat or something like that.