anchor.diff:      sndio
       pulseaudio
     ];
  -in stdenv.mkDerivation rec {
  -  pname = "ryujinx";
  -  version = "1.0.6954"; # Versioning is based off of the official appveyor builds: https://ci.appveyor.com/project/gdkchan/ryujinx
  -
  -  src = fetchFromGitHub {
  -    owner = "Ryujinx";
  -    repo = "Ryujinx";
  -    rev = "31cbd09a75a9d5f4814c3907a060e0961eb2bb15";
  -    sha256 = "00qql0wmlzs722s0igip3v0yjlqhc31jcr7nghwibcqrmx031azk";
  -  };
  -
  -  nativeBuildInputs = [ dotnet-sdk_5 dotnetPackages.Nuget cacert makeWrapper wrapGAppsHook gobject-introspection gdk-pixbuf ];
  -
  -  nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix {
  -    fetchNuGet = { name, version, sha256 }: fetchurl {
  -      name = "nuget-${name}-${version}.nupkg";
  -      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
  -      inherit sha256;
  -    };
  -  });
   
     patches = [
       ./log.patch # Without this, Ryujinx attempts to write logs to the nix store. This patch makes it write to "~/.config/Ryujinx/Logs" on Linux.
     ];
   
  -  configurePhase = ''
  -    runHook preConfigure
  -
  -    export HOME=$(mktemp -d)
  -    export DOTNET_CLI_TELEMETRY_OPTOUT=1
  -    export DOTNET_NOLOGO=1
  -
  -    nuget sources Add -Name nixos -Source "$PWD/nixos"
  -    nuget init "$nugetDeps" "$PWD/nixos"
  -
  -    # FIXME: https://github.com/NuGet/Home/issues/4413
  -    mkdir -p $HOME/.nuget/NuGet
  -    cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet
  -
  -    dotnet restore --source "$PWD/nixos" Ryujinx.sln
  -
  -    runHook postConfigure
  -  '';
  -
  -  buildPhase = ''
  -    runHook preBuild
  -    dotnet build Ryujinx.sln \
  -      --no-restore \
  -      --configuration Release \
  -      -p:Version=${version}
  -    runHook postBuild
  -  '';
  -
  -  installPhase = ''
  -    runHook preInstall
  -
  -    dotnet publish Ryujinx.sln \
  -      --no-build \
  -      --configuration Release \
  -      --no-self-contained \
  -      --output $out/lib/ryujinx
  -    shopt -s extglob
  -
  +  preInstall = ''
       # TODO: fix this hack https://github.com/Ryujinx/Ryujinx/issues/2349
       mkdir -p $out/lib/sndio-6
       ln -s ${sndio}/lib/libsndio.so $out/lib/sndio-6/libsndio.so.6
   
  -    makeWrapper $out/lib/ryujinx/Ryujinx $out/bin/Ryujinx \
  -      --set DOTNET_ROOT "${dotnetCorePackages.net_5_0}" \
  -      --suffix LD_LIBRARY_PATH : "${builtins.concatStringsSep ":" [ (lib.makeLibraryPath runtimeDeps) "$out/lib/sndio-6" ]}" \
  -      ''${gappsWrapperArgs[@]}
  +    makeWrapperArgs+=(
  +      --suffix LD_LIBRARY_PATH : "$out/lib/sndio-6"
  +    )
   
       for i in 16 32 48 64 96 128 256 512 1024; do
         install -D ${src}/Ryujinx/Ui/Resources/Logo_Ryujinx.png $out/share/icons/hicolor/''${i}x$i/apps/ryujinx.png
       done
  +
       cp -r ${makeDesktopItem {
         desktopName = "Ryujinx";
         name = "ryujinx";
  
positive.code: { lib, stdenv, fetchFromGitHub, fetchurl, makeWrapper, makeDesktopItem, linkFarmFromDrvs
  , dotnet-sdk_5, dotnetPackages, dotnetCorePackages, cacert
  , libX11, libgdiplus, ffmpeg
  , SDL2_mixer, openal, libsoundio, sndio, pulseaudio
  , gtk3, gobject-introspection, gdk-pixbuf, wrapGAppsHook
  }:
  
  let
    runtimeDeps = [
      gtk3
      libX11
  
negative.code:       type = "Application";
        categories = "Game;";
      }}/share/applications $out/share
    '';
  
    meta = with lib; {
      description = "Experimental Nintendo Switch Emulator written in C#";
  