fufexan / nix-gaming

Gaming on Nix
MIT License
560 stars 54 forks source link

Wine/Proton with ntsync/fastsync? #176

Open gallexme opened 6 months ago

gallexme commented 6 months ago

Hey There, do u know if theres a way to enable either ntsync/fastsync in the tkg/other nix wine/proton builds? the cachyos kernel we use does support ntsync already, but havent found a program to use it with yet

gallexme commented 6 months ago

if anyone wants to go on that adventure

  wine-tkg =
    (callPackage "${nixpkgs-wine}/pkgs/applications/emulators/wine/base.nix" (lib.recursiveUpdate defaults
      rec {
        pname = pnameGen "wine-tkg";
        version = lib.removeSuffix "\n" (lib.removePrefix "Wine version " (builtins.readFile "${src}/VERSION"));
        src = pins.wine-tkg;
      }))
    .overrideDerivation (old: {
      NIX_CFLAGS_COMPILE = let
        inherit
          (pkgs.linuxPackages_xanmod_latest)
          kernel
          ;
        headers = pkgs.makeLinuxHeaders {
          inherit (kernel) src;
          inherit (kernel) version;
          inherit (kernel) patches;
        };
      in [
        "-I${headers}/include"
      ];
    });

and the npins sources(built a custom tkg src tree with ntsync enabled)

   "type": "Git",
      "repository": {
        "type": "GitHub",
        "owner": "h0st-space",
        "repo": "wine-tkg-git"
      },
      "branch": "main",
      "revision": "8b36d4a240e6940484fae5d6f65ad7abe3f757d1",
      "url": "https://github.com/h0st-space/wine-tkg-git/archive/8b36d4a240e6940484fae5d6f65ad7abe3f757d1.zip",
      "hash": "sha256:02chyskn1xvra759ms3fw87gpdlp95959ihg3f68jpl0sy4anqk5"
    }

also make sure to run a ntsync kernel+have the module loaded, and properly set permissions on /dev/ntsync (i guess proper way would be a udev rule?) i used sudo chmod 0644 /dev/ntsync for now

the wine-tkg source preparation tool is really impure... i used a fhsuserenv shell to make it and pushed it to git ...