ryujinx: 1.1.223 -> 1.1.248

Its now running unit tests, and the headless frontend is packaged as
well. The latter is a bit inconsistent, on the OpenGL backend it will
always fail to create an SDL+OpenGL instance, causing a crash.

The Vulkan backend mostly works fine, although it might need a few
restarts before it decides to show graphics. Better than nothing though.
This commit is contained in:
Ivar Scholten 2022-08-23 04:09:33 +02:00
parent c320c43bb7
commit e3e703844d
No known key found for this signature in database
GPG key ID: E22887AD87C33E3C

View file

@ -1,18 +1,16 @@
{ lib { lib
, buildDotnetModule , buildDotnetModule
, fetchFromGitHub , fetchFromGitHub
, dotnetCorePackages , wrapGAppsHook
, libX11 , libX11
, libgdiplus , libgdiplus
, ffmpeg , ffmpeg
, SDL2_mixer
, openal , openal
, libsoundio , libsoundio
, sndio , sndio
, pulseaudio , pulseaudio
, gtk3 , gtk3
, gdk-pixbuf , gdk-pixbuf
, wrapGAppsHook
, vulkan-loader , vulkan-loader
, libICE , libICE
, libSM , libSM
@ -22,28 +20,24 @@
, libXrandr , libXrandr
, fontconfig , fontconfig
, glew , glew
, libGL
, SDL2
, SDL2_mixer
}: }:
buildDotnetModule rec { buildDotnetModule rec {
pname = "ryujinx"; pname = "ryujinx";
version = "1.1.223"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml version = "1.1.248"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Ryujinx"; owner = "Ryujinx";
repo = "Ryujinx"; repo = "Ryujinx";
rev = "951700fdd8f54fb34ffe8a3fb328a68b5bf37abe"; rev = "5ff5fe47bad947a95545390865c597bec6c62070";
sha256 = "0kzchsxir8wh74rxvp582mci855hbd0vma6yhcc9vpz0zmhi2cpf"; sha256 = "0nfzf7q58mhdyszwv3mbz3wqf4w0m1p3fmf3cpga1pf9mfq65nqz";
}; };
projectFile = "Ryujinx.sln";
nugetDeps = ./deps.nix; nugetDeps = ./deps.nix;
dotnetFlags = [ "/p:ExtraDefineConstants=DISABLE_UPDATER" ];
# TODO: Add the headless frontend. Currently errors on the following:
# System.Exception: SDL2 initlaization failed with error "No available video device"
executables = [ "Ryujinx" "Ryujinx.Ava" ];
nativeBuildInputs = [ nativeBuildInputs = [
wrapGAppsHook wrapGAppsHook
]; ];
@ -74,12 +68,30 @@ buildDotnetModule rec {
libXrandr libXrandr
fontconfig fontconfig
glew glew
# Headless executable
libGL
SDL2
]; ];
patches = [ patches = [
./appdir.patch # Ryujinx attempts to write to the nix store. This patch redirects it to "~/.config/Ryujinx" on Linux. ./appdir.patch # Ryujinx attempts to write to the nix store. This patch redirects it to "~/.config/Ryujinx" on Linux.
]; ];
projectFile = "Ryujinx.sln";
testProjectFile = "Ryujinx.Tests/Ryujinx.Tests.csproj";
doCheck = true;
dotnetFlags = [
"/p:ExtraDefineConstants=DISABLE_UPDATER"
];
executables = [
"Ryujinx.Headless.SDL2"
"Ryujinx.Ava"
"Ryujinx"
];
makeWrapperArgs = [ makeWrapperArgs = [
# Without this Ryujinx fails to start on wayland. See https://github.com/Ryujinx/Ryujinx/issues/2714 # Without this Ryujinx fails to start on wayland. See https://github.com/Ryujinx/Ryujinx/issues/2714
"--set GDK_BACKEND x11" "--set GDK_BACKEND x11"
@ -100,8 +112,10 @@ buildDotnetModule rec {
install -D ./ryujinx-mime.xml $out/share/mime/packages/ryujinx-mime.xml install -D ./ryujinx-mime.xml $out/share/mime/packages/ryujinx-mime.xml
install -D ./ryujinx-logo.svg $out/share/icons/hicolor/scalable/apps/ryujinx.svg install -D ./ryujinx-logo.svg $out/share/icons/hicolor/scalable/apps/ryujinx.svg
substituteInPlace $out/share/applications/ryujinx.desktop --replace \ substituteInPlace $out/share/applications/ryujinx.desktop \
"Exec=Ryujinx" "Exec=$out/bin/Ryujinx" --replace "Exec=Ryujinx" "Exec=$out/bin/Ryujinx"
ln -s $out/bin/Ryujinx $out/bin/ryujinx
popd popd
''; '';