diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 6726cef303..63abec053b 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -142,6 +142,7 @@
   #:use-module (gnu packages less)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libedit)
+  #:use-module (gnu packages libidn)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
@@ -162,6 +163,7 @@
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages perl-compression)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
@@ -6563,7 +6565,7 @@ fight against their plot and save his fellow rabbits from slavery.")
 (define-public 0ad-data
   (package
     (name "0ad-data")
-    (version "0.0.23b-alpha")
+    (version "0.0.24-alpha")
     (source
      (origin
        (method url-fetch)
@@ -6572,12 +6574,13 @@ fight against their plot and save his fellow rabbits from slavery.")
        (file-name (string-append name "-" version ".tar.xz"))
        (sha256
         (base32
-         "04x7729hk6zw1xj3n4s4lvaviijsnbjf5rhzvjxlr5fygvg4l6z1"))
+         "0nnpzn0l2sw7z9bwgg6vacip6blahxsk6m90znvl7hb3mak5b6lj"))
        (modules '((guix build utils)))
        (snippet
         #~(begin
+            (delete-file "data/mods/public/mod.json") ; contained in public.zip
             (for-each (lambda (name)
-                        (let* ((dir (string-append "binaries/data/mods/" name))
+                        (let* ((dir (string-append "data/mods/" name))
                                (file (string-append dir "/" name ".zip"))
                                (unzip #$(file-append unzip "/bin/unzip")))
                           (invoke unzip "-d" dir file)
@@ -6616,7 +6619,7 @@ fight against their plot and save his fellow rabbits from slavery.")
 (define-public 0ad
   (package
     (name "0ad")
-    (version "0.0.23b-alpha")
+    (version "0.0.24-alpha")
     (source
      (origin
        (method url-fetch)
@@ -6625,22 +6628,24 @@ fight against their plot and save his fellow rabbits from slavery.")
        (file-name (string-append name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0draa53xg69i5qhqym85658m45xhwkbiimaldj4sr3703rjgggq1"))))
+         "0lyccd3lxm50lhpzqhljq1rq37z4j20avpa1prlv2j0yy79f5bh0"))))
        ;; A snippet here would cause a build failure because of timestamps
        ;; reset.  See https://bugs.gnu.org/26734.
     (inputs
      `(("0ad-data" ,0ad-data)
        ("curl" ,curl)
        ("enet" ,enet)
+       ("fmt" ,fmt)
        ("gloox" ,gloox)
-       ("icu4c" ,icu4c)
+       ("icu4c" ,icu4c-68)
+       ("libidn" ,libidn)
        ("libpng" ,libpng)
        ("libsodium" ,libsodium)
        ("libvorbis" ,libvorbis)
        ("libxcursor" ,libxcursor)
        ("libxml2" ,libxml2)
        ("miniupnpc" ,miniupnpc)
-       ("mozjs-38" ,mozjs-38)
+       ("mozjs" ,mozjs-78)
        ("openal" ,openal)
        ("sdl2" ,sdl2)
        ("wxwidgets" ,wxwidgets)
@@ -6648,6 +6653,7 @@ fight against their plot and save his fellow rabbits from slavery.")
     (native-inputs
      `(("boost" ,boost)
        ("cmake" ,cmake-minimal)
+       ("cxxtest" ,cxxtest)
        ("mesa" ,mesa)
        ("pkg-config" ,pkg-config)
        ("python-2" ,python-2)))
@@ -6656,18 +6662,25 @@ fight against their plot and save his fellow rabbits from slavery.")
      `(#:make-flags '("config=release" "verbose=1" "-C" "build/workspaces/gcc")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'delete-bundles
+         (add-after 'unpack 'patch-/Users/wfg-references
            (lambda _
-             (delete-file-recursively "libraries/source/spidermonkey")
+             (for-each
+              (lambda (file)
+                (substitute* file
+                  (("\\/Users\\/wfg\\/Jenkins\\/workspace\\/macOS-all-bundles\\/source\\/")
+                   "")))
+              (find-files "source" "\\.cpp"))
              #t))
-         (add-after 'unpack 'fix-x11-includes
-           (lambda _
-             (substitute* "source/lib/sysdep/os/unix/x/x.cpp"
-               (("<Xlib.h>") "<X11/Xlib.h>"))
-             (substitute* "source/lib/sysdep/os/unix/x/x.cpp"
-               (("<Xatom.h>") "<X11/Xatom.h>"))
-             (substitute* "source/lib/sysdep/os/unix/x/x.cpp"
-               (("<Xcursor/Xcursor.h>") "<X11/Xcursor/Xcursor.h>"))
+         (add-after 'unpack 'delete-bundles
+           (lambda* (#:key inputs #:allow-other-keys)
+             (chdir "..")
+             (delete-file-recursively "libraries/source/spidermonkey")
+             (delete-file-recursively "libraries/source/cxxtest-4.4")
+             (substitute* "build/premake/premake5.lua"
+               (("rootdir\\.\\.\"\\/libraries\\/source\\/cxxtest-4.4\\/bin\\/cxxtestgen\"")
+                (string-append "\"" (assoc-ref inputs "cxxtest")
+                               "/bin/cxxtestgen"
+                               "\"")))
              #t))
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -6682,7 +6695,7 @@ fight against their plot and save his fellow rabbits from slavery.")
                          (string-append "--libdir=" lib)
                          (string-append "--datadir=" data)
                          ;; TODO: "--with-system-nvtt"
-                         "--with-system-mozjs38")))))
+                         "--with-system-mozjs")))))
          (delete 'check)
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -6714,9 +6727,10 @@ fight against their plot and save his fellow rabbits from slavery.")
                  (install-file "0ad.png" pixmaps))
                #t)))
          (add-after 'install 'check
-           (lambda _
-             (with-directory-excursion "system"
-               (invoke "./test")))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (with-directory-excursion "system"
+                 (invoke "./test"))))))))
     (home-page "https://play0ad.com")
     (synopsis "3D real-time strategy game of ancient warfare")
     (description "0 A.D. is a real-time strategy (RTS) game of ancient
