about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/emulators
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/emulators')
-rw-r--r--nixpkgs/pkgs/applications/emulators/86box/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/emulators/cemu/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/emulators/dosbox-staging/default.nix133
-rw-r--r--nixpkgs/pkgs/applications/emulators/dosbox-x/default.nix101
-rw-r--r--nixpkgs/pkgs/applications/emulators/duckstation/001-fix-test-inclusion.diff11
-rw-r--r--nixpkgs/pkgs/applications/emulators/duckstation/002-hardcode-vars.diff19
-rw-r--r--nixpkgs/pkgs/applications/emulators/duckstation/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/emulators/emulationstation/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/emulators/fs-uae/launcher.nix4
-rw-r--r--nixpkgs/pkgs/applications/emulators/mame/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/emulators/ppsspp/default.nix126
-rw-r--r--nixpkgs/pkgs/applications/emulators/retroarch/cores.nix54
-rw-r--r--nixpkgs/pkgs/applications/emulators/retroarch/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/emulators/retroarch/hashes.json229
-rw-r--r--nixpkgs/pkgs/applications/emulators/retroarch/libretro-core-info.nix6
-rw-r--r--nixpkgs/pkgs/applications/emulators/retroarch/retroarch-assets.nix6
-rw-r--r--nixpkgs/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix6
-rwxr-xr-xnixpkgs/pkgs/applications/emulators/retroarch/update_cores.py15
-rw-r--r--nixpkgs/pkgs/applications/emulators/ryujinx/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/emulators/ryujinx/deps.nix70
-rw-r--r--nixpkgs/pkgs/applications/emulators/vice/default.nix141
-rw-r--r--nixpkgs/pkgs/applications/emulators/wine/sources.nix8
-rw-r--r--nixpkgs/pkgs/applications/emulators/wine/staging.nix2
-rw-r--r--nixpkgs/pkgs/applications/emulators/wineasio/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/emulators/yuzu/sources.nix14
25 files changed, 436 insertions, 634 deletions
diff --git a/nixpkgs/pkgs/applications/emulators/86box/default.nix b/nixpkgs/pkgs/applications/emulators/86box/default.nix
index e14d3d0d7137..3083f2dccbe1 100644
--- a/nixpkgs/pkgs/applications/emulators/86box/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/86box/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "86Box";
-  version = "4.0";
+  version = "4.0.1";
 
   src = fetchFromGitHub {
     owner = "86Box";
     repo = "86Box";
     rev = "v${version}";
-    hash = "sha256-VTfYCVEbArcYVzh3NkX1yBXhtRnGZ/+khk0KG42fs24=";
+    hash = "sha256-1005Czm4CftL96G0+sKV1wx/ogXTKS0vQAzZHtIMlKA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/emulators/cemu/default.nix b/nixpkgs/pkgs/applications/emulators/cemu/default.nix
index d38865adc205..3858ddf55b0d 100644
--- a/nixpkgs/pkgs/applications/emulators/cemu/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/cemu/default.nix
@@ -13,6 +13,7 @@
 , fmt_9
 , glm
 , gtk3
+, hidapi
 , imgui
 , libpng
 , libzip
@@ -31,13 +32,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cemu";
-  version = "2.0-45";
+  version = "2.0-47";
 
   src = fetchFromGitHub {
     owner = "cemu-project";
     repo = "Cemu";
     rev = "v${version}";
-    hash = "sha256-Bi2ws08e+6rNv83ypLrgB/KZWt95i7UkFrqhCr/0Zko=";
+    hash = "sha256-0N/bJJHWMHF+ZlVxNHV8t/1jFr3ER3GNF8CPAHVSsak=";
   };
 
   patches = [
@@ -64,6 +65,7 @@ stdenv.mkDerivation rec {
     fmt_9
     glm
     gtk3
+    hidapi
     imgui
     libpng
     libzip
diff --git a/nixpkgs/pkgs/applications/emulators/dosbox-staging/default.nix b/nixpkgs/pkgs/applications/emulators/dosbox-staging/default.nix
deleted file mode 100644
index fca2cf421044..000000000000
--- a/nixpkgs/pkgs/applications/emulators/dosbox-staging/default.nix
+++ /dev/null
@@ -1,133 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, fetchpatch
-, SDL2
-, SDL2_image
-, SDL2_net
-, alsa-lib
-, copyDesktopItems
-, fluidsynth
-, glib
-, gtest
-, iir1
-, libGL
-, libGLU
-, libjack2
-, libmt32emu
-, libogg
-, libpng
-, libpulseaudio
-, libslirp
-, libsndfile
-, makeDesktopItem
-, makeWrapper
-, meson
-, ninja
-, opusfile
-, pkg-config
-, speexdsp
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "dosbox-staging";
-  version = "0.80.1";
-
-  src = fetchFromGitHub {
-    owner = "dosbox-staging";
-    repo = "dosbox-staging";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-I90poBeLSq1c8PXyjrx7/UcbfqFNnnNiXfJdWhLPGMc=";
-  };
-
-  patches = [
-    # Pull missind SDL2_net dependency:
-    #   https://github.com/dosbox-staging/dosbox-staging/pull/2358
-    (fetchpatch {
-      name = "sdl2-net.patch";
-      url = "https://github.com/dosbox-staging/dosbox-staging/commit/1b02f187a39263f4b0285323dcfe184bccd749c2.patch";
-      hash = "sha256-Ev97xApInu6r5wvI9Q7FhkSXqtMW/rwJj48fExvqnT0=";
-    })
-
-    # Pull missing SDL2_image dependency:
-    #   https://github.com/dosbox-staging/dosbox-staging/pull/2239
-    (fetchpatch {
-      name = "sdl2-image.patch";
-      url = "https://github.com/dosbox-staging/dosbox-staging/commit/ca8b7a906d29a3f8ce956c4af7dc829a6ac3e229.patch";
-      hash = "sha256-WtTVSWWSlfXrdPVsnlDe4P5K/Fnj4QsOzx3Wo/Kusmg=";
-      includes = [ "src/gui/meson.build" ];
-    })
-  ];
-
-  nativeBuildInputs = [
-    copyDesktopItems
-    gtest
-    makeWrapper
-    meson
-    ninja
-    pkg-config
-  ];
-
-  buildInputs = [
-    alsa-lib
-    fluidsynth
-    glib
-    iir1
-    libGL
-    libGLU
-    libjack2
-    libmt32emu
-    libogg
-    libpng
-    libpulseaudio
-    libslirp
-    libsndfile
-    opusfile
-    SDL2
-    SDL2_image
-    SDL2_net
-    speexdsp
-  ];
-
-  desktopItems = [
-    (makeDesktopItem {
-      name = "dosbox-staging";
-      exec = "dosbox-staging";
-      icon = "dosbox-staging";
-      comment = "x86 dos emulator enhanced";
-      desktopName = "DosBox-Staging";
-      genericName = "DOS emulator";
-      categories = [ "Emulator" "Game" ];
-    })
-  ];
-
-  postFixup = ''
-    # Rename binary, add a wrapper, and copy manual to avoid conflict with
-    # original dosbox. Doing it this way allows us to work with frontends and
-    # launchers that expect the binary to be named dosbox, but get out of the
-    # way of vanilla dosbox if the user desires to install that as well.
-    mv $out/bin/dosbox $out/bin/dosbox-staging
-    makeWrapper $out/bin/dosbox-staging $out/bin/dosbox
-
-    # Create a symlink to dosbox manual instead of copying it
-    pushd $out/share/man/man1/
-    ln -s dosbox.1.gz dosbox-staging.1.gz
-    popd
-  '';
-
-  meta = {
-    homepage = "https://dosbox-staging.github.io/";
-    description = "A modernized DOS emulator";
-    longDescription = ''
-      DOSBox Staging is an attempt to revitalize DOSBox's development
-      process. It's not a rewrite, but a continuation and improvement on the
-      existing DOSBox codebase while leveraging modern development tools and
-      practices.
-    '';
-    license = lib.licenses.gpl2Plus;
-    maintainers = with lib.maintainers; [ joshuafern AndersonTorres ];
-    platforms = lib.platforms.unix;
-    priority = 101;
-  };
-})
-# TODO: report upstream about not finding SDL2_net
diff --git a/nixpkgs/pkgs/applications/emulators/dosbox-x/default.nix b/nixpkgs/pkgs/applications/emulators/dosbox-x/default.nix
new file mode 100644
index 000000000000..3c0805e270b4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/emulators/dosbox-x/default.nix
@@ -0,0 +1,101 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, alsa-lib
+, AudioUnit
+, autoreconfHook
+, Carbon
+, Cocoa
+, ffmpeg
+, fluidsynth
+, freetype
+, glib
+, libpcap
+, libpng
+, libslirp
+, libxkbfile
+, libXrandr
+, makeWrapper
+, ncurses
+, pkg-config
+, SDL2
+, SDL2_net
+, testers
+, yad
+, zlib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "dosbox-x";
+  version = "2023.10.06";
+
+  src = fetchFromGitHub {
+    owner = "joncampbell123";
+    repo = "dosbox-x";
+    rev = "dosbox-x-v${finalAttrs.version}";
+    hash = "sha256-YNYtYqcpTOx4xS/LXI53h3S+na8JVpn4w8Dhf4fWNBQ=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    makeWrapper
+    pkg-config
+  ];
+
+  buildInputs = [
+    ffmpeg
+    fluidsynth
+    freetype
+    glib
+    libpcap
+    libpng
+    libslirp
+    ncurses
+    SDL2
+    SDL2_net
+    zlib
+  ] ++ lib.optionals stdenv.hostPlatform.isLinux [
+    alsa-lib
+    libxkbfile
+    libXrandr
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    AudioUnit
+    Carbon
+    Cocoa
+  ];
+
+  configureFlags = [ "--enable-sdl2" ];
+
+  enableParallelBuilding = true;
+
+  hardeningDisable = [ "format" ]; # https://github.com/joncampbell123/dosbox-x/issues/4436
+
+  postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
+    wrapProgram $out/bin/dosbox-x \
+      --prefix PATH : ${lib.makeBinPath [ yad ]}
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    package = finalAttrs.finalPackage;
+    # Version output on stderr, program returns status code 1
+    command = "${lib.getExe finalAttrs.finalPackage} -version 2>&1 || true";
+  };
+
+  meta = {
+    homepage = "https://dosbox-x.com";
+    description = "A cross-platform DOS emulator based on the DOSBox project";
+    longDescription = ''
+      DOSBox-X is an expanded fork of DOSBox with specific focus on running
+      Windows 3.x/9x/Me, PC-98 and 3D support via 3dfx.
+
+      The full expanded feature list is available here:
+      https://dosbox-x.com/wiki/DOSBox%E2%80%90X%E2%80%99s-Feature-Highlights
+    '';
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ hughobrien OPNA2608 ];
+    platforms = lib.platforms.unix;
+    mainProgram = "dosbox-x";
+  };
+})
diff --git a/nixpkgs/pkgs/applications/emulators/duckstation/001-fix-test-inclusion.diff b/nixpkgs/pkgs/applications/emulators/duckstation/001-fix-test-inclusion.diff
new file mode 100644
index 000000000000..b2dabe0262db
--- /dev/null
+++ b/nixpkgs/pkgs/applications/emulators/duckstation/001-fix-test-inclusion.diff
@@ -0,0 +1,11 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 879d46bc..95570f6b 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -20,5 +20,5 @@ if(BUILD_REGTEST)
+ endif()
+ 
+ if(BUILD_TESTS)
+-  add_subdirectory(common-tests EXCLUDE_FROM_ALL)
++  add_subdirectory(common-tests)
+ endif()
diff --git a/nixpkgs/pkgs/applications/emulators/duckstation/002-hardcode-vars.diff b/nixpkgs/pkgs/applications/emulators/duckstation/002-hardcode-vars.diff
new file mode 100644
index 000000000000..f0b7bb67a0ee
--- /dev/null
+++ b/nixpkgs/pkgs/applications/emulators/duckstation/002-hardcode-vars.diff
@@ -0,0 +1,19 @@
+diff --git a/src/scmversion/gen_scmversion.sh b/src/scmversion/gen_scmversion.sh
+index 9c1dacab..d1f895ee 100755
+--- a/src/scmversion/gen_scmversion.sh
++++ b/src/scmversion/gen_scmversion.sh
+@@ -10,10 +10,10 @@ else
+ fi
+ 
+ 
+-HASH=$(git rev-parse HEAD)
+-BRANCH=$(git rev-parse --abbrev-ref HEAD | tr -d '\r\n')
+-TAG=$(git describe --tags --dirty --exclude latest --exclude preview --exclude legacy --exclude previous-latest | tr -d '\r\n')
+-DATE=$(git log -1 --date=iso8601-strict --format=%cd)
++HASH="@gitHash@"
++BRANCH="@gitBranch@"
++TAG="@gitTag@"
++DATE="@gitDate@"
+ 
+ cd $CURDIR
+ 
diff --git a/nixpkgs/pkgs/applications/emulators/duckstation/default.nix b/nixpkgs/pkgs/applications/emulators/duckstation/default.nix
index 87470f561413..e7980e20dddd 100644
--- a/nixpkgs/pkgs/applications/emulators/duckstation/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/duckstation/default.nix
@@ -8,31 +8,45 @@
 , curl
 , extra-cmake-modules
 , libXrandr
+, libbacktrace
 , makeDesktopItem
-, mesa # for libgbm
 , ninja
 , pkg-config
 , qtbase
 , qtsvg
 , qttools
 , qtwayland
+, substituteAll
 , vulkan-loader
 , wayland
 , wrapQtAppsHook
 , enableWayland ? true
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation (finalAttrs: {
   pname = "duckstation";
-  version = "unstable-2023-04-14";
+  version = "unstable-2023-09-30";
 
   src = fetchFromGitHub {
     owner = "stenzek";
     repo = "duckstation";
-    rev = "5fee6f5abee7f3aad65da5523e57896e10e2a53a";
-    sha256 = "sha256-sRs/b4GVXhF3zrOef8DSBKJJGYECUER/nNWZAqv7suA=";
+    rev = "d5608bf12df7a7e03750cb94a08a3d7999034ae2";
+    hash = "sha256-ktfZgacjkN6GQb1vLmyTZMr8QmmH12qAvFSIBTjgRSs=";
   };
 
+  patches = [
+    # Tests are not built by default
+    ./001-fix-test-inclusion.diff
+    # Patching yet another script that fills data based on git commands...
+    (substituteAll {
+      src = ./002-hardcode-vars.diff;
+      gitHash = finalAttrs.src.rev;
+      gitBranch = "master";
+      gitTag = "0.1-5889-gd5608bf1";
+      gitDate = "2023-09-30T23:20:09+10:00";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     copyDesktopItems
@@ -49,7 +63,7 @@ stdenv.mkDerivation {
     SDL2
     curl
     libXrandr
-    mesa
+    libbacktrace
     qtbase
     qtsvg
     vulkan-loader
@@ -60,10 +74,12 @@ stdenv.mkDerivation {
   ]
   ++ cubeb.passthru.backendLibs;
 
+  strictDeps = true;
+
   cmakeFlags = [
-    "-DUSE_DRMKMS=ON"
-  ]
-  ++ lib.optionals enableWayland [ "-DUSE_WAYLAND=ON" ];
+    (lib.cmakeBool "BUILD_TESTS" true)
+    (lib.cmakeBool "ENABLE_WAYLAND" enableWayland)
+  ];
 
   desktopItems = [
     (makeDesktopItem {
@@ -79,6 +95,13 @@ stdenv.mkDerivation {
     })
   ];
 
+  doCheck = true;
+  checkPhase = ''
+    runHook preCheck
+    bin/common-tests
+    runHook postCheck
+  '';
+
   installPhase = ''
     runHook preInstall
 
@@ -92,23 +115,16 @@ stdenv.mkDerivation {
     runHook postInstall
   '';
 
-  doCheck = true;
-  checkPhase = ''
-    runHook preCheck
-    bin/common-tests
-    runHook postCheck
-  '';
-
   qtWrapperArgs = [
     "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ vulkan-loader ] ++ cubeb.passthru.backendLibs)}"
   ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/stenzek/duckstation";
     description = "Fast PlayStation 1 emulator for x86-64/AArch32/AArch64";
-    license = licenses.gpl3Only;
+    license = lib.licenses.gpl3Only;
     mainProgram = "duckstation-qt";
-    maintainers = with maintainers; [ guibou AndersonTorres ];
-    platforms = platforms.linux;
+    maintainers = with lib.maintainers; [ guibou AndersonTorres ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/nixpkgs/pkgs/applications/emulators/emulationstation/default.nix b/nixpkgs/pkgs/applications/emulators/emulationstation/default.nix
index 170a3c30e547..f0434ecdedf4 100644
--- a/nixpkgs/pkgs/applications/emulators/emulationstation/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/emulationstation/default.nix
@@ -1,34 +1,25 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, cmake, curl, boost, eigen
-, freeimage, freetype, libGLU, libGL, SDL2, alsa-lib, libarchive
-, fetchpatch }:
+, freeimage, freetype, libGLU, libGL, rapidjson, SDL2, alsa-lib
+, vlc }:
 
 stdenv.mkDerivation {
   pname = "emulationstation";
-  version = "2.0.1a";
+  version = "2.11.2";
 
   src = fetchFromGitHub {
-    owner = "Aloshi";
+    fetchSubmodules = true;
+    owner = "RetroPie";
     repo = "EmulationStation";
-    rev = "646bede3d9ec0acf0ae378415edac136774a66c5";
-    sha256 = "0cm0sq2wri2l9cvab1l0g02za59q7klj0h3p028vr96n6njj4w9v";
+    rev = "cda7de687924c4c1ab83d6b0ceb88aa734fe6cfe";
+    hash = "sha256-J5h/578FVe4DXJx/AvpRnCIUpqBeFtmvFhUDYH5SErQ=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/Aloshi/EmulationStation/commit/49ccd8fc7a7b1dfd974fc57eb13317c42842f22c.patch";
-      sha256 = "1v5d81l7bav0k5z4vybrc3rjcysph6lkm5pcfr6m42wlz7jmjw0p";
-    })
-  ];
-
-  postPatch = ''
-    sed -i "7i #include <stack>" es-app/src/views/gamelist/ISimpleGameListView.h
-  '';
-
   nativeBuildInputs = [ pkg-config cmake ];
-  buildInputs = [ alsa-lib boost curl eigen freeimage freetype libarchive libGLU libGL SDL2 ];
+  buildInputs = [ alsa-lib boost curl eigen freeimage freetype libGLU libGL rapidjson SDL2 vlc ];
 
   installPhase = ''
     install -D ../emulationstation $out/bin/emulationstation
+    cp -r ../resources/ $out/bin/resources/
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/emulators/fs-uae/launcher.nix b/nixpkgs/pkgs/applications/emulators/fs-uae/launcher.nix
index 63ff7eee2ea6..51349182832a 100644
--- a/nixpkgs/pkgs/applications/emulators/fs-uae/launcher.nix
+++ b/nixpkgs/pkgs/applications/emulators/fs-uae/launcher.nix
@@ -36,9 +36,11 @@ stdenv.mkDerivation (finalAttrs: {
     wrapQtApp "$out/bin/fs-uae-launcher" \
       --set PYTHONPATH "$PYTHONPATH"
 
-    # fs-uae-launcher search side by side for fs-uae
+    # fs-uae-launcher search side by side for executables and shared files
     # see $src/fsgs/plugins/pluginexecutablefinder.py#find_executable
     ln -s ${fsuae}/bin/fs-uae $out/bin
+    ln -s ${fsuae}/bin/fs-uae-device-helper $out/bin
+    ln -s ${fsuae}/share/fs-uae $out/share/fs-uae
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/emulators/mame/default.nix b/nixpkgs/pkgs/applications/emulators/mame/default.nix
index 6edfd2e149d6..730ed7b7ac0a 100644
--- a/nixpkgs/pkgs/applications/emulators/mame/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/mame/default.nix
@@ -38,14 +38,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mame";
-  version = "0.258";
+  version = "0.259";
   srcVersion = builtins.replaceStrings [ "." ] [ "" ] version;
 
   src = fetchFromGitHub {
     owner = "mamedev";
     repo = "mame";
     rev = "mame${srcVersion}";
-    hash = "sha256-5wsPlI3xTCeadxvOjjNSGtaa8F7M6gZobsv2Ks8DSGE=";
+    hash = "sha256-F8psPvwuaILXZF7dCStJApVTD9zzzBwjf1CKGelHlqE=";
   };
 
   outputs = [ "out" "tools" ];
diff --git a/nixpkgs/pkgs/applications/emulators/ppsspp/default.nix b/nixpkgs/pkgs/applications/emulators/ppsspp/default.nix
deleted file mode 100644
index 94a04de14c91..000000000000
--- a/nixpkgs/pkgs/applications/emulators/ppsspp/default.nix
+++ /dev/null
@@ -1,126 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, SDL2
-, cmake
-, copyDesktopItems
-, ffmpeg_4
-, glew
-, libffi
-, libsForQt5
-, libzip
-, makeDesktopItem
-, makeWrapper
-, pkg-config
-, python3
-, snappy
-, vulkan-loader
-, wayland
-, zlib
-, enableQt ? false
-, enableVulkan ? true
-, forceWayland ? false
-}:
-
-let
-  # experimental, see https://github.com/hrydgard/ppsspp/issues/13845
-  vulkanWayland = enableVulkan && forceWayland;
-  inherit (libsForQt5) qtbase qtmultimedia wrapQtAppsHook;
-in
-# Only SDL frontend needs to specify whether to use Wayland
-assert forceWayland -> !enableQt;
-stdenv.mkDerivation (finalAttrs: {
-  pname = "ppsspp"
-          + lib.optionalString enableQt "-qt"
-          + lib.optionalString (!enableQt) "-sdl"
-          + lib.optionalString forceWayland "-wayland";
-  version = "1.16.1";
-
-  src = fetchFromGitHub {
-    owner = "hrydgard";
-    repo = "ppsspp";
-    rev = "v${finalAttrs.version}";
-    fetchSubmodules = true;
-    sha256 = "sha256-bKRb7a5lEfE1uUeVl7i1He3qLJ4wI5HmKmWAk2oKdYI=";
-  };
-
-  postPatch = ''
-    substituteInPlace git-version.cmake --replace unknown ${finalAttrs.src.rev}
-    substituteInPlace UI/NativeApp.cpp --replace /usr/share $out/share
-  '';
-
-  nativeBuildInputs = [
-    cmake
-    copyDesktopItems
-    makeWrapper
-    pkg-config
-    python3
-  ] ++ lib.optional enableQt wrapQtAppsHook;
-
-  buildInputs = [
-    SDL2
-    ffmpeg_4
-    (glew.override { enableEGL = forceWayland; })
-    libzip
-    snappy
-    zlib
-  ] ++ lib.optionals enableQt [
-    qtbase
-    qtmultimedia
-  ] ++ lib.optional enableVulkan vulkan-loader
-  ++ lib.optionals vulkanWayland [ wayland libffi ];
-
-  cmakeFlags = [
-    "-DHEADLESS=${if enableQt then "OFF" else "ON"}"
-    "-DOpenGL_GL_PREFERENCE=GLVND"
-    "-DUSE_SYSTEM_FFMPEG=ON"
-    "-DUSE_SYSTEM_LIBZIP=ON"
-    "-DUSE_SYSTEM_SNAPPY=ON"
-    "-DUSE_WAYLAND_WSI=${if vulkanWayland then "ON" else "OFF"}"
-    "-DUSING_QT_UI=${if enableQt then "ON" else "OFF"}"
-  ];
-
-  desktopItems = [
-    (makeDesktopItem {
-      desktopName = "PPSSPP";
-      name = "ppsspp";
-      exec = "ppsspp";
-      icon = "ppsspp";
-      comment = "Play PSP games on your computer";
-      categories = [ "Game" "Emulator" ];
-    })
-  ];
-
-  installPhase = let
-    vulkanPath = lib.makeLibraryPath [ vulkan-loader ];
-  in
-    ''
-      runHook preInstall
-
-      mkdir -p $out/share/{applications,ppsspp,icons}
-    '' + (if enableQt then ''
-      install -Dm555 PPSSPPQt $out/bin/ppsspp
-      wrapProgram $out/bin/ppsspp \
-    '' else ''
-      install -Dm555 PPSSPPHeadless $out/bin/ppsspp-headless
-      install -Dm555 PPSSPPSDL $out/share/ppsspp/
-      makeWrapper $out/share/ppsspp/PPSSPPSDL $out/bin/ppsspp \
-        --set SDL_VIDEODRIVER ${if forceWayland then "wayland" else "x11"} \
-    '') + lib.optionalString enableVulkan ''
-        --prefix LD_LIBRARY_PATH : ${vulkanPath} \
-    '' + "\n" + ''
-      mv assets $out/share/ppsspp
-      mv ../icons/hicolor $out/share/icons
-
-      runHook postInstall
-    '';
-
-  meta = {
-    homepage = "https://www.ppsspp.org/";
-    description = "A HLE Playstation Portable emulator, written in C++ ("
-                  + (if enableQt then "Qt" else "SDL + headless") + ")";
-    license = lib.licenses.gpl2Plus;
-    maintainers = [ lib.maintainers.AndersonTorres ];
-    platforms = lib.platforms.linux;
-  };
-})
diff --git a/nixpkgs/pkgs/applications/emulators/retroarch/cores.nix b/nixpkgs/pkgs/applications/emulators/retroarch/cores.nix
index 7611a8860b91..d1cbf12b34d0 100644
--- a/nixpkgs/pkgs/applications/emulators/retroarch/cores.nix
+++ b/nixpkgs/pkgs/applications/emulators/retroarch/cores.nix
@@ -50,7 +50,7 @@ let
   mkLibretroCore =
     { core
     , src ? (getCoreSrc core)
-    , version ? "unstable-2023-03-13"
+    , version ? "unstable-2023-09-24"
     , ...
     }@args:
     import ./mkLibretroCore.nix ({
@@ -100,12 +100,22 @@ in
     };
   };
 
+  beetle-pce = mkLibretroCore {
+    core = "mednafen-pce";
+    src = getCoreSrc "beetle-pce";
+    makefile = "Makefile";
+    meta = {
+      description = "Port of Mednafen's PC Engine core to libretro";
+      license = lib.licenses.gpl2Only;
+    };
+  };
+
   beetle-pce-fast = mkLibretroCore {
     core = "mednafen-pce-fast";
     src = getCoreSrc "beetle-pce-fast";
     makefile = "Makefile";
     meta = {
-      description = "Port of Mednafen's PC Engine core to libretro";
+      description = "Port of Mednafen's PC Engine fast core to libretro";
       license = lib.licenses.gpl2Only;
     };
   };
@@ -291,7 +301,11 @@ in
     core = "citra";
     extraBuildInputs = [ libGLU libGL boost ffmpeg nasm ];
     makefile = "Makefile";
-    makeFlags = [ "HAVE_FFMPEG_STATIC=0" ];
+    makeFlags = [
+      "HAVE_FFMPEG_STATIC=0"
+      # https://github.com/libretro/citra/blob/1a66174355b5ed948de48ef13c0ed508b6d6169f/Makefile#L90
+      "BUILD_DATE=01/01/1970_00:00"
+    ];
     meta = {
       description = "Port of Citra to libretro";
       license = lib.licenses.gpl2Plus;
@@ -410,7 +424,9 @@ in
 
   flycast = mkLibretroCore {
     core = "flycast";
+    extraNativeBuildInputs = [ cmake ];
     extraBuildInputs = [ libGL libGLU ];
+    cmakeFlags = [ "-DLIBRETRO=ON" ];
     makefile = "Makefile";
     meta = {
       description = "Flycast libretro port";
@@ -502,7 +518,10 @@ in
 
   mame = mkLibretroCore {
     core = "mame";
-    extraBuildInputs = [ alsa-lib libGLU libGL portaudio python3 xorg.libX11 ];
+    extraNativeBuildInputs = [ python3 ];
+    extraBuildInputs = [ alsa-lib libGLU libGL ];
+    # Setting this is breaking compilation of src/3rdparty/genie for some reason
+    makeFlags = [ "ARCH=" ];
     meta = {
       description = "Port of MAME to libretro";
       license = with lib.licenses; [ bsd3 gpl2Plus ];
@@ -626,6 +645,13 @@ in
     src = getCoreSrc "mupen64plus";
     extraBuildInputs = [ libGLU libGL libpng nasm xorg.libX11 ];
     makefile = "Makefile";
+    makeFlags = [
+      "HAVE_PARALLEL_RDP=1"
+      "HAVE_PARALLEL_RSP=1"
+      "HAVE_THR_AL=1"
+      "LLE=1"
+      "WITH_DYNAREC=${stdenv.hostPlatform.parsed.cpu.name}"
+    ];
     meta = {
       description = "Libretro port of Mupen64 Plus, GL only";
       license = lib.licenses.gpl3Only;
@@ -698,6 +724,11 @@ in
     core = "parallel-n64";
     extraBuildInputs = [ libGLU libGL libpng ];
     makefile = "Makefile";
+    makeFlags = [
+      "HAVE_PARALLEL=1"
+      "HAVE_PARALLEL_RSP=1"
+      "ARCH=${stdenv.hostPlatform.parsed.cpu.name}"
+    ];
     postPatch = lib.optionalString stdenv.hostPlatform.isAarch64 ''
       sed -i -e '1 i\CPUFLAGS += -DARM_FIX -DNO_ASM -DARM_ASM -DDONT_WANT_ARM_OPTIMIZATIONS -DARM64' Makefile \
       && sed -i -e 's,CPUFLAGS  :=,,g' Makefile
@@ -737,7 +768,7 @@ in
     # causes redefinition of _FORTIFY_SOURCE
     hardeningDisable = [ "fortify3" ];
 
-    postBuild = "cd /build/source/build/pcsx2";
+    postBuild = "cd $NIX_BUILD_TOP/source/build/pcsx2";
     meta = {
       description = "Port of PCSX2 to libretro";
       license = lib.licenses.gpl3Plus;
@@ -852,19 +883,8 @@ in
     };
   };
 
-  scummvm = mkLibretroCore rec {
+  scummvm = mkLibretroCore {
     core = "scummvm";
-    version = "unstable-2022-04-06";
-    # Commit below introduces libretro platform, that uses libretro-{deps,common} as
-    # submodules. We will probably need to introduce this as separate derivations,
-    # but for now let's just use the last known version that does not use it.
-    # https://github.com/libretro/scummvm/commit/36446fa6eb33e67cc798f56ce1a31070260e2ada
-    src = fetchFromGitHub {
-      owner = "libretro";
-      repo = core;
-      rev = "2fb2e4c551c9c1510c56f6e890ee0300b7b3fca3";
-      hash = "sha256-wrlFqu+ONbYH4xMFDByOgySobGrkhVc7kYWI4JzA4ew=";
-    };
     extraBuildInputs = [ fluidsynth libjpeg libvorbis libGLU libGL ];
     makefile = "Makefile";
     preConfigure = "cd backends/platform/libretro/build";
diff --git a/nixpkgs/pkgs/applications/emulators/retroarch/default.nix b/nixpkgs/pkgs/applications/emulators/retroarch/default.nix
index 2abbdb1c46ef..6b7da614cdbe 100644
--- a/nixpkgs/pkgs/applications/emulators/retroarch/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/retroarch/default.nix
@@ -8,7 +8,6 @@
 , alsa-lib
 , dbus
 , fetchFromGitHub
-, fetchpatch
 , ffmpeg_4
 , flac
 , freetype
@@ -17,7 +16,6 @@
 , libGL
 , libGLU
 , libpulseaudio
-, libretro-core-info
 , libv4l
 , libX11
 , libXdmcp
@@ -32,10 +30,8 @@
 , pkg-config
 , python3
 , qtbase
-, retroarch-assets
 , SDL2
 , spirv-tools
-, substituteAll
 , udev
 , vulkan-loader
 , wayland
@@ -50,12 +46,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "retroarch-bare";
-  version = "1.15.0";
+  version = "1.16.0.3";
 
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "RetroArch";
-    hash = "sha256-kJOR3p3fKqGM8a5rgDPkz43uuf5AtS5fVnvr3tJgWbc=";
+    hash = "sha256-BT+LzRDoQF03aNT2Kg7YaSWhK74CvOOiHUeHDtFpe9s=";
     rev = "v${version}";
   };
 
diff --git a/nixpkgs/pkgs/applications/emulators/retroarch/hashes.json b/nixpkgs/pkgs/applications/emulators/retroarch/hashes.json
index 9e38d15cac89..f1099967fe78 100644
--- a/nixpkgs/pkgs/applications/emulators/retroarch/hashes.json
+++ b/nixpkgs/pkgs/applications/emulators/retroarch/hashes.json
@@ -8,8 +8,8 @@
     "atari800": {
         "owner": "libretro",
         "repo": "libretro-atari800",
-        "rev": "94033288b026fe699bc50703609807aa8075f4dd",
-        "hash": "sha256-fTKFELELt1g7t3uPgnXIgeMkkSbl9GHr0/k2FHcpDFI="
+        "rev": "20d59afb3f19065749549732f20845c3be82e68c",
+        "hash": "sha256-5cxBubhw60Jmp1p5TQ/L6RLaLANctG0TdpzGnpCadIM="
     },
     "beetle-gba": {
         "owner": "libretro",
@@ -20,8 +20,8 @@
     "beetle-lynx": {
         "owner": "libretro",
         "repo": "beetle-lynx-libretro",
-        "rev": "3ca44fda26f27418c92ada1b0f38b948af2151ae",
-        "hash": "sha256-f0A8gA3UT40UDaAkWQcPoDd6vAcM37tNtZ2hCOIyBJA="
+        "rev": "fab3ac02d5622eb53a707bd392cc037282e9d8b4",
+        "hash": "sha256-+MKH8LmqDqznDIca/Q129zIXYI23V7s38sCD6rKiZlk="
     },
     "beetle-ngp": {
         "owner": "libretro",
@@ -29,29 +29,35 @@
         "rev": "65460e3a9ad529f6901caf669abbda11f437ab55",
         "hash": "sha256-+xfD1ZMKtbv5Lp12+5RM7Vl3eEF38kykKW8wj/2EN5w="
     },
+    "beetle-pce": {
+        "owner": "libretro",
+        "repo": "beetle-pce-libretro",
+        "rev": "541463bd937dad175aec09c2a0c8d6a52d175386",
+        "hash": "sha256-wWS9reb6aN71Q7OlGst+32T8XX1yMCSOHUKHkXht3hg="
+    },
     "beetle-pce-fast": {
         "owner": "libretro",
         "repo": "beetle-pce-fast-libretro",
-        "rev": "e480f6388375f59fd3e7aeef8ef8531c20e5c73e",
-        "hash": "sha256-uURt6rB0IngWzEpl0DjbckdaTIjNwVCm3auvy7AwUdA="
+        "rev": "f2ff19e56fb33361793f9fdaf44c1ea28bce1da3",
+        "hash": "sha256-w7weSz8HR4YNPiBPqa81s3/8b9oFijr6DxNeQ/+I9OE="
     },
     "beetle-pcfx": {
         "owner": "libretro",
         "repo": "beetle-pcfx-libretro",
-        "rev": "724bd21b4524f8cf376dbc29c3e5a12cb674c758",
-        "hash": "sha256-xeIVZ8FWGbETWYRIBNs3Yum7FDit5fb77hhH+RU45BY="
+        "rev": "47c355b6a515aef6dc57f57df1535570108a0e21",
+        "hash": "sha256-ylFo/wmLQpQGYSrv9PF2DBmr/8rklmHF9R+3y8v93Rs="
     },
     "beetle-psx": {
         "owner": "libretro",
         "repo": "beetle-psx-libretro",
-        "rev": "fd812d4cf8f65644faef1ea8597f826ddc37c0a0",
-        "hash": "sha256-yvMgnY2dGUk8TvvfDklN3f6b1ol7vDu6AJcYzdwy9pI="
+        "rev": "f256cc3dc3ec2f6017f7088f056996f8f155db64",
+        "hash": "sha256-McMV5p1qEvqkeTjqOaD+xHNRQly+CNen9YUJxqLpJzk="
     },
     "beetle-saturn": {
         "owner": "libretro",
         "repo": "beetle-saturn-libretro",
-        "rev": "9bd31a4a42d06ca0f6d30ee38a569e57c150c414",
-        "hash": "sha256-RHvH9Jp6c4cgEMTo+p+dU7qgJqjPbRqJLURadjAysrM="
+        "rev": "cd395e9e3ee407608450ebc565e871b24e7ffed6",
+        "hash": "sha256-EIZRv1EydfLWFoBb8TzvAY3kkL9Qr2OrwrljOnnM92A="
     },
     "beetle-snes": {
         "owner": "libretro",
@@ -62,26 +68,26 @@
     "beetle-supafaust": {
         "owner": "libretro",
         "repo": "supafaust",
-        "rev": "75c658cce454e58ae04ea252f53a31c60d61548e",
-        "hash": "sha256-2fXarVfb5/SYXF8t25/fGNFvODpGas5Bi0hLIbXgB+0="
+        "rev": "6b639c98372d1c9bac885c55d772c812d2a9d525",
+        "hash": "sha256-EVXwjrxooZm1JqG4HswUe8zwN81Rm7SPB5Fr4WfpTnc="
     },
     "beetle-supergrafx": {
         "owner": "libretro",
         "repo": "beetle-supergrafx-libretro",
-        "rev": "1ff2daa9377114d5394142f75f1c388b706567ed",
-        "hash": "sha256-0FCm9kURtUQpyPb8cSmRAxttnUJnhE3EWV8DPvlj8HE="
+        "rev": "56261ccd56f576a42a2d22190c09eb326a4331da",
+        "hash": "sha256-aoEq4o9uZIAsjQQsN+tJNhOuFA9SNb7RKIUwqUGPhJQ="
     },
     "beetle-vb": {
         "owner": "libretro",
         "repo": "beetle-vb-libretro",
-        "rev": "dd6393f76ff781df0f4e8c953f5b053b1e61b313",
-        "hash": "sha256-C8OtTNdC7GNFsY2EH56in35IX8d6ou/1R04kMvM9674="
+        "rev": "732a8f701e671bf032165730fdf8bd96fb5ca7bb",
+        "hash": "sha256-M19+ZidqqDdohuAVPxGVFQDQqoMl2QYM+K1WToqeOWM="
     },
     "beetle-wswan": {
         "owner": "libretro",
         "repo": "beetle-wswan-libretro",
-        "rev": "81e8b2afd31b7f0f939a3df6d70c8723bcc8a701",
-        "hash": "sha256-xmDtMC5pId5X4vf9kHO55HmRpp/4ZruOM8QJSl//9R8="
+        "rev": "a0ddcd3f084f5b4eb06acb6e03b8c4707a2f6123",
+        "hash": "sha256-FJfznSo/3YKecVSU9mZW6yzd4/8vf2qrX4xhWjptd+A="
     },
     "blastem": {
         "owner": "libretro",
@@ -92,20 +98,20 @@
     "bluemsx": {
         "owner": "libretro",
         "repo": "bluemsx-libretro",
-        "rev": "acf358be18644a9df0ed9602d63c2f73d4fe605a",
-        "hash": "sha256-K4mH+brakYZcVEeYMFUkFThqdZGt2+aP5DfpOgWSJxg="
+        "rev": "e21bf74bddb79ad1bbe20b4d964e7515269c669b",
+        "hash": "sha256-U58zJd7txOyd9jymVmogQMIH5Av2kjO5MOn49T2FmqQ="
     },
     "bsnes": {
         "owner": "libretro",
         "repo": "bsnes-libretro",
-        "rev": "4da970a334ba4644cef72e560985ea3f31fa40f7",
-        "hash": "sha256-Bu5j1wrMNVMmxQULZwTdXyWi2i6F5C6m8wFDxvtjYdI="
+        "rev": "3fe4f9049f99ac71d038b3cb684ebfc8e6cef15a",
+        "hash": "sha256-fUcJQGkLGTgxEGwWVoZ4Hys9kOKAft7CDTTdQ8j4+Do="
     },
     "bsnes-hd": {
         "owner": "DerKoun",
         "repo": "bsnes-hd",
-        "rev": "04821703aefdc909a4fd66d168433fcac06c2ba7",
-        "hash": "sha256-QmNthbWb92vel5PFwJRXeEEVZHIxfvZ0ls+csodpGbU="
+        "rev": "f46b6d6368ea93943a30b5d4e79e8ed51c2da5e8",
+        "hash": "sha256-Y3FhGtcz7BzwUSBy1SGMuylJdZti/JB8qQnabIkG/dI="
     },
     "bsnes-mercury": {
         "owner": "libretro",
@@ -123,8 +129,8 @@
     "desmume": {
         "owner": "libretro",
         "repo": "desmume",
-        "rev": "fbd368c8109f95650e1f81bca1facd6d4d8687d7",
-        "hash": "sha256-7MFa5zd1jdOCqSI+VPl5nAHE7Kfm/lA0lbSPFskzqaQ="
+        "rev": "cf0fcc6ea4a85b7491bdf9adc7bf09748b4be7da",
+        "hash": "sha256-ne4Tu8U/WSB4vlwBQMK7Ss3UEpDxsOFltpMk2hIx23M="
     },
     "desmume2015": {
         "owner": "libretro",
@@ -147,14 +153,14 @@
     "dosbox-pure": {
         "owner": "schellingb",
         "repo": "dosbox-pure",
-        "rev": "035e01e43623f83a9e71f362364fd74091379455",
-        "hash": "sha256-j7Or4yTK5l+ZVC5UFeym9sLx+88PRlofoBT1tMuf31A="
+        "rev": "e8396b8564ed88d87702ee40b935dec6384c0e5a",
+        "hash": "sha256-rD7b1uX/Wsu2ik06IiHKbUHT05IllCoBcPMN9OJ0+X4="
     },
     "eightyone": {
         "owner": "libretro",
         "repo": "81-libretro",
-        "rev": "340a51b250fb8fbf1a9e5d3ad3924044250064e0",
-        "hash": "sha256-Cz3gPwbME8lDMKju3dn8hM8O2u9h9+8EUg7Nf6a7epA="
+        "rev": "6d1b4d26aa9870133616fcfb5a763ca138ae25d1",
+        "hash": "sha256-KCtJvYWcS3DjAZfyP4sG496X9fOHji/ZwpjiZD0OFDY="
     },
     "fbalpha2012": {
         "owner": "libretro",
@@ -165,32 +171,33 @@
     "fbneo": {
         "owner": "libretro",
         "repo": "fbneo",
-        "rev": "ffcd114b8ea3f3387b66997263ea5df358675aa5",
-        "hash": "sha256-a4hXRluHQY5hC5jFU2mlqUAI5GmQk6Rbl1HNRA929CI="
+        "rev": "9e22c4c7ac42d5f1e5ffacdecb26acae60c663eb",
+        "hash": "sha256-obzPz5lPqcQzLbB7cFGI50W1rFnF8tqZkpocETSAH0Q="
     },
     "fceumm": {
         "owner": "libretro",
         "repo": "libretro-fceumm",
-        "rev": "1fa798b220a6df8417dcf7da0ab117533385d9c2",
-        "hash": "sha256-B1iHZ7BVaM/GBgdD2jNZIEmXcRqKC6YaO9z1ByocMtE="
+        "rev": "7fad08e5522e5396a1196055fc106be9b5d5de77",
+        "hash": "sha256-XHutsAc2PD8INP2u8WTmr2+rxuklXjBruH/mNl5Ro34="
     },
     "flycast": {
-        "owner": "libretro",
+        "owner": "flyinghead",
         "repo": "flycast",
-        "rev": "4c293f306bc16a265c2d768af5d0cea138426054",
-        "hash": "sha256-9IxpRBY1zifhOebLJSDMA/wiOfcZj+KOiPrgmjiFxvo="
+        "rev": "39a212140a159e7e7a183a40a201863c0560a945",
+        "hash": "sha256-lvagJRedkh9m48yHo7ErsIyW9W2QXs6wnEjSgtrHE74=",
+        "fetchSubmodules": true
     },
     "fmsx": {
         "owner": "libretro",
         "repo": "fmsx-libretro",
-        "rev": "1360c9ff32b390383567774d01fbe5d6dfcadaa3",
-        "hash": "sha256-LLGD29HKpV34IOJ2ygjHZZT7XQqHHXccnpGNfWCuabg="
+        "rev": "1806eed4376fbe2fad82fa19271ea298cfbb7795",
+        "hash": "sha256-nX0H/+iEq7eBN4tm1+dT6/3BYLCpoyiE/L6waDPmUZI="
     },
     "freeintv": {
         "owner": "libretro",
         "repo": "freeintv",
-        "rev": "9a65ec6e31d48ad0dae1f381c1ec61c897f970cb",
-        "hash": "sha256-ZeWw/K6i04XRympqZ6sQG/yjN8cJglVcIkxpyRHx424="
+        "rev": "85bf25a39a34bbc39fe36677175d87c2b597dbe7",
+        "hash": "sha256-4cU/YRZZb7EWNBJX8M91Lb+bCCIlks6xX2Cf6Iq/g9g="
     },
     "fuse": {
         "owner": "libretro",
@@ -201,62 +208,62 @@
     "gambatte": {
         "owner": "libretro",
         "repo": "gambatte-libretro",
-        "rev": "ea563fac40e281b29d37f6b56657abef8f1aaf0d",
-        "hash": "sha256-2jVbEsGkvdH1lA2//mb2Rm3xeh4EyFUcOUXdydSisvk="
+        "rev": "64561b7e1b21dfa42eecb94963c1c495ba332466",
+        "hash": "sha256-BRh357MGHlglGSs48LhhRNTTyAUD9O0QmGeqLnyYap0="
     },
     "genesis-plus-gx": {
         "owner": "libretro",
         "repo": "Genesis-Plus-GX",
-        "rev": "f6a9bd72a56a11c2068be2d15fa52dda3e1e8027",
-        "hash": "sha256-4siJGPRMpXHfP6mBPoDJArNaISTNjPKT69cvtGldadI="
+        "rev": "141257e1e2104c4e4a49dc771d9f3c06e00292ec",
+        "hash": "sha256-voNDwfwBIzuq9peNJ2CtF6UBnaJCDpiWmqPgtrPZplU="
     },
     "gpsp": {
         "owner": "libretro",
         "repo": "gpsp",
-        "rev": "541adc9e1c6c9328c07058659594d6300ae0fa19",
-        "hash": "sha256-2iv/gMOgTZReDgVzEc3WyOdAlYgfANK08CtpZIyPxgA="
+        "rev": "c0d8ffaa384f724e1a0743e18cb042c29dd48f7f",
+        "hash": "sha256-KKO0bBV+5+8UcSspZHfinntp/mxukcf6/P4kIi6doUs="
     },
     "gw": {
         "owner": "libretro",
         "repo": "gw-libretro",
-        "rev": "19a1cb3105ca4a82139fb4994e7995fd956f6f8d",
-        "hash": "sha256-luhKXzxrXVNAHw8ArF1I78Zch7XEPwI3aqe0f6WRgD0="
+        "rev": "0ecff52b11c327af52b22ea94b268c90472b6732",
+        "hash": "sha256-N/nZoo+duk7XhRtNdV1paWzxYUhv8nLUcnnOs2gbZuQ="
     },
     "handy": {
         "owner": "libretro",
         "repo": "libretro-handy",
-        "rev": "63db085af671bad2929078c55434623b7d4632a1",
-        "hash": "sha256-N6M3KSU4NPJCqoG/UMrna9/6H5PsBBMUQLrvqiIdxpE="
+        "rev": "0559d3397f689ea453b986311aeac8dbd33afb0b",
+        "hash": "sha256-Nsp0jiOLWjTGJRURkwx8mj7bBG8nM5fRqE93Lo9n4ac="
     },
     "hatari": {
         "owner": "libretro",
         "repo": "hatari",
-        "rev": "1ebf0a0488580ef95c0b28f02223b31813c867c5",
-        "hash": "sha256-i6dr+fFWPatRCIY+ajIZ1p3ERPV5ktv0nxHKxbGE5ao="
+        "rev": "d0903a9447323e647ed9756238ba1550cac92940",
+        "hash": "sha256-kSdK7rkORgTkMg8kL56pNb+wU+m2413shEt7UQ9SCjM="
     },
     "mame": {
         "owner": "libretro",
         "repo": "mame",
-        "rev": "f7761a9902d59030882c58d4482446196e748c50",
-        "hash": "sha256-g37WAMt9iBbAYq4DfeTlHWmdW5/Vl7g90v6vCLmMQ3g="
+        "rev": "3d612fb19eb95c0ae322c3cab343857b14a65a9c",
+        "hash": "sha256-ibd8HEKQJo7hrhzqYDu6LzMmIFncXCafod9VXBx9OU0="
     },
     "mame2000": {
         "owner": "libretro",
         "repo": "mame2000-libretro",
-        "rev": "0208517404e841fce0c094f1a2776a0e1c6c101d",
-        "hash": "sha256-WEJd7wSzY32sqMpMrjCD0hrOyAQq1WMBaGiY/2QQ4BQ="
+        "rev": "720b8ad4cbd76abd57b9aeced9ba541dc8476f7f",
+        "hash": "sha256-3HnDsZQRjp7PqUdYTAEGsroP1paoTAcTBb1fd7/LBJA="
     },
     "mame2003": {
         "owner": "libretro",
         "repo": "mame2003-libretro",
-        "rev": "b1cc49cf1d8bbef88b890e1c2a315a39d009171b",
-        "hash": "sha256-bc4uER92gHf20JjR/Qcetvlu89ZmldJ1DiQphJZt/EA="
+        "rev": "105ca02fb85e92b9dd5d6ee43f7152d1199eb149",
+        "hash": "sha256-zYv3OIgapglsyjWs69IhSJGVQ7CkviKJjKnVom5f9/c="
     },
     "mame2003-plus": {
         "owner": "libretro",
         "repo": "mame2003-plus-libretro",
-        "rev": "0b9309d9d86aea2457df74709e997bea37899475",
-        "hash": "sha256-US0nkEH4EeKRejuN8UoDeLt5dhafuo7PEVx0FnpeUG0="
+        "rev": "a1ff7485de011926ab21309ad1766f9cad3af58e",
+        "hash": "sha256-Amp+Fcl2dWS1qDMaa/QL0X5loXRYmnByUjUzliQmLvY="
     },
     "mame2010": {
         "owner": "libretro",
@@ -279,14 +286,14 @@
     "melonds": {
         "owner": "libretro",
         "repo": "melonds",
-        "rev": "0e1f06da626cbe67215c3f06f6bdf510dd4e4649",
-        "hash": "sha256-ax9Vu8+1pNAHWPXrx5QA0n5EsmaJ2T7KJ5Otz8DSZwM="
+        "rev": "c6488c88cb4c7583dbcd61609e0eef441572fae8",
+        "hash": "sha256-kU0xPM6WBqK6UpMNMotHc3jRFTodahPJRrfbcjdCJTI="
     },
     "mesen": {
         "owner": "libretro",
         "repo": "mesen",
-        "rev": "caa4e6f14373c40bd2805c600d1b476e7616444a",
-        "hash": "sha256-cnPNBWXbnCpjgW/wJIboiRBzv3zrHWxpNM1kg09ShLU="
+        "rev": "d25d60fc190f3f7603a1113ef1e11d9da65b7583",
+        "hash": "sha256-C/05mkPHJ8Bsj+uZOqY6rhMc0qx33kSxAT5SNDUPRUU="
     },
     "mesen-s": {
         "owner": "libretro",
@@ -303,14 +310,14 @@
     "mgba": {
         "owner": "libretro",
         "repo": "mgba",
-        "rev": "a69c3434afe8b26cb8f9463077794edfa7d5efad",
-        "hash": "sha256-rmitsZzRWJ0VYzcNz/UtIK8OscQ4lkyuAwgfXOvSTzg="
+        "rev": "314bf7b676f5b820f396209eb0c7d6fbe8103486",
+        "hash": "sha256-Rk+glDgSa1J1IIe5NrJElX9zr59+LQynfDXuHWyZcEM="
     },
     "mupen64plus": {
         "owner": "libretro",
         "repo": "mupen64plus-libretro-nx",
-        "rev": "5a63aadedc29655254d8fc7b4da3a325472e198b",
-        "hash": "sha256-QNa8WGJFShO4vc4idUntCUaLik4xQXBA+X7z5sjZ2NE="
+        "rev": "26fd1edd640ff3db49dd5ebb7e54f0de6600fc45",
+        "hash": "sha256-JueRR2PheAz8sPG8OIpjp1Xih6z2Xp8f7WD+2MuBPo4="
     },
     "neocd": {
         "owner": "libretro",
@@ -321,8 +328,8 @@
     "nestopia": {
         "owner": "libretro",
         "repo": "nestopia",
-        "rev": "16b14865caf1effca030630e2fc73d2d4271fc53",
-        "hash": "sha256-dU9X8sK/qDA/Qj0x1GicmSAzQyRqVmLiTcfCPe8+BjM="
+        "rev": "3dcbec4682e079312d6943e1357487645ec608c7",
+        "hash": "sha256-+jWedFwuFwZzdYEyKR77AhEBoW6ecY7HAIYEKt9PRg8="
     },
     "np2kai": {
         "owner": "AZO234",
@@ -346,71 +353,71 @@
     "opera": {
         "owner": "libretro",
         "repo": "opera-libretro",
-        "rev": "8a49bb8877611037438aeb857cb182f41ee0e3a1",
-        "hash": "sha256-oH+sQi4D+xkqiJbq7fgGdHjgvyLt8UjlgXIo7K3wXZM="
+        "rev": "100ae1e7decefe1f17d98cfcb9f2af4ff8452691",
+        "hash": "sha256-GOabGs5JP4hg4y5xEATZMEWuqQxFxdc6ZMnO4oLC2yk="
     },
     "parallel-n64": {
         "owner": "libretro",
         "repo": "parallel-n64",
-        "rev": "a03fdcba6b2e9993f050b50112f597ce2f44fa2c",
-        "hash": "sha256-aJG+s+1OkHQHPvVzlJWU/VziQWj1itKkRwqcEBK+lgA="
+        "rev": "49eadb4da85f7e3bd59b60f61e8fd5dbfb9f07d5",
+        "hash": "sha256-S8gsPOgxdq0SwoYFua4ouT7XjT45d/mwCYmI3VVahdI="
     },
     "pcsx2": {
         "owner": "libretro",
-        "repo": "pcsx2",
+        "repo": "lrps2",
         "rev": "f3c8743d6a42fe429f703b476fecfdb5655a98a9",
         "hash": "sha256-0piCNWX7QbZ58KyTlWp4h1qLxXpi1z6ML8sBHMTvCY4="
     },
     "pcsx_rearmed": {
         "owner": "libretro",
         "repo": "pcsx_rearmed",
-        "rev": "4373e29de72c917dbcd04ec2a5fb685e69d9def3",
-        "hash": "sha256-727//NqBNEo6RHNQr1RY5cxMrEvfuJczCo+cUJZVv7U="
+        "rev": "ead6fd751369f6fe50cb5092ab5530fbf1d66b67",
+        "hash": "sha256-JzvcM8T/xMP7MDn/58TDNrHN8bjU63/PBtj7JJYYiVo="
     },
     "picodrive": {
         "owner": "libretro",
         "repo": "picodrive",
-        "rev": "7ab066aab84f15388a53433ea273420bcf917e00",
-        "hash": "sha256-NK9ASiiIkGZmi2YfCqEzZallVfS7nprLRrBk4dlGyAI=",
+        "rev": "570319349588288f64c676123244acdb0be33881",
+        "hash": "sha256-KG5A5NBWi5jKpJOSdSQxjn+wm2F198AINKIU+figoqs=",
         "fetchSubmodules": true
     },
     "play": {
         "owner": "jpd002",
         "repo": "Play-",
-        "rev": "b33834af08a4954f06be215eee80a72e7a378e91",
-        "hash": "sha256-IxZk+kSdrkDAabbzdFM8QUrjaJUc1DHjSfAtDuwDJkw=",
+        "rev": "f50566ffdf6a2f1d0cedfb900f1ee24b9c80fd8e",
+        "hash": "sha256-G45UMzNh5I7beO8sBtwc80HPioB907UEPtfB1NSS4OY=",
         "fetchSubmodules": true
     },
     "ppsspp": {
         "owner": "hrydgard",
         "repo": "ppsspp",
-        "rev": "7df51c3d060a780b7383c5c1380e346ad9304bb4",
-        "hash": "sha256-GK3W0/yWaID3s0W0v6TcgJ0ZU984YspWMS6+XLyThjM=",
+        "rev": "638192b0245e73a602c5f0d60e80dc7b78ff0793",
+        "hash": "sha256-Ls9k563j8yEasu6dBs2cmWR+9twBKTolqTLkr3Nt7Uk=",
         "fetchSubmodules": true
     },
     "prboom": {
         "owner": "libretro",
         "repo": "libretro-prboom",
-        "rev": "d9c3975669b4aab5a1397e0174838bcbbc3c1582",
-        "hash": "sha256-klSJ7QIpNjlfyjhfeEQZ3j8Gnp4agd0qKVp0vr+KHVA="
+        "rev": "6ec854969fd9dec33bb2cab350f05675d1158969",
+        "hash": "sha256-y0qZwYNwcO4ofWDZ7UXN9ZVMPFxjCnLDDZKBMdZLxEY="
     },
     "prosystem": {
         "owner": "libretro",
         "repo": "prosystem-libretro",
-        "rev": "763ad22c7de51c8f06d6be0d49c554ce6a94a29b",
-        "hash": "sha256-rE/hxP8hl9lLTNx/WympFDByjZs46ekyxLKRV4V8D9E="
+        "rev": "4202ac5bdb2ce1a21f84efc0e26d75bb5aa7e248",
+        "hash": "sha256-BR0DTWcB5g0rEoNSxBx+OxBmLELjdR2fgsmdPU7cK68="
     },
     "puae": {
         "owner": "libretro",
         "repo": "libretro-uae",
-        "rev": "ae58c0f226b654d643b9f2dce58f64657f57cb76",
-        "hash": "sha256-6oMTwCYGdVhh+R853gOQRzZfa7slDwe6aGVCvdm6NDU="
+        "rev": "7bdd798ef14dccafe283588cbf8eb303832a1858",
+        "hash": "sha256-ML3hRYujyh7WPm9Sx6RzQAxaTqlhneVLDi6qcNJ+hi8="
     },
     "quicknes": {
         "owner": "libretro",
         "repo": "QuickNES_Core",
-        "rev": "75d501a87ec2074e8d2f7256fb0359513c263c29",
-        "hash": "sha256-yAHVTgOt8SGyPXihp4YNKKAvxl9VBBAvHyzLW86zSCw="
+        "rev": "058d66516ed3f1260b69e5b71cd454eb7e9234a3",
+        "hash": "sha256-eWnbx4NsxanvSls8lguKBijYZ4+uF97d9es9Yn+3PKs="
     },
     "same_cdi": {
         "owner": "libretro",
@@ -425,10 +432,10 @@
         "hash": "sha256-hQWIuNwCykkJR+6naNarR50kUvIFNny+bbZHR6/GA/4="
     },
     "scummvm": {
-        "owner": "libretro",
+        "owner": "libretro-mirrors",
         "repo": "scummvm",
-        "rev": "ab2e5d59cd25dfa5943d45c2567e8330d67fad8b",
-        "hash": "sha256-9IaQR0prbCT70iWA99NMgGAKPobifdWBX17p4zL0fEM="
+        "rev": "2fb2e4c551c9c1510c56f6e890ee0300b7b3fca3",
+        "hash": "sha256-wrlFqu+ONbYH4xMFDByOgySobGrkhVc7kYWI4JzA4ew="
     },
     "smsplus-gx": {
         "owner": "libretro",
@@ -439,8 +446,8 @@
     "snes9x": {
         "owner": "snes9xgit",
         "repo": "snes9x",
-        "rev": "cc0a87711a7a208cabefc9fd1dbb90e31fe51684",
-        "hash": "sha256-1m6QvYl5Z0WM1XeXCYLvQaXH8A15P3x8ZzwdFeVPeWo="
+        "rev": "0e03a36847c2ab14d84963b0263e653aa4087ff4",
+        "hash": "sha256-wRkBT80HBE1JXqNSvm0LhhUSjHe1DP3uMy3fKW71uZA="
     },
     "snes9x2002": {
         "owner": "libretro",
@@ -463,8 +470,8 @@
     "stella": {
         "owner": "stella-emu",
         "repo": "stella",
-        "rev": "93ea39d6155f08c21707a85a0b04b33008a7ab15",
-        "hash": "sha256-9dCBaLxb1CBbngBd3tJ0x5lT+dnzzhK2DO4Gk/S6WW4="
+        "rev": "85f23044437a5da35d68f96045d363d0e339f872",
+        "hash": "sha256-b/3cq+CdQ6MLFzzF/cFTbL0XCSqZFc0Rj9e+bNiN3WY="
     },
     "stella2014": {
         "owner": "libretro",
@@ -475,8 +482,8 @@
     "swanstation": {
         "owner": "libretro",
         "repo": "swanstation",
-        "rev": "e24f21196cdcd50321475c4366b51af245a6bbe6",
-        "hash": "sha256-DjAB0Z0yY9IGESeNNkkbdoAO5ItJ/8cZ5ycRofHG978="
+        "rev": "376744746a6880b5eec7ac48b5c006c9ae8c6770",
+        "hash": "sha256-5mKNypA0x/FkDZvWhuEr/J5WP7saR7cKo0DQ2DZ36ZE="
     },
     "tgbdual": {
         "owner": "libretro",
@@ -500,26 +507,26 @@
     "vba-m": {
         "owner": "libretro",
         "repo": "vbam-libretro",
-        "rev": "640ce45325694d1dc574e90c95c55bc464368d7e",
-        "hash": "sha256-aiIeleZHt95Y/kigLEbRaCb3KM0ezMB7yzO16FbuBNM="
+        "rev": "a2378f05f600a5a9cf450c60a87976b80d6a895a",
+        "hash": "sha256-vWm28cSEGex5h7JkJjzNPqEGtQWHK0dpK2gVDlQ3NbM="
     },
     "vba-next": {
         "owner": "libretro",
         "repo": "vba-next",
-        "rev": "0c310082a6345790124e9348861b300bcccbeced",
-        "hash": "sha256-RQx/WR83EtPcQkx0ft4Y0/5LaKIOST3L/fh4qoPxz78="
+        "rev": "ee92625d2f1666496be4f5662508a2430e846b00",
+        "hash": "sha256-r3FKBD4GUUkobMJ33VceseyTyqxm/Wsa5Er6XcfGL2Q="
     },
     "vecx": {
         "owner": "libretro",
         "repo": "libretro-vecx",
-        "rev": "8e932c1d585ae9e467186dea9e73ce38fe1490f7",
-        "hash": "sha256-2Vo30yiP6SfUt3XHCfQTKTKEtCywdRIoUe6d0Or21WM="
+        "rev": "a401c268e425dc8ae6a301e7fdb9a9e96f39b8ea",
+        "hash": "sha256-24/bcQ5mgLl7zKvpnnSYr5SoLG02al6dP27KoOtnua4="
     },
     "virtualjaguar": {
         "owner": "libretro",
         "repo": "virtualjaguar-libretro",
-        "rev": "2cc06899b839639397b8b30384a191424b6f529d",
-        "hash": "sha256-7FiU5/n1hVePttkz7aVfXXx88+zX06/5SJk3EaRYvhQ="
+        "rev": "8126e5c504ac7217a638f38e4cd9190822c8abdd",
+        "hash": "sha256-U/qdKApE0OU3jc6ekfgEZ7VCaIqCc2h+Y+IHe7PIRY0="
     },
     "yabause": {
         "owner": "libretro",
diff --git a/nixpkgs/pkgs/applications/emulators/retroarch/libretro-core-info.nix b/nixpkgs/pkgs/applications/emulators/retroarch/libretro-core-info.nix
index 308f78c08e2b..952881f410b7 100644
--- a/nixpkgs/pkgs/applications/emulators/retroarch/libretro-core-info.nix
+++ b/nixpkgs/pkgs/applications/emulators/retroarch/libretro-core-info.nix
@@ -5,13 +5,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "libretro-core-info";
-  version = "1.15.0";
+  version = "unstable-2023-07-31";
 
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "libretro-core-info";
-    hash = "sha256-WIgcHuZgAOrlg+WyOS4TyzWziNzjyQB2sPDM9fR6kwA=";
-    rev = "v${version}";
+    hash = "sha256-VdFsrLiJ+Wu1OKvwX9fMI96CxTareOTK8x6OfksBuYs=";
+    rev = "dacae85b406131feb12395a415fdf57fc4745201";
   };
 
   makeFlags = [
diff --git a/nixpkgs/pkgs/applications/emulators/retroarch/retroarch-assets.nix b/nixpkgs/pkgs/applications/emulators/retroarch/retroarch-assets.nix
index 265b82757718..19022963979b 100644
--- a/nixpkgs/pkgs/applications/emulators/retroarch/retroarch-assets.nix
+++ b/nixpkgs/pkgs/applications/emulators/retroarch/retroarch-assets.nix
@@ -5,13 +5,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "retroarch-assets";
-  version = "unstable-2022-10-24";
+  version = "unstable-2023-09-11";
 
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "retroarch-assets";
-    rev = "4ec80faf1b5439d1654f407805bb66141b880826";
-    hash = "sha256-j1npVKEknq7hpFr/XfST2GNHI5KnEYjZAM0dw4tMsYk=";
+    rev = "7b735ef18bcc6508b1c9a626eb237779ff787179";
+    hash = "sha256-S9wWag9fNpCTMKY8yQaF7jFuX1P5XLy/Z4vjtVDK7lg=";
   };
 
   makeFlags = [
diff --git a/nixpkgs/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix b/nixpkgs/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix
index 92ba7f20c8b3..ca12c1e2a18d 100644
--- a/nixpkgs/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix
+++ b/nixpkgs/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix
@@ -5,13 +5,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "retroarch-joypad-autoconfig";
-  version = "1.15.0";
+  version = "unstable-2023-08-01";
 
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "retroarch-joypad-autoconfig";
-    rev = "v${version}";
-    hash = "sha256-/F2Y08uDA/pIIeLiLfOQfGVjX2pkuOqPourlx2RbZ28=";
+    rev = "5666e46bb89caf4e9af358fdb97a2b384cb62f36";
+    hash = "sha256-5Po0v0E/dc+nVHnHlJRZzv66B/DKYarwqTkS9+/ktC4=";
   };
 
   makeFlags = [
diff --git a/nixpkgs/pkgs/applications/emulators/retroarch/update_cores.py b/nixpkgs/pkgs/applications/emulators/retroarch/update_cores.py
index 76147ccf20f4..5348092c5247 100755
--- a/nixpkgs/pkgs/applications/emulators/retroarch/update_cores.py
+++ b/nixpkgs/pkgs/applications/emulators/retroarch/update_cores.py
@@ -17,6 +17,7 @@ CORES = {
     "beetle-gba": {"repo": "beetle-gba-libretro"},
     "beetle-lynx": {"repo": "beetle-lynx-libretro"},
     "beetle-ngp": {"repo": "beetle-ngp-libretro"},
+    "beetle-pce": {"repo": "beetle-pce-libretro"},
     "beetle-pce-fast": {"repo": "beetle-pce-fast-libretro"},
     "beetle-pcfx": {"repo": "beetle-pcfx-libretro"},
     "beetle-psx": {"repo": "beetle-psx-libretro"},
@@ -41,7 +42,7 @@ CORES = {
     "fbalpha2012": {"repo": "fbalpha2012"},
     "fbneo": {"repo": "fbneo"},
     "fceumm": {"repo": "libretro-fceumm"},
-    "flycast": {"repo": "flycast"},
+    "flycast": {"repo": "flycast", "owner": "flyinghead", "fetch_submodules": True},
     "fmsx": {"repo": "fmsx-libretro"},
     "freeintv": {"repo": "freeintv"},
     "fuse": {"repo": "fuse-libretro"},
@@ -71,7 +72,10 @@ CORES = {
     "o2em": {"repo": "libretro-o2em"},
     "opera": {"repo": "opera-libretro"},
     "parallel-n64": {"repo": "parallel-n64"},
-    "pcsx2": {"repo": "pcsx2"},
+    # libretro/lrps2 is a hard-fork of pcsx2 with simplified code to target
+    # only libretro, while libretro/pcsx2 is supposedly closer to upstream.
+    # TODO: switch to libretro/pcsx2 since this is more up-to-date
+    "pcsx2": {"repo": "lrps2"},
     "pcsx_rearmed": {"repo": "pcsx_rearmed"},
     "picodrive": {"repo": "picodrive", "fetch_submodules": True},
     "play": {"repo": "Play-", "owner": "jpd002", "fetch_submodules": True},
@@ -82,7 +86,12 @@ CORES = {
     "quicknes": {"repo": "QuickNES_Core"},
     "sameboy": {"repo": "sameboy"},
     "same_cdi": {"repo": "same_cdi"},
-    "scummvm": {"repo": "scummvm"},
+    # This is the old source code before they upstreamed the source code,
+    # so now the libretro related code lives in the scummvm/scummvm repository.
+    # However this broke the old way we were doing builds, so for now point
+    # to a mirror with the old source code until this issue is fixed.
+    # TODO: switch to libretro/scummvm since this is more up-to-date
+    "scummvm": {"repo": "scummvm", "owner": "libretro-mirrors"},
     "smsplus-gx": {"repo": "smsplus-gx"},
     "snes9x": {"repo": "snes9x", "owner": "snes9xgit"},
     "snes9x2002": {"repo": "snes9x2002"},
diff --git a/nixpkgs/pkgs/applications/emulators/ryujinx/default.nix b/nixpkgs/pkgs/applications/emulators/ryujinx/default.nix
index 028e1daff09e..892e6faaa94c 100644
--- a/nixpkgs/pkgs/applications/emulators/ryujinx/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/ryujinx/default.nix
@@ -28,13 +28,13 @@
 
 buildDotnetModule rec {
   pname = "ryujinx";
-  version = "1.1.1012"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
+  version = "1.1.1044"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
 
   src = fetchFromGitHub {
     owner = "Ryujinx";
     repo = "Ryujinx";
-    rev = "e6700b314f1384f015666767baf9ea1d8411e330";
-    sha256 = "1szgmvwril7zwfbvqz850xavrk70i56i1yyqfh9mxpxlc3n9xxzr";
+    rev = "7afae8c69947f7a5fa9a55cee36381aef372dfba";
+    sha256 = "1kf95sbb4p50b6bah75sd95660kk2a7cbjwgvqv4c4cal6c126g7";
   };
 
   dotnet-sdk = dotnetCorePackages.sdk_7_0;
diff --git a/nixpkgs/pkgs/applications/emulators/ryujinx/deps.nix b/nixpkgs/pkgs/applications/emulators/ryujinx/deps.nix
index 7d952d9371f0..8a7c89f4dbd1 100644
--- a/nixpkgs/pkgs/applications/emulators/ryujinx/deps.nix
+++ b/nixpkgs/pkgs/applications/emulators/ryujinx/deps.nix
@@ -2,35 +2,33 @@
 # Please dont edit it manually, your changes might get overwritten!
 
 { fetchNuGet }: [
-  (fetchNuGet { pname = "Avalonia"; version = "11.0.3"; sha256 = "1ig635386glxgfv9l894dqp98l93ymsylml649xm42lc9a9f1khc"; })
+  (fetchNuGet { pname = "Avalonia"; version = "11.0.4"; sha256 = "0jid0x90dc8m609wqwbq87014yzih2iimz74wm6zi1j02k080jk0"; })
   (fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2023020321"; sha256 = "1az4s1g22ipak9a3xfh55z2h3rm6lpqh7svbpw6ag4ysrgsjjsjd"; })
   (fetchNuGet { pname = "Avalonia.BuildServices"; version = "0.0.29"; sha256 = "05mm7f0jssih3gbzqfgjnfq5cnqa85ihsg0z1897ciihv8qd3waq"; })
-  (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.0"; sha256 = "06wgzhxkivlaxkn8p61wainsprml2g1q4jmvy9fpn64qnfywjdn7"; })
-  (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.3"; sha256 = "0xcxwc588lc2ify2d3m53pmwjgf7p9lwz5q11hn8p5c9zh01iai9"; })
-  (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "11.0.3"; sha256 = "1kls0v2rjimcv7k0dvqd3l694xdg9nf8wdzcz1cadi4qvj0bx7l4"; })
-  (fetchNuGet { pname = "Avalonia.Controls.ItemsRepeater"; version = "11.0.0"; sha256 = "1qxw096av0n4ks0jixh7xxrzgsn9fshp1ypy3vvij7r0a1sk7y1q"; })
+  (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.4"; sha256 = "1sqdcaknqazq4mw2x1jb6pfmfnyhpkd4xh6fl4ld85qikzzj7796"; })
+  (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "11.0.4"; sha256 = "10kc1pfyi0jq29xavq059vfjm51igi45yikz7i1ys061zbjs0n62"; })
   (fetchNuGet { pname = "Avalonia.Controls.ItemsRepeater"; version = "11.0.0-rc2.1"; sha256 = "0pmc0fi2abn9qaqwx9lvqnd1a5a8lzp8zin72d3k3xjsh1w1g0n8"; })
-  (fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.3"; sha256 = "0g8hzvkf2rrfnpmm56m2miwpdw14l04rr0q8xz03j220fy9xk5fm"; })
-  (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.3"; sha256 = "1rificg9ikf8m2550ylrqavkkvihf8xb22agmdrbz07v7s93v731"; })
-  (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.3"; sha256 = "0w8qc45phfz4mnnx1mfxi042qmq31shmjmz5inb4maw9xha0yr3c"; })
-  (fetchNuGet { pname = "Avalonia.Markup.Xaml.Loader"; version = "11.0.3"; sha256 = "09g4flx6sg2b2mkwbqrwl51q87xzy0d43j2xjxvnwc8vwhr1h8gs"; })
-  (fetchNuGet { pname = "Avalonia.Native"; version = "11.0.3"; sha256 = "1gi3y2cdfcjkwjldavahyx09a1n91jpvx8szwrfgr3kk4ycc5lyn"; })
-  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.0"; sha256 = "1b5031k8slwiz7bncih67fjl6ny234yd4skqxk611l9zp5snjic2"; })
-  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.3"; sha256 = "0syh20a6892pip4qz32kgc5w77ig40yjgwbcknivhjr8arc3126r"; })
+  (fetchNuGet { pname = "Avalonia.Controls.ItemsRepeater"; version = "11.0.4"; sha256 = "1p7mz33a6dn6ghvwajxdghq15mn5f6isvvqzxcjbnhh3m5c1zhrz"; })
+  (fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.4"; sha256 = "101jlqx24d19nk0nd7x19pvbjjybckzgqh9h78c85vb98xbwh3ky"; })
+  (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.4"; sha256 = "1dxylsvaffzravz64rwq2wjjlr3392i5153nmkqk89ldaq70wjja"; })
+  (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.4"; sha256 = "1sbgs6d1b751h0ipq249w7z3aclpfb42sw3f7g31vin9w8wxwa6q"; })
+  (fetchNuGet { pname = "Avalonia.Markup.Xaml.Loader"; version = "11.0.4"; sha256 = "1yxand1h0ybwbykn12ixdanbp74rd5spcz8xifmzjmvisjzglvsi"; })
+  (fetchNuGet { pname = "Avalonia.Native"; version = "11.0.4"; sha256 = "10fyr63sqb4xyr7rlk94rzjbnb9mbln95mb9papip5kb3sm8jx60"; })
+  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.4"; sha256 = "096436hhg45v02pp4f43mf00xn6blx7x66sb8fq5j4jn7479fynp"; })
   (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.0"; sha256 = "1ra1kd0kkblppr5zy7rzdbwllggrzvp9lkxblf9mg3y8rnp6fk83"; })
-  (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.3"; sha256 = "0089z8ml8pblq6hispj1nf7lvf6zplrrlix22jcd87pm13232pg2"; })
-  (fetchNuGet { pname = "Avalonia.Svg"; version = "11.0.0"; sha256 = "1xmgaj2wnjdl16x4y6rmfp3q9faca5na90zlb8j62rxcwf1v3lkr"; })
-  (fetchNuGet { pname = "Avalonia.Svg.Skia"; version = "11.0.0"; sha256 = "0cd8w9pm7lpifdzjmsnmjlzdqgq3qw653mcj3adczb5ycqqbd8p3"; })
-  (fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.3"; sha256 = "0zkm0asxcbsybswxs0p6ybsiq6j1l1j02h0xfxzsmhcimm3y92kk"; })
-  (fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.3"; sha256 = "14pj98057fmfgafq0pni7pw79ls0lsf3jaydfjmdjyw5x2b2x51q"; })
-  (fetchNuGet { pname = "Avalonia.X11"; version = "11.0.3"; sha256 = "0pb41fpiwndcf34r53apxf92qgqxavc4zfl1xy847pz3kj1vsclp"; })
+  (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.4"; sha256 = "1ysmq4f8bxabpq3nhcrrvgwvxb9z7gx9565bvdyksdhsq16wyxym"; })
+  (fetchNuGet { pname = "Avalonia.Svg"; version = "11.0.0.2"; sha256 = "0b07rszfp87lj08bsni6vjynqcpfdwr8cqxpwy68620qki8w953l"; })
+  (fetchNuGet { pname = "Avalonia.Svg.Skia"; version = "11.0.0.2"; sha256 = "12bqmm0sdc5a1xxz1hffvpgpjc5m64cn7w45bd67wnapz2w943rv"; })
+  (fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.4"; sha256 = "1rncb8ifqarjc5gfh6ld0ldahvxy57a2hzi7vs826an4zl3r0yrx"; })
+  (fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.4"; sha256 = "07ijkpbhz59gvsxsik8mib8rhpm5yrpnjz66sjnxl8m0ghqnkf02"; })
+  (fetchNuGet { pname = "Avalonia.X11"; version = "11.0.4"; sha256 = "0xq6xqd3cwwdcqsipvrs4rpf82nqhr45ispwjj4dxlyn4i1n8ryd"; })
   (fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
   (fetchNuGet { pname = "Concentus"; version = "1.1.7"; sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0"; })
   (fetchNuGet { pname = "DiscordRichPresence"; version = "1.2.1.24"; sha256 = "0maw0yd6xgwy0cgk593z3zva0r5j267zpdmmpq8avj3zbna6n4x1"; })
   (fetchNuGet { pname = "DynamicData"; version = "7.14.2"; sha256 = "07k79w4702masq71rk865mi3h1kaxamyp7dgl08ny4n22gg8482k"; })
   (fetchNuGet { pname = "ExCSS"; version = "4.1.4"; sha256 = "1y50xp6rihkydbf5l73mr3qq2rm6rdfjrzdw9h1dw9my230q5lpd"; })
   (fetchNuGet { pname = "Fizzler"; version = "1.2.1"; sha256 = "1w5jb1d0figbv68dydbnlcsfmqlc3sv9z1zxp7d79dg2dkarc4qm"; })
-  (fetchNuGet { pname = "FluentAvaloniaUI"; version = "2.0.1"; sha256 = "12w6rk3qgn6i2zk06appf98pgdf89pw10865qcwn5xpjwm7487k2"; })
+  (fetchNuGet { pname = "FluentAvaloniaUI"; version = "2.0.4"; sha256 = "1xizjlk34xi4z837j6lbv4mc5vfb8gimkxicxcz0012wkzlmmzb1"; })
   (fetchNuGet { pname = "FSharp.Core"; version = "7.0.200"; sha256 = "1ji816r8idwjmxk8bzyq1z32ybz7xdg3nb0a7pnvqr8vys11bkgb"; })
   (fetchNuGet { pname = "GtkSharp.Dependencies"; version = "1.1.1"; sha256 = "0ffywnc3ca1lwhxdnk99l238vsprsrsh678bgm238lb7ja7m52pw"; })
   (fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.3"; sha256 = "115aybicqs9ijjlcv6k6r5v0agkjm1bm1nkd0rj3jglv8s0xvmp2"; })
@@ -45,31 +43,30 @@
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.0.0"; sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.4"; sha256 = "0wd6v57p53ahz5z9zg4iyzmy3src7rlsncyqpcag02jjj1yx6g58"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.8.0"; sha256 = "12n7rvr39bzkf2maw7zplw8rwpxpxss4ich3bb2pw770rx4nyvyw"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.6.0"; sha256 = "0qvkwkbqz4dhkxsisanax1lwm3nzyyb4kgb40qczxbl8g251cjp2"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.7.0"; sha256 = "1zj4wwsad2j7y1byigm3c386rv56xr05mwxjlgqh0h0n5w5yjc4w"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.8.0"; sha256 = "1kmry65csvfn72zzc16vj1nfbfwam28wcmlrk3m5rzb8ydbzgylb"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.6.0"; sha256 = "1yfvwygx795c9lswpiv8q19zydifarzljdmvv67vjmi559cm8b1q"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.7.0"; sha256 = "1lz3ha3pp58hd4y031z64slcf9rh7g1cgkrlrbhi4vpa67xhynnh"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.8.0"; sha256 = "0w0yx0lpg54iw5jazqk46h48gx43ij32gwac8iywdj6kxfxm03vw"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.8.0"; sha256 = "0hjgxcsj5zy27lqk0986m59n5dbplx2vjjla2lsvg4bwg8qa7bpk"; })
-  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.6.3"; sha256 = "1xxzd2yxlbq2h4k6flp7lvffmmwrjlyha2z1yvrxxymiyyggk2zg"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.7.2"; sha256 = "09mf5kpxn1a1m8ciwklhh6ascx0yqpcs5r2hvmfj80j44n3qrwhm"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; })
-  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
   (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "3.1.6"; sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "6.0.0"; sha256 = "08c4fh1n8vsish1vh7h73mva34g0as4ph29s4lvps7kmjb4z64nl"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.31.0"; sha256 = "0l1y4q5syl6kcnk6yrjphdj3clfjnmlnxrkvmfjffvfnl9slsh9m"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "6.31.0"; sha256 = "0vfrrrvz6axfg41pcnwlhqh7gkxl1vrm8hbxjkzkw5a5ijh0i4pc"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "6.31.0"; sha256 = "0dbvi7ifsl6gdsa1hc4bvma9qyr63gvgamwndy0k7wyvvh492rhm"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "6.31.0"; sha256 = "0yrsysxgjfwrh1n2mplpm4jwm0ws4p49pdd3zcsql7kjjhs525lv"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.0.0"; sha256 = "0sc96z969qfybq5njsqm8hwhqv8jj6gysyjq7n9r9km1nqnhazmi"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.0.0"; sha256 = "12xa4yx19j5q7nbisl57jla8x6pby964cr9xkv0qm4834x4zdd3h"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.0.0"; sha256 = "0hv1qb51v6frvhybwcn6m3haq768jgdx59p17jn217fbjiprq14s"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.0.0"; sha256 = "0cjdbi3ximvfz2nyp2vlxqskmscxw8drjighvy7dna3mi749isrh"; })
   (fetchNuGet { pname = "Microsoft.IO.RecyclableMemoryStream"; version = "2.3.2"; sha256 = "115bm7dljchr7c02hiv1r3l21r22wpml1j26fyn2amaflaihpq4l"; })
-  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.6.3"; sha256 = "1f2b9ljc3l6lk2qq3ps6pzb5r4dvqvs9j1xav8kj2yy52i2dbz7r"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.7.2"; sha256 = "08g9dpp766racnh90s1sy3ncl291majgq6v2604hfw1f6zkmbjqh"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.6.3"; sha256 = "0czzs36ybgipn9bga2swkdd653vh0wvs5hsi2lgykhblimdmb947"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.6.3"; sha256 = "0yi0n8jxf4l6v8bscgi8ws9zf5i84213pf1qj5d7nwx4jb05m23l"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.7.2"; sha256 = "0xdjkdnrvnaxqgg38y5w1l3jbppigg68cc8q9jn0p21vn48bgrxq"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.7.2"; sha256 = "1szsg1iy77f0caxzkk0ihpp4ifbfnbdbn8k0wbbhbdprxj8pr356"; })
   (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
   (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "7.0.0"; sha256 = "1bh77misznh19m1swqm3dsbji499b8xh9gk6w74sgbkarf6ni8lb"; })
@@ -141,7 +138,7 @@
   (fetchNuGet { pname = "Ryujinx.SDL2-CS"; version = "2.28.1-build28"; sha256 = "0kn7f6cgvb2rsybiif6g7xkw1srmfr306zpv029lvi264dv6aj6l"; })
   (fetchNuGet { pname = "shaderc.net"; version = "0.1.0"; sha256 = "0f35s9h0vj9f1rx9bssj66hibc3j9bzrb4wgb5q2jwkf5xncxbpq"; })
   (fetchNuGet { pname = "SharpZipLib"; version = "1.4.2"; sha256 = "0ijrzz2szxjmv2cipk7rpmg14dfaigdkg7xabjvb38ih56m9a27y"; })
-  (fetchNuGet { pname = "ShimSkiaSharp"; version = "1.0.0"; sha256 = "0gdsrzh8q8mxlm7sxvai7zshaz93a3dm1ha4cgs4845lfhpn8nhc"; })
+  (fetchNuGet { pname = "ShimSkiaSharp"; version = "1.0.0.2"; sha256 = "0l28whcj3r8gmdg7vyb4sxbjdr12w5q9lqibclfrwrwhlx3rxhb0"; })
   (fetchNuGet { pname = "Silk.NET.Core"; version = "2.16.0"; sha256 = "1mkqc2aicvknmpyfry2v7jjxh3apaxa6dmk1vfbwxnkysl417x0k"; })
   (fetchNuGet { pname = "Silk.NET.Vulkan"; version = "2.16.0"; sha256 = "0sg5mxv7ga5pq6wc0lz52j07fxrcfmb0an30r4cxsxk66298z2wy"; })
   (fetchNuGet { pname = "Silk.NET.Vulkan.Extensions.EXT"; version = "2.16.0"; sha256 = "05918f6fl8byla2m7qjp7dvxww2rbpj2sqd4xq26rl885fmddfvf"; })
@@ -156,9 +153,9 @@
   (fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.3"; sha256 = "1w5njksq3amrrp7fqxw89nv6ar2kgc5yx092i4rxv7hrjbd1aagx"; })
   (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.3"; sha256 = "03wwfbarsxjnk70qhqyd1dw65098dncqk2m0vksx92j70i7lry6q"; })
   (fetchNuGet { pname = "SPB"; version = "0.0.4-build28"; sha256 = "1ran6qwzlkv6xpvnp7n0nkva0zfrzwlcxj7zfzz9v8mpicqs297x"; })
-  (fetchNuGet { pname = "Svg.Custom"; version = "1.0.0"; sha256 = "0bmvgaqy4iaxw9x88ifx3a2zz0vw3p9w6pj4bk3xfnf5p9vjx1mr"; })
-  (fetchNuGet { pname = "Svg.Model"; version = "1.0.0"; sha256 = "0yrjcqcrlgqpdm3bi59nc3fppcqgrfc7jddjwxjj2q423gimip97"; })
-  (fetchNuGet { pname = "Svg.Skia"; version = "1.0.0"; sha256 = "1bs2l9fjiqpip4qh0aw7x8f8m0ja0xlcj5vwd329knkww2jx1d3c"; })
+  (fetchNuGet { pname = "Svg.Custom"; version = "1.0.0.2"; sha256 = "0xkv2h80s4nz2yypiax30s1ws0yd6zdijf5rq1lqjcxaiggf6a7q"; })
+  (fetchNuGet { pname = "Svg.Model"; version = "1.0.0.2"; sha256 = "0zdj69w5dxzwj4fqcsjfjjbc67x931f7qb32i1jsn2k91v904gsd"; })
+  (fetchNuGet { pname = "Svg.Skia"; version = "1.0.0.2"; sha256 = "1877z97c8qbsr1adbc0hvfls03icgmzh4j3pjp8cfnxflxrxql6a"; })
   (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
@@ -183,7 +180,7 @@
   (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
   (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
   (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
-  (fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "6.31.0"; sha256 = "03bwmmznb4axcvlx8ql5cgigpbldjc1zrxnf5kj25r4drq8yp1cm"; })
+  (fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "7.0.0"; sha256 = "15c717z4kspqxiwnia7dk1mj5gv7hg584q4x1xc7z1g0rnz28pwd"; })
   (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
   (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
   (fetchNuGet { pname = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
@@ -247,7 +244,6 @@
   (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.2.0"; sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.2.0"; sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.5.0"; sha256 = "1pm4ykbcz48f1hdmwpia432ha6qbb9kbrxrrp7cg3m8q8xn52ngn"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.0.0"; sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; })
   (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.0.0"; sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q"; })
@@ -261,9 +257,7 @@
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; })
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "7.0.0"; sha256 = "0sn6hxdjm7bw3xgsmg041ccchsa4sp02aa27cislw3x61dbr68kq"; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
-  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "4.7.2"; sha256 = "0ap286ykazrl42if59bxhzv81safdfrrmfqr3112siwyajx4wih9"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai"; })
-  (fetchNuGet { pname = "System.Text.Json"; version = "4.7.2"; sha256 = "10xj1pw2dgd42anikvj9qm23ccssrcp7dpznpj4j7xjp1ikhy3y4"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "6.0.0"; sha256 = "1si2my1g0q0qv1hiqnji4xh9wd05qavxnzj9dwgs23iqvgjky0gl"; })
   (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
diff --git a/nixpkgs/pkgs/applications/emulators/vice/default.nix b/nixpkgs/pkgs/applications/emulators/vice/default.nix
index 45fb03f1ac42..0b6dac328653 100644
--- a/nixpkgs/pkgs/applications/emulators/vice/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/vice/default.nix
@@ -6,175 +6,68 @@
 , perl
 , libpng
 , giflib
-, libjpeg
 , alsa-lib
 , readline
 , libGLU
 , libGL
-, libXaw
 , pkg-config
-, gtk2
+, gtk3
+, glew
 , SDL
 , SDL_image
-, autoreconfHook
-, makeDesktopItem
 , dos2unix
+, runtimeShell
 , xa
 , file
+, wrapGAppsHook
+, xdg-utils
 }:
 
-let
-  desktopItems = [
-    (makeDesktopItem {
-      name = "x128";
-      exec = "x128";
-      comment = "VICE: C128 Emulator";
-      desktopName = "VICE: C128 Emulator";
-      genericName = "Commodore 128 emulator";
-      categories = [ "System" ];
-    })
-
-    (makeDesktopItem {
-      name = "x64";
-      exec = "x64";
-      comment = "VICE: C64 Emulator";
-      desktopName = "VICE: C64 Emulator";
-      genericName = "Commodore 64 emulator";
-      categories = [ "System" ];
-    })
-
-    (makeDesktopItem {
-      name = "x64dtv";
-      exec = "x64dtv";
-      comment = "VICE: C64 DTV Emulator";
-      desktopName = "VICE: C64 DTV Emulator";
-      genericName = "Commodore 64 DTV emulator";
-      categories = [ "System" ];
-    })
-
-    (makeDesktopItem {
-      name = "x64sc";
-      exec = "x64sc";
-      comment = "VICE: C64 SC Emulator";
-      desktopName = "VICE: C64 SC Emulator";
-      genericName = "Commodore 64 SC emulator";
-      categories = [ "System" ];
-    })
-
-    (makeDesktopItem {
-      name = "xcbm2";
-      exec = "xcbm2";
-      comment = "VICE: CBM-II B-Model Emulator";
-      desktopName = "VICE: CBM-II B-Model Emulator";
-      genericName = "CBM-II B-Model Emulator";
-      categories = [ "System" ];
-    })
-
-    (makeDesktopItem {
-      name = "xcbm5x0";
-      exec = "xcbm5x0";
-      comment = "VICE: CBM-II P-Model Emulator";
-      desktopName = "VICE: CBM-II P-Model Emulator";
-      genericName = "CBM-II P-Model Emulator";
-      categories = [ "System" ];
-    })
-
-    (makeDesktopItem {
-      name = "xpet";
-      exec = "xpet";
-      comment = "VICE: PET Emulator";
-      desktopName = "VICE: PET Emulator";
-      genericName = "Commodore PET Emulator";
-      categories = [ "System" ];
-    })
-
-    (makeDesktopItem {
-      name = "xplus4";
-      exec = "xplus4";
-      comment = "VICE: PLUS4 Emulator";
-      desktopName = "VICE: PLUS4 Emulator";
-      genericName = "Commodore PLUS4 Emulator";
-      categories = [ "System" ];
-    })
-
-    (makeDesktopItem {
-      name = "xscpu64";
-      exec = "xscpu64";
-      comment = "VICE: SCPU64 Emulator";
-      desktopName = "VICE: SCPU64 Emulator";
-      genericName = "Commodore SCPU64 Emulator";
-      categories = [ "System" ];
-    })
-
-    (makeDesktopItem {
-      name = "xvic";
-      exec = "xvic";
-      comment = "VICE: VIC-20 Emulator";
-      desktopName = "VICE: VIC-20 Emulator";
-      genericName = "Commodore VIC-20 Emulator";
-      categories = [ "System" ];
-    })
-
-    (makeDesktopItem {
-      name = "vsid";
-      exec = "vsid";
-      comment = "VSID: The SID Emulator";
-      desktopName = "VSID: The SID Emulator";
-      genericName = "SID Emulator";
-      categories = [ "System" ];
-    })
-  ];
-in
 stdenv.mkDerivation rec {
   pname = "vice";
-  version = "3.6.1";
+  version = "3.7.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/vice-emu/vice-${version}.tar.gz";
-    sha256 = "sha256-IN+EyFGq8vUABRCSf20xsy8mmRbTUUZcNm3Ar8ncFQw=";
+    sha256 = "sha256-fjgR5gJNsGmL+8MhuzJFckRriFPQG0Bz8JhllXsMq5g=";
   };
 
   nativeBuildInputs = [
-    autoreconfHook
     bison
     dos2unix
     file
     flex
     pkg-config
+    wrapGAppsHook
   ];
 
   buildInputs = [
     alsa-lib
     giflib
-    gtk2
+    gtk3
+    glew
     libGL
     libGLU
-    libXaw
-    libjpeg
     libpng
     perl
     readline
     SDL
     SDL_image
     xa
+    xdg-utils
   ];
   dontDisableStatic = true;
-  configureFlags = [ "--enable-fullscreen" "--enable-gnomeui" "--disable-pdf-docs" ];
+  configureFlags = [ "--enable-sdl2ui" "--enable-gtk3ui" "--enable-desktop-files" "--disable-pdf-docs" "--with-gif" ];
+
+  LIBS = "-lGL";
 
   preBuild = ''
-    for i in src/resid src/resid-dtv
-    do
-      mkdir -pv $i/src
-      ln -sv ../../wrap-u-ar.sh $i/src
-    done
+    sed -i -e 's|#!/usr/bin/env bash|${runtimeShell}/bin/bash|' src/arch/gtk3/novte/box_drawing_generate.sh
   '';
 
   postInstall = ''
-    for app in ${toString desktopItems}
-    do
-        mkdir -p $out/share/applications
-        cp $app/share/applications/* $out/share/applications
-    done
+    mkdir -p $out/share/applications
+    cp src/arch/gtk3/data/unix/vice-org-*.desktop $out/share/applications
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/emulators/wine/sources.nix b/nixpkgs/pkgs/applications/emulators/wine/sources.nix
index aca987417558..813d032bf964 100644
--- a/nixpkgs/pkgs/applications/emulators/wine/sources.nix
+++ b/nixpkgs/pkgs/applications/emulators/wine/sources.nix
@@ -69,9 +69,9 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the hash for staging as well.
-    version = "8.14";
+    version = "8.17";
     url = "https://dl.winehq.org/wine/source/8.x/wine-${version}.tar.xz";
-    hash = "sha256-4YNu9msYJfqdoEKDDASVsqw5SBVENkNGaXnuif3X+vQ=";
+    hash = "sha256-8BeFvTFix05l3rE6oK3XEeN8SERUcZvt0OjCsaNGm34=";
     inherit (stable) patches;
 
     ## see http://wiki.winehq.org/Gecko
@@ -116,8 +116,8 @@ in rec {
 
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
-    inherit (unstable) version;
-    hash = "sha256-ct/RGXt9B6F3PHbirX8K03AZ0Kunitd2HmI0N5k6VHI=";
+    version = "8.17.1";
+    hash = "sha256-h36NDFYsI0y8TG41IH10IdF4QEuBkBewQ3knZ9iwDpg=";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
diff --git a/nixpkgs/pkgs/applications/emulators/wine/staging.nix b/nixpkgs/pkgs/applications/emulators/wine/staging.nix
index b36d4862a7f0..9e9a03ebfc59 100644
--- a/nixpkgs/pkgs/applications/emulators/wine/staging.nix
+++ b/nixpkgs/pkgs/applications/emulators/wine/staging.nix
@@ -5,7 +5,7 @@ with callPackage ./util.nix {};
 let patch = (callPackage ./sources.nix {}).staging;
     build-inputs = pkgNames: extra:
       (mkBuildInputs wineUnstable.pkgArches pkgNames) ++ extra;
-in assert lib.getVersion wineUnstable == patch.version;
+in assert lib.versions.majorMinor wineUnstable.version == lib.versions.majorMinor patch.version;
 
 (lib.overrideDerivation wineUnstable (self: {
   buildInputs = build-inputs [ "perl" "util-linux" "autoconf" "gitMinimal" ] self.buildInputs;
diff --git a/nixpkgs/pkgs/applications/emulators/wineasio/default.nix b/nixpkgs/pkgs/applications/emulators/wineasio/default.nix
index 5a47111610d1..5c95f7f828ff 100644
--- a/nixpkgs/pkgs/applications/emulators/wineasio/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/wineasio/default.nix
@@ -9,13 +9,13 @@
 
 multiStdenv.mkDerivation rec {
   pname = "wineasio";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-HEnJj9yfXe+NQuPATMpPvseFs+3TkiMLd1L+fIfQd+o=";
+    hash = "sha256-d5BGJAkaM5XZXyqm6K/UzFE4sD6QVHHGnLi1bcHxiaM=";
     fetchSubmodules = true;
   };
 
@@ -36,10 +36,10 @@ multiStdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
-    install -D build32/wineasio.dll $out/lib/wine/i386-windows/wineasio.dll
-    install -D build32/wineasio.dll.so $out/lib/wine/i386-unix/wineasio.dll.so
-    install -D build64/wineasio.dll $out/lib/wine/x86_64-windows/wineasio.dll
-    install -D build64/wineasio.dll.so $out/lib/wine/x86_64-unix/wineasio.dll.so
+    install -D build32/wineasio32.dll    $out/lib/wine/i386-windows/wineasio32.dll
+    install -D build32/wineasio32.dll.so $out/lib/wine/i386-unix/wineasio32.dll.so
+    install -D build64/wineasio64.dll    $out/lib/wine/x86_64-windows/wineasio64.dll
+    install -D build64/wineasio64.dll.so $out/lib/wine/x86_64-unix/wineasio64.dll.so
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/applications/emulators/yuzu/sources.nix b/nixpkgs/pkgs/applications/emulators/yuzu/sources.nix
index 4a792c973b53..fc6d1813afb5 100644
--- a/nixpkgs/pkgs/applications/emulators/yuzu/sources.nix
+++ b/nixpkgs/pkgs/applications/emulators/yuzu/sources.nix
@@ -1,19 +1,19 @@
 # Generated by ./update.sh - do not update manually!
-# Last updated: 2023-09-13
+# Last updated: 2023-10-07
 {
   compatList = {
-    rev = "463d5f3537eed71638d4f5809467afec1eb5988c";
+    rev = "156a0a80efc47069ba3360f8a1b268a1c6f2f505";
     hash = "sha256:1hdsza3wf9a0yvj6h55gsl7xqvhafvbz1i8paz9kg7l49b0gnlh1";
   };
 
   mainline = {
-    version = "1557";
-    hash = "sha256:19wlia1g2ll9fwbn4yj57cax4lvs3d6w41z2yy2pjdq84yzgg1gs";
+    version = "1579";
+    hash = "sha256:0689w42as1di8xbh8kq2p0cws8gdwq64zdj3i8wq612nkw0q5s60";
   };
 
   ea = {
-    version = "3864";
-    distHash = "sha256:02dxf9f33agnp91myxxklrdjalh6d32zjlg07p7v5v48mymnxhv9";
-    fullHash = "sha256:020ljbgb79i66y6fqj4xblzv4s808l50jy7wwl0d6jwpck1q3i11";
+    version = "3911";
+    distHash = "sha256:0xj642kjhj0gp9l15b3ysj3gmyy47rcvzw9amghsfl13bg5ffnwh";
+    fullHash = "sha256:13rd6kwnhpvjzp67k6pqgl9fsqzwy5d8043hv6kd93gg8jbxkp38";
   };
 }