github vyanhursky/DefJamFFNY-recomp v0.7.2
Def Jam: Fight for NY — Recompiled v0.7.2

latest releases: v0.10.1, v0.10.0, v0.9.3...
6 days ago

v0.7.2 — HD textures in the Linux setup

The Linux setup (the Steam Deck included) now offers Apply HD texture upscale during install,
as the Windows and macOS setups do, and the HD packs now run at full speed on Linux: on a Steam
Deck a fight with the packs went from 25 to 60 frames a second.

Changes

  • Linux setup: the HD option. A checkbox in the wizard, unchecked by default (with the note
    "Adds about 6.2 GB; needs extra working space. No GPU needed."), and --hd-textures for
    DefJamSetup.sh --silent. After building the game, setup makes the Lanczos 4x packs on the CPU,
    verifies them and turns them on for the first launch; turn them off or on later on the
    launcher's or F1 overlay's Textures page. On a Steam Deck an install with the option takes
    about 15 minutes. Setup asks for 15 GiB of extra free space while it works. Uninstalling keeps
    the packs with the rest of your data.
  • Texture packs on Linux, faster (toolkit defjam/linux-hd-sha, pinned at 2992bd8). With
    the packs, the game identifies each texture it binds by a SHA-256 of its bytes, refreshed every
    8 ms. On Linux that used plain C rounds, and before each one parsed /proc/self/maps to check
    the bytes were readable; on a Deck that held a fight to 25 fps. Now:
    • the SHA-256 uses the CPU's SHA instructions where present (x86 Linux; Windows and macOS
      already used their system's accelerated SHA-256);
    • the readability check reads one byte of each page through process_vm_readv (the parse stays
      as a fallback where the call is refused);
    • a cheap 64-bit check over the same bytes runs first, and the SHA-256 runs again only when it
      changes. This part is shared code and also runs on Windows and macOS; the identity, pack
      names and lookup are unchanged, and the toolkit fixture (run on Windows by CI) covers it.
  • The Linux payload carries the manylinux Pillow 12.3.0 and NumPy 2.5.2 wheels the upscaler
    needs, pinned by SHA-256 in setup/dependencies-linux.json, and the asset check imports both and
    runs build-hd-pack.py --help from the bundled Python.
  • Linux setup: no second Steam shortcut. Running setup again with Add to Steam (a repair
    or an update) asked Steam for another shortcut to the same launcher, so the library showed the game
    twice, the second without artwork. Setup now looks for the launcher in Steam's shortcut file first
    and only places the artwork when it is already there.
  • scripts/hd-pack-digest.py prints one digest of a set of packs' decoded pixels, so packs made
    on different platforms can be compared when their PNG files differ only in compression.
  • Regression routes: fight, Free For All and versus press on the main menu once its music
    starts, not at a fixed time after the screen's first call, which the menu's art loading could
    outlast.
  • Docs: the Linux sections of the setup guide, the HD guide, the build guide and the Linux
    "READ ME FIRST" (which also no longer says the launcher and overlay are missing on Linux).

Validation and limits

  • Steam Deck OLED, SteamOS 3.8: the previous install was removed (setup's --uninstall, the Steam
    shortcut, the folders), then a fresh silent install from an XISO with --hd-textures --steam-shortcut
    took 14 min 48 s, of which the upscale was about 9 min 40 s on the Deck's CPU (the development PC
    takes about four minutes). It made the full set (18,971 images), enabled both packs in settings.ini,
    added the Steam shortcut and placed its four artwork files. The wizard shows the new checkbox.
  • Frame rates on the Deck (regress.py --only fight,ffa, median presents per 2 s; 120 is 60 fps):
    packs off, fight 120 and Free For All 120. Packs on, before the toolkit change, fight 50 (25 fps);
    after it, fight 120 and Free For All 113 (both pass). Profiles (perf) show no texture-pack code
    near the top any more; a four-fighter match with 4x textures is the one case still a little under
    60 fps, and what remains is the renderer's own work.
  • First load of a screen with packs on: the game decodes a screen's HD textures when they are
    first drawn (the main menu's include 2048x2048 PNGs), so the main menu takes about 3 s to respond
    on a Deck. A press during that time is lost.
  • The files differ in size from the Windows and macOS packs: 6,569,283,340 bytes against
    6,212,168,677, the same 18,971 names. The recipe is the same (Pillow 12.3.0, PNG compression 3), and
    the difference is expected from the zlib build bundled in Pillow's Linux wheel, which compresses
    differently. The pixels have not yet been compared with a Windows or macOS pack: run
    scripts/hd-pack-digest.py on one; the Linux pixel digest is
    14d09aa313ef713940f620abfc663ab078a181a0a5c750c70c4eaa6c85a9de7e.
  • Disk: about 6.6 GB of packs plus about 0.8 GB of reusable work files in the data folder; on a 64 GB
    Deck, choose a data location with room (a microSD card works; on exFAT setup copies instead of
    linking, which takes longer).
  • Windows: Vlad's Windows regressions of this release are all green (2026-10-11).
  • macOS is untested in this release: the shared texture-pack change (the cheap re-check) has
    not been run on a Mac; CI builds it and passes the texture-pack fixture on macOS, but no game
    run or regression. Report anything odd with HD packs on a Mac.
  • Not checked: the HD option on a desktop Linux distribution with its own
    toolchain; a person playing with the packs in handheld and docked mode.

Don't miss a new DefJamFFNY-recomp release

NewReleases is sending notifications on new releases.