about summary refs log tree commit diff
path: root/nixpkgs/pkgs/games
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/games')
-rw-r--r--nixpkgs/pkgs/games/aaaaxy/default.nix6
-rw-r--r--nixpkgs/pkgs/games/atlauncher/default.nix53
-rw-r--r--nixpkgs/pkgs/games/ball-and-paddle/default.nix45
-rw-r--r--nixpkgs/pkgs/games/ball-and-paddle/getenv-decl.patch13
-rw-r--r--nixpkgs/pkgs/games/blightmud/default.nix7
-rw-r--r--nixpkgs/pkgs/games/blobwars/blobwars-2.00-glibc-2.38.patch11
-rw-r--r--nixpkgs/pkgs/games/blobwars/default.nix2
-rw-r--r--nixpkgs/pkgs/games/boohu/default.nix19
-rw-r--r--nixpkgs/pkgs/games/boohu/deps.nix20
-rw-r--r--nixpkgs/pkgs/games/brutalmaze/default.nix6
-rw-r--r--nixpkgs/pkgs/games/chiaki4deck/default.nix6
-rw-r--r--nixpkgs/pkgs/games/clonehero/default.nix2
-rw-r--r--nixpkgs/pkgs/games/cockatrice/default.nix4
-rw-r--r--nixpkgs/pkgs/games/ddnet/default.nix6
-rw-r--r--nixpkgs/pkgs/games/doom-ports/doomretro/default.nix4
-rw-r--r--nixpkgs/pkgs/games/doom-ports/gzdoom/default.nix6
-rw-r--r--nixpkgs/pkgs/games/eduke32/default.nix34
-rw-r--r--nixpkgs/pkgs/games/factorio/versions.json48
-rw-r--r--nixpkgs/pkgs/games/fallout-ce/build.nix77
-rw-r--r--nixpkgs/pkgs/games/fallout-ce/fallout-ce.nix20
-rw-r--r--nixpkgs/pkgs/games/fallout-ce/fallout2-ce.nix23
-rw-r--r--nixpkgs/pkgs/games/fheroes2/default.nix4
-rw-r--r--nixpkgs/pkgs/games/freecell-solver/default.nix44
-rw-r--r--nixpkgs/pkgs/games/harmonist/default.nix2
-rw-r--r--nixpkgs/pkgs/games/hikounomizu/default.nix10
-rw-r--r--nixpkgs/pkgs/games/hmcl/default.nix2
-rw-r--r--nixpkgs/pkgs/games/ldmud/default.nix4
-rw-r--r--nixpkgs/pkgs/games/lgames/lbreakouthd/default.nix4
-rw-r--r--nixpkgs/pkgs/games/lgames/lpairs2/default.nix4
-rw-r--r--nixpkgs/pkgs/games/lgames/ltris/default.nix4
-rw-r--r--nixpkgs/pkgs/games/lunar-client/default.nix8
-rw-r--r--nixpkgs/pkgs/games/minesweep-rs/default.nix6
-rw-r--r--nixpkgs/pkgs/games/openmw/default.nix103
-rw-r--r--nixpkgs/pkgs/games/openmw/tes3mp.nix12
-rw-r--r--nixpkgs/pkgs/games/openttd/jgrpp.nix4
-rw-r--r--nixpkgs/pkgs/games/osu-lazer/bin.nix10
-rw-r--r--nixpkgs/pkgs/games/papermc/default.nix64
-rw-r--r--nixpkgs/pkgs/games/portmod/default.nix25
-rw-r--r--nixpkgs/pkgs/games/prismlauncher/0001-launcher-translations-explicitly-convert-QVector-ite.patch36
-rw-r--r--nixpkgs/pkgs/games/prismlauncher/default.nix4
-rw-r--r--nixpkgs/pkgs/games/prismlauncher/wrapper.nix3
-rw-r--r--nixpkgs/pkgs/games/r2modman/default.nix4
-rw-r--r--nixpkgs/pkgs/games/sfrotz/default.nix4
-rw-r--r--nixpkgs/pkgs/games/sgt-puzzles/default.nix19
-rw-r--r--nixpkgs/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix6
-rw-r--r--nixpkgs/pkgs/games/srb2/cmake.patch56
-rw-r--r--nixpkgs/pkgs/games/srb2/default.nix11
-rw-r--r--nixpkgs/pkgs/games/srb2/thirdparty.patch12
-rw-r--r--nixpkgs/pkgs/games/theforceengine/default.nix8
-rw-r--r--nixpkgs/pkgs/games/ultrastardx/default.nix9
-rw-r--r--nixpkgs/pkgs/games/unciv/default.nix4
-rw-r--r--nixpkgs/pkgs/games/vcmi/default.nix6
-rw-r--r--nixpkgs/pkgs/games/xivlauncher/default.nix4
-rw-r--r--nixpkgs/pkgs/games/xivlauncher/deps.nix3
-rw-r--r--nixpkgs/pkgs/games/xmage/default.nix24
55 files changed, 558 insertions, 377 deletions
diff --git a/nixpkgs/pkgs/games/aaaaxy/default.nix b/nixpkgs/pkgs/games/aaaaxy/default.nix
index 62ac8ac20c7a..c2fcc8a646c4 100644
--- a/nixpkgs/pkgs/games/aaaaxy/default.nix
+++ b/nixpkgs/pkgs/games/aaaaxy/default.nix
@@ -19,17 +19,17 @@
 
 buildGoModule rec {
   pname = "aaaaxy";
-  version = "1.4.45";
+  version = "1.4.50";
 
   src = fetchFromGitHub {
     owner = "divVerent";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-93ffxzYSVumfk7J8K9Ma2WYWaGQLBIxSkds8OKzOCcw=";
+    hash = "sha256-J4SCmIwGlVD8MHs13NO3JFKfH1rvh2dgVV0/8BX9IcY=";
     fetchSubmodules = true;
   };
 
-  vendorHash = "sha256-wUH0ohccMjdeGpm9bcw8K7Ss0FZGXaPfxeJCKYkEhJ8=";
+  vendorHash = "sha256-dugSK/5mowBfRqnzI3sZqCm69E0WtX2Tydh6Q06+vLU=";
 
   buildInputs = [
     alsa-lib
diff --git a/nixpkgs/pkgs/games/atlauncher/default.nix b/nixpkgs/pkgs/games/atlauncher/default.nix
index 4f45477ecec9..d6e3dc05a802 100644
--- a/nixpkgs/pkgs/games/atlauncher/default.nix
+++ b/nixpkgs/pkgs/games/atlauncher/default.nix
@@ -1,12 +1,17 @@
-{ copyDesktopItems, fetchurl, jre, lib, makeDesktopItem, makeWrapper, stdenv, steam-run, withSteamRun ? true, writeShellScript }:
+{ copyDesktopItems, fetchurl, jre, lib, makeDesktopItem, makeWrapper, stdenv, udev, xorg }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "atlauncher";
-  version = "3.4.30.0";
+  version = "3.4.34.2";
 
   src = fetchurl {
     url = "https://github.com/ATLauncher/ATLauncher/releases/download/v${finalAttrs.version}/ATLauncher-${finalAttrs.version}.jar";
-    hash = "sha256-eSb+qH/ZoPpeOyIuoJsEpecG7uUyh0vkqZzNuxriRuI=";
+    hash = "sha256-l9OoHunK0xfY6xbNpjs9lfsVd3USM1GHgutTMMVq8S8=";
+  };
+
+  env.ICON = fetchurl {
+    url = "https://atlauncher.com/assets/images/logo.svg";
+    hash = "sha256-XoqpsgLmkpa2SdjZvPkgg6BUJulIBIeu6mBsJJCixfo=";
   };
 
   dontUnpack = true;
@@ -14,33 +19,29 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ ];
   nativeBuildInputs = [ copyDesktopItems makeWrapper ];
 
-  installPhase =
-    let
-      # hack to use steam-run along with the exec
-      steamrun = writeShellScript "steamrun" ''
-        shift
-        exec ${steam-run}/bin/steam-run "''$@"
-      '';
-    in
-    ''
-      runHook preInstall
-      mkdir -p $out/bin
-      makeWrapper ${jre}/bin/java $out/bin/atlauncher \
-        --add-flags "-jar $src --working-dir=\$HOME/.atlauncher" \
-        --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath finalAttrs.buildInputs}" ${
-            lib.strings.optionalString withSteamRun ''--run "${steamrun} \\"''
-          }
-      runHook postInstall
-    '';
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/java
+    cp $src $out/share/java/ATLauncher.jar
+
+    makeWrapper ${jre}/bin/java $out/bin/${finalAttrs.pname} \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ xorg.libXxf86vm udev ]}" \
+      --add-flags "-jar $out/share/java/ATLauncher.jar" \
+      --add-flags "--working-dir \"\''${XDG_DATA_HOME:-\$HOME/.local/share}/ATLauncher\"" \
+      --add-flags "--no-launcher-update"
+
+    mkdir -p $out/share/icons/hicolor/scalable/apps
+    cp $ICON $out/share/icons/hicolor/scalable/apps/${finalAttrs.pname}.svg
+
+    runHook postInstall
+  '';
 
   desktopItems = [
     (makeDesktopItem {
       name = finalAttrs.pname;
-      exec = "${finalAttrs.pname} --no-launcher-update true";
-      icon = fetchurl {
-        url = "https://avatars.githubusercontent.com/u/7068667";
-        hash = "sha256-YmEkxf4rZxN3jhiib0UtdUDDcn9lw7IMbiEucBL7b9o=";
-      };
+      exec = finalAttrs.pname;
+      icon = finalAttrs.pname;
       desktopName = "ATLauncher";
       categories = [ "Game" ];
     })
diff --git a/nixpkgs/pkgs/games/ball-and-paddle/default.nix b/nixpkgs/pkgs/games/ball-and-paddle/default.nix
deleted file mode 100644
index a935f3d46863..000000000000
--- a/nixpkgs/pkgs/games/ball-and-paddle/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ fetchurl, lib, stdenv, SDL, SDL_image, SDL_mixer, SDL_ttf, guile, gettext }:
-
-stdenv.mkDerivation rec {
-  pname = "ballandpaddle";
-  version = "0.8.1";
-
-  src = fetchurl {
-    url = "mirror://gnu/ballandpaddle/ballandpaddle-${version}.tar.gz";
-    sha256 = "0zgpydad0mj7fbkippw3n9hlda6nac084dq5xfbsks9jn1xd30ny";
-  };
-
-  buildInputs = [ SDL SDL_image SDL_mixer SDL_ttf guile gettext ];
-
-  patches = [ ./getenv-decl.patch ];
-
-  preConfigure = ''
-    sed -i "Makefile.in" \
-        -e "s|desktopdir *=.*$|desktopdir = $out/share/applications|g ;
-            s|pixmapsdir *=.*$|pixmapsdir = $out/share/pixmaps|g"
-  '';
-
-  meta = {
-    description = "GNU Ball and Paddle, an old-fashioned ball and paddle game";
-
-    longDescription = ''
-      GNU Ball and Paddle is an old-fashioned ball and paddle game
-      with a set amount of blocks to destroy on each level, while
-      moving a paddle left and right at the bottom of the
-      screen.  Various powerups may make different things occur.
-
-      It now uses GNU Guile for extension and the levels are written
-      with Guile.  Follow the example level sets and the documentation.
-    '';
-
-    license = lib.licenses.gpl3Plus;
-
-    homepage = "https://www.gnu.org/software/ballandpaddle/";
-
-    maintainers = [ ];
-
-    platforms = lib.platforms.unix;
-
-    hydraPlatforms = lib.platforms.linux; # sdl-config times out on darwin
-  };
-}
diff --git a/nixpkgs/pkgs/games/ball-and-paddle/getenv-decl.patch b/nixpkgs/pkgs/games/ball-and-paddle/getenv-decl.patch
deleted file mode 100644
index 6bf26b50a142..000000000000
--- a/nixpkgs/pkgs/games/ball-and-paddle/getenv-decl.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Make the getenv(3) declaration visible.
-
---- ballandpaddle-0.8.1/src/settingsmanager.cpp	2009-07-08 02:13:16.000000000 +0200
-+++ ballandpaddle-0.8.1/src/settingsmanager.cpp	2009-07-16 23:30:28.000000000 +0200
-@@ -17,6 +17,7 @@
-  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-  **/
- 
-+#include <stdlib.h>
- #include "settingsmanager.h"
- 
- SettingsManager::SettingsManager ()
-
diff --git a/nixpkgs/pkgs/games/blightmud/default.nix b/nixpkgs/pkgs/games/blightmud/default.nix
index d536aa7b8ea6..3267c36a370e 100644
--- a/nixpkgs/pkgs/games/blightmud/default.nix
+++ b/nixpkgs/pkgs/games/blightmud/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "blightmud";
-  version = "5.2.0";
+  version = "5.3.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-sLqkDuohCgHJTMte1WIa2Yu43oWXVvnIpeiDBoQpKY8=";
+    sha256 = "sha256-e9Uo0IJYL9/6/nNL27zfUYnsTwDaOJOcR2CY6t++jDE=";
   };
 
-  cargoHash = "sha256-ffADKoMysYY2vwX3asHnjR2EiND4RJsf/W334PWvkGs=";
+  cargoHash = "sha256-QSgTpmSojZrwZ0RsUL6c2xO310RZX3gkyGl6oNf6pYI=";
 
   buildFeatures = lib.optional withTTS "tts";
 
@@ -43,6 +43,7 @@ rustPlatform.buildRustPackage rec {
         "test_lua_script"
         "timer_test"
         "validate_assertion_fail"
+        "regex_smoke_test"
       ];
       skipFlag = test: "--skip " + test;
     in
diff --git a/nixpkgs/pkgs/games/blobwars/blobwars-2.00-glibc-2.38.patch b/nixpkgs/pkgs/games/blobwars/blobwars-2.00-glibc-2.38.patch
new file mode 100644
index 000000000000..4fe3e373afda
--- /dev/null
+++ b/nixpkgs/pkgs/games/blobwars/blobwars-2.00-glibc-2.38.patch
@@ -0,0 +1,11 @@
+--- a/src/headers.h
++++ b/src/headers.h
+@@ -56,7 +56,7 @@ extern DECLSPEC int SDLCALL SDL_GetGamma(float *red, float *green, float *blue);
+ #define textdomain(x) while(false)
+ #endif
+ 
+-#if !defined(OpenBSD) && !defined(FreeBSD) && !defined(__APPLE__)
++#if !defined(OpenBSD) && !defined(FreeBSD) && !defined(__APPLE__) && !(defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 38)
+ static inline void strlcat(char *dest, const char *src, size_t n) { strncat(dest, src, n - 1); }
+ static inline void strlcpy(char *dest, const char *src, size_t n) { strncpy(dest, src, n); dest[n - 1] = 0; }
+ #endif
diff --git a/nixpkgs/pkgs/games/blobwars/default.nix b/nixpkgs/pkgs/games/blobwars/default.nix
index b0951064c24c..dd94fc109696 100644
--- a/nixpkgs/pkgs/games/blobwars/default.nix
+++ b/nixpkgs/pkgs/games/blobwars/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "c406279f6cdf2aed3c6edb8d8be16efeda0217494acd525f39ee2bd3e77e4a99";
   };
 
+  patches = [ ./blobwars-2.00-glibc-2.38.patch ];
+
   nativeBuildInputs = [ pkg-config gettext ];
   buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_net SDL2_ttf zlib ];
   env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error" ];
diff --git a/nixpkgs/pkgs/games/boohu/default.nix b/nixpkgs/pkgs/games/boohu/default.nix
index 6b3c0e04f982..708d8d7510bc 100644
--- a/nixpkgs/pkgs/games/boohu/default.nix
+++ b/nixpkgs/pkgs/games/boohu/default.nix
@@ -1,20 +1,17 @@
-{lib, fetchurl, buildGoPackage}:
-
-buildGoPackage rec {
+{ lib, fetchurl, buildGoModule }:
 
+buildGoModule rec {
   pname = "boohu";
-  version = "0.13.0";
-
-  goPackagePath = "git.tuxfamily.org/boohu/boohu.git";
+  version = "0.14.0";
 
   src = fetchurl {
-    url = "https://download.tuxfamily.org/boohu/downloads/${pname}-${version}.tar.gz";
-    sha256 = "0q89yv4klldjpli6y9xpyr6k8nsn7qa68gp90vb3dgxynn91sh68";
+    url = "https://download.tuxfamily.org/boohu/downloads/boohu-${version}.tar.gz";
+    hash = "sha256-IB59C5/uuHP6LtKLypjpgHOo0MR9bFdCbudaRa+h7lI=";
   };
 
-  goDeps = ./deps.nix;
+  vendorHash = "sha256-AVK4zE/Hs9SN8Qj2WYj/am2B0R74QKYoMNf3sRRjnU4=";
 
-  postInstall = "mv $out/bin/boohu.git $out/bin/boohu";
+  ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
     description = "A new coffee-break roguelike game";
@@ -27,6 +24,6 @@ buildGoPackage rec {
     homepage = "https://download.tuxfamily.org/boohu/index.html";
     license = licenses.isc;
     platforms = platforms.unix;
-    maintainers = with maintainers; [];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/games/boohu/deps.nix b/nixpkgs/pkgs/games/boohu/deps.nix
deleted file mode 100644
index c2dc3b41b973..000000000000
--- a/nixpkgs/pkgs/games/boohu/deps.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/nsf/termbox-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nsf/termbox-go";
-      rev = "93860e16131719fa9722e7c448dbf8c0e3210a0d";
-      sha256 = "03hz060cy8qrl4kgr80pbq6xvr38z4c6ghr3y81i8g854rvp6426";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev = "f93a0d58d5fd95e53f82782d07bb0c79d23e1290";
-      sha256 = "1sq97q71vgwnbg1fphsmqrzkbfn6mjal6d8a3qgwv4nbgppwaz25";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/games/brutalmaze/default.nix b/nixpkgs/pkgs/games/brutalmaze/default.nix
index d9c904d99a3b..8f8930ce0c63 100644
--- a/nixpkgs/pkgs/games/brutalmaze/default.nix
+++ b/nixpkgs/pkgs/games/brutalmaze/default.nix
@@ -3,7 +3,7 @@
 python3Packages.buildPythonApplication rec {
   pname = "brutalmaze";
   version = "1.1.1";
-  format = "flit";
+  format = "pyproject";
   disabled = python3Packages.pythonOlder "3.7";
 
   src = fetchFromSourcehut {
@@ -13,6 +13,10 @@ python3Packages.buildPythonApplication rec {
     sha256 = "1m105iq378mypj64syw59aldbm6bj4ma4ynhc50gafl656fabg4y";
   };
 
+  nativeBuildInputs = with python3Packages; [
+    flit-core
+  ];
+
   propagatedBuildInputs = with python3Packages; [
     loca
     palace
diff --git a/nixpkgs/pkgs/games/chiaki4deck/default.nix b/nixpkgs/pkgs/games/chiaki4deck/default.nix
index 4608df45d1e0..850e67eefcef 100644
--- a/nixpkgs/pkgs/games/chiaki4deck/default.nix
+++ b/nixpkgs/pkgs/games/chiaki4deck/default.nix
@@ -15,17 +15,18 @@
 , udev
 , hidapi
 , fftw
+, speexdsp
 }:
 
 mkDerivation rec {
   pname = "chiaki4deck";
-  version = "1.3.3";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "streetpea";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-DXer39+j8QaI1IAIcLhVzSVNyGvwoT93knRibpFsEeY=";
+    hash = "sha256-udSGtpBUbxEZU9l+jLmUWJbkaCxKGoPuKAaYVmEEezk=";
     fetchSubmodules = true;
   };
 
@@ -50,6 +51,7 @@ mkDerivation rec {
     fftw
     libevdev
     udev
+    speexdsp
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/games/clonehero/default.nix b/nixpkgs/pkgs/games/clonehero/default.nix
index 36d76195fb9a..0f7ae45a6683 100644
--- a/nixpkgs/pkgs/games/clonehero/default.nix
+++ b/nixpkgs/pkgs/games/clonehero/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
   version = "1.0.0.4080";
 
   src = fetchurl {
-    url = "https://pubdl.clonehero.net/clonehero-v${finalAttrs.version}-final/clonehero-linux.tar.xz";
+    url = "https://github.com/clonehero-game/releases/releases/download/V${finalAttrs.version}/CloneHero-linux.tar.xz";
     hash = "sha256-YWLV+wgQ9RfKRSSWh/x0PMjB6tFA4YpHb9WtYOOgZZI=";
   };
 
diff --git a/nixpkgs/pkgs/games/cockatrice/default.nix b/nixpkgs/pkgs/games/cockatrice/default.nix
index 1388d830a9e7..0d8b925faa2b 100644
--- a/nixpkgs/pkgs/games/cockatrice/default.nix
+++ b/nixpkgs/pkgs/games/cockatrice/default.nix
@@ -4,13 +4,13 @@
 
 mkDerivation rec {
   pname = "cockatrice";
-  version = "2021-02-03-Development-2.8.1-beta";
+  version = "2023-09-14-Release-2.9.0";
 
   src = fetchFromGitHub {
     owner = "Cockatrice";
     repo = "Cockatrice";
     rev = version;
-    sha256 = "0g1d7zq4lh4jf08mvvgp6m2r2gdvy4y1mhf46c0s8607h2l8vavh";
+    sha256 = "sha256-mzYh0qRKiHY64LnoOfF4kDEO06IW1SrCqEiOlu81Fso=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/games/ddnet/default.nix b/nixpkgs/pkgs/games/ddnet/default.nix
index b08d4baf2a46..b8e333cd79c2 100644
--- a/nixpkgs/pkgs/games/ddnet/default.nix
+++ b/nixpkgs/pkgs/games/ddnet/default.nix
@@ -34,19 +34,19 @@
 
 stdenv.mkDerivation rec {
   pname = "ddnet";
-  version = "17.2.1";
+  version = "17.3";
 
   src = fetchFromGitHub {
     owner = "ddnet";
     repo = pname;
     rev = version;
-    hash = "sha256-FJnwabNEEGZDM9wNWMGclFv2IMlXg4Ob3PEbGiGQKKc=";
+    hash = "sha256-PV7xX4xYAIOT8xF7SM/bCO98p5gYJwT2U+dEXKhaIf4=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}";
     inherit src;
-    hash = "sha256-hUrsumBiKovSD7xT1PgH2Q+7HYgyxnFnz33YJPdd5+c=";
+    hash = "sha256-Mck5letI7gOqeuMsZPzdys0VD8cWESznzezR2ZQXbDE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/games/doom-ports/doomretro/default.nix b/nixpkgs/pkgs/games/doom-ports/doomretro/default.nix
index c584f64b5d3e..f01a788b8f8d 100644
--- a/nixpkgs/pkgs/games/doom-ports/doomretro/default.nix
+++ b/nixpkgs/pkgs/games/doom-ports/doomretro/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "doomretro";
-  version = "4.9.2";
+  version = "5.0.4";
 
   src = fetchFromGitHub {
     owner = "bradharding";
     repo = "doomretro";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-thH18+Og5kSiMdzgPdGyUwBchpjpd9xfFfUlUQMAl1A=";
+    hash = "sha256-O8FuLFziwVNk2dcj52Xq/FG2vtei06iL8BG2jVugcxs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/games/doom-ports/gzdoom/default.nix b/nixpkgs/pkgs/games/doom-ports/gzdoom/default.nix
index aaa800269a75..4d737c649334 100644
--- a/nixpkgs/pkgs/games/doom-ports/gzdoom/default.nix
+++ b/nixpkgs/pkgs/games/doom-ports/gzdoom/default.nix
@@ -14,6 +14,7 @@
 , libjpeg
 , libsndfile
 , libvpx
+, libwebp
 , mpg123
 , ninja
 , openal
@@ -25,14 +26,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gzdoom";
-  version = "4.10.0";
+  version = "4.11.1";
 
   src = fetchFromGitHub {
     owner = "ZDoom";
     repo = "gzdoom";
     rev = "g${version}";
     fetchSubmodules = true;
-    hash = "sha256-F3p2X/hjPV9fuaA7T2bQTP6SlKcfc8GniJgv8BcopGw=";
+    hash = "sha256-7PWaqYK7pa6jgl92+a9dqQVVKuE/lvqtm+7p0nfMTNI=";
   };
 
   outputs = [ "out" "doc" ];
@@ -55,6 +56,7 @@ stdenv.mkDerivation rec {
     libjpeg
     libsndfile
     libvpx
+    libwebp
     mpg123
     openal
     vulkan-loader
diff --git a/nixpkgs/pkgs/games/eduke32/default.nix b/nixpkgs/pkgs/games/eduke32/default.nix
index a25c6fa9050f..051e097eb3a3 100644
--- a/nixpkgs/pkgs/games/eduke32/default.nix
+++ b/nixpkgs/pkgs/games/eduke32/default.nix
@@ -1,7 +1,23 @@
-{ lib, stdenv, fetchurl, makeWrapper, pkg-config, nasm, makeDesktopItem
-, alsa-lib, flac, gtk2, libvorbis, libvpx, libGLU, libGL
-, SDL2, SDL2_mixer
-, AGL, Cocoa, GLUT, OpenGL
+{ lib
+, stdenv
+, fetchurl
+, makeWrapper
+, pkg-config
+, nasm
+, makeDesktopItem
+, alsa-lib
+, flac
+, gtk2
+, libvorbis
+, libvpx
+, libGLU
+, libGL
+, SDL2
+, SDL2_mixer
+, AGL
+, Cocoa
+, GLUT
+, OpenGL
 }:
 
 let
@@ -18,13 +34,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "eduke32";
-  version = "20221225";
-  rev = "10166";
-  revExtra = "122aee012";
+  version = "20230926";
+  rev = "10459";
+  revExtra = "8feaf6c25";
 
   src = fetchurl {
     url = "https://dukeworld.com/eduke32/synthesis/${version}-${rev}-${revExtra}/eduke32_src_${version}-${rev}-${revExtra}.tar.xz";
-    sha256 = "sha256-3pBYZJqoH7XBkJ537wPwBSmNaZprvOlVtAKTo8EOT3Q=";
+    hash = "sha256-GQOpDQm2FeaOMyYu9L5zhrM6XFvZAHMAwn1tSK7RCB8=";
   };
 
   buildInputs = [
@@ -49,7 +65,7 @@ in stdenv.mkDerivation rec {
     ++ lib.optional (stdenv.hostPlatform.system == "i686-linux") nasm;
 
   postPatch = ''
-    substituteInPlace source/imgui/src/imgui_impl_sdl.cpp \
+    substituteInPlace source/imgui/src/imgui_impl_sdl2.cpp \
       --replace '#include <SDL.h>' '#include <SDL2/SDL.h>' \
       --replace '#include <SDL_syswm.h>' '#include <SDL2/SDL_syswm.h>' \
       --replace '#include <SDL_vulkan.h>' '#include <SDL2/SDL_vulkan.h>'
diff --git a/nixpkgs/pkgs/games/factorio/versions.json b/nixpkgs/pkgs/games/factorio/versions.json
index 9a0f47de0997..a016676ac1d1 100644
--- a/nixpkgs/pkgs/games/factorio/versions.json
+++ b/nixpkgs/pkgs/games/factorio/versions.json
@@ -2,56 +2,56 @@
   "x86_64-linux": {
     "alpha": {
       "experimental": {
-        "name": "factorio_alpha_x64-1.1.89.tar.xz",
+        "name": "factorio_alpha_x64-1.1.92.tar.xz",
         "needsAuth": true,
-        "sha256": "1mv3lnxw8ihja1zm0kh2ghxb551pknmzjlz58iqxpkhlqmn3qi1q",
+        "sha256": "1arirh9180bmix2dglqlgcm036mbjanc4sxx0kc92j2grpw7xf53",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.89/alpha/linux64",
-        "version": "1.1.89"
+        "url": "https://factorio.com/get-download/1.1.92/alpha/linux64",
+        "version": "1.1.92"
       },
       "stable": {
-        "name": "factorio_alpha_x64-1.1.87.tar.xz",
+        "name": "factorio_alpha_x64-1.1.91.tar.xz",
         "needsAuth": true,
-        "sha256": "166mfblhxa6l3nglwwl77d1k3rkfcisp9bkps6y5zb2hmsmr00s6",
+        "sha256": "0dcanryqmikhllp8lwhdapbm9scrgfgnvgwdf18wn8asr652vz39",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.87/alpha/linux64",
-        "version": "1.1.87"
+        "url": "https://factorio.com/get-download/1.1.91/alpha/linux64",
+        "version": "1.1.91"
       }
     },
     "demo": {
       "experimental": {
-        "name": "factorio_demo_x64-1.1.88.tar.xz",
+        "name": "factorio_demo_x64-1.1.92.tar.xz",
         "needsAuth": false,
-        "sha256": "0m1rx7khfg3p0bj8gp30cqipwqjk1sjj13mzzxh67crwcjzxps9z",
+        "sha256": "02mqj2hlpsd0kgg0rav4k70pqh2sk4g2879c2nhp61ms79kdizh4",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.88/demo/linux64",
-        "version": "1.1.88"
+        "url": "https://factorio.com/get-download/1.1.92/demo/linux64",
+        "version": "1.1.92"
       },
       "stable": {
-        "name": "factorio_demo_x64-1.1.87.tar.xz",
+        "name": "factorio_demo_x64-1.1.91.tar.xz",
         "needsAuth": false,
-        "sha256": "1n5q4wgp2z18vpkvim8yxg4w9wc28mw9gfnqwq6fcwafz90xy9sq",
+        "sha256": "1j9nzc3rs9q43vh9i0jgpyhgnjjif98sdgk4r47m0qrxjb4pnfx0",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.87/demo/linux64",
-        "version": "1.1.87"
+        "url": "https://factorio.com/get-download/1.1.91/demo/linux64",
+        "version": "1.1.91"
       }
     },
     "headless": {
       "experimental": {
-        "name": "factorio_headless_x64-1.1.89.tar.xz",
+        "name": "factorio_headless_x64-1.1.92.tar.xz",
         "needsAuth": false,
-        "sha256": "1an4g5sry47xmlqr53jans75ngrp819b07rrq4xkzdzmka0lkrcq",
+        "sha256": "04j3p2r1r0h3fak3vxxq3d7qqpyjlg57n3c8sm6gadg4q4h15aw8",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.89/headless/linux64",
-        "version": "1.1.89"
+        "url": "https://factorio.com/get-download/1.1.92/headless/linux64",
+        "version": "1.1.92"
       },
       "stable": {
-        "name": "factorio_headless_x64-1.1.87.tar.xz",
+        "name": "factorio_headless_x64-1.1.91.tar.xz",
         "needsAuth": false,
-        "sha256": "1k2pk0s2nf4xy168kzf798ha7x4zc5ijpvxp61xlq7xddm5qicv0",
+        "sha256": "0v8zg3q79n15242fr79f9amg0icw3giy4aiaf43am5hxzcdb5212",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.87/headless/linux64",
-        "version": "1.1.87"
+        "url": "https://factorio.com/get-download/1.1.91/headless/linux64",
+        "version": "1.1.91"
       }
     }
   }
diff --git a/nixpkgs/pkgs/games/fallout-ce/build.nix b/nixpkgs/pkgs/games/fallout-ce/build.nix
new file mode 100644
index 000000000000..c220895db08c
--- /dev/null
+++ b/nixpkgs/pkgs/games/fallout-ce/build.nix
@@ -0,0 +1,77 @@
+{ cmake
+, fpattern
+, lib
+, SDL2
+, stdenv
+, writeShellScript
+
+, extraBuildInputs ? [ ]
+, extraMeta
+, pname
+, version
+, src
+}:
+
+let
+  launcher = writeShellScript "${pname}" ''
+    set -eu
+    assetDir="''${XDG_DATA_HOME:-$HOME/.local/share}/${pname}"
+    [ -d "$assetDir" ] || mkdir -p "$assetDir"
+    cd "$assetDir"
+
+    notice=0 fault=0
+    requiredFiles=(master.dat critter.dat)
+    for f in "''${requiredFiles[@]}"; do
+      if [ ! -f "$f" ]; then
+        echo "Required file $f not found in $PWD, note the files are case-sensitive"
+        notice=1 fault=1
+      fi
+    done
+
+    if [ ! -d "data/sound/music" ]; then
+      echo "data/sound/music directory not found in $PWD. This may prevent in-game music from functioning."
+      notice=1
+    fi
+
+    if [ $notice -ne 0 ]; then
+      echo "Please reference the installation instructions at https://github.com/alexbatalov/fallout2-ce"
+    fi
+
+    if [ $fault -ne 0 ]; then
+      exit $fault;
+    fi
+
+    exec @out@/libexec/${pname} "$@"
+  '';
+in
+stdenv.mkDerivation {
+  inherit pname version src;
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ SDL2 ] ++ extraBuildInputs;
+  hardeningDisable = [ "format" ];
+  cmakeBuildType = "RelWithDebInfo";
+
+  postPatch = ''
+    substituteInPlace third_party/fpattern/CMakeLists.txt \
+      --replace "FetchContent_Populate" "#FetchContent_Populate" \
+      --replace "{fpattern_SOURCE_DIR}" "${fpattern}/include" \
+      --replace "$/nix/" "/nix/"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D ${pname} $out/libexec/${pname}
+    install -D ${launcher} $out/bin/${pname}
+    substituteInPlace $out/bin/${pname} --subst-var out
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    license = licenses.sustainableUse;
+    maintainers = with maintainers; [ hughobrien TheBrainScrambler ];
+    platforms = platforms.linux;
+  } // extraMeta;
+}
diff --git a/nixpkgs/pkgs/games/fallout-ce/fallout-ce.nix b/nixpkgs/pkgs/games/fallout-ce/fallout-ce.nix
new file mode 100644
index 000000000000..5f55743a674b
--- /dev/null
+++ b/nixpkgs/pkgs/games/fallout-ce/fallout-ce.nix
@@ -0,0 +1,20 @@
+{ callPackage
+, fetchFromGitHub
+}:
+
+callPackage ./build.nix rec {
+  pname = "fallout-ce";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "alexbatalov";
+    repo = "fallout1-ce";
+    rev = "v${version}";
+    hash = "sha256-EvRkOlvtiVao63S0WRKKuHlhfkdTgc0m6GTyv4EfJFU=";
+  };
+
+  extraMeta = {
+    description = "A fully working re-implementation of Fallout, with the same original gameplay, engine bugfixes, and some quality of life improvements";
+    homepage = "https://github.com/alexbatalov/fallout1-ce";
+  };
+}
diff --git a/nixpkgs/pkgs/games/fallout-ce/fallout2-ce.nix b/nixpkgs/pkgs/games/fallout-ce/fallout2-ce.nix
new file mode 100644
index 000000000000..b28a9701c202
--- /dev/null
+++ b/nixpkgs/pkgs/games/fallout-ce/fallout2-ce.nix
@@ -0,0 +1,23 @@
+{ callPackage
+, fetchFromGitHub
+, zlib
+}:
+
+callPackage ./build.nix rec {
+  pname = "fallout2-ce";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "alexbatalov";
+    repo = "fallout2-ce";
+    rev = "v${version}";
+    hash = "sha256-+N4jhmxBX6z48kaU0jm90OKhguHlggT3OF9uuyY0EV0=";
+  };
+
+  extraBuildInputs = [ zlib ];
+
+  extraMeta = {
+    description = "A fully working re-implementation of Fallout 2, with the same original gameplay, engine bugfixes, and some quality of life improvements";
+    homepage = "https://github.com/alexbatalov/fallout2-ce";
+  };
+}
diff --git a/nixpkgs/pkgs/games/fheroes2/default.nix b/nixpkgs/pkgs/games/fheroes2/default.nix
index 37af4339694f..9c51b457fb4d 100644
--- a/nixpkgs/pkgs/games/fheroes2/default.nix
+++ b/nixpkgs/pkgs/games/fheroes2/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fheroes2";
-  version = "1.0.8";
+  version = "1.0.9";
 
   src = fetchFromGitHub {
     owner = "ihhub";
     repo = "fheroes2";
     rev = version;
-    sha256 = "sha256-lDMKMh0ztRI3sIV4+xIc25JcY5Opj5dY7pKiPx86qD0=";
+    hash = "sha256-l2NIoZrevI1PWK4mRjGP6jbx0LvXjz9oFsiTJ6m43JQ=";
   };
 
   nativeBuildInputs = [ imagemagick ];
diff --git a/nixpkgs/pkgs/games/freecell-solver/default.nix b/nixpkgs/pkgs/games/freecell-solver/default.nix
deleted file mode 100644
index 065e82a0e472..000000000000
--- a/nixpkgs/pkgs/games/freecell-solver/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, cmake
-, perl, gmp, libtap, gperf
-, perlPackages, python3 }:
-
-with lib;
-stdenv.mkDerivation rec {
-
-  pname = "freecell-solver";
-  version = "4.18.0";
-
-  src = fetchurl {
-    url = "https://fc-solve.shlomifish.org/downloads/fc-solve/${pname}-${version}.tar.xz";
-    sha256 = "1cmaib69pijmcpvgjvrdry8j4xys8l906l80b8z21vvyhdwrfdnn";
-  };
-
-  nativeBuildInputs = [
-    cmake perl pkg-config
-  ] ++ (with perlPackages; TaskFreecellSolverTesting.buildInputs ++ [
-    GamesSolitaireVerify StringShellQuote TaskFreecellSolverTesting TemplateToolkit
-  ]);
-
-  buildInputs = [
-    gmp libtap gperf
-    python3 python3.pkgs.random2
-  ];
-
-  # "ninja t/CMakeFiles/delta-states-test.t.exe.dir/__/delta_states.c.o" fails
-  # to depend on the generated "is_king.h".
-  enableParallelBuilding = false;
-
-  meta = {
-    description = "A FreeCell automatic solver";
-    longDescription = ''
-      FreeCell Solver is a program that automatically solves layouts
-      of Freecell and similar variants of Card Solitaire such as Eight
-      Off, Forecell, and Seahaven Towers, as well as Simple Simon
-      boards.
-    '';
-    homepage = "https://fc-solve.shlomifish.org/";
-    license = licenses.mit;
-    maintainers = [ maintainers.AndersonTorres ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/games/harmonist/default.nix b/nixpkgs/pkgs/games/harmonist/default.nix
index c08ed624959d..cbb556cbc948 100644
--- a/nixpkgs/pkgs/games/harmonist/default.nix
+++ b/nixpkgs/pkgs/games/harmonist/default.nix
@@ -25,6 +25,6 @@ buildGoModule rec {
     '';
     homepage = "https://harmonist.tuxfamily.org/";
     license = licenses.isc;
-    maintainers = with maintainers; [ aaronjheng ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/games/hikounomizu/default.nix b/nixpkgs/pkgs/games/hikounomizu/default.nix
index f55b77516400..c59418ac1a43 100644
--- a/nixpkgs/pkgs/games/hikounomizu/default.nix
+++ b/nixpkgs/pkgs/games/hikounomizu/default.nix
@@ -13,20 +13,22 @@
 , libogg
 , libvorbis
 , libGLU
+, enet
 , synfigstudio
 , inkscape
 , imagemagick
 , pngquant
 , xz
+, bc
 }:
 
 stdenv.mkDerivation rec {
   pname = "hikounomizu";
-  version = "0.9.2";
+  version = "1.0";
 
   src = fetchurl {
     url = "http://download.tuxfamily.org/hnm/${version}/hikounomizu-${version}-src.tar.bz2";
-    hash = "sha256-ZtvzQAiYG4IcdgKiBDIQFOJVnLbz1TsiIbdZr/0Y2U8=";
+    hash = "sha256-Hw/BA7jOW9KGdde1NLDh4SfQXxvZkNGx/sHXukgFZ5M=";
   };
 
   nativeBuildInputs = [
@@ -39,6 +41,7 @@ stdenv.mkDerivation rec {
     imagemagick
     pngquant
     xz
+    bc
   ];
 
   buildInputs = [
@@ -51,10 +54,11 @@ stdenv.mkDerivation rec {
     libogg
     libvorbis
     libGLU
+    enet
   ];
 
   postBuild = ''
-    make data -j$NIX_BUILD_CORES
+    make data HNM_PARALLEL=$NIX_BUILD_CORES
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/games/hmcl/default.nix b/nixpkgs/pkgs/games/hmcl/default.nix
index f6ded13dc0f4..fcaa01ea2d95 100644
--- a/nixpkgs/pkgs/games/hmcl/default.nix
+++ b/nixpkgs/pkgs/games/hmcl/default.nix
@@ -91,7 +91,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "A Minecraft Launcher which is multi-functional, cross-platform and popular";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ rs0vere ];
+    maintainers = with maintainers; [ ];
     inherit (jre.meta) platforms;
   };
 })
diff --git a/nixpkgs/pkgs/games/ldmud/default.nix b/nixpkgs/pkgs/games/ldmud/default.nix
index e676ce1a5cd7..41348fa0bcfa 100644
--- a/nixpkgs/pkgs/games/ldmud/default.nix
+++ b/nixpkgs/pkgs/games/ldmud/default.nix
@@ -28,13 +28,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ldmud";
-  version = "3.6.6";
+  version = "3.6.7";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-2TaFt+T9B5Df6KWRQcbhY1E1D6NISb0oqLgyX47f5lI=";
+    sha256 = "sha256-PkrjP7tSZMaj61Hsn++7+CumhqFPLbf0+eAI6afP9HA=";
   };
 
   sourceRoot = "${src.name}/src";
diff --git a/nixpkgs/pkgs/games/lgames/lbreakouthd/default.nix b/nixpkgs/pkgs/games/lgames/lbreakouthd/default.nix
index 9510edd7932a..d5f78facca2a 100644
--- a/nixpkgs/pkgs/games/lgames/lbreakouthd/default.nix
+++ b/nixpkgs/pkgs/games/lgames/lbreakouthd/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lbreakouthd";
-  version = "1.1.3";
+  version = "1.1.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/lgames/lbreakouthd-${finalAttrs.version}.tar.gz";
-    hash = "sha256-BpF583f2if4FeJ2Fi/8GZYuh5T37GXdNq/Ww4LM65wY=";
+    hash = "sha256-fJGhGg6da/leHI52fDeVlRHOrrV0xedSEMHyC1PpNII=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/games/lgames/lpairs2/default.nix b/nixpkgs/pkgs/games/lgames/lpairs2/default.nix
index c8b044879466..7993fd0657da 100644
--- a/nixpkgs/pkgs/games/lgames/lpairs2/default.nix
+++ b/nixpkgs/pkgs/games/lgames/lpairs2/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lpairs2";
-  version = "2.2.1";
+  version = "2.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/lgames/${pname}-${version}.tar.gz";
-    hash = "sha256-n2/3QxsnRzVgzKzOUF6RLzpHJ2R8z67Mkjwdh2ghn28=";
+    hash = "sha256-gw1BNkcztyTuoXRdx5+TBZNJEJNrLCfEUCQ1JzROogA=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/games/lgames/ltris/default.nix b/nixpkgs/pkgs/games/lgames/ltris/default.nix
index aaa4a7c34e94..8cf581b376bf 100644
--- a/nixpkgs/pkgs/games/lgames/ltris/default.nix
+++ b/nixpkgs/pkgs/games/lgames/ltris/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ltris";
-  version = "1.2.6";
+  version = "1.2.7";
 
   src = fetchurl {
     url = "mirror://sourceforge/lgames/${pname}-${version}.tar.gz";
-    hash = "sha256-wjziFFTAOJxSl6fvLhTv6ATZQGJefusDhqKXgOwsRvY=";
+    hash = "sha256-EpHGpkLQa57hU6wKLnhVosmD6DnGGPGilN8E2ClSXLA=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/games/lunar-client/default.nix b/nixpkgs/pkgs/games/lunar-client/default.nix
index 599edb1acffd..042259fcfae2 100644
--- a/nixpkgs/pkgs/games/lunar-client/default.nix
+++ b/nixpkgs/pkgs/games/lunar-client/default.nix
@@ -1,15 +1,16 @@
 { appimageTools
 , fetchurl
 , lib
+, makeWrapper
 }:
 
 let
   pname = "lunar-client";
-  version = "3.0.10";
+  version = "3.1.0";
 
   src = fetchurl {
     url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
-    hash = "sha256-mbEV+iciL4+PtfvStyXZXK5Zb91N9H1VJ5amZj+2EyA=";
+    hash = "sha256-6OAGNkMyHOZI5wh92OtalnvUVFWNAS9PvkFS0e4YXhk=";
   };
 
   appimageContents = appimageTools.extract { inherit pname version src; };
@@ -19,6 +20,9 @@ appimageTools.wrapType2 rec {
 
   extraInstallCommands = ''
     mv $out/bin/{${pname}-${version},${pname}}
+    source "${makeWrapper}/nix-support/setup-hook"
+    wrapProgram $out/bin/${pname} \
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
     install -Dm444 ${appimageContents}/launcher.desktop $out/share/applications/lunar-client.desktop
     install -Dm444 ${appimageContents}/launcher.png $out/share/pixmaps/lunar-client.png
     substituteInPlace $out/share/applications/lunar-client.desktop \
diff --git a/nixpkgs/pkgs/games/minesweep-rs/default.nix b/nixpkgs/pkgs/games/minesweep-rs/default.nix
index a448597d9b1e..2cc65cd2c667 100644
--- a/nixpkgs/pkgs/games/minesweep-rs/default.nix
+++ b/nixpkgs/pkgs/games/minesweep-rs/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "minesweep-rs";
-  version = "6.0.31";
+  version = "6.0.35";
 
   src = fetchFromGitHub {
     owner = "cpcloud";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-1jC2tudU5epMOzDR//yjSLNe+5nWzqhWDD2Zxdn5+F4=";
+    hash = "sha256-IxyryBWU4NULjcQtUXHel533JosAmp0d0w/+Ntl2aT0=";
   };
 
-  cargoHash = "sha256-qH464zNpI/Y5SXplTwhPu9TjbqfExQYs/Lh75lPUoh4=";
+  cargoHash = "sha256-BGjxZxT7iypvhusyx6K4yvK1S7j4WlvoSTkb79d/H1s=";
 
   meta = with lib; {
     description = "Sweep some mines for fun, and probably not for profit";
diff --git a/nixpkgs/pkgs/games/openmw/default.nix b/nixpkgs/pkgs/games/openmw/default.nix
index 3f6ce29c3a33..99c58df37244 100644
--- a/nixpkgs/pkgs/games/openmw/default.nix
+++ b/nixpkgs/pkgs/games/openmw/default.nix
@@ -1,79 +1,69 @@
 { lib
 , stdenv
-, mkDerivation
-, fetchFromGitHub
+, fetchFromGitLab
 , fetchpatch
 , cmake
 , pkg-config
 , wrapQtAppsHook
-, openscenegraph
-, mygui
+, SDL2
+, CoreMedia
+, VideoToolbox
+, VideoDecodeAcceleration
+, boost
 , bullet
 , ffmpeg
-, boost
-, SDL2
-, unshield
-, openal
 , libXt
+, luajit
 , lz4
+, mygui
+, openal
+, openscenegraph
 , recastnavigation
-, VideoDecodeAcceleration
+, unshield
+, yaml-cpp
 }:
 
 let
-  openscenegraph_openmw = (openscenegraph.override { colladaSupport = true; })
-    .overrideDerivation (self: {
-      src = fetchFromGitHub {
-        owner = "OpenMW";
-        repo = "osg";
-        rev = "bbe61c3bc510a4f5bb4aea21cce506519c2d24e6";
-        sha256 = "sha256-t3smLqstp7wWfi9HXJoBCek+3acqt/ySBYF8RJOG6Mo=";
-      };
-      patches = [
-        (fetchpatch {
-          # For Darwin, OSG doesn't build some plugins as they're redundant with QuickTime.
-          # OpenMW doesn't like this, and expects them to be there. Apply their patch for it.
-          name = "darwin-osg-plugins-fix.patch";
-          url = "https://gitlab.com/OpenMW/openmw-dep/-/raw/0abe3c9c3858211028d881d7706813d606335f72/macos/osg.patch";
-          sha256 = "sha256-/CLRZofZHot8juH78VG1/qhTHPhy5DoPMN+oH8hC58U=";
-        })
-      ];
-    });
+  GL = "GLVND"; # or "LEGACY";
+
+  osg' = (openscenegraph.override { colladaSupport = true; }).overrideDerivation (old: {
+    patches = [
+      (fetchpatch {
+        # Darwin: Without this patch, OSG won't build osgdb_png.so, which is required by OpenMW.
+        name = "darwin-osg-plugins-fix.patch";
+        url = "https://gitlab.com/OpenMW/openmw-dep/-/raw/0abe3c9c3858211028d881d7706813d606335f72/macos/osg.patch";
+        sha256 = "sha256-/CLRZofZHot8juH78VG1/qhTHPhy5DoPMN+oH8hC58U=";
+      })
+    ];
+    cmakeFlags = (old.cmakeFlags or [ ]) ++ [
+      "-Wno-dev"
+      "-DOpenGL_GL_PREFERENCE=${GL}"
+      "-DBUILD_OSG_PLUGINS_BY_DEFAULT=0"
+      "-DBUILD_OSG_DEPRECATED_SERIALIZERS=0"
+    ] ++ (map (e: "-DBUILD_OSG_PLUGIN_${e}=1") [ "BMP" "DAE" "DDS" "FREETYPE" "JPEG" "OSG" "PNG" "TGA" ]);
+  });
 
-  bullet_openmw = bullet.overrideDerivation (old: rec {
-    version = "3.17";
-    src = fetchFromGitHub {
-      owner = "bulletphysics";
-      repo = "bullet3";
-      rev = version;
-      sha256 = "sha256-uQ4X8F8nmagbcFh0KexrmnhHIXFSB3A1CCnjPVeHL3Q=";
-    };
-    patches = [];
-    cmakeFlags = (old.cmakeFlags or []) ++ [
+  bullet' = bullet.overrideDerivation (old: {
+    cmakeFlags = (old.cmakeFlags or [ ]) ++ [
+      "-Wno-dev"
+      "-DOpenGL_GL_PREFERENCE=${GL}"
       "-DUSE_DOUBLE_PRECISION=ON"
       "-DBULLET2_MULTITHREADING=ON"
     ];
   });
 
 in
-mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "openmw";
-  version = "0.47.0";
+  version = "0.48.0";
 
-  src = fetchFromGitHub {
+  src = fetchFromGitLab {
     owner = "OpenMW";
     repo = "openmw";
     rev = "${pname}-${version}";
-    sha256 = "sha256-Xq9hDUTCQr79Zzjk0CsiXclVTHK6nrSowukIQqVdrKY=";
+    hash = "sha256-zkjVt3GfQZsFXl2Ht3lCuQtDMYQWxhdFO4aGSb3rsyo=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://gitlab.com/OpenMW/openmw/-/merge_requests/1239.diff";
-      sha256 = "sha256-RhbIGeE6GyqnipisiMTwWjcFnIiR055hUPL8IkjPgZw=";
-    })
-  ];
-
   postPatch = ''
     sed '1i#include <memory>' -i components/myguiplatform/myguidatamanager.cpp # gcc12
   '' + lib.optionalString stdenv.isDarwin ''
@@ -84,27 +74,30 @@ mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
 
   # If not set, OSG plugin .so files become shell scripts on Darwin.
-  dontWrapQtApps = true;
+  dontWrapQtApps = stdenv.isDarwin;
 
   buildInputs = [
     SDL2
     boost
-    bullet_openmw
+    bullet'
     ffmpeg
     libXt
+    luajit
+    lz4
     mygui
     openal
-    openscenegraph_openmw
-    unshield
-    lz4
+    osg'
     recastnavigation
+    unshield
+    yaml-cpp
   ] ++ lib.optionals stdenv.isDarwin [
+    CoreMedia
     VideoDecodeAcceleration
+    VideoToolbox
   ];
 
   cmakeFlags = [
-    # as of 0.46, openmw is broken with GLVND
-    "-DOpenGL_GL_PREFERENCE=LEGACY"
+    "-DOpenGL_GL_PREFERENCE=${GL}"
     "-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=1"
   ] ++ lib.optionals stdenv.isDarwin [
     "-DOPENMW_OSX_DEPLOYMENT=ON"
diff --git a/nixpkgs/pkgs/games/openmw/tes3mp.nix b/nixpkgs/pkgs/games/openmw/tes3mp.nix
index 8b6c96c5286f..48454b42df29 100644
--- a/nixpkgs/pkgs/games/openmw/tes3mp.nix
+++ b/nixpkgs/pkgs/games/openmw/tes3mp.nix
@@ -3,6 +3,7 @@
 , cmake
 , openmw
 , fetchFromGitHub
+, fetchpatch
 , luajit
 , makeWrapper
 , symlinkJoin
@@ -85,8 +86,15 @@ let
         --replace "\"./\"" "\"$out/bin/\""
     '';
 
-    # https://github.com/TES3MP/openmw-tes3mp/issues/552
-    patches = oldAttrs.patches ++ [ ./tes3mp.patch ];
+    patches = [
+      (fetchpatch {
+        url = "https://gitlab.com/OpenMW/openmw/-/commit/98a7d90ee258ceef9c70b0b2955d0458ec46f048.patch";
+        sha256 = "sha256-RhbIGeE6GyqnipisiMTwWjcFnIiR055hUPL8IkjPgZw=";
+      })
+
+      # https://github.com/TES3MP/openmw-tes3mp/issues/552
+      ./tes3mp.patch
+    ];
 
     env.NIX_CFLAGS_COMPILE = "-fpermissive";
 
diff --git a/nixpkgs/pkgs/games/openttd/jgrpp.nix b/nixpkgs/pkgs/games/openttd/jgrpp.nix
index da113ed1afc2..b8b071697667 100644
--- a/nixpkgs/pkgs/games/openttd/jgrpp.nix
+++ b/nixpkgs/pkgs/games/openttd/jgrpp.nix
@@ -2,13 +2,13 @@
 
 openttd.overrideAttrs (oldAttrs: rec {
   pname = "openttd-jgrpp";
-  version = "0.54.4";
+  version = "0.55.3";
 
   src = fetchFromGitHub rec {
     owner = "JGRennison";
     repo = "OpenTTD-patches";
     rev = "jgrpp-${version}";
-    hash = "sha256-bTpHlKffQbANXIrAn9WSEK/PEzBW1nzaHhGKIyclAo0=";
+    hash = "sha256-E1+pXpXNHOu9nPTGSY8baVaKf1Um6IGDjpi1MmENez8=";
   };
 
   buildInputs = oldAttrs.buildInputs ++ [ zstd ];
diff --git a/nixpkgs/pkgs/games/osu-lazer/bin.nix b/nixpkgs/pkgs/games/osu-lazer/bin.nix
index c1c9a61430e0..683288260d90 100644
--- a/nixpkgs/pkgs/games/osu-lazer/bin.nix
+++ b/nixpkgs/pkgs/games/osu-lazer/bin.nix
@@ -7,21 +7,21 @@
 
 let
   pname = "osu-lazer-bin";
-  version = "2023.914.0";
+  version = "2023.1008.1";
   name = "${pname}-${version}";
 
   osu-lazer-bin-src = {
     aarch64-darwin = {
       url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Apple.Silicon.zip";
-      sha256 = "sha256-F+KQmr6XQAwo/QXhRog5bH2pYmP47jBZ5+x/ehD0E3Y=";
+      sha256 = "sha256-eL5UVZqAH7Ta442xIDjaOPu3NXJmck+lS+BoD/qnOMs=";
     };
     x86_64-darwin = {
       url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Intel.zip";
-      sha256 = "sha256-gdLL8awOJ29kyabKQ1qRuhIbtUFpVxo3Posg8WjTPJA=";
+      sha256 = "sha256-x/HL73Fao11GVj7uMFpx4uOKv8Gmiy1PEgee2sP1fvg=";
     };
     x86_64-linux = {
       url = "https://github.com/ppy/osu/releases/download/${version}/osu.AppImage";
-      sha256 = "sha256-5hrzR1HkWjKpB8JmaOpc+hFg9o4bE+WXMKPBGdMWIFw=";
+      sha256 = "sha256-QqyymPkeRcedK75O9S0zO8DrUmPKuC7Mp4SbXT+QM9I=";
     };
   }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported.");
 
@@ -70,7 +70,7 @@ let
       unfreeRedistributable # osu-framework contains libbass.so in repository
     ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    maintainers = with maintainers; [ delan stepbrobd ];
+    maintainers = with maintainers; [ delan stepbrobd spacefault ];
     mainProgram = "osu!";
     platforms = [ "aarch64-darwin" "x86_64-darwin" "x86_64-linux" ];
   };
diff --git a/nixpkgs/pkgs/games/papermc/default.nix b/nixpkgs/pkgs/games/papermc/default.nix
index 2fa4545362da..20861779185c 100644
--- a/nixpkgs/pkgs/games/papermc/default.nix
+++ b/nixpkgs/pkgs/games/papermc/default.nix
@@ -1,40 +1,50 @@
-{ lib, stdenv, fetchurl, bash, jre }:
-
-stdenv.mkDerivation rec {
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  jre,
+  makeBinaryWrapper,
+}:
+stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "papermc";
-  version = "1.20.1.83";
-
-  jar = let
-    mcVersion = lib.versions.pad 3 version;
-    buildNum = builtins.elemAt (lib.versions.splitVersion version) 3;
-  in fetchurl {
-    url = "https://papermc.io/api/v2/projects/paper/versions/${mcVersion}/builds/${buildNum}/downloads/paper-${mcVersion}-${buildNum}.jar";
-    sha256 = "sha256-HQpc3MOXa1wkXqgm9ciQj04FUIyuupnYiu+2RZ/sXE4=";
-  };
+  version = "1.20.2.234";
 
-  preferLocalBuild = true;
+  src =
+    let
+      mcVersion = lib.versions.pad 3 finalAttrs.version;
+      buildNum = builtins.elemAt (lib.splitVersion finalAttrs.version) 3;
+    in
+    fetchurl {
+      url = "https://papermc.io/api/v2/projects/paper/versions/${mcVersion}/builds/${buildNum}/downloads/paper-${mcVersion}-${buildNum}.jar";
+      hash = "sha256-fR7Dq09iFGVXodQjrS7Hg4NcrKPJbNg0hexU520JC6c=";
+    };
 
-  dontUnpack = true;
-  dontConfigure = true;
+  installPhase = ''
+    runHook preInstall
 
-  buildPhase = ''
-    cat > minecraft-server << EOF
-    #!${bash}/bin/sh
-    exec ${jre}/bin/java \$@ -jar $out/share/papermc/papermc.jar nogui
-  '';
+    install -D $src $out/share/papermc/papermc.jar
 
-  installPhase = ''
-    install -Dm444 ${jar} $out/share/papermc/papermc.jar
-    install -Dm555 -t $out/bin minecraft-server
+    makeWrapper ${lib.getExe jre} "$out/bin/minecraft-server" \
+      --append-flags "-jar $out/share/papermc/papermc.jar nogui"
+
+    runHook postInstall
   '';
 
+  nativeBuildInputs = [
+    makeBinaryWrapper
+  ];
+
+  dontUnpack = true;
+  preferLocalBuild = true;
+  allowSubstitutes = false;
+
   meta = {
     description = "High-performance Minecraft Server";
-    homepage    = "https://papermc.io/";
+    homepage = "https://papermc.io/";
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
-    license     = lib.licenses.gpl3Only;
-    platforms   = lib.platforms.unix;
+    license = lib.licenses.gpl3Only;
+    platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ aaronjanse neonfuz ];
     mainProgram = "minecraft-server";
   };
-}
+})
diff --git a/nixpkgs/pkgs/games/portmod/default.nix b/nixpkgs/pkgs/games/portmod/default.nix
index c67626d0b005..f9631c6d764f 100644
--- a/nixpkgs/pkgs/games/portmod/default.nix
+++ b/nixpkgs/pkgs/games/portmod/default.nix
@@ -12,20 +12,20 @@
 }:
 
 let
-  version = "2.1.0";
+  version = "2.6.2";
 
   src = fetchFromGitLab {
     owner = "portmod";
     repo = "Portmod";
     rev = "v${version}";
-    hash = "sha256-b/ENApFovMPNUMbJhwY+TZCnSzpr1e/IKJ/5XAGTQjE=";
+    hash = "sha256-ufr2guaPdCvI5JOicL/lTrT3t6UlaY1hEB2xbwzhw6A=";
   };
 
   portmod-rust = rustPlatform.buildRustPackage rec {
     inherit src version;
     pname = "portmod-rust";
 
-    cargoHash = "sha256-3EfMMpSWSYsB3nXaoGGDuKQ9duyCKzbrT6oeATnzqLE=";
+    cargoHash = "sha256-sAjgGVVjgXaWbmN/eGEvatYjkHeFTZNX1GXFcJqs3GI=";
 
     nativeBuildInputs = [
       python3Packages.python
@@ -49,22 +49,32 @@ python3Packages.buildPythonApplication rec {
   inherit src version;
 
   pname = "portmod";
+  format = "pyproject";
 
-  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+  env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
   # build the rust library independantly
   prePatch = ''
     substituteInPlace setup.py \
-      --replace "from setuptools_rust import Binding, RustExtension" "" \
-      --replace "RustExtension(\"portmodlib.portmod\", binding=Binding.PyO3, strip=True)" ""
+      --replace "from setuptools_rust import Binding, RustExtension, Strip" "" \
+      --replace "RustExtension(\"portmodlib.portmod\", binding=Binding.PyO3, strip=Strip.Debug)" ""
+
+    substituteInPlace pyproject.toml \
+      --replace '"setuptools-rust"' ""
   '';
 
+  nativeBuildInputs = with python3Packages; [
+    setuptools
+    wheel
+  ];
+
   propagatedBuildInputs = with python3Packages; [
     setuptools-scm
     setuptools
     requests
     chardet
     colorama
+    deprecated
     restrictedpython
     appdirs
     gitpython
@@ -95,6 +105,9 @@ python3Packages.buildPythonApplication rec {
     "test_sync"
     "test_manifest"
     "test_add_repo"
+    "test_init_prefix_interactive"
+    "test_scan_sources"
+    "test_unpack"
   ];
 
   # for some reason, installPhase doesn't copy the compiled binary
diff --git a/nixpkgs/pkgs/games/prismlauncher/0001-launcher-translations-explicitly-convert-QVector-ite.patch b/nixpkgs/pkgs/games/prismlauncher/0001-launcher-translations-explicitly-convert-QVector-ite.patch
new file mode 100644
index 000000000000..c1e4731d0148
--- /dev/null
+++ b/nixpkgs/pkgs/games/prismlauncher/0001-launcher-translations-explicitly-convert-QVector-ite.patch
@@ -0,0 +1,36 @@
+From c39637720109dd5d97750907c51e9c0fb8f43f0b Mon Sep 17 00:00:00 2001
+From: Nick Cao <nickcao@nichi.co>
+Date: Wed, 11 Oct 2023 22:51:23 -0400
+Subject: [PATCH] launcher/translations: explicitly convert QVector iterators
+ to pointers
+
+---
+ launcher/translations/TranslationsModel.cpp | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/launcher/translations/TranslationsModel.cpp b/launcher/translations/TranslationsModel.cpp
+index 2763cca2..64c21dbd 100644
+--- a/launcher/translations/TranslationsModel.cpp
++++ b/launcher/translations/TranslationsModel.cpp
+@@ -524,7 +524,7 @@ Language * TranslationsModel::findLanguage(const QString& key)
+     }
+     else
+     {
+-        return found;
++        return &(*found);
+     }
+ }
+ 
+@@ -655,8 +655,7 @@ QModelIndex TranslationsModel::selectedIndex()
+     auto found = findLanguage(d->m_selectedLanguage);
+     if(found)
+     {
+-        // QVector iterator freely converts to pointer to contained type
+-        return index(found - d->m_languages.begin(), 0, QModelIndex());
++        return index(found - &(*d->m_languages.begin()), 0, QModelIndex());
+     }
+     return QModelIndex();
+ }
+-- 
+2.42.0
+
diff --git a/nixpkgs/pkgs/games/prismlauncher/default.nix b/nixpkgs/pkgs/games/prismlauncher/default.nix
index 9f260aaba9d5..2347c8b53ee7 100644
--- a/nixpkgs/pkgs/games/prismlauncher/default.nix
+++ b/nixpkgs/pkgs/games/prismlauncher/default.nix
@@ -42,7 +42,9 @@ rec {
     sha256 = "sha256-RArg60S91YKp1Mt97a5JNfBEOf2cmuX4pK3VAx2WfqM=";
   };
 
-  patches = lib.optionals stdenv.isDarwin [
+  patches = [
+    ./0001-launcher-translations-explicitly-convert-QVector-ite.patch
+  ] ++ lib.optionals stdenv.isDarwin [
     # https://github.com/PrismLauncher/PrismLauncher/pull/1452
     # These patches allow us to disable the Sparkle updater and cmake bundling
     # TODO: remove these when updating to 8.0
diff --git a/nixpkgs/pkgs/games/prismlauncher/wrapper.nix b/nixpkgs/pkgs/games/prismlauncher/wrapper.nix
index c95a5c00bcf0..4b0aa418fb6a 100644
--- a/nixpkgs/pkgs/games/prismlauncher/wrapper.nix
+++ b/nixpkgs/pkgs/games/prismlauncher/wrapper.nix
@@ -3,6 +3,7 @@
 , symlinkJoin
 , prismlauncher-unwrapped
 , wrapQtAppsHook
+, addOpenGLRunpath
 , qtbase  # needed for wrapQtAppsHook
 , qtsvg
 , qtwayland
@@ -85,7 +86,7 @@ symlinkJoin {
     in
     [ "--prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks}" ]
     ++ lib.optionals stdenv.isLinux [
-      "--set LD_LIBRARY_PATH /run/opengl-driver/lib:${lib.makeLibraryPath runtimeLibs}"
+      "--set LD_LIBRARY_PATH ${addOpenGLRunpath.driverLink}/lib:${lib.makeLibraryPath runtimeLibs}"
       # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
       "--prefix PATH : ${lib.makeBinPath runtimePrograms}"
     ];
diff --git a/nixpkgs/pkgs/games/r2modman/default.nix b/nixpkgs/pkgs/games/r2modman/default.nix
index 4e5096eb96f8..e48ce9e49fff 100644
--- a/nixpkgs/pkgs/games/r2modman/default.nix
+++ b/nixpkgs/pkgs/games/r2modman/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "r2modman";
-  version = "3.1.43";
+  version = "3.1.44";
 
   src = fetchFromGitHub {
     owner = "ebkr";
     repo = "r2modmanPlus";
     rev = "v${version}";
-    hash = "sha256-qZeBF58VB/wW0N2MZgZfiIJdDqHUdfruAoCuDEFeCPA=";
+    hash = "sha256-jiYrJtdM2LPwYDAgoGa0hGJcYNRiAKIuDuKZmSZ7OR4=";
   };
 
   offlineCache = fetchYarnDeps {
diff --git a/nixpkgs/pkgs/games/sfrotz/default.nix b/nixpkgs/pkgs/games/sfrotz/default.nix
index e6b959371995..e90f1639e170 100644
--- a/nixpkgs/pkgs/games/sfrotz/default.nix
+++ b/nixpkgs/pkgs/games/sfrotz/default.nix
@@ -15,14 +15,14 @@
 
 stdenv.mkDerivation rec {
   pname = "sfrotz";
-  version = "2.52";
+  version = "2.54";
 
   src = fetchFromGitLab  {
     domain = "gitlab.com";
     owner = "DavidGriffith";
     repo = "frotz";
     rev = version;
-    sha256 = "11ca1dz31b7s5vxjqncwjwmbbcr2m5v2rxjn49g4gnvwd6mqw48y";
+    sha256 = "sha256-GvGxojD8d5GVy/d8h3q6K7KJroz2lsKbfE0F0acjBl8=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/games/sgt-puzzles/default.nix b/nixpkgs/pkgs/games/sgt-puzzles/default.nix
index bf378cd188de..8173fb5fe1d2 100644
--- a/nixpkgs/pkgs/games/sgt-puzzles/default.nix
+++ b/nixpkgs/pkgs/games/sgt-puzzles/default.nix
@@ -1,16 +1,16 @@
 { lib, stdenv, fetchurl, desktop-file-utils
 , gtk3, libX11, cmake, imagemagick
-, pkg-config, perl, wrapGAppsHook, nixosTests
+, pkg-config, perl, wrapGAppsHook, nixosTests, writeScript
 , isMobile ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "sgt-puzzles";
-  version = "20220913.27dd36e";
+  version = "20230918.2d9e414";
 
   src = fetchurl {
     url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz";
-    hash = "sha256-fj1XWuXcW01uuC5dK2wDIrweyruSRdfEZBfmEj99zZE=";
+    hash = "sha256-YsvJ/5DTevRb+sCxWc/KcD2X5IXwAXvWGVfokr06nUM=";
   };
 
   sgt-puzzles-menu = fetchurl {
@@ -59,7 +59,18 @@ stdenv.mkDerivation rec {
     install -Dm644 ${sgt-puzzles-menu} -t $out/etc/xdg/menus/applications-merged/
   '';
 
-  passthru.tests.sgtpuzzles = nixosTests.sgtpuzzles;
+  passthru = {
+    tests.sgt-puzzles = nixosTests.sgt-puzzles;
+    updateScript = writeScript "update-sgt-puzzles" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p curl pcre common-updater-scripts
+
+      set -eu -o pipefail
+
+      version="$(curl -sI 'https://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles.tar.gz' | grep -Fi Location: | pcregrep -o1 'puzzles-([0-9a-f.]*).tar.gz')"
+      update-source-version sgt-puzzles "$version"
+    '';
+  };
 
   meta = with lib; {
     description = "Simon Tatham's portable puzzle collection";
diff --git a/nixpkgs/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix b/nixpkgs/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix
index 21d542f0d8cd..9d598798defe 100644
--- a/nixpkgs/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix
+++ b/nixpkgs/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix
@@ -31,7 +31,7 @@
 , gdk-pixbuf
 }:
 let
-  version = "0.21.1";
+  version = "0.22.1";
   pname = "space-station-14-launcher";
 in
 buildDotnetModule rec {
@@ -44,7 +44,7 @@ buildDotnetModule rec {
     owner = "space-wizards";
     repo = "SS14.Launcher";
     rev = "v${version}";
-    hash = "sha256-uJ/47cQZsGgrExemWCWeSM/U6eW2HoKWHCsVE2KypVQ=";
+    hash = "sha256-I+Kj8amgFxT6yEXI5s1y0n1rgfzIrLtMOkYjguu6wpo=";
     fetchSubmodules = true;
   };
 
@@ -121,7 +121,7 @@ buildDotnetModule rec {
 
   postInstall = ''
     mkdir -p $out/lib/space-station-14-launcher/loader
-    cp -r SS14.Loader/bin/${buildType}/*/* $out/lib/space-station-14-launcher/loader/
+    cp -r SS14.Loader/bin/${buildType}/*/*/* $out/lib/space-station-14-launcher/loader/
 
     icoFileToHiColorTheme SS14.Launcher/Assets/icon.ico space-station-14-launcher $out
   '';
diff --git a/nixpkgs/pkgs/games/srb2/cmake.patch b/nixpkgs/pkgs/games/srb2/cmake.patch
index adb070a13c19..91af532e86fb 100644
--- a/nixpkgs/pkgs/games/srb2/cmake.patch
+++ b/nixpkgs/pkgs/games/srb2/cmake.patch
@@ -1,19 +1,61 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 915912af5..f5c2cf9cc 100644
+index 80a3bdcd6..380a1573a 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -91,11 +91,6 @@ if("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL Windows)
+@@ -61,7 +61,7 @@ option(
+ 	"Link dependencies using CMake's find_package and do not use internal builds"
+ 	${SRB2_CONFIG_SYSTEM_LIBRARIES_DEFAULT}
+ )
+-option(SRB2_CONFIG_ENABLE_TESTS "Build the test suite" ON)
++option(SRB2_CONFIG_ENABLE_TESTS "Build the test suite" OFF)
+ # This option isn't recommended for distribution builds and probably won't work (yet).
+ cmake_dependent_option(
+ 	SRB2_CONFIG_SHARED_INTERNAL_LIBRARIES
+@@ -80,25 +80,6 @@ option(SRB2_CONFIG_ZDEBUG "Compile with ZDEBUG defined." OFF)
+ option(SRB2_CONFIG_PROFILEMODE "Compile for profiling (GCC only)." OFF)
+ set(SRB2_CONFIG_ASSET_DIRECTORY "" CACHE PATH "Path to directory that contains all asset files for the installer. If set, assets will be part of installation and cpack.")
+ 
+-if(SRB2_CONFIG_ENABLE_TESTS)
+-	# https://github.com/catchorg/Catch2
+-	CPMAddPackage(
+-		NAME Catch2
+-		VERSION 3.4.0
+-		GITHUB_REPOSITORY catchorg/Catch2
+-		OPTIONS
+-			"CATCH_INSTALL_DOCS OFF"
+-	)
+-	list(APPEND CMAKE_MODULE_PATH "${Catch2_SOURCE_DIR}/extras")
+-	include(CTest)
+-	include(Catch)
+-	add_executable(srb2tests)
+-	# To add tests, use target_sources to add individual test files to the target in subdirs.
+-	target_link_libraries(srb2tests PRIVATE Catch2::Catch2 Catch2::Catch2WithMain)
+-	target_compile_features(srb2tests PRIVATE c_std_11 cxx_std_17)
+-	catch_discover_tests(srb2tests)
+-endif()
+-
+ # Enable CCache
+ # (Set USE_CCACHE=ON to use, CCACHE_OPTIONS for options)
+ if("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL Windows)
+@@ -113,12 +94,6 @@ if("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL Windows)
+ 			message(WARNING "USE_CCACHE was set but ccache is not found (set CCACHE_TOOL_PATH)")
  		endif()
  	endif()
- else()
+-else()
 -	CPMAddPackage(
 -		NAME Ccache.cmake
 -		GITHUB_REPOSITORY TheLartians/Ccache.cmake
 -		VERSION 1.2
 -	)
  endif()
-
+ 
  # Dependencies
---
-2.40.1
-
+@@ -179,7 +154,7 @@ include(GitUtilities)
+ if("${SRB2_SDL2_EXE_NAME}" STREQUAL "")
+ 	# cause a reconfigure if the branch changes
+ 	get_git_dir(SRB2_GIT_DIR)
+-	configure_file("${SRB2_GIT_DIR}/HEAD" HEAD COPYONLY)
++	#configure_file("${SRB2_GIT_DIR}/HEAD" HEAD COPYONLY)
+ 
+ 	git_current_branch(SRB2_GIT_REVISION)
+ 
diff --git a/nixpkgs/pkgs/games/srb2/default.nix b/nixpkgs/pkgs/games/srb2/default.nix
index 4213039f8877..fdb374a91751 100644
--- a/nixpkgs/pkgs/games/srb2/default.nix
+++ b/nixpkgs/pkgs/games/srb2/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "srb2";
-  version = "2.2.11";
+  version = "2.2.13";
 
   src = fetchFromGitHub {
     owner = "STJr";
     repo = "SRB2";
     rev = "SRB2_release_${finalAttrs.version}";
-    hash = "sha256-tyiXivJWjNnL+4YynUV6k6iaMs8o9HkHrp+qFj2+qvQ=";
+    hash = "sha256-OSkkjCz7ZW5+0vh6l7+TpnHLzXmd/5QvTidRQSHJYX8=";
   };
 
   nativeBuildInputs = [
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
 
     src = fetchurl {
       url = "https://github.com/STJr/SRB2/releases/download/SRB2_release_${finalAttrs.version}/SRB2-v${lib.replaceStrings ["."] [""] finalAttrs.version}-Full.zip";
-      hash = "sha256-KsJIkCczD/HyIwEy5dI3zsHbWFCMBaCoCHizfupFoWM=";
+      hash = "sha256-g7kaNRE1tjcF5J2v+kTnrDzz4zs5f1b/NH67ce2ifUo=";
     };
 
     sourceRoot = ".";
@@ -77,8 +77,10 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   patches = [
-    # Fix unknown command "CPMAddPackage" by not using Ccache.cmake
+    # Make the build work without internet connectivity
+    # See: https://build.opensuse.org/request/show/1109889
     ./cmake.patch
+    ./thirdparty.patch
   ];
 
   desktopItems = [
@@ -111,5 +113,6 @@ stdenv.mkDerivation (finalAttrs: {
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ zeratax donovanglover ];
+    mainProgram = "srb2";
   };
 })
diff --git a/nixpkgs/pkgs/games/srb2/thirdparty.patch b/nixpkgs/pkgs/games/srb2/thirdparty.patch
new file mode 100644
index 000000000000..bb550290d85d
--- /dev/null
+++ b/nixpkgs/pkgs/games/srb2/thirdparty.patch
@@ -0,0 +1,12 @@
+diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt
+index f33b3bf3f..1214f179c 100644
+--- a/thirdparty/CMakeLists.txt
++++ b/thirdparty/CMakeLists.txt
+@@ -16,6 +16,5 @@ if(NOT "${SRB2_CONFIG_SYSTEM_LIBRARIES}")
+ 	include("cpm-png.cmake")
+ 	include("cpm-curl.cmake")
+ 	include("cpm-openmpt.cmake")
++	include("cpm-libgme.cmake")
+ endif()
+-
+-include("cpm-libgme.cmake")
diff --git a/nixpkgs/pkgs/games/theforceengine/default.nix b/nixpkgs/pkgs/games/theforceengine/default.nix
index 023acc0e06da..788fdc30794f 100644
--- a/nixpkgs/pkgs/games/theforceengine/default.nix
+++ b/nixpkgs/pkgs/games/theforceengine/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , SDL2
-, libdevil
+, SDL2_image
 , rtaudio
 , rtmidi
 , glew
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "theforceengine";
-  version = "1.09.300";
+  version = "1.09.540";
 
   src = fetchFromGitHub {
     owner = "luciusDXL";
     repo = "TheForceEngine";
     rev = "v${version}";
-    sha256 = "sha256-nf5fhP68AgBESiJleeZOLXkAajS+JmHUqyj4vAt2wl4=";
+    sha256 = "sha256-s54X6LZdk7daIlQPHyRBxc8MLS6bzkkypi4m1m+xK80=";
   };
 
   nativeBuildInputs = [
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     SDL2
-    libdevil
+    SDL2_image
     rtaudio
     rtmidi
     glew
diff --git a/nixpkgs/pkgs/games/ultrastardx/default.nix b/nixpkgs/pkgs/games/ultrastardx/default.nix
index b0991af79cbe..424781dd8958 100644
--- a/nixpkgs/pkgs/games/ultrastardx/default.nix
+++ b/nixpkgs/pkgs/games/ultrastardx/default.nix
@@ -31,12 +31,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "ultrastardx";
-  version = "2021-04-03";
+  version = "2023.9.0";
+
   src = fetchFromGitHub {
     owner = "UltraStar-Deluxe";
     repo = "USDX";
-    rev = "d49e916705092f3d765d85d276b283b9e7e232a6";
-    sha256 = "0sdcz2vc8i2z50nj7zbkdpxx2mvx0m0927lfsj7d7qr0p8vkm0wa";
+    rev = "v${version}";
+    hash = "sha256-KvYfWdpgN72F8Y5iFNba0SCjPoS33O3FAdrrC49xoGo=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
@@ -77,7 +78,7 @@ in stdenv.mkDerivation rec {
   dontPatchELF = true;
 
   meta = with lib; {
-    homepage = "http://ultrastardx.sourceforge.net/";
+    homepage = "https://usdx.eu/";
     description = "Free and open source karaoke game";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ Profpatsch ];
diff --git a/nixpkgs/pkgs/games/unciv/default.nix b/nixpkgs/pkgs/games/unciv/default.nix
index 458860b3a1bf..f4b350ad38e7 100644
--- a/nixpkgs/pkgs/games/unciv/default.nix
+++ b/nixpkgs/pkgs/games/unciv/default.nix
@@ -25,11 +25,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "unciv";
-  version = "4.8.0";
+  version = "4.8.9-patch2";
 
   src = fetchurl {
     url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
-    hash = "sha256-Mq6c8APLOYYKTIuBdkbscK43BSY5sWWqWlaR4KiXpwo=";
+    hash = "sha256-ek2FDzo7EbgZGbQyZ6mBmVoPRKkJu0JFewbVvsGzZMA=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/games/vcmi/default.nix b/nixpkgs/pkgs/games/vcmi/default.nix
index abd0551081fd..ad5aa48c7c5d 100644
--- a/nixpkgs/pkgs/games/vcmi/default.nix
+++ b/nixpkgs/pkgs/games/vcmi/default.nix
@@ -27,14 +27,14 @@
 
 stdenv.mkDerivation rec {
   pname = "vcmi";
-  version = "1.2.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "vcmi";
     repo = "vcmi";
     rev = version;
     fetchSubmodules = true;
-    hash = "sha256-F1g3ric23jKetl5aBG5NRpT4LnGXhBKZmGp2hg6Io9s=";
+    hash = "sha256-dwTQRpu+IrKhuiiw/uYBt8i/BYlQ5XCy/jUhDAo6aa4=";
   };
 
   nativeBuildInputs = [
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DENABLE_LUA:BOOL=ON"
-    "-DENABLE_ERM:BOOL=ON"
+    "-DENABLE_ERM:BOOL=OFF"
     "-DENABLE_GITVERSION:BOOL=OFF"
     "-DENABLE_PCH:BOOL=OFF"
     "-DENABLE_TEST:BOOL=OFF"
diff --git a/nixpkgs/pkgs/games/xivlauncher/default.nix b/nixpkgs/pkgs/games/xivlauncher/default.nix
index f98771ec0fbf..b88c3ac9477f 100644
--- a/nixpkgs/pkgs/games/xivlauncher/default.nix
+++ b/nixpkgs/pkgs/games/xivlauncher/default.nix
@@ -3,7 +3,7 @@
 , useSteamRun ? true }:
 
 let
-  rev = "1.0.4";
+  rev = "1.0.6";
 in
   buildDotnetModule rec {
     pname = "XIVLauncher";
@@ -13,7 +13,7 @@ in
       owner = "goatcorp";
       repo = "XIVLauncher.Core";
       inherit rev;
-      hash = "sha256-HbOo1aCBYnLXI2QZEBSRQNchHD2/fo50M2ZnIXkRn6Y=";
+      hash = "sha256-P1i12vw9KQOTL7QBxjKPSlda5rvoyl7DGmuuD5iVEQs=";
       fetchSubmodules = true;
     };
 
diff --git a/nixpkgs/pkgs/games/xivlauncher/deps.nix b/nixpkgs/pkgs/games/xivlauncher/deps.nix
index b92db7c2dec5..10b646fc8c41 100644
--- a/nixpkgs/pkgs/games/xivlauncher/deps.nix
+++ b/nixpkgs/pkgs/games/xivlauncher/deps.nix
@@ -33,6 +33,8 @@
   (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
+  (fetchNuGet { pname = "PInvoke.Kernel32"; version = "0.7.124"; sha256 = "0n1245s2p5735n8xgmahrx7g8mw32pxdn4rr9dydb9r6mvgm9bhk"; })
+  (fetchNuGet { pname = "PInvoke.Windows.Core"; version = "0.7.124"; sha256 = "16qkn91gh3aiab2330q5j1vlx2ni4m4kkz04dvsqlm8lr7ldizlz"; })
   (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
   (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
   (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
@@ -75,6 +77,7 @@
   (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
   (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
   (fetchNuGet { pname = "Serilog"; version = "2.12.0"; sha256 = "0lqxpc96qcjkv9pr1rln7mi4y7n7jdi4vb36c2fv3845w1vswgr4"; })
+  (fetchNuGet { pname = "Serilog.Enrichers.Sensitive"; version = "1.7.2"; sha256 = "1f3r4jrfiz47vnvy7m0w6d8280nhhna67xwbagx1i557m9qvjssg"; })
   (fetchNuGet { pname = "Serilog.Enrichers.Thread"; version = "3.1.0"; sha256 = "1y75aiv2k1sxnh012ixkx92fq1yl8srqggy8l439igg4p223hcqi"; })
   (fetchNuGet { pname = "Serilog.Sinks.Async"; version = "1.5.0"; sha256 = "0bcb3n6lmg5wfj806mziybfmbb8gyiszrivs3swf0msy8w505gyg"; })
   (fetchNuGet { pname = "Serilog.Sinks.Console"; version = "3.1.1"; sha256 = "0j99as641y1k6havwwkhyr0n08vibiblmfjj6nz051mz8g3864fn"; })
diff --git a/nixpkgs/pkgs/games/xmage/default.nix b/nixpkgs/pkgs/games/xmage/default.nix
index 15a65efeb7bc..b6aa8e22afd2 100644
--- a/nixpkgs/pkgs/games/xmage/default.nix
+++ b/nixpkgs/pkgs/games/xmage/default.nix
@@ -1,16 +1,18 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , jdk8
 , unzip
 }:
 
-stdenv.mkDerivation rec {
-  pname   = "xmage";
-  version = "1.4.42V6";
+stdenv.mkDerivation (finalAttrs: {
+  pname = "xmage";
+  version = "1.4.50V2";
 
   src = fetchurl {
-    url    = "https://github.com/magefree/mage/releases/download/xmage_1.4.42V6/xmage_${version}.zip";
-    sha256 = "14s4885ldi0rplqmab5m775plsqmmm0m89j402caiqm2q9mzvkhd";
+    url =
+      "https://github.com/magefree/mage/releases/download/xmage_${finalAttrs.version}/xmage_${finalAttrs.version}.zip";
+    sha256 = "sha256-t1peHYwCRy3wiIIwOD3nUyoxSOxbw6B/g++A1ofIbmg=";
   };
 
   preferLocalBuild = true;
@@ -19,13 +21,15 @@ stdenv.mkDerivation rec {
     ${unzip}/bin/unzip $src
   '';
 
-  installPhase = ''
+  installPhase = let
+    strVersion = lib.substring 0 6 finalAttrs.version;
+  in ''
     mkdir -p $out/bin
     cp -rv ./* $out
 
     cat << EOS > $out/bin/xmage
-exec ${jdk8}/bin/java -Xms256m -Xmx512m -XX:MaxPermSize=384m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar $out/mage-client/lib/mage-client-1.4.42.jar
-EOS
+    exec ${jdk8}/bin/java -Xms256m -Xmx512m -XX:MaxPermSize=384m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar $out/mage-client/lib/mage-client-${strVersion}.jar
+    EOS
 
     chmod +x $out/bin/xmage
   '';
@@ -38,5 +42,5 @@ EOS
     homepage = "http://xmage.de/";
   };
 
-}
+})