about summary refs log tree commit diff
path: root/pkgs/games
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/games')
-rw-r--r--pkgs/games/abuse/default.nix38
-rw-r--r--pkgs/games/alienarena/default.nix44
-rw-r--r--pkgs/games/brogue-ce/default.nix6
-rw-r--r--pkgs/games/brogue/default.nix8
-rw-r--r--pkgs/games/cataclysm-dda/git.nix15
-rw-r--r--pkgs/games/cataclysm-dda/stable.nix13
-rw-r--r--pkgs/games/cdogs-sdl/default.nix4
-rw-r--r--pkgs/games/curseofwar/default.nix9
-rw-r--r--pkgs/games/doom-ports/slade/default.nix18
-rw-r--r--pkgs/games/endless-sky/default.nix4
-rw-r--r--pkgs/games/factorio/versions.json48
-rw-r--r--pkgs/games/fallout-ce/fallout-ce.nix4
-rw-r--r--pkgs/games/ferium/default.nix6
-rw-r--r--pkgs/games/freeciv/default.nix4
-rw-r--r--pkgs/games/galaxis/default.nix47
-rw-r--r--pkgs/games/gcompris/default.nix4
-rw-r--r--pkgs/games/gimx/default.nix21
-rw-r--r--pkgs/games/gnonograms/default.nix6
-rw-r--r--pkgs/games/gnujump/default.nix6
-rw-r--r--pkgs/games/gogdl/default.nix6
-rw-r--r--pkgs/games/heroic/default.nix6
-rw-r--r--pkgs/games/hikounomizu/default.nix6
-rw-r--r--pkgs/games/hyperrogue/default.nix4
-rw-r--r--pkgs/games/itch/butler.nix44
-rw-r--r--pkgs/games/itch/default.nix94
-rw-r--r--pkgs/games/katago/default.nix27
-rw-r--r--pkgs/games/lgames/ltris/default.nix39
-rw-r--r--pkgs/games/libremines/default.nix4
-rw-r--r--pkgs/games/minesweep-rs/default.nix6
-rw-r--r--pkgs/games/nanosaur/default.nix15
-rw-r--r--pkgs/games/openjk/default.nix12
-rw-r--r--pkgs/games/openmw/tes3mp.nix26
-rw-r--r--pkgs/games/openrct2/default.nix4
-rw-r--r--pkgs/games/openttd/jgrpp.nix4
-rw-r--r--pkgs/games/openttd/nml.nix4
-rw-r--r--pkgs/games/osu-lazer/bin.nix8
-rw-r--r--pkgs/games/osu-lazer/default.nix8
-rw-r--r--pkgs/games/osu-lazer/deps.nix16
-rw-r--r--pkgs/games/osu-lazer/osu.runtimeconfig.json4
-rwxr-xr-xpkgs/games/osu-lazer/update-bin.sh2
-rwxr-xr-xpkgs/games/osu-lazer/update.sh2
-rw-r--r--pkgs/games/papermc/default.nix4
-rw-r--r--pkgs/games/performous/default.nix4
-rw-r--r--pkgs/games/performous/performous-cmake.patch29
-rw-r--r--pkgs/games/powermanga/default.nix6
-rw-r--r--pkgs/games/prismlauncher/default.nix4
-rw-r--r--pkgs/games/pysolfc/default.nix12
-rw-r--r--pkgs/games/r2modman/default.nix6
-rw-r--r--pkgs/games/rocksndiamonds/default.nix4
-rw-r--r--pkgs/games/sgt-puzzles/default.nix4
-rw-r--r--pkgs/games/shattered-pixel-dungeon/summoning-pixel-dungeon.nix2
-rw-r--r--pkgs/games/speed-dreams/default.nix30
-rw-r--r--pkgs/games/starsector/default.nix4
-rw-r--r--pkgs/games/stockfish/default.nix4
-rw-r--r--pkgs/games/stone-kingdoms/default.nix4
-rw-r--r--pkgs/games/tecnoballz/default.nix6
-rw-r--r--pkgs/games/titanion/default.nix6
-rw-r--r--pkgs/games/toppler/default.nix6
-rw-r--r--pkgs/games/torcs/default.nix5
-rw-r--r--pkgs/games/torus-trooper/default.nix6
-rw-r--r--pkgs/games/trigger/default.nix18
-rw-r--r--pkgs/games/tumiki-fighters/default.nix6
-rw-r--r--pkgs/games/unciv/default.nix4
-rw-r--r--pkgs/games/unnethack/default.nix5
-rw-r--r--pkgs/games/vassal/default.nix4
-rw-r--r--pkgs/games/vintagestory/default.nix4
-rw-r--r--pkgs/games/warzone2100/default.nix6
-rw-r--r--pkgs/games/xskat/default.nix2
-rw-r--r--pkgs/games/zaz/default.nix7
69 files changed, 384 insertions, 464 deletions
diff --git a/pkgs/games/abuse/default.nix b/pkgs/games/abuse/default.nix
index 1e2d4f82f837..0a77c842bd82 100644
--- a/pkgs/games/abuse/default.nix
+++ b/pkgs/games/abuse/default.nix
@@ -1,20 +1,28 @@
-{ lib, stdenv, fetchurl, makeDesktopItem, copyDesktopItems, SDL, SDL_mixer, freepats }:
+{ lib, stdenv, fetchzip, fetchFromGitHub
+, makeDesktopItem, copyDesktopItems
+, cmake
+, SDL2, SDL2_mixer, freepats
+}:
 
 stdenv.mkDerivation rec {
   pname   = "abuse";
-  version = "0.8";
+  version = "0.9.1";
 
-  src = fetchurl {
-    url    = "http://abuse.zoy.org/raw-attachment/wiki/download/${pname}-${version}.tar.gz";
-    sha256 = "0104db5fd2695c9518583783f7aaa7e5c0355e27c5a803840a05aef97f9d3488";
+  src = fetchFromGitHub {
+    owner = "Xenoveritas";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-eneu0HxEoM//Ju2XMHnDMZ/igeVMPSLg7IaxR2cnJrk=";
   };
 
-  configureFlags = [
-    "--with-x"
-    "--with-assetdir=$(out)/orig"
-    # The "--enable-debug" is to work around a segfault on start, see https://bugs.archlinux.org/task/52915.
-    "--enable-debug"
-  ];
+  data = fetchzip {
+    url  = "http://abuse.zoy.org/raw-attachment/wiki/download/abuse-0.8.tar.gz";
+    hash = "sha256-SOrtBNLWskN7Tqa0B3+KjlZlqPjC64Jp02Pk7to2hFg=";
+  };
+
+  preConfigure = ''
+    cp --reflink=auto -r ${data}/data/sfx ${data}/data/music data/
+  '';
 
   desktopItems = [ (makeDesktopItem {
     name = "abuse";
@@ -33,11 +41,13 @@ stdenv.mkDerivation rec {
     substituteAll "${./abuse.sh}" $out/bin/abuse
     chmod +x $out/bin/abuse
 
-    install -Dm644 doc/abuse.png $out/share/pixmaps/abuse.png
+    install -Dm644 ${data}/doc/abuse.png $out/share/pixmaps/abuse.png
   '';
 
-  nativeBuildInputs = [ copyDesktopItems ];
-  buildInputs       = [ SDL SDL_mixer freepats ];
+  env.NIX_CFLAGS_COMPILE = "-I${lib.getDev SDL2}/include/SDL2";
+
+  nativeBuildInputs = [ copyDesktopItems cmake ];
+  buildInputs       = [ SDL2 SDL2_mixer freepats ];
 
   meta = with lib; {
     description = "Side-scroller action game that pits you against ruthless alien killers";
diff --git a/pkgs/games/alienarena/default.nix b/pkgs/games/alienarena/default.nix
index 39b232b267c3..2aff5c86151e 100644
--- a/pkgs/games/alienarena/default.nix
+++ b/pkgs/games/alienarena/default.nix
@@ -1,19 +1,42 @@
-{ lib, stdenv, fetchsvn, pkg-config, libjpeg, libX11, libXxf86vm, curl, libogg
-, libvorbis, freetype, openal, libGL }:
+{ curl
+, fetchFromGitHub
+, freetype
+, lib
+, libGL
+, libjpeg
+, libogg
+, libvorbis
+, libX11
+, libXxf86vm
+, openal
+, pkg-config
+, stdenv
+}:
 
 stdenv.mkDerivation rec {
   pname = "alienarena";
-  version = "7.71.2";
+  version = "7.71.6";
 
-  src = fetchsvn {
-    url = "svn://svn.icculus.org/alienarena/trunk";
-    rev = "5673";
-    sha256 = "1qfrgrp7nznk5n1jqvjba6l1w8y2ixzyx9swkpvd02rdwlwrp9kw";
+  src = fetchFromGitHub {
+    owner = "alienarena";
+    repo = "alienarena";
+    rev = version;
+    hash = "sha256-Dml0VY5VQiWLq8LjItBSzNwJB9L4biJ/nJWmEGtG2ZY=";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libjpeg libX11 curl libogg libvorbis
-                  freetype openal libGL libXxf86vm ];
+
+  buildInputs = [
+    curl
+    freetype
+    libGL
+    libjpeg
+    libogg
+    libvorbis
+    libX11
+    libXxf86vm
+    openal
+  ];
 
   patchPhase = ''
     substituteInPlace ./configure \
@@ -22,6 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    changelog = "https://github.com/alienarena/alienarena/releases/tag/${version}";
     description = "A free, stand-alone first-person shooter computer game";
     longDescription = ''
       Do you like old school deathmatch with modern features? How
@@ -32,7 +56,7 @@ stdenv.mkDerivation rec {
       with a retro alien theme, while adding tons of original ideas to
       make the game quite unique.
     '';
-    homepage = "http://red.planetarena.org";
+    homepage = "https://alienarena.org";
     # Engine is under GPLv2, everything else is under
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ astsmtl ];
diff --git a/pkgs/games/brogue-ce/default.nix b/pkgs/games/brogue-ce/default.nix
index 77e58ed5a1a6..32ca328492bc 100644
--- a/pkgs/games/brogue-ce/default.nix
+++ b/pkgs/games/brogue-ce/default.nix
@@ -7,14 +7,14 @@
 , SDL2_image
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "brogue-ce";
   version = "1.13";
 
   src = fetchFromGitHub {
     owner = "tmewett";
     repo = "BrogueCE";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-FUIdi1Ytn+INeD9550MW41qXtLb6in0QS3Snt8QaXUA=";
   };
 
@@ -60,4 +60,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ AndersonTorres fgaz ];
     platforms = platforms.all;
   };
-}
+})
diff --git a/pkgs/games/brogue/default.nix b/pkgs/games/brogue/default.nix
index 0cd3e779c563..770ff3622923 100644
--- a/pkgs/games/brogue/default.nix
+++ b/pkgs/games/brogue/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, fetchpatch, SDL, ncurses, libtcod, makeDesktopItem }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "brogue";
   version = "1.7.5";
 
   src = fetchurl {
-    url = "https://sites.google.com/site/broguegame/brogue-${version}-linux-amd64.tbz2";
+    url = "https://sites.google.com/site/broguegame/brogue-${finalAttrs.version}-linux-amd64.tbz2";
     sha256 = "0i042zb3axjf0cpgpdh8hvfn66dbfizidyvw0iymjk2n760z2kx7";
   };
   patches = [
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     install -m 555 -D bin/brogue $out/bin/brogue
-    install -m 444 -D ${desktopItem}/share/applications/brogue.desktop $out/share/applications/brogue.desktop
+    install -m 444 -D ${finalAttrs.desktopItem}/share/applications/brogue.desktop $out/share/applications/brogue.desktop
     install -m 444 -D bin/brogue-icon.png $out/share/icons/hicolor/256x256/apps/brogue.png
     mkdir -p $out/share/brogue
     cp -r bin/fonts $out/share/brogue/
@@ -56,4 +56,4 @@ stdenv.mkDerivation rec {
     maintainers =  with maintainers; [ AndersonTorres fgaz ];
     platforms = [ "x86_64-linux" ];
   };
-}
+})
diff --git a/pkgs/games/cataclysm-dda/git.nix b/pkgs/games/cataclysm-dda/git.nix
index c7090838b862..155f900e96f3 100644
--- a/pkgs/games/cataclysm-dda/git.nix
+++ b/pkgs/games/cataclysm-dda/git.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA, attachPkgs
+{ stdenv, lib, callPackage, CoreFoundation, fetchFromGitHub, fetchpatch, pkgs, wrapCDDA, attachPkgs
 , tiles ? true, Cocoa
 , debug ? false
 , useXdgDir ? false
@@ -25,6 +25,19 @@ let
     patches = [
       # Unconditionally look for translation files in $out/share/locale
       ./locale-path.patch
+      # Fixes for failing build with GCC 13, remove on updating next release after 0.G
+      (fetchpatch {
+        url = "https://sources.debian.org/data/main/c/cataclysm-dda/0.G-4/debian/patches/gcc13-dangling-reference-warning.patch";
+        hash = "sha256-9nPbyz49IYBOVHqr7jzCIyS8z/SQgpK4EjEz1fruIPE=";
+      })
+      (fetchpatch {
+        url = "https://sources.debian.org/data/main/c/cataclysm-dda/0.G-4/debian/patches/gcc13-cstdint.patch";
+        hash = "sha256-8IBW2OzAHVgEJZoViQ490n37sl31hA55ePuqDL/lil0=";
+      })
+      (fetchpatch {
+        url = "https://sources.debian.org/data/main/c/cataclysm-dda/0.G-4/debian/patches/gcc13-keyword-requires.patch";
+        hash = "sha256-8yvHh0YKC7AC/qzia7AZAfMewMC0RiSepMXpOkMXRd8=";
+      })
     ];
 
     makeFlags = common.makeFlags ++ [
diff --git a/pkgs/games/cataclysm-dda/stable.nix b/pkgs/games/cataclysm-dda/stable.nix
index 0e4ca1aad882..90eab89a8349 100644
--- a/pkgs/games/cataclysm-dda/stable.nix
+++ b/pkgs/games/cataclysm-dda/stable.nix
@@ -30,6 +30,19 @@ let
     patches = [
       # Unconditionally look for translation files in $out/share/locale
       ./locale-path.patch
+      # Fixes for failing build with GCC 13, remove on updating next release after 0.G
+      (fetchpatch {
+        url = "https://sources.debian.org/data/main/c/cataclysm-dda/0.G-4/debian/patches/gcc13-dangling-reference-warning.patch";
+        hash = "sha256-9nPbyz49IYBOVHqr7jzCIyS8z/SQgpK4EjEz1fruIPE=";
+      })
+      (fetchpatch {
+        url = "https://sources.debian.org/data/main/c/cataclysm-dda/0.G-4/debian/patches/gcc13-cstdint.patch";
+        hash = "sha256-8IBW2OzAHVgEJZoViQ490n37sl31hA55ePuqDL/lil0=";
+      })
+      (fetchpatch {
+        url = "https://sources.debian.org/data/main/c/cataclysm-dda/0.G-4/debian/patches/gcc13-keyword-requires.patch";
+        hash = "sha256-8yvHh0YKC7AC/qzia7AZAfMewMC0RiSepMXpOkMXRd8=";
+      })
     ];
 
     makeFlags = common.makeFlags ++ [
diff --git a/pkgs/games/cdogs-sdl/default.nix b/pkgs/games/cdogs-sdl/default.nix
index 5c74b10ef32a..e6ea213b6220 100644
--- a/pkgs/games/cdogs-sdl/default.nix
+++ b/pkgs/games/cdogs-sdl/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cdogs-sdl";
-  version = "1.5.0";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "cxong";
     rev = version;
-    sha256 = "sha256-XSq0TK3ZuLOa8JJnp/Qxt16Ru3p35tq5FOo4+tv+c60=";
+    sha256 = "sha256-es04sCqthjf9unK2mbsBVHlxOeTpimQ+ViabhC/WD0I=";
   };
 
   postPatch = ''
diff --git a/pkgs/games/curseofwar/default.nix b/pkgs/games/curseofwar/default.nix
index fef456816ff2..c0accf1e7b64 100644
--- a/pkgs/games/curseofwar/default.nix
+++ b/pkgs/games/curseofwar/default.nix
@@ -4,14 +4,14 @@
 , SDL
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "curseofwar";
   version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "a-nikolaev";
-    repo = pname;
-    rev = "v${version}";
+    repo = "curseofwar";
+    rev = "v${finalAttrs.version}";
     sha256 = "1wd71wdnj9izg5d95m81yx3684g4zdi7fsy0j5wwnbd9j34ilz1i";
   };
 
@@ -33,5 +33,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
   };
-}
-
+})
diff --git a/pkgs/games/doom-ports/slade/default.nix b/pkgs/games/doom-ports/slade/default.nix
index 9e9fc837e820..9ab3d1f458d5 100644
--- a/pkgs/games/doom-ports/slade/default.nix
+++ b/pkgs/games/doom-ports/slade/default.nix
@@ -15,21 +15,23 @@
 , glew
 , lua
 , mpg123
+, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "slade";
-  version = "3.2.4";
+  version = "3.2.5";
 
   src = fetchFromGitHub {
     owner = "sirjuddington";
     repo = "SLADE";
     rev = version;
-    sha256 = "sha256-CN01w+sXXRqvQqu1whePAb+phVx+VM8tL2NusfnCyF8=";
+    sha256 = "sha256-FBpf1YApwVpWSpUfa2LOrkS1Ef34sKCIZ6ic+Pczs14=";
   };
 
-  postPatch = lib.optionalString (!stdenv.hostPlatform.isx86) ''
-    sed -i '/-msse/d' src/CMakeLists.txt
+  postPatch = ''
+    substituteInPlace dist/CMakeLists.txt \
+      --replace "PK3_OUTPUT" "PK3_DESTINATION"
   '';
 
   nativeBuildInputs = [
@@ -37,6 +39,7 @@ stdenv.mkDerivation rec {
     pkg-config
     which
     zip
+    wrapGAppsHook
   ];
 
   buildInputs = [
@@ -54,10 +57,17 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DwxWidgets_LIBRARIES=${wxGTK}/lib"
+    "-DBUILD_PK3=ON"
   ];
 
   env.NIX_CFLAGS_COMPILE = "-Wno-narrowing";
 
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix GDK_BACKEND : x11
+    )
+  '';
+
   meta = with lib; {
     description = "Doom editor";
     homepage = "http://slade.mancubus.net/";
diff --git a/pkgs/games/endless-sky/default.nix b/pkgs/games/endless-sky/default.nix
index 9a3e86117cef..ffb71f393ca2 100644
--- a/pkgs/games/endless-sky/default.nix
+++ b/pkgs/games/endless-sky/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "endless-sky";
-  version = "0.10.4";
+  version = "0.10.6";
 
   src = fetchFromGitHub {
     owner = "endless-sky";
     repo = "endless-sky";
     rev = "v${version}";
-    sha256 = "sha256-VTg8H6umq9yMMP274StIJfEZZvUFDILiMKhioam58QE=";
+    sha256 = "sha256-3mprmW6K8pYs7J2q71fohsh9fZEP2RZjN1rSWUAwbhg=";
   };
 
   patches = [
diff --git a/pkgs/games/factorio/versions.json b/pkgs/games/factorio/versions.json
index 9e5f6d3e6533..a627e967d199 100644
--- a/pkgs/games/factorio/versions.json
+++ b/pkgs/games/factorio/versions.json
@@ -2,56 +2,56 @@
   "x86_64-linux": {
     "alpha": {
       "experimental": {
-        "name": "factorio_alpha_x64-1.1.101.tar.xz",
+        "name": "factorio_alpha_x64-1.1.104.tar.xz",
         "needsAuth": true,
-        "sha256": "07f8hcyf4hmf9lpa2ljm6ygpaaj2yd28da4krwa5yzjvqs88b4fq",
+        "sha256": "0aizllbfzbn2j0560n4f823jqq7v7qz813an4wlm39rfsfx7b0vq",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.101/alpha/linux64",
-        "version": "1.1.101"
+        "url": "https://factorio.com/get-download/1.1.104/alpha/linux64",
+        "version": "1.1.104"
       },
       "stable": {
-        "name": "factorio_alpha_x64-1.1.101.tar.xz",
+        "name": "factorio_alpha_x64-1.1.104.tar.xz",
         "needsAuth": true,
-        "sha256": "07f8hcyf4hmf9lpa2ljm6ygpaaj2yd28da4krwa5yzjvqs88b4fq",
+        "sha256": "0aizllbfzbn2j0560n4f823jqq7v7qz813an4wlm39rfsfx7b0vq",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.101/alpha/linux64",
-        "version": "1.1.101"
+        "url": "https://factorio.com/get-download/1.1.104/alpha/linux64",
+        "version": "1.1.104"
       }
     },
     "demo": {
       "experimental": {
-        "name": "factorio_demo_x64-1.1.101.tar.xz",
+        "name": "factorio_demo_x64-1.1.104.tar.xz",
         "needsAuth": false,
-        "sha256": "14cnz4y1iqjv8ks0w1k60qy1nqjn33wajwzdpnmxgcz01rzfqd8a",
+        "sha256": "0x08dy6pagfpqc9c2cl239b1f7pf0p4cghzp7avxmbkmbl1fan2l",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.101/demo/linux64",
-        "version": "1.1.101"
+        "url": "https://factorio.com/get-download/1.1.104/demo/linux64",
+        "version": "1.1.104"
       },
       "stable": {
-        "name": "factorio_demo_x64-1.1.101.tar.xz",
+        "name": "factorio_demo_x64-1.1.104.tar.xz",
         "needsAuth": false,
-        "sha256": "14cnz4y1iqjv8ks0w1k60qy1nqjn33wajwzdpnmxgcz01rzfqd8a",
+        "sha256": "0x08dy6pagfpqc9c2cl239b1f7pf0p4cghzp7avxmbkmbl1fan2l",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.101/demo/linux64",
-        "version": "1.1.101"
+        "url": "https://factorio.com/get-download/1.1.104/demo/linux64",
+        "version": "1.1.104"
       }
     },
     "headless": {
       "experimental": {
-        "name": "factorio_headless_x64-1.1.101.tar.xz",
+        "name": "factorio_headless_x64-1.1.104.tar.xz",
         "needsAuth": false,
-        "sha256": "14l3cg8swl3l7lzp44j4zk9wldzf4g23vda67wyzfyx82pvad206",
+        "sha256": "10qmq2mw2j97s64skwr3m7hmv21h3m0r8rdhnyfrhmrxn8x3a4wf",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.101/headless/linux64",
-        "version": "1.1.101"
+        "url": "https://factorio.com/get-download/1.1.104/headless/linux64",
+        "version": "1.1.104"
       },
       "stable": {
-        "name": "factorio_headless_x64-1.1.101.tar.xz",
+        "name": "factorio_headless_x64-1.1.104.tar.xz",
         "needsAuth": false,
-        "sha256": "14l3cg8swl3l7lzp44j4zk9wldzf4g23vda67wyzfyx82pvad206",
+        "sha256": "10qmq2mw2j97s64skwr3m7hmv21h3m0r8rdhnyfrhmrxn8x3a4wf",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.101/headless/linux64",
-        "version": "1.1.101"
+        "url": "https://factorio.com/get-download/1.1.104/headless/linux64",
+        "version": "1.1.104"
       }
     }
   }
diff --git a/pkgs/games/fallout-ce/fallout-ce.nix b/pkgs/games/fallout-ce/fallout-ce.nix
index 5f55743a674b..2f229fdf7380 100644
--- a/pkgs/games/fallout-ce/fallout-ce.nix
+++ b/pkgs/games/fallout-ce/fallout-ce.nix
@@ -4,13 +4,13 @@
 
 callPackage ./build.nix rec {
   pname = "fallout-ce";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "alexbatalov";
     repo = "fallout1-ce";
     rev = "v${version}";
-    hash = "sha256-EvRkOlvtiVao63S0WRKKuHlhfkdTgc0m6GTyv4EfJFU=";
+    hash = "sha256-ZiBoF3SL00sN0QrD3fkWG9SAknumOvzRB1oQJff6ITA=";
   };
 
   extraMeta = {
diff --git a/pkgs/games/ferium/default.nix b/pkgs/games/ferium/default.nix
index 8c923d0b7bec..903dd70222f6 100644
--- a/pkgs/games/ferium/default.nix
+++ b/pkgs/games/ferium/default.nix
@@ -2,18 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ferium";
-  version = "4.5.0";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = "gorilla-devs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-1avmzaIDz4/ARewB7yLYMBVtwdkY4FFfwcHAZSyg1Xc=";
+    sha256 = "sha256-tYRs6HfFTdUZqWal9pLZ0uUNCPr3+zQz5JV2ohOLIP8=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoHash = "sha256-IOnTJ/0mul7buBDNHkeqMM9NrFiX58xa03bVGrbAdNg=";
+  cargoHash = "sha256-5ClBS42hWw3ULEG1Qn+fiM6dvJ+xS4Dusy3BCj5Cvbg=";
 
   # Disable the GUI file picker so that GTK/XDG dependencies aren't used
   buildNoDefaultFeatures = true;
diff --git a/pkgs/games/freeciv/default.nix b/pkgs/games/freeciv/default.nix
index bccec663dbaa..9ff36c949ce3 100644
--- a/pkgs/games/freeciv/default.nix
+++ b/pkgs/games/freeciv/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "freeciv";
-  version = "3.0.9";
+  version = "3.0.10";
 
   src = fetchFromGitHub {
     owner = "freeciv";
     repo = "freeciv";
     rev = "R${lib.replaceStrings [ "." ] [ "_" ] version}";
-    hash = "sha256-vtkGV97FG43HIKPJ/of7jXWSrwHWgHUjwtq0XJPeKws=";
+    hash = "sha256-f+VJYWsfsoGLs9Ypk5cJQgn86PhsJ/6ODDjlnp84Frg=";
   };
 
   postPatch = ''
diff --git a/pkgs/games/galaxis/default.nix b/pkgs/games/galaxis/default.nix
deleted file mode 100644
index a3847e73c8da..000000000000
--- a/pkgs/games/galaxis/default.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ lib, stdenv, fetchurl, ncurses, xmlto }:
-
-with lib;
-stdenv.mkDerivation rec {
-
-  pname = "galaxis";
-  version = "1.10";
-
-  src = fetchurl{
-    url = "http://www.catb.org/~esr/galaxis/${pname}-${version}.tar.gz";
-    sha256 = "1181x3z4r0794v2bkpigb5fablw1nayj42wvhy2am79p7j1iqq5r";
-  };
-
-  buildInputs = [ ncurses xmlto ];
-
-  patchPhase = ''
-    sed -i\
-     -e 's|^install: galaxis\.6 uninstall|install: galaxis.6|'\
-     -e 's|usr/||g' -e 's|ROOT|DESTDIR|g'\
-     -e 's|install -m 755 -o 0 -g 0|install -m 755|' Makefile
-  '';
-
-  dontConfigure = true;
-
-  makeFlags = [ "DESTDIR=$(out)" ];
-
-  meta = {
-    description = "Rescue lifeboats lost in interstellar space";
-    longDescription = ''
-      Lifeboats from a crippled interstellar liner are adrift in a starfield. To
-      find them, you can place probes that look in all eight compass directions
-      and tell you how many lifeboats they see. If you drop a probe directly on
-      a lifeboat it will be revealed immediately. Your objective: find the
-      lifeboats as quickly as possible, before the stranded passengers run out
-      of oxygen!
-
-      This is a UNIX-hosted, curses-based clone of the nifty little Macintosh
-      freeware game Galaxis. It doesn't have the super-simple, point-and-click
-      interface of the original, but compensates by automating away some of the
-      game's simpler deductions.
-    '';
-    homepage = "http://catb.org/~esr/galaxis/";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.AndersonTorres ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/games/gcompris/default.nix b/pkgs/games/gcompris/default.nix
index a9e9f860d852..c6e16da0280c 100644
--- a/pkgs/games/gcompris/default.nix
+++ b/pkgs/games/gcompris/default.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gcompris";
-  version = "3.3";
+  version = "4.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/gcompris/qt/src/gcompris-qt-${version}.tar.xz";
-    hash = "sha256-8hqiq1wYw4irbOXCrwcJqTMuLISzSmSqPuw2Rn8XzQA=";
+    hash = "sha256-wcTqnK7ESv+jWHr5asedlkQ5rZV9iV4PLS8yQkvuDrY=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/games/gimx/default.nix b/pkgs/games/gimx/default.nix
index 9c2b260f1dbf..4173ac0cc2d6 100644
--- a/pkgs/games/gimx/default.nix
+++ b/pkgs/games/gimx/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, curl, libusb1, xorg, libxml2
+{ stdenv, lib, fetchFromGitHub, fetchpatch
+, makeWrapper, curl, libusb1, xorg, libxml2
 , ncurses5, bluez, libmhash, gimxPdpGamepad ? false }:
 
 let
@@ -21,7 +22,23 @@ in stdenv.mkDerivation rec {
     sha256 = "05kdv2qqr311c2p76hdlgvrq7b04vcpps5c80zn8b8l7p831ilgz";
   };
 
-  patches = [ ./conf.patch ];
+  patches = [
+    ./conf.patch
+
+    # gcc-13 build fixes:
+    #   https://github.com/matlo/GIMX/pull/705
+    (fetchpatch {
+      name = "gcc-13-headers.patch";
+      url = "https://github.com/matlo/GIMX/commit/4525dff4d9af672116d8c6c182707f2ad6295b2d.patch";
+      hash = "sha256-LkswnFsxqADooa09yO7Yf0AbxTrGfjBObyv/6FQJvRs=";
+    })
+    (fetchpatch {
+      name = "gcc-13-protos.patch";
+      url = "https://github.com/matlo/GIMX/commit/f11855fcb8bd9d0cb9c94871b4111ddfd5b610df.patch";
+      hash = "sha256-JL67UUsEyPcOuaimJtMviiGLGghuq9665Lg1QuiaWUU=";
+    })
+  ];
+
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [
     curl libusb1 bluez libxml2 ncurses5 libmhash
diff --git a/pkgs/games/gnonograms/default.nix b/pkgs/games/gnonograms/default.nix
index 2446384ff719..c021ca46f57a 100644
--- a/pkgs/games/gnonograms/default.nix
+++ b/pkgs/games/gnonograms/default.nix
@@ -16,14 +16,14 @@
 , libhandy
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnonograms";
   version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "jeremypw";
     repo = "gnonograms";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     sha256 = "sha256-TkEVjrwlr4Q5FsfcdY+9fxwaMq+DFs0RwGI2E+GT5Mk=";
   };
 
@@ -63,4 +63,4 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/jeremypw/gnonograms";
     platforms = platforms.all;
   };
-}
+})
diff --git a/pkgs/games/gnujump/default.nix b/pkgs/games/gnujump/default.nix
index 1c918395d40b..0fdffcf6fadb 100644
--- a/pkgs/games/gnujump/default.nix
+++ b/pkgs/games/gnujump/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, makeDesktopItem, copyDesktopItems, fetchurl, SDL, SDL_image, SDL_mixer }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnujump";
   version = "1.0.8";
   src = fetchurl {
-    url = "mirror://gnu/gnujump/${pname}-${version}.tar.gz";
+    url = "mirror://gnu/gnujump/gnujump-${finalAttrs.version}.tar.gz";
     sha256 = "05syy9mzbyqcfnm0hrswlmhwlwx54f0l6zhcaq8c1c0f8dgzxhqk";
   };
 
@@ -39,4 +39,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/games/gogdl/default.nix b/pkgs/games/gogdl/default.nix
index d6f5d6d10ae0..83bf90147b5f 100644
--- a/pkgs/games/gogdl/default.nix
+++ b/pkgs/games/gogdl/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonApplication rec {
   pname = "gogdl";
-  version = "1.0.0";
+  version = "1.0.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Heroic-Games-Launcher";
     repo = "heroic-gogdl";
-    rev = "e1c3e5b98feda53ea88f54f9aa5c614ae9424ef0";
-    hash = "sha256-MGxpWfDGchZruVmSiea5s1JQV23F9QvQLWrxPmIsBEo=";
+    rev = "10b4a19e0fbe9bc3db6b9ce3ea49fd17c9f1d37d";
+    hash = "sha256-po9To5WfT0L2j48Q84ygbbIqtTfXP9uQPrl4Uu+CWGk=";
   };
 
   disabled = pythonOlder "3.8";
diff --git a/pkgs/games/heroic/default.nix b/pkgs/games/heroic/default.nix
index ef3f13dc1bf0..03165fa5df7d 100644
--- a/pkgs/games/heroic/default.nix
+++ b/pkgs/games/heroic/default.nix
@@ -17,18 +17,18 @@
 let appName = "heroic";
 in stdenv.mkDerivation rec {
   pname = "heroic-unwrapped";
-  version = "2.12.1";
+  version = "2.13.0";
 
   src = fetchFromGitHub {
     owner = "Heroic-Games-Launcher";
     repo = "HeroicGamesLauncher";
     rev = "v${version}";
-    hash = "sha256-dfyyxE2U5rSSoTY2L5bKsnjQ8u53GgAXa+V+idDr51Q=";
+    hash = "sha256-02agp4EGT23QBKC8j1JIAkzVLRykFl55aH/wPF0bU/Y=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = "${src}/yarn.lock";
-    hash = "sha256-27r6lZiD1Ptk0WIYdwNLSZy6iMnmaZjKXBUjr+5+1lQ=";
+    hash = "sha256-hd0wY1an12zY0E6VPjiD23Mn5ZDPvFvIdu6FGoc7nYY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/games/hikounomizu/default.nix b/pkgs/games/hikounomizu/default.nix
index bca6c8ecf8b9..6e05a17b082e 100644
--- a/pkgs/games/hikounomizu/default.nix
+++ b/pkgs/games/hikounomizu/default.nix
@@ -22,12 +22,12 @@
 , bc
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "hikounomizu";
   version = "1.0.1";
 
   src = fetchurl {
-    url = "http://download.tuxfamily.org/hnm/${version}/hikounomizu-${version}-src.tar.bz2";
+    url = "http://download.tuxfamily.org/hnm/${finalAttrs.version}/hikounomizu-${finalAttrs.version}-src.tar.bz2";
     hash = "sha256-3wRhe6CDq1dD0SObAygfqslYJx+EM3LM3rj6HI0whYU=";
   };
 
@@ -78,4 +78,4 @@ stdenv.mkDerivation rec {
     license = [ licenses.gpl3Plus licenses.lal13 ];
     platforms = platforms.all;
   };
-}
+})
diff --git a/pkgs/games/hyperrogue/default.nix b/pkgs/games/hyperrogue/default.nix
index ed2ef9d67cc1..ddbe41df430e 100644
--- a/pkgs/games/hyperrogue/default.nix
+++ b/pkgs/games/hyperrogue/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hyperrogue";
-  version = "13.0a";
+  version = "13.0c";
 
   src = fetchFromGitHub {
     owner = "zenorogue";
     repo = "hyperrogue";
     rev = "v${version}";
-    sha256 = "sha256-ebUS5J2NXv6MRoVLg9Ymc5+h9Wn85fKd9N4ohxMxpq4=";
+    sha256 = "sha256-eELR/1GzR9wWJ433rIpueMu9omlsl1y5rmvG3GgSHZA=";
   };
 
   CXXFLAGS = [
diff --git a/pkgs/games/itch/butler.nix b/pkgs/games/itch/butler.nix
deleted file mode 100644
index cbd6b8aef936..000000000000
--- a/pkgs/games/itch/butler.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
-, stdenv
-, Cocoa
-, fetchpatch
-}:
-
-buildGoModule rec {
-  pname = "butler";
-  version = "15.21.0";
-
-  src = fetchFromGitHub {
-    owner = "itchio";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-vciSmXR3wI3KcnC+Uz36AgI/WUfztA05MJv1InuOjJM=";
-  };
-
-  buildInputs = lib.optionals stdenv.isDarwin [
-    Cocoa
-  ];
-
-  patches = [
-    # update x/sys dependency for darwin build https://github.com/itchio/butler/pull/245
-    (fetchpatch {
-      url = "https://github.com/itchio/butler/pull/245/commits/ef651d373e3061fda9692dd44ae0f7ce215e9655.patch";
-      hash = "sha256-rZZn/OGiv3mRyy89uORyJ99zWN21kZCCQAlFvSKxlPU=";
-    })
-  ];
-
-  proxyVendor = true;
-
-  vendorHash = "sha256-CtBwc5mcgLvl2Bvg5gI+ULJMQEEibx1aN3IpmRNUtwE=";
-
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Command-line itch.io helper";
-    homepage = "https://github.com/itchio/butler";
-    license = licenses.mit;
-    maintainers = with maintainers; [ martfont ];
-  };
-}
diff --git a/pkgs/games/itch/default.nix b/pkgs/games/itch/default.nix
deleted file mode 100644
index 897d8f3941c4..000000000000
--- a/pkgs/games/itch/default.nix
+++ /dev/null
@@ -1,94 +0,0 @@
-{ lib
-, stdenvNoCC
-, fetchzip
-, fetchFromGitHub
-, butler
-, electron
-, steam-run
-, makeWrapper
-, copyDesktopItems
-, makeDesktopItem
-}:
-stdenvNoCC.mkDerivation rec {
-  pname = "itch";
-  version = "26.1.2";
-
-  # TODO: Using kitch instead of itch, revert when possible
-  src = fetchzip {
-    url = "https://broth.itch.ovh/k${pname}/linux-amd64/${version}/archive/default#.zip";
-    stripRoot = false;
-    sha256 = "sha256-thXe+glpltSiKNGIRgvOZQZPJWfDHWo3dLdziyp2BM4=";
-  };
-
-  itch-setup = fetchzip {
-    url = "https://broth.itch.ovh/itch-setup/linux-amd64/1.26.0/itch-setup.zip";
-    stripRoot = false;
-    sha256 = "sha256-5MP6X33Jfu97o5R1n6Og64Bv4ZMxVM0A8lXeQug+bNA=";
-  };
-
-  icons = let sparseCheckout = "/release/images/itch-icons"; in
-    fetchFromGitHub {
-        owner = "itchio";
-        repo = pname;
-        rev = "v${version}-canary";
-        sha256 = "sha256-veZiKs9qHge+gCEpJ119bAT56ssXJAH3HBcYkEHqBFg=";
-        sparseCheckout = [ sparseCheckout ];
-      } + sparseCheckout;
-
-  nativeBuildInputs = [ copyDesktopItems makeWrapper ];
-
-  desktopItems = [
-    (makeDesktopItem {
-      name = pname;
-      exec = "itch %U";
-      tryExec = pname;
-      icon = pname;
-      desktopName = pname;
-      mimeTypes = [ "x-scheme-handler/itchio" "x-scheme-handler/itch" ];
-      comment = "Install and play itch.io games easily";
-      categories = [ "Game" ];
-    })
-  ];
-
-  # As taken from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=itch-bin
-  installPhase = ''
-    runHook preInstall
-
-    # TODO: Remove when the next stable Itch is stabilized
-    substituteInPlace ./resources/app/package.json \
-      --replace "kitch" "itch"
-
-    mkdir -p $out/bin $out/share/${pname}/resources/app
-    cp -r resources/app "$out/share/${pname}/resources/"
-
-    install -Dm644 LICENSE -t "$out/share/licenses/$pkgname/"
-    install -Dm644 LICENSES.chromium.html -t "$out/share/licenses/$pkgname/"
-
-    for icon in $icons/icon*.png
-    do
-      iconsize="''${icon#$icons/icon}"
-      iconsize="''${iconsize%.png}"
-      icondir="$out/share/icons/hicolor/''${iconsize}x''${iconsize}/apps/"
-      install -Dm644 "$icon" "$icondir/itch.png"
-    done
-
-    runHook postInstall
-  '';
-
-  postFixup = ''
-    makeWrapper ${steam-run}/bin/steam-run $out/bin/${pname} \
-      --add-flags ${electron}/bin/electron \
-      --add-flags $out/share/${pname}/resources/app \
-      --set BROTH_USE_LOCAL butler,itch-setup \
-      --prefix PATH : ${butler}/bin/:${itch-setup}
-  '';
-
-  meta = with lib; {
-    description = "The best way to play itch.io games";
-    homepage = "https://github.com/itchio/itch";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
-    maintainers = with maintainers; [ pasqui23 ];
-  };
-}
diff --git a/pkgs/games/katago/default.nix b/pkgs/games/katago/default.nix
index 4a66f6cc711e..834ec0774d7a 100644
--- a/pkgs/games/katago/default.nix
+++ b/pkgs/games/katago/default.nix
@@ -19,6 +19,7 @@
 , enableBigBoards ? false
 , enableContrib ? false
 , enableTcmalloc ? true
+, enableTrtPlanCache ? false
 }:
 
 assert lib.assertOneOf "backend" backend [ "opencl" "cuda" "tensorrt" "eigen" ];
@@ -67,25 +68,15 @@ stdenv.mkDerivation rec {
   ];
 
   cmakeFlags = [
-    "-DNO_GIT_REVISION=ON"
-  ] ++ lib.optionals enableAVX2 [
-    "-DUSE_AVX2=ON"
-  ] ++ lib.optionals (backend == "eigen") [
-    "-DUSE_BACKEND=EIGEN"
-  ] ++ lib.optionals (backend == "cuda") [
-    "-DUSE_BACKEND=CUDA"
-  ] ++ lib.optionals (backend == "tensorrt") [
-    "-DUSE_BACKEND=TENSORRT"
-  ] ++ lib.optionals (backend == "opencl") [
-    "-DUSE_BACKEND=OPENCL"
+    (lib.cmakeFeature "USE_BACKEND" (lib.toUpper backend))
+    (lib.cmakeBool "USE_AVX2" enableAVX2)
+    (lib.cmakeBool "USE_TCMALLOC" enableTcmalloc)
+    (lib.cmakeBool "USE_BIGGER_BOARDS_EXPENSIVE" enableBigBoards)
+    (lib.cmakeBool "USE_CACHE_TENSORRT_PLAN" enableTrtPlanCache)
+    (lib.cmakeBool "NO_GIT_REVISION" (!enableContrib))
   ] ++ lib.optionals enableContrib [
-    "-DBUILD_DISTRIBUTED=1"
-    "-DNO_GIT_REVISION=OFF"
-    "-DGIT_EXECUTABLE=${fakegit}/bin/git"
-  ] ++ lib.optionals enableTcmalloc [
-    "-DUSE_TCMALLOC=ON"
-  ] ++ lib.optionals enableBigBoards [
-    "-DUSE_BIGGER_BOARDS_EXPENSIVE=ON"
+    (lib.cmakeBool "BUILD_DISTRIBUTED" true)
+    (lib.cmakeFeature "GIT_EXECUTABLE" "${fakegit}/bin/git")
   ];
 
   preConfigure = ''
diff --git a/pkgs/games/lgames/ltris/default.nix b/pkgs/games/lgames/ltris/default.nix
deleted file mode 100644
index 8cf581b376bf..000000000000
--- a/pkgs/games/lgames/ltris/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, SDL
-, SDL_mixer
-, directoryListingUpdater
-}:
-
-stdenv.mkDerivation rec {
-  pname = "ltris";
-  version = "1.2.7";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/lgames/${pname}-${version}.tar.gz";
-    hash = "sha256-EpHGpkLQa57hU6wKLnhVosmD6DnGGPGilN8E2ClSXLA=";
-  };
-
-  buildInputs = [
-    SDL
-    SDL_mixer
-  ];
-
-  hardeningDisable = [ "format" ];
-
-  passthru.updateScript = directoryListingUpdater {
-    inherit pname version;
-    url = "https://lgames.sourceforge.io/LTris/";
-    extraRegex = "(?!.*-win(32|64)).*";
-  };
-
-  meta = with lib; {
-    homepage = "https://lgames.sourceforge.io/LTris/";
-    description = "Tetris clone from the LGames series";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ AndersonTorres ciil ];
-    inherit (SDL.meta) platforms;
-    broken = stdenv.isDarwin;
-  };
-}
diff --git a/pkgs/games/libremines/default.nix b/pkgs/games/libremines/default.nix
index fb7f6ae96873..fddc2ba92001 100644
--- a/pkgs/games/libremines/default.nix
+++ b/pkgs/games/libremines/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libremines";
-  version = "1.10.0";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "Bollos00";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-aqWzTvvRoke+Rakb6dNpDoD7haKHEKW3XARGLrH2WiY=";
+    hash = "sha256-LejDXjli+AEVGp23y+ez/NyJY/8w7uHcOij6RsDwIH4=";
   };
 
   nativeBuildInputs = [ cmake wrapQtAppsHook ];
diff --git a/pkgs/games/minesweep-rs/default.nix b/pkgs/games/minesweep-rs/default.nix
index b2445fe904a5..454be1129634 100644
--- a/pkgs/games/minesweep-rs/default.nix
+++ b/pkgs/games/minesweep-rs/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "minesweep-rs";
-  version = "6.0.52";
+  version = "6.0.54";
 
   src = fetchFromGitHub {
     owner = "cpcloud";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-XSB0SrZCXnIeZGYAc/MEWe+rM5D36jkM2MJjx64r/bU=";
+    hash = "sha256-FzMCqsPBcbblItRzfnY43glY4We9jk0eBxjG0SZnau8=";
   };
 
-  cargoHash = "sha256-zSEJsUKLfjZVZxQBtbUflYv4FXUpFCrAGI+6YUJrNnI=";
+  cargoHash = "sha256-VjIn4k/OuxsXLJ2LOk43LKHo0PrPyMigNOO2VVYZQYw=";
 
   meta = with lib; {
     description = "Sweep some mines for fun, and probably not for profit";
diff --git a/pkgs/games/nanosaur/default.nix b/pkgs/games/nanosaur/default.nix
index 4ec59b726ee3..37a054d951b4 100644
--- a/pkgs/games/nanosaur/default.nix
+++ b/pkgs/games/nanosaur/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, SDL2, cmake, makeWrapper }:
+{ lib, stdenv, fetchFromGitHub, SDL2, cmake, makeWrapper, unstableGitUpdater }:
 
 stdenv.mkDerivation rec {
   pname = "nanosaur";
-  version = "unstable-2021-12-03";
+  version = "1.4.4-unstable-2023-05-21";
 
   src = fetchFromGitHub {
     owner = "jorio";
     repo = pname;
-    rev = "b567a3e6d7fd1cbc43800cfaa1bd82f31c6d9fae";
-    sha256 = "sha256-P/o6uSwUV6O8u8XNXN9YyA8XlgEUkqGj3SC+oD2/GKQ=";
+    rev = "c9753648996b09a17c8bd526d8309b73fb14c435";
+    sha256 = "sha256-0xG/HSUF65eV+fSJ2geDv5VUxTeso9dulrLgE1KNDhc=";
     fetchSubmodules = true;
   };
 
@@ -27,11 +27,13 @@ stdenv.mkDerivation rec {
     mv Data ReadMe.txt "$out/share/Nanosaur/"
     install -Dm755 {.,$out/bin}/Nanosaur
     wrapProgram $out/bin/Nanosaur --chdir "$out/share/Nanosaur"
-    install -Dm644 $src/packaging/nanosaur.desktop $out/share/applications/nanosaur.desktop
-    install -Dm644 $src/packaging/nanosaur-desktopicon.png $out/share/pixmaps/nanosaur-desktopicon.png
+    install -Dm644 $src/packaging/io.jor.nanosaur.desktop $out/share/applications/nanosaur.desktop
+    install -Dm644 $src/packaging/io.jor.nanosaur.png $out/share/pixmaps/nanosaur-desktopicon.png
     runHook postInstall
   '';
 
+  passthru.updateScript = unstableGitUpdater { };
+
   meta = with lib; {
     description = "A port of Nanosaur, a 1998 Macintosh game by Pangea Software, for modern operating systems";
     longDescription = ''
@@ -41,6 +43,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/jorio/Nanosaur";
     license = licenses.cc-by-sa-40;
+    mainProgram = "Nanosaur";
     maintainers = with maintainers; [ lux ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/games/openjk/default.nix b/pkgs/games/openjk/default.nix
index 092f442669a6..5ef8aa3e43b4 100644
--- a/pkgs/games/openjk/default.nix
+++ b/pkgs/games/openjk/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, cmake, libjpeg, zlib, libpng, libGL, SDL2 }:
+{ lib, stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, cmake, libjpeg, zlib, libpng, libGL, SDL2
+, unstableGitUpdater
+}:
 
 let
   jamp = makeDesktopItem rec {
@@ -30,13 +32,13 @@ let
   };
 in stdenv.mkDerivation {
   pname = "OpenJK";
-  version = "unstable-2022-01-30";
+  version = "0-unstable-2024-02-20";
 
   src = fetchFromGitHub {
     owner = "JACoders";
     repo = "OpenJK";
-    rev = "235fb9e1a9c4537a603b2e54e444327d20d198a3";
-    sha256 = "sha256-DqP6wnu5sE7lQJGEdsEPOc6FIaJjqxt5ANKZ5eiabC4=";
+    rev = "1e8a7998ca2fe434daebb41d586ac3cd5296433a";
+    sha256 = "sha256-TKJNaz+oWNYyReFZVefg1frPXyd3Yl96JDklp1qY1to=";
   };
 
   dontAddPrefix = true;
@@ -79,6 +81,8 @@ in stdenv.mkDerivation {
     rm -rf $out/opt
   '';
 
+  passthru.updateScript = unstableGitUpdater { };
+
   meta = with lib; {
     description = "An open-source engine for Star Wars Jedi Academy game";
     homepage = "https://github.com/JACoders/OpenJK";
diff --git a/pkgs/games/openmw/tes3mp.nix b/pkgs/games/openmw/tes3mp.nix
index 5662f2356833..318c28aff922 100644
--- a/pkgs/games/openmw/tes3mp.nix
+++ b/pkgs/games/openmw/tes3mp.nix
@@ -7,14 +7,13 @@
 , luajit
 , makeWrapper
 , symlinkJoin
-, disable-warnings-if-gcc13
 }:
 
 # revisions are taken from https://github.com/GrimKriegor/TES3MP-deploy
 
 let
   # raknet could also be split into dev and lib outputs
-  raknet = disable-warnings-if-gcc13 (stdenv.mkDerivation {
+  raknet = stdenv.mkDerivation {
     pname = "raknet";
     version = "unstable-2020-01-19";
 
@@ -27,6 +26,16 @@ let
       sha256 = "WIaJkSQnoOm9T7GoAwmWl7fNg79coIo/ILUsWcbH+lA=";
     };
 
+    patches = [
+      # gcc-13 build fix:
+      #   https://github.com/TES3MP/CrabNet/pull/18
+      (fetchpatch {
+        name = "gcc-13.patch";
+        url = "https://github.com/TES3MP/CrabNet/commit/3ec9a338a7cefd5cc751c9d29095cafa4c73be20.patch";
+        hash = "sha256-zE87icjX9GSnApgKQXj0K4IjlrReV/upFLjVgNYkNfM=";
+      })
+    ];
+
     cmakeFlags = [
       "-DCRABNET_ENABLE_DLL=OFF"
     ];
@@ -36,7 +45,7 @@ let
     installPhase = ''
       install -Dm555 lib/libRakNetLibStatic.a $out/lib/libRakNetLibStatic.a
     '';
-  });
+  };
 
   coreScripts = stdenv.mkDerivation {
     pname = "corescripts";
@@ -88,9 +97,18 @@ let
     '';
 
     patches = [
+      # glibc-2.34 support
       (fetchpatch {
         url = "https://gitlab.com/OpenMW/openmw/-/commit/98a7d90ee258ceef9c70b0b2955d0458ec46f048.patch";
-        sha256 = "sha256-RhbIGeE6GyqnipisiMTwWjcFnIiR055hUPL8IkjPgZw=";
+        hash = "sha256-RhbIGeE6GyqnipisiMTwWjcFnIiR055hUPL8IkjPgZw=";
+      })
+
+      # gcc-13 build fix:
+      #   https://github.com/TES3MP/TES3MP/pull/674
+      (fetchpatch {
+        name = "gcc-13.patch";
+        url = "https://github.com/TES3MP/TES3MP/commit/7921f71a79e96f817a2009100e5105a7948b3fe2.patch";
+        hash = "sha256-mpxuOSPA2xixgBeYXsxutEUI7VJL5PxAeZgaNU7YkJQ=";
       })
 
       # https://github.com/TES3MP/openmw-tes3mp/issues/552
diff --git a/pkgs/games/openrct2/default.nix b/pkgs/games/openrct2/default.nix
index c38c1ae8031d..485b7104b20a 100644
--- a/pkgs/games/openrct2/default.nix
+++ b/pkgs/games/openrct2/default.nix
@@ -30,7 +30,7 @@
 }:
 
 let
-  openrct2-version = "0.4.7";
+  openrct2-version = "0.4.8";
 
   # Those versions MUST match the pinned versions within the CMakeLists.txt
   # file. The REPLAYS repository from the CMakeLists.txt is not necessary.
@@ -43,7 +43,7 @@ let
     owner = "OpenRCT2";
     repo = "OpenRCT2";
     rev = "v${openrct2-version}";
-    hash = "sha256-2nSzXbZH1o+BEaxhdQTCM/u4Qbun4tqBKjQ4z7owHeg=";
+    hash = "sha256-jSKAgohNMHuyOu4gUHyyZf1I7UrsXGDV5XwwK1DQPyM=";
   };
 
   objects-src = fetchFromGitHub {
diff --git a/pkgs/games/openttd/jgrpp.nix b/pkgs/games/openttd/jgrpp.nix
index 5fbe527425eb..74baeb12387e 100644
--- a/pkgs/games/openttd/jgrpp.nix
+++ b/pkgs/games/openttd/jgrpp.nix
@@ -2,13 +2,13 @@
 
 openttd.overrideAttrs (oldAttrs: rec {
   pname = "openttd-jgrpp";
-  version = "0.57.1";
+  version = "0.58.1";
 
   src = fetchFromGitHub rec {
     owner = "JGRennison";
     repo = "OpenTTD-patches";
     rev = "jgrpp-${version}";
-    hash = "sha256-mQy+QdhEXoM9wIWvSkMgRVBXJO1ugXWS3lduccez1PQ=";
+    hash = "sha256-6R+biPgQyFPJD6Or6Jhm+7RZ7xe/SC6h83XVZkE+gSk=";
   };
 
   buildInputs = oldAttrs.buildInputs ++ [ zstd ];
diff --git a/pkgs/games/openttd/nml.nix b/pkgs/games/openttd/nml.nix
index cf9de289f72e..8ec8adf5f22b 100644
--- a/pkgs/games/openttd/nml.nix
+++ b/pkgs/games/openttd/nml.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "openttd-nml";
-  version = "0.7.4";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "OpenTTD";
     repo = "nml";
     rev = "refs/tags/${version}";
-    hash = "sha256-7Q1H8BkLnVWoZU6/mdfgBPsMt9L7oLZK8GOvbw9TpzU=";
+    hash = "sha256-OobTyPD7FtYMhJL3BDFXaZCOO2iPn8kjEw2OEdqQbr8=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/games/osu-lazer/bin.nix b/pkgs/games/osu-lazer/bin.nix
index 43dafeae5f15..be46a964de88 100644
--- a/pkgs/games/osu-lazer/bin.nix
+++ b/pkgs/games/osu-lazer/bin.nix
@@ -7,22 +7,22 @@
 
 let
   pname = "osu-lazer-bin";
-  version = "2024.131.0";
+  version = "2024.302.1";
 
   src = {
     aarch64-darwin = fetchzip {
       url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Apple.Silicon.zip";
-      hash = "sha256-R25TAXU3gUcVKQMo8P+0/vTRzSoFrUdFz11inpch+7A=";
+      hash = "sha256-fhjmYAgszAF0uNk94fDj1g4oi8PiHY5lgPc5SdF9L8I=";
       stripRoot = false;
     };
     x86_64-darwin = fetchzip {
       url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Intel.zip";
-      hash = "sha256-w7BK3pm0XrlzOv0oz+ZUfVRufzUCCfevlRL+RDLtoLU=";
+      hash = "sha256-divrIWeBWjKvWxb+BANnsrUcSP2QlicFgPFpH+H2dpA=";
       stripRoot = false;
     };
     x86_64-linux = fetchurl {
       url = "https://github.com/ppy/osu/releases/download/${version}/osu.AppImage";
-      hash = "sha256-aNG6s942iTKyvM1XolMqmMs8XxoRYC/ZddCCJl0OtTE=";
+      hash = "sha256-vYG3viY9GBtgaY8ThCSWss+zzjAyVa4fmrWrQdYcUow=";
     };
   }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported.");
 
diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix
index cb1a11c330b6..60e372a768ec 100644
--- a/pkgs/games/osu-lazer/default.nix
+++ b/pkgs/games/osu-lazer/default.nix
@@ -2,6 +2,7 @@
 , stdenvNoCC
 , buildDotnetModule
 , fetchFromGitHub
+, dotnetCorePackages
 , makeDesktopItem
 , copyDesktopItems
 , ffmpeg
@@ -16,18 +17,21 @@
 
 buildDotnetModule rec {
   pname = "osu-lazer";
-  version = "2024.131.0";
+  version = "2024.302.1";
 
   src = fetchFromGitHub {
     owner = "ppy";
     repo = "osu";
     rev = version;
-    hash = "sha256-fsXs/AzvEQ141y/DPRvg7a7b0K30IfjigbRj0qh88rs=";
+    hash = "sha256-4+ACEWYgXvr8eoRJZHmTq74Bh159V+p2K+Pn1IPi2l4=";
   };
 
   projectFile = "osu.Desktop/osu.Desktop.csproj";
   nugetDeps = ./deps.nix;
 
+  dotnet-sdk = dotnetCorePackages.sdk_8_0;
+  dotnet-runtime = dotnetCorePackages.runtime_8_0;
+
   nativeBuildInputs = [ copyDesktopItems ];
 
   runtimeDeps = [
diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix
index 669463431970..56cd9d37db82 100644
--- a/pkgs/games/osu-lazer/deps.nix
+++ b/pkgs/games/osu-lazer/deps.nix
@@ -62,7 +62,7 @@
   (fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "2.14.1"; sha256 = "0zn99311zfn602phxyskfjq9vly0w5712z6fly8r4q0h94qa8c85"; })
   (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.14.1"; sha256 = "0qxjnbdj645l5sd6y3100yyrq1jy5misswg6xcch06x8jv7zaw1p"; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "2022.3.1"; sha256 = "0lkhyyz25q82ygnxy26lwy5cl8fvkdc13pcn433xpjj8akzbmgd6"; })
-  (fetchNuGet { pname = "JetBrains.ReSharper.GlobalTools"; version = "2022.2.3"; sha256 = "0ck4nkk8wlj2gcgs7j4j6z4yqrnf2f5rs2pgwa8kar026sc29xsl"; })
+  (fetchNuGet { pname = "JetBrains.ReSharper.GlobalTools"; version = "2023.3.3"; sha256 = "1cq7lj88r0nwypr157nd99g3wzk00wjinx84vasbga77kfcf4z9n"; })
   (fetchNuGet { pname = "managed-midi"; version = "1.10.0"; sha256 = "1rih8iq8k4j6n3206d2j7z4vygp725kzs95c6yc7p1mlhfiiimvq"; })
   (fetchNuGet { pname = "Markdig"; version = "0.23.0"; sha256 = "1bwn885w7balwncmr764vidyyp9bixqlq6r3lhsapj8ykrpxxa70"; })
   (fetchNuGet { pname = "MessagePack"; version = "2.5.140"; sha256 = "04iqlvcacbb37yf83xryd24n14dw780xx8dmc1zywi3x2nrqpjm9"; })
@@ -125,7 +125,7 @@
   (fetchNuGet { pname = "NuGet.Protocol"; version = "5.11.0"; sha256 = "041pva6ykc5h6az7bb87mkg32c95cvxlixgspnd34zbdldr4ypdb"; })
   (fetchNuGet { pname = "NuGet.Versioning"; version = "5.11.0"; sha256 = "041351n1rbyqpfxqyxbvjgfrcbbawymbq96givz5pvdbabvyf5vq"; })
   (fetchNuGet { pname = "NUnit"; version = "3.14.0"; sha256 = "19p8911lrfds1k9rv47jk1bbn665s0pvghkd06gzbg78j6mzzqqa"; })
-  (fetchNuGet { pname = "NVika"; version = "2.2.0"; sha256 = "1lxv5m5nf4hfwfdhcscrl8m0hhjkqxxn555wxwb95x0d5w2czx6x"; })
+  (fetchNuGet { pname = "NVika"; version = "3.0.0"; sha256 = "1v0n9li6lgfb2w4kbgxrs89h6k4s0zkcp73lch20w5c89dlkq26f"; })
   (fetchNuGet { pname = "OpenTabletDriver"; version = "0.6.4"; sha256 = "14wc2rgnbi2ili6sx9iqnmcbn1zlmbsk49zbiz5cycib6rxkqfdm"; })
   (fetchNuGet { pname = "OpenTabletDriver.Configurations"; version = "0.6.4"; sha256 = "0l7vf607i54y1xilr7bmjy9zlxacm00wz42mfbvzjf9rr54sy2pm"; })
   (fetchNuGet { pname = "OpenTabletDriver.Native"; version = "0.6.4"; sha256 = "1jsw2kwxxskwppk65i52yrxjjgbfbhicpmz30iaxlm68d5m6gwz2"; })
@@ -137,15 +137,15 @@
   (fetchNuGet { pname = "ppy.ManagedBass.Fx"; version = "2022.1216.0"; sha256 = "1vw573mkligpx9qiqasw1683cqaa1kgnxhlnbdcj9c4320b1pwjm"; })
   (fetchNuGet { pname = "ppy.ManagedBass.Mix"; version = "2022.1216.0"; sha256 = "185bpvgbnd8y20r7vxb1an4pd1aal9b7b5wvmv3knz0qg8j0chd9"; })
   (fetchNuGet { pname = "ppy.ManagedBass.Wasapi"; version = "2022.1216.0"; sha256 = "0h2ncf59sza8whvrwwqi8b6fcrkqrnfgfhd0vnhyw0s98nj74f0z"; })
-  (fetchNuGet { pname = "ppy.osu.Framework"; version = "2024.131.0"; sha256 = "0pa80w67nnfp3y25l5a6f6p9x48lj8bw3b24vzi3l8ndgcmnpyxz"; })
+  (fetchNuGet { pname = "ppy.osu.Framework"; version = "2024.223.0"; sha256 = "0k97jd4kac3vzsyvgn7imx17lad8ibbrhfx1q8vglqy6w5mriqlw"; })
   (fetchNuGet { pname = "ppy.osu.Framework.NativeLibs"; version = "2023.1225.0-nativelibs"; sha256 = "008kj91i9486ff2q7fcgb8mmpinskvnmfsqza2m5vafh295y3h7m"; })
   (fetchNuGet { pname = "ppy.osu.Framework.SourceGeneration"; version = "2023.720.0"; sha256 = "001vvxyv483ibid25fdknvij77x0y983mp4psx2lbg3x2al7yxax"; })
-  (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2024.129.0"; sha256 = "032jpqv86z4sc835063gzbshkdzx3qhnzxlyaggidmbwn6i9fja6"; })
+  (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2024.207.0"; sha256 = "0960jg0a860f545phscimv5qw6bzijpc4pyplx126zcm1w1cpmfi"; })
   (fetchNuGet { pname = "ppy.osuTK.NS20"; version = "1.0.211"; sha256 = "0j4a9n39pqm0cgdcps47p5n2mqph3h94r7hmf0bs59imif4jxvjy"; })
   (fetchNuGet { pname = "ppy.SDL2-CS"; version = "1.0.693-alpha"; sha256 = "15fgd3j9cs3adldiscqm0ffixf68h06wqdz1xy1286z4gczhi954"; })
-  (fetchNuGet { pname = "ppy.Veldrid"; version = "4.9.3-g91ce5a6cda"; sha256 = "0m96jkagz1ab3jgmz61d4z7jrxz058nzsamvqz93c90rlw802cvm"; })
-  (fetchNuGet { pname = "ppy.Veldrid.MetalBindings"; version = "4.9.3-g91ce5a6cda"; sha256 = "14qcrvhpvj3w9nr8fcki0j53qxc8bfgflivr989salh0srnlv764"; })
-  (fetchNuGet { pname = "ppy.Veldrid.OpenGLBindings"; version = "4.9.3-g91ce5a6cda"; sha256 = "1gdwk7s9sdvzrqr2rs9j87nvyl7b47b7m6kkhk1mpz6ryq403nsx"; })
+  (fetchNuGet { pname = "ppy.Veldrid"; version = "4.9.5-gc8dfc5ca19"; sha256 = "0w0mimfwdgbywmvq2yv04p65wgi1plhlk1ya012yyxp13vvhfgi8"; })
+  (fetchNuGet { pname = "ppy.Veldrid.MetalBindings"; version = "4.9.5-gc8dfc5ca19"; sha256 = "0i6bb79kprrmsfphjq26rgxqfvvf12pxr7dfwcq448dw2xgq6rpy"; })
+  (fetchNuGet { pname = "ppy.Veldrid.OpenGLBindings"; version = "4.9.5-gc8dfc5ca19"; sha256 = "06a4kkfidr7yj60xl3k4yfawz4wzwkkjpaki8fmsanif1yhz69l8"; })
   (fetchNuGet { pname = "ppy.Veldrid.SPIRV"; version = "1.0.15-gca6cec7843"; sha256 = "09pi4c91ljavilw9kx7kzhcax7ar4zk7zy1qwvqfrqsgxznvyxa1"; })
   (fetchNuGet { pname = "Realm"; version = "11.5.0"; sha256 = "0r7j5si3n4ncq8xnnjk1q5jjqbj0s1w3ps124y8pgqd14dzvch6a"; })
   (fetchNuGet { pname = "Realm.PlatformHelpers"; version = "11.5.0"; sha256 = "1ggbmlsf04pxnh1k86hs0wxnvcw0ja2xnn6358qmrp826km0w1g9"; })
@@ -307,8 +307,6 @@
   (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
-  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "7.0.0"; sha256 = "1151hbyrcf8kyg1jz8k9awpbic98lwz9x129rg7zk1wrs6vjlpxl"; })
-  (fetchNuGet { pname = "System.Text.Json"; version = "7.0.4"; sha256 = "1khcg2r7i29rpbg4mqxncs6r88s9hbbjzxpj29d13zvd31wypyv9"; })
   (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
diff --git a/pkgs/games/osu-lazer/osu.runtimeconfig.json b/pkgs/games/osu-lazer/osu.runtimeconfig.json
index 4148c494fbc7..170449ccbc02 100644
--- a/pkgs/games/osu-lazer/osu.runtimeconfig.json
+++ b/pkgs/games/osu-lazer/osu.runtimeconfig.json
@@ -1,9 +1,9 @@
 {
   "runtimeOptions": {
-    "tfm": "net6.0",
+    "tfm": "net8.0",
     "framework": {
       "name": "Microsoft.NETCore.App",
-      "version": "6.0.0"
+      "version": "8.0.0"
     }
   }
 }
diff --git a/pkgs/games/osu-lazer/update-bin.sh b/pkgs/games/osu-lazer/update-bin.sh
index 0aa5e97751b9..182875a42731 100755
--- a/pkgs/games/osu-lazer/update-bin.sh
+++ b/pkgs/games/osu-lazer/update-bin.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../../../. -i bash -p unzip curl jq common-updater-scripts
+#!nix-shell -I nixpkgs=./. -i bash -p unzip curl jq common-updater-scripts
 set -eo pipefail
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
diff --git a/pkgs/games/osu-lazer/update.sh b/pkgs/games/osu-lazer/update.sh
index 8e9849db1e16..7ef726621a09 100755
--- a/pkgs/games/osu-lazer/update.sh
+++ b/pkgs/games/osu-lazer/update.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../../../. -i bash -p curl jq common-updater-scripts
+#!nix-shell -I nixpkgs=./. -i bash -p curl jq common-updater-scripts
 set -eo pipefail
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
diff --git a/pkgs/games/papermc/default.nix b/pkgs/games/papermc/default.nix
index 20861779185c..aa16e51a7ac8 100644
--- a/pkgs/games/papermc/default.nix
+++ b/pkgs/games/papermc/default.nix
@@ -7,7 +7,7 @@
 }:
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "papermc";
-  version = "1.20.2.234";
+  version = "1.20.4.435";
 
   src =
     let
@@ -16,7 +16,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     in
     fetchurl {
       url = "https://papermc.io/api/v2/projects/paper/versions/${mcVersion}/builds/${buildNum}/downloads/paper-${mcVersion}-${buildNum}.jar";
-      hash = "sha256-fR7Dq09iFGVXodQjrS7Hg4NcrKPJbNg0hexU520JC6c=";
+      hash = "sha256-NrIsYLoAAWORw/S26NDFjYBVwpNITJxuWGZow3696wM=";
     };
 
   installPhase = ''
diff --git a/pkgs/games/performous/default.nix b/pkgs/games/performous/default.nix
index c82e1d02afc7..1305d8409f97 100644
--- a/pkgs/games/performous/default.nix
+++ b/pkgs/games/performous/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "performous";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "performous";
     repo = "performous";
     rev = "refs/tags/${version}";
-    hash = "sha256-y7kxLht15vULN9NxM0wzj9+7Uq4/3D5j9oBEnrTIwQ8=";
+    hash = "sha256-f70IHA8LqIlkMRwJqSmszx3keStSx50nKcEWLGEjc3g=";
   };
 
   cedSrc = fetchFromGitHub {
diff --git a/pkgs/games/performous/performous-cmake.patch b/pkgs/games/performous/performous-cmake.patch
index dae399cd54de..6f56959792cd 100644
--- a/pkgs/games/performous/performous-cmake.patch
+++ b/pkgs/games/performous/performous-cmake.patch
@@ -1,17 +1,18 @@
 diff --git a/cmake/Modules/FindCed.cmake b/cmake/Modules/FindCed.cmake
-index d6e2aca..3085adb 100644
+index 5794bc84..08d6b49d 100644
 --- a/cmake/Modules/FindCed.cmake
 +++ b/cmake/Modules/FindCed.cmake
-@@ -1,11 +1 @@
--include(LibFetchMacros)
--
--set(Ced_GIT_VERSION "master")
--
--libfetch_git_pkg(Ced
--	REPOSITORY ${SELF_BUILT_GIT_BASE}/compact_enc_det.git
--	#https://github.com/google/compact_enc_det.git
--	REFERENCE  ${Ced_GIT_VERSION}
--	FIND_PATH  compact_enc_det/compact_enc_det.h
--)
--message(STATUS "Found Google CED ${Ced_VERSION}")
-+add_subdirectory(../ced-src ced-src)
+@@ -22,12 +22,7 @@ elseif(SELF_BUILT_CED STREQUAL "AUTO")
+ 	pkg_check_modules(CED IMPORTED_TARGET GLOBAL CED)
+ 	if(NOT CED_FOUND)
+ 		message(STATUS "ced build from source because not found on system")
+-		libfetch_git_pkg(Ced
+-			REPOSITORY ${SELF_BUILT_GIT_BASE}/compact_enc_det.git
+-			#https://github.com/google/compact_enc_det.git
+-			REFERENCE  ${Ced_GIT_VERSION}
+-			FIND_PATH  compact_enc_det/compact_enc_det.h
+-		)
++		add_subdirectory(../ced-src ced-src)
+ 	else()
+ 		add_library(ced ALIAS PkgConfig::CED)
+ 		set(Ced_VERSION ${CED_VERSION})
diff --git a/pkgs/games/powermanga/default.nix b/pkgs/games/powermanga/default.nix
index 25a1df5211a3..5f82eaebb8eb 100644
--- a/pkgs/games/powermanga/default.nix
+++ b/pkgs/games/powermanga/default.nix
@@ -8,12 +8,12 @@
 , libpng
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "powermanga";
   version = "0.93.1";
 
   src = fetchurl {
-    url = "https://linux.tlk.fr/games/Powermanga/download/powermanga-${version}.tgz";
+    url = "https://linux.tlk.fr/games/Powermanga/download/powermanga-${finalAttrs.version}.tgz";
     sha256 = "sha256-2nU/zoOQWm2z/Y6mXHDFfWYjYshsQp1saVRBcUT5Q+g=";
   };
 
@@ -56,4 +56,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     broken = stdenv.isDarwin;
   };
-}
+})
diff --git a/pkgs/games/prismlauncher/default.nix b/pkgs/games/prismlauncher/default.nix
index c6378fbc368f..c4571ceaa71b 100644
--- a/pkgs/games/prismlauncher/default.nix
+++ b/pkgs/games/prismlauncher/default.nix
@@ -31,13 +31,13 @@ assert lib.assertMsg (stdenv.isLinux || !gamemodeSupport) "gamemodeSupport is on
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "prismlauncher-unwrapped";
-  version = "8.0";
+  version = "8.2";
 
   src = fetchFromGitHub {
     owner = "PrismLauncher";
     repo = "PrismLauncher";
     rev = finalAttrs.version;
-    hash = "sha256-WBajtfj3qAMq8zd2S53CQyHiyqtvffLOHOjmOpdALAA=";
+    hash = "sha256-4VsoxZzi/EfEsnDvvwzg2xhj7j5B+k3gvaSqwJFDweE=";
   };
 
   nativeBuildInputs = [ extra-cmake-modules cmake jdk17 ninja canonicalize-jars-hook ];
diff --git a/pkgs/games/pysolfc/default.nix b/pkgs/games/pysolfc/default.nix
index c543434b610d..7315d5e2724f 100644
--- a/pkgs/games/pysolfc/default.nix
+++ b/pkgs/games/pysolfc/default.nix
@@ -7,21 +7,21 @@
 }:
 
 buildPythonApplication rec {
-  pname = "PySolFC";
-  version = "2.20.1";
+  pname = "pysolfc";
+  version = "2.21.0";
 
   src = fetchzip {
-    url = "https://versaweb.dl.sourceforge.net/project/pysolfc/PySolFC/PySolFC-${version}/PySolFC-${version}.tar.xz";
-    hash = "sha256-mEnsq8Su0ses+nqoSFC+Wr0MHY7aTDMbtDV8toYVNPY=";
+    url = "mirror://sourceforge/pysolfc/PySolFC-${version}.tar.xz";
+    hash = "sha256-Deye7KML5G6RZkth2veVgPOWZI8gnusEvszlrPTAhag=";
   };
 
   cardsets = fetchzip {
-    url = "https://versaweb.dl.sourceforge.net/project/pysolfc/PySolFC-Cardsets/PySolFC-Cardsets-2.2/PySolFC-Cardsets-2.2.tar.bz2";
+    url = "mirror://sourceforge/pysolfc/PySolFC-Cardsets-2.2.tar.bz2";
     hash = "sha256-mWJ0l9rvn9KeZ9rCWy7VjngJzJtSQSmG8zGcYFE4yM0=";
   };
 
   music = fetchzip {
-    url = "https://versaweb.dl.sourceforge.net/project/pysolfc/PySol-Music/PySol-Music-4.50/pysol-music-4.50.tar.xz";
+    url = "mirror://sourceforge/pysolfc/pysol-music-4.50.tar.xz";
     hash = "sha256-sOl5U98aIorrQHJRy34s0HHaSW8hMUE7q84FMQAj5Yg=";
   };
 
diff --git a/pkgs/games/r2modman/default.nix b/pkgs/games/r2modman/default.nix
index 30648d67ae67..27cb156a1fe6 100644
--- a/pkgs/games/r2modman/default.nix
+++ b/pkgs/games/r2modman/default.nix
@@ -14,18 +14,18 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "r2modman";
-  version = "3.1.46";
+  version = "3.1.47";
 
   src = fetchFromGitHub {
     owner = "ebkr";
     repo = "r2modmanPlus";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-Oo23U3hwkhhLRiOIikIZcnoBFmkRWMK8UECyDRohBj0=";
+    hash = "sha256-refFd/d4y8657FltEvogQVAEl48c5gtrwpuGa8vluqE=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = "${finalAttrs.src}/yarn.lock";
-    hash = "sha256-CXitb/b2tvTfrkFrFv4KP4WdmMg+1sDtC/s2u5ezDfI=";
+    hash = "sha256-1JXd1pDGEFDG+ogXbEpl4WMYXwksJJJBx20ZPykc7OM=";
   };
 
   patches = [
diff --git a/pkgs/games/rocksndiamonds/default.nix b/pkgs/games/rocksndiamonds/default.nix
index 67d798f8d4a6..feef993207ea 100644
--- a/pkgs/games/rocksndiamonds/default.nix
+++ b/pkgs/games/rocksndiamonds/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rocksndiamonds";
-  version = "4.3.8.1";
+  version = "4.3.8.2";
 
   src = fetchurl {
     url = "https://www.artsoft.org/RELEASES/linux/${pname}/${pname}-${version}-linux.tar.gz";
-    hash = "sha256-kc8E9hyXSr8UdwDA5I4/iP6NfpV/Lso5Q//E/cV02UA=";
+    hash = "sha256-e/aYjjnEM6MP14FGX+N92U9fRNEjIaDfE1znl6A+4As=";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/games/sgt-puzzles/default.nix b/pkgs/games/sgt-puzzles/default.nix
index 7361d2281113..bd56416c5918 100644
--- a/pkgs/games/sgt-puzzles/default.nix
+++ b/pkgs/games/sgt-puzzles/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sgt-puzzles";
-  version = "20240103.7a93ae5";
+  version = "20240302.80aac31";
 
   src = fetchurl {
     url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz";
-    hash = "sha256-1pTruSF+Kl1wqTFIaYYHrvbD9p+k+1PGa5PpV4jvgEk=";
+    hash = "sha256-0+bmGq4wM+0/ldQz8ieKdkuG0HHazctQr9ul/qLT0gg=";
   };
 
   sgt-puzzles-menu = fetchurl {
diff --git a/pkgs/games/shattered-pixel-dungeon/summoning-pixel-dungeon.nix b/pkgs/games/shattered-pixel-dungeon/summoning-pixel-dungeon.nix
index 488110684c09..5e7ed1b817e0 100644
--- a/pkgs/games/shattered-pixel-dungeon/summoning-pixel-dungeon.nix
+++ b/pkgs/games/shattered-pixel-dungeon/summoning-pixel-dungeon.nix
@@ -18,7 +18,7 @@ callPackage ./generic.nix rec {
 
   patches = [(substitute {
     src = ./disable-git-version.patch;
-    replacements = [ "--subst-var-by" "version" version ];
+    substitutions = [ "--subst-var-by" "version" version ];
   })];
 
   depsHash = "sha256-0P/BcjNnbDN25DguRcCyzPuUG7bouxEx1ySodIbSwvg=";
diff --git a/pkgs/games/speed-dreams/default.nix b/pkgs/games/speed-dreams/default.nix
index a44c3d670558..bdfc68f837d1 100644
--- a/pkgs/games/speed-dreams/default.nix
+++ b/pkgs/games/speed-dreams/default.nix
@@ -1,9 +1,9 @@
 { fetchurl, lib, stdenv, libGLU, libGL, freeglut, libX11, plib, openal, freealut, libXrandr, xorgproto,
 libXext, libSM, libICE, libXi, libXt, libXrender, libXxf86vm, openscenegraph, expat,
-libpng, zlib, bash, SDL2, enet, libjpeg, cmake, pkg-config, libvorbis, runtimeShell, curl }:
+libpng, zlib, bash, SDL2, SDL2_mixer, enet, libjpeg, cmake, pkg-config, libvorbis, runtimeShell, curl, copyDesktopItems, makeDesktopItem }:
 
 let
-  version = "2.2.3-r7616";
+  version = "2.3.0-r8786";
   shortVersion = builtins.substring 0 5 version;
 in
 stdenv.mkDerivation rec {
@@ -12,22 +12,22 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/speed-dreams/${shortVersion}/speed-dreams-src-base-${version}.tar.xz";
-    sha256 = "sha256-GvB8SDZB9UivJSsQfMMon9N5MURdxTOwsaN4F0XQUCE=";
+    sha256 = "sha256-DUyMs9Hr1PYgmNVwBY/e6snVeGl9GX0AnZ7S+TFABKQ=";
   };
 
   cars-and-tracks = fetchurl {
     url = "mirror://sourceforge/speed-dreams/${shortVersion}/speed-dreams-src-hq-cars-and-tracks-${version}.tar.xz";
-    sha256 = "sha256-BuryCUvBD7rKmApCNsTkRN0UJ1q6P3sdYrSzpTqdTHc=";
+    sha256 = "sha256-WT+W6uuw4BRSbF1Cw123q3v9qSCvBQ7TcQ/Y0RV/7Js=";
   };
 
   more-cars-and-tracks = fetchurl {
     url = "mirror://sourceforge/speed-dreams/${shortVersion}/speed-dreams-src-more-hq-cars-and-tracks-${version}.tar.xz";
-    sha256 = "sha256-GSCHYbJS352yAMczzss7tYSQXwLQV68rv/XkyGy+GoY=";
+    sha256 = "sha256-psApv+Z1HDFvh5bzt125mo/ZvO5rjee/KhOf45iKnKk=";
   };
 
   wip-cars-and-tracks = fetchurl {
     url = "mirror://sourceforge/speed-dreams/${shortVersion}/speed-dreams-src-wip-cars-and-tracks-${version}.tar.xz";
-    sha256 = "sha256-r/IOSf+UZg2e+WIHn2QNDO6qQUhpIJvh7EF2jQ7lyyA=";
+    sha256 = "sha256-OEAbqFfO2PzHP7+eAtPNn3Ql6fYNTKzzQW8lHe9KDXM=";
   };
 
   sourceRoot = ".";
@@ -54,16 +54,30 @@ stdenv.mkDerivation rec {
       echo "$i"' "$@"' >> "$out/bin/$(basename "$i")"
       chmod a+x "$out/bin/$(basename "$i")"
     done
+
+    mkdir -p $out/share/pixmaps/
+    ln -s "$out/share/games/speed-dreams-2/data/icons/icon.png" "$out/share/pixmaps/speed-dreams-2.png"
   '';
 
+  desktopItems = [
+    (makeDesktopItem {
+      name = "Speed Dreams 2";
+      exec = "speed-dreams-2";
+      icon = "speed-dreams-2.png";
+      desktopName = "speed-dreams-2";
+      comment = "The Open Racing Car Simulator Fork";
+      categories = [ "Application" "Game" ];
+    })
+  ];
+
   # RPATH of binary /nix/store/.../lib64/games/speed-dreams-2/drivers/shadow_sc/shadow_sc.so contains a forbidden reference to /build/
   cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=ON" ];
 
-  nativeBuildInputs = [ pkg-config cmake ];
+  nativeBuildInputs = [ pkg-config cmake copyDesktopItems ];
 
   buildInputs = [ libpng libGLU libGL freeglut libX11 plib openal freealut libXrandr xorgproto
     libXext libSM libICE libXi libXt libXrender libXxf86vm zlib bash expat
-    SDL2 enet libjpeg openscenegraph libvorbis curl ];
+    SDL2 SDL2_mixer enet libjpeg openscenegraph libvorbis curl ];
 
   meta = {
     description = "Car racing game - TORCS fork with more experimental approach";
diff --git a/pkgs/games/starsector/default.nix b/pkgs/games/starsector/default.nix
index 72ca3f5b897b..535039c79f2f 100644
--- a/pkgs/games/starsector/default.nix
+++ b/pkgs/games/starsector/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "starsector";
-  version = "0.97a-RC8";
+  version = "0.97a-RC11";
 
   src = fetchzip {
     url = "https://f005.backblazeb2.com/file/fractalsoftworks/release/starsector_linux-${version}.zip";
-    sha256 = "sha256-mfx6tmgIT+bMEpMXAcHVMMJMr1zlALStpoUxYw8MYsY=";
+    sha256 = "sha256-KT4n0kBocaljD6dTbpr6xcwy6rBBZTFjov9m+jizDW4=";
   };
 
   nativeBuildInputs = [ copyDesktopItems makeWrapper ];
diff --git a/pkgs/games/stockfish/default.nix b/pkgs/games/stockfish/default.nix
index bd42da9c7028..21e3151b5844 100644
--- a/pkgs/games/stockfish/default.nix
+++ b/pkgs/games/stockfish/default.nix
@@ -4,7 +4,7 @@ let
     # The x86-64-modern may need to be refined further in the future
     # but stdenv.hostPlatform CPU flags do not currently work on Darwin
     # https://discourse.nixos.org/t/darwin-system-and-stdenv-hostplatform-features/9745
-    archDarwin = if stdenv.isx86_64 then "x86-64-modern" else "x86-64";
+    archDarwin = if stdenv.isx86_64 then "x86-64-modern" else "apple-silicon";
     arch = if stdenv.isDarwin then archDarwin else
            if stdenv.isx86_64 then "x86-64" else
            if stdenv.isi686 then "x86-32" else
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
       much stronger than the best human chess grandmasters.
       '';
     maintainers = with maintainers; [ luispedro siraben ];
-    platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux"];
+    platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
     license = licenses.gpl3Only;
   };
 
diff --git a/pkgs/games/stone-kingdoms/default.nix b/pkgs/games/stone-kingdoms/default.nix
index e49db727b9e8..3680f3af1275 100644
--- a/pkgs/games/stone-kingdoms/default.nix
+++ b/pkgs/games/stone-kingdoms/default.nix
@@ -11,13 +11,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "stone-kingdoms";
-  version = "0.5.0";
+  version = "0.6.1";
 
   src = fetchFromGitLab {
     owner = "stone-kingdoms";
     repo = pname;
     rev = version;
-    hash = "sha256-FQrg/1/nfFC/irCWSLbnb9GYSUv//ovvcjzvIg94oEI=";
+    hash = "sha256-W2hzJg22O857Kh7CJVVHV5qu8QKjXCwW3hmgKBc0n2g=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/games/tecnoballz/default.nix b/pkgs/games/tecnoballz/default.nix
index 6366e0ab06a5..f65383a37a89 100644
--- a/pkgs/games/tecnoballz/default.nix
+++ b/pkgs/games/tecnoballz/default.nix
@@ -10,12 +10,12 @@
 , tinyxml
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "tecnoballz";
   version = "0.93.1";
 
   src = fetchurl {
-    url = "https://linux.tlk.fr/games/TecnoballZ/download/tecnoballz-${version}.tgz";
+    url = "https://linux.tlk.fr/games/TecnoballZ/download/tecnoballz-${finalAttrs.version}.tgz";
     sha256 = "sha256-WRW76e+/eXE/KwuyOjzTPFQnKwNznbIrUrz14fnvgug=";
   };
 
@@ -66,4 +66,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     broken = stdenv.isDarwin;
   };
-}
+})
diff --git a/pkgs/games/titanion/default.nix b/pkgs/games/titanion/default.nix
index 47db68aa483e..94e04a053c4e 100644
--- a/pkgs/games/titanion/default.nix
+++ b/pkgs/games/titanion/default.nix
@@ -16,12 +16,12 @@ debianPatch = patchname: hash: fetchpatch {
   sha256 = hash;
 };
 
-in stdenv.mkDerivation rec {
+in stdenv.mkDerivation (finalAttrs: {
   pname = "titanion";
   version = "0.3";
 
   src = fetchurl {
-    url = "http://abagames.sakura.ne.jp/windows/ttn${lib.replaceStrings ["."] ["_"] version}.zip";
+    url = "http://abagames.sakura.ne.jp/windows/ttn${lib.replaceStrings ["."] ["_"] finalAttrs.version}.zip";
     sha256 = "sha256-fR0cufi6dU898wP8KGl/vxbfQJzMmMxlYZ3QNGLajfM=";
   };
 
@@ -88,4 +88,4 @@ in stdenv.mkDerivation rec {
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
   };
-}
+})
diff --git a/pkgs/games/toppler/default.nix b/pkgs/games/toppler/default.nix
index 890e13498747..fe36229363ce 100644
--- a/pkgs/games/toppler/default.nix
+++ b/pkgs/games/toppler/default.nix
@@ -15,14 +15,14 @@
 , zlib
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "toppler";
   version = "1.3";
 
   src = fetchFromGitLab {
     owner = "roever";
     repo = "toppler";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     sha256 = "sha256-ecEaELu52Nmov/BD9VzcUw6wyWeHJcsKQkEzTnaW330=";
   };
 
@@ -58,4 +58,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
   };
-}
+})
diff --git a/pkgs/games/torcs/default.nix b/pkgs/games/torcs/default.nix
index 4764db4413ed..9c712ae41a43 100644
--- a/pkgs/games/torcs/default.nix
+++ b/pkgs/games/torcs/default.nix
@@ -30,6 +30,11 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  postInstall = ''
+    install -D -m644 Ticon.png $out/share/pixmaps/torcs.png
+    install -D -m644 torcs.desktop $out/share/applications/torcs.desktop
+  '';
+
   postPatch = ''
     sed -i -e s,/bin/bash,`type -P bash`, src/linux/torcs.in
   '';
diff --git a/pkgs/games/torus-trooper/default.nix b/pkgs/games/torus-trooper/default.nix
index 645abc76c807..6e39aac63ff6 100644
--- a/pkgs/games/torus-trooper/default.nix
+++ b/pkgs/games/torus-trooper/default.nix
@@ -16,12 +16,12 @@ debianPatch = patchname: hash: fetchpatch {
   sha256 = hash;
 };
 
-in stdenv.mkDerivation rec {
+in stdenv.mkDerivation (finalAttrs: {
   pname = "torus-trooper";
   version = "0.22";
 
   src = fetchurl {
-    url = "http://abagames.sakura.ne.jp/windows/tt${lib.replaceStrings ["."] ["_"] version}.zip";
+    url = "http://abagames.sakura.ne.jp/windows/tt${lib.replaceStrings ["."] ["_"] finalAttrs.version}.zip";
     sha256 = "1yhki1fdp3fi4y2iq12vca69f6k38dqjaw9z4lwcxky5kbgb7jvg";
   };
 
@@ -101,4 +101,4 @@ in stdenv.mkDerivation rec {
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
   };
-}
+})
diff --git a/pkgs/games/trigger/default.nix b/pkgs/games/trigger/default.nix
index cb3227f24e3e..57bc75d53820 100644
--- a/pkgs/games/trigger/default.nix
+++ b/pkgs/games/trigger/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchurl, stdenv, runtimeShell, SDL2, freealut, SDL2_image, openal, physfs
-, zlib, libGLU, libGL, glew, tinyxml-2 }:
+, zlib, libGLU, libGL, glew, tinyxml-2, copyDesktopItems, makeDesktopItem }:
 
 stdenv.mkDerivation rec {
   pname = "trigger-rally";
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "016bc2hczqscfmngacim870hjcsmwl8r3aq8x03vpf22s49nw23z";
   };
 
+  nativeBuildInputs = [ copyDesktopItems ];
+
   buildInputs = [
     SDL2
     freealut
@@ -42,8 +44,22 @@ stdenv.mkDerivation rec {
     exec $out/games/trigger-rally "$@"
     EOF
     chmod +x $out/bin/trigger-rally
+
+    mkdir -p $out/share/pixmaps/
+    ln -s $out/share/games/trigger-rally/icon/trigger-rally-icons.svg $out/share/pixmaps/trigger.svg
   '';
 
+  desktopItems = [
+    (makeDesktopItem {
+      name = "Trigger";
+      exec = "trigger-rally";
+      icon = "trigger";
+      desktopName = "Trigger";
+      comment = "Fast-paced 3D single-player rally racing game";
+      categories = [ "Game" "ActionGame" ];
+    })
+  ];
+
   meta = {
     description = "A fast-paced single-player racing game";
     homepage = "http://trigger-rally.sourceforge.net/";
diff --git a/pkgs/games/tumiki-fighters/default.nix b/pkgs/games/tumiki-fighters/default.nix
index b4becea65756..344d062e08c3 100644
--- a/pkgs/games/tumiki-fighters/default.nix
+++ b/pkgs/games/tumiki-fighters/default.nix
@@ -16,12 +16,12 @@ debianPatch = patchname: hash: fetchpatch {
   sha256 = hash;
 };
 
-in stdenv.mkDerivation rec {
+in stdenv.mkDerivation (finalAttrs: {
   pname = "tumiki-fighters";
   version = "0.21";
 
   src = fetchurl {
-    url = "http://abagames.sakura.ne.jp/windows/tf${lib.replaceStrings ["."] ["_"] version}.zip";
+    url = "http://abagames.sakura.ne.jp/windows/tf${lib.replaceStrings ["."] ["_"] finalAttrs.version}.zip";
     sha256 = "0djykfc1r8ysapklm621h89ana1c4qzc1m5nr9bqw4iccnmvwk3p";
   };
 
@@ -94,4 +94,4 @@ in stdenv.mkDerivation rec {
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
   };
-}
+})
diff --git a/pkgs/games/unciv/default.nix b/pkgs/games/unciv/default.nix
index 68bf0fc8feba..703ee9b18b9f 100644
--- a/pkgs/games/unciv/default.nix
+++ b/pkgs/games/unciv/default.nix
@@ -27,11 +27,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "unciv";
-  version = "4.10.5";
+  version = "4.10.15";
 
   src = fetchurl {
     url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
-    hash = "sha256-XRm3V2JEwJJWMEVohkT+8JGcTJttYPcB1u0VNnMRxVY=";
+    hash = "sha256-SikrApaaGCAQc6ncqI4vRfXSgG/hgfO1wn5B5fj+W6Y=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/games/unnethack/default.nix b/pkgs/games/unnethack/default.nix
index af402a7de935..f328b8c01eed 100644
--- a/pkgs/games/unnethack/default.nix
+++ b/pkgs/games/unnethack/default.nix
@@ -33,6 +33,11 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  # Fails at startup due to off-by-one:
+  #   https://github.com/NixOS/nixpkgs/issues/292113#issuecomment-1969989058
+  # TODO: drop it once 6.x branch releases.
+  hardeningDisable = [ "fortify3" ];
+
   # Fails the build occasionally due to missing buid depends:
   #   ./../sys/unix/unixmain.c:9:10: fatal error: date.h: No such file or directory
   # TODO: remove once upstream issue is fixed:
diff --git a/pkgs/games/vassal/default.nix b/pkgs/games/vassal/default.nix
index 8395c4ac5fff..216fda688284 100644
--- a/pkgs/games/vassal/default.nix
+++ b/pkgs/games/vassal/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "VASSAL";
-  version = "3.7.8";
+  version = "3.7.9";
 
   src = fetchzip {
     url = "https://github.com/vassalengine/vassal/releases/download/${version}/${pname}-${version}-linux.tar.bz2";
-    sha256 = "sha256-KZIfgCOZbirstKotQhfcNvJdf3wP1L1o9Wt33ddFrfM=";
+    sha256 = "sha256-RvP0HhndYRrRX7ag2nwmsOoNPKXXWJXfmfZqAWSZuv8=";
   };
 
   buildInputs = [
diff --git a/pkgs/games/vintagestory/default.nix b/pkgs/games/vintagestory/default.nix
index 474b5e2ddbac..182f0621bfed 100644
--- a/pkgs/games/vintagestory/default.nix
+++ b/pkgs/games/vintagestory/default.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vintagestory";
-  version = "1.19.3";
+  version = "1.19.4";
 
   src = fetchurl {
     url = "https://cdn.vintagestory.at/gamefiles/stable/vs_client_linux-x64_${version}.tar.gz";
-    hash = "sha256-ULxwNdQLQCWJqCTiGtT1X/Y32f406FT/UPAJNBYrV/s=";
+    hash = "sha256-A5NIWy902a0W/Y/sJL+qPrEJwCiU/TNIm7G3BtU6gzM=";
   };
 
 
diff --git a/pkgs/games/warzone2100/default.nix b/pkgs/games/warzone2100/default.nix
index be2525c98716..7e6b8986109e 100644
--- a/pkgs/games/warzone2100/default.nix
+++ b/pkgs/games/warzone2100/default.nix
@@ -44,12 +44,12 @@ let
   };
 in
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   inherit pname;
   version  = "4.4.2";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/warzone2100/releases/${version}/warzone2100_src.tar.xz";
+    url = "mirror://sourceforge/project/warzone2100/releases/${finalAttrs.version}/warzone2100_src.tar.xz";
     hash = "sha256-O5Yqxqp1vKYr8uvAZ1SdsI/kocOzg0KRCirCqqvLrN4=";
   };
 
@@ -142,4 +142,4 @@ stdenv.mkDerivation rec {
     # https://github.com/Warzone2100/warzone2100/blob/master/macosx/README.md
     broken = stdenv.isDarwin;
   };
-}
+})
diff --git a/pkgs/games/xskat/default.nix b/pkgs/games/xskat/default.nix
index 6baf397ad678..0d9fc5fe312f 100644
--- a/pkgs/games/xskat/default.nix
+++ b/pkgs/games/xskat/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Famous german card game";
     platforms = platforms.unix;
-    license = licenses.free;
+    license = licenses.xskat;
     longDescription = "Play the german card game Skat against the AI or over IRC.";
     homepage = "https://web.archive.org/web/20221003060115/https://www.xskat.de/xskat.html";
   };
diff --git a/pkgs/games/zaz/default.nix b/pkgs/games/zaz/default.nix
index 3b6c7244507c..9cfbad23c278 100644
--- a/pkgs/games/zaz/default.nix
+++ b/pkgs/games/zaz/default.nix
@@ -11,12 +11,12 @@
 , freetype
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "zaz";
   version = "1.0.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
+    url = "mirror://sourceforge/zaz/zaz-${finalAttrs.version}.tar.gz";
     sha256 = "1r3bmwny05zzmdalxm5ah2rray0nnsg1w00r30p47q6x2lpwj8ml";
   };
 
@@ -56,5 +56,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     mainProgram = "zaz";
   };
-}
-
+})