Skip to content

Releases: vyanhursky/DefJamFFNY-recomp

Def Jam: Fight for NY — Recompiled v0.9.1

Choose a tag to compare

@github-actions github-actions released this 15 Oct 14:17

v0.9.1 — Reuse freed memory across matches

This bugfix release enables heap reclamation by default to prevent the guest
contiguous-memory arena from filling up during long sessions. The exhausted
arena was observed alongside upside-down menu icons, incorrect fight callouts
and persistent white UI rectangles in issue #26.

Changes

  • Set RECOMP_HEAP_RECLAIM=1 as a runtime default on Windows, Linux/Steam Deck
    and macOS, allowing freed guest-memory blocks to be reused across matches.
  • Add [CONTIG] high-water N MiB of 64 (reclaim on|off) diagnostics in 4 MiB
    steps to make arena growth visible in gameplay logs.
  • The scene-purge proposal from PR #27 is excluded; the fix is
    PR #28.

Validation and monitoring

The Windows reporter's experimental-build log confirms reclamation enabled,
with zero arena-exhaustion messages during roughly 52 minutes of logged
rendering and at least 20 match starts. The highest reported watermark is
52 MiB, with no 56 MiB threshold reached in the 64 MiB arena. Earlier affected
logs contained 1,469 exhaustion messages across three sessions, beginning after
7–8 match starts. The reporter reports no errors so far; the owner also reports
a successful Steam Deck play-test with the change. All 25 PR CI checks passed.

The Windows comparison spans an earlier version and a reinstall, so it is not
a controlled same-version A/B. No new native macOS gameplay test or controlled
performance benchmark was performed for this fix. We will continue monitoring
issue #26 for recurring corruption or new regressions.

Updating

Run the setup for your platform and update the existing installation. The
setup builds the game locally from your own dump and preserves player data.

For diagnosis, RECOMP_NO_HEAP_RECLAIM=1 suppresses the new default. Also remove
any explicitly supplied RECOMP_HEAP_RECLAIM value for this comparison: the
runtime enables reclamation whenever that variable exists, even if it is 0.
RECOMP_NO_DEFAULTS=1 continues to skip all runtime defaults.

Def Jam: Fight for NY — Recompiled v0.9.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 01:33
c4bcda6

v0.9.0 — Widescreen (beta)

The game can now be played in widescreen. Pick a widescreen Picture shape on the launcher's
Display page and the 3D view gets wider (more of the arena and crowd at the sides, the same
vertical view), while menus, the fight HUD and movies keep their shape. It is off by default and
marked beta: this release is for play-testing it, on Windows first and now on Linux, the Steam
Deck and macOS.

How to try it

  1. Start the game; on the launcher's Display page set Picture shape to
    widescreen (auto) (your screen's shape: 16:9 or 16:10), or 16:9 / 16:10. 21:9 and
    32:9 are there too, marked experimental.
  2. Under it, optionally: Fight HUD position (screen edges, or a centred 16:9 box on very wide
    screens), Story cutscenes (authored keeps the game's own 16:9 framing, fill always fills
    the screen), Beside 4:3 pictures (blur or black) and Widest field of view.
  3. Press Play. Widescreen starts with the game: changing it later in the F1 overlay needs a
    restart. 4:3 and stretch work as before.

What changes in widescreen

  • 3D (fights, Free For All, Story hub, shops, cutscenes): Hor+, a wider horizontal view at the
    same vertical view. The fight camera behaves as before; it just sees more at the sides.
  • Story cutscenes: the game already framed them for 16:9 (a 640x360 letterbox at 4:3); in
    widescreen they fill a 16:9 screen with that framing, and get thin bars at 16:10.
  • Menus, loading posters and movies: centred at their 4:3 shape, clipped to their box.
    On Windows, movies, posters and 2D-only menus get a soft blurred extension at the sides
    (black turns it off); on Linux and macOS the sides are black for now.
  • Fight HUD: health bars, names and scores move to the screen corners (all four in a
    three- or four-fighter match); the timer and centred text stay in the middle.
  • 3D inside menus (the sketch artist's head and body, a created fighter's portrait on the
    versus poster, character previews) sits inside its panel.

How it works

The game's own 3D view is widened in game code (src/patches/widescreen.c: all 3D aspect comes
from one function, and the game's field of view is horizontal). The renderer draws into a wider
canvas, places each 2D batch (centred, anchored to an edge during fights, or stretched for
full-screen fades and tints), and fills the sides beside centred pictures (toolkit fork branch
defjam/widescreen). The research, the design and the full work-package list are in
docs/widescreen.

Validation and limits

  • Windows (D3D11): the owner's play-test at 16:9 (fights, Story mode with a created fighter,
    cutscenes, crib, shops, menus) and fixes from it: blurred sides over 3D scenes, torn tutorial
    prompts, auto taking the window's shape, the widescreen choices missing from the launcher, the
    sketch artist's model and the created fighter's poster portrait. Scripted checks at 16:9 and
    16:10 (one-on-one, Free For All, Story intro and cutscenes, crib, gym, Unlock Fighters, the
    character creator, a Story fight with a created fighter); boot soak 10/10 at 16:9. With
    widescreen off the quick regression is unchanged (golden frames identical).
  • Steam Deck (Linux, Vulkan): scripted runs on a Steam Deck (2026-10-12, on main with v0.7.3's
    performance fixes and the HD packs with a 2 GiB cache): a one-on-one fight, a four-fighter Free For All
    and a four-minute Terrordome match at 16:10, the Story intro at 16:9 and 16:10, and a fight with the
    launcher setting widescreen (auto) in full screen (it resolves to 16:10, swap chain 1280x800). No
    crashes, saves restored, a median of 60 frames per second (120 presents per 2 s) everywhere, GPU time
    about 3 ms of the 16.7 ms frame. With widescreen off the loading-screen, title and main-menu golden
    frames match. Not covered: pause and popups, shops, the Story hub and the rest of the hand
    play-test list. macOS (Vulkan/MoltenVK): see the Mac validation below. The blurred side fill is
    Windows-only so far (black sides on Vulkan).
  • Known: a one-pixel sliver of a slide-in element can show at the edge of the 4:3 box on two
    menus; 21:9 and 32:9 have not had a venue sweep (some arenas may show unfinished edges); Story
    cutscenes on screens wider than 16:9 widen instead of sitting in a 16:9 box; the pause menu and
    in-fight popups were not reached by the scripted checks.
  • Not in this release: AI-extended movie sides (a to-do after the trial, see
    08-fmv-ai-pipeline.md); changing the shape without a
    restart.

macOS validation

Installed the exact CI setup on Apple M1 Pro using only its bundled build
dependencies, then built the Mac correction with those same dependencies.
Scripted checks cover original/HD textures at 4:3 and 16:9, a 16:10 replay,
four-fighter HUD placement, Story intros at 16:9 and 16:10, and HD crib/gym
previews. All five capture variants match the 80-record Windows gameplay golden.

widescreen (auto) now accounts for a Mac screen's notch safe area, so a
notched 16:10 screen selects the fullscreen content shape. Explicit picture
shapes retain their behavior. The complete source suite passes 352 tests;
the full regression covers fights, combat/results, replay, Story intro/gym and
three successful soak boots. Corrected automatic fullscreen reaches combat at
16:10, and the launcher/F1 overlay render and close correctly. The raw full
regression retains known diagnostics; see the report below.

The strict audio underrun check also fails in the accepted pre-widescreen
Mac build (existing issue #11). The historical stream callback diagnostic appeared during an HD capture
and one off-mode crib boot; the symptom predates widescreen, and a subsequent
16:10 replay was clean. The crib was reached despite the diagnostic; its strict
failure is retained. Raw failures are retained. See the
Mac validation report for identities,
measurements, coverage and limits. The existing v0.8.0 setup-updater release
remains unchanged.

Def Jam: Fight for NY — Recompiled v0.8.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 04:37
f582cd1

v0.8.0 — Setup release selection and recoverable updates

The Windows, macOS and Steam Deck setup wizards can fetch stable GitHub releases,
select a compatible platform setup, and run that release's own installer engine.

Changes

  • Install, repair, clean-update and clean-rebuild from setup. Clean operations
    compile a fresh candidate from the verified installed dump without requiring
    the original disc image.
  • Preserve saves, profiles, settings, caches, mods and HD texture packs.
  • Verify downloaded setup checksums, provenance and payload inventory before
    handing off to the selected release's bundled Python and engine.
  • Recover interrupted activation through an owned journal covering the stable
    launcher, receipts and changed settings. Optional shortcuts reconcile after
    the core installation commits.
  • v0.8.0 is the first updater-capable release (U0), protocol/data schema 1.
    Downgrade is supported only between compatible updater-capable releases;
    v0.7.3 and earlier cannot be downgrade targets. Historical remote setups are
    available for fresh installation only; use their original setup for repair.

Validation and scope

Vlad confirmed testing complete and authorized merge/release on 2026-10-12.
PR #18's pre-release head passed all 25 hosted CI jobs, including the three
platform setup packages. Recorded Mac checks include 339 passing unit tests,
ten native synthetic installer/handoff/recovery cases, interactive wizard paths,
and a disposable owner-dump install and clean update preserving 120 files.
The detailed test ledger retains the limits of
that evidence and historical failures. Linux updater acceptance scope is Steam
Deck/SteamOS. macOS setup remains unsigned.

The release contains game-free setups, checksums and provenance. Players supply
and compile their own dump locally. No game executable or game data is shipped.

Def Jam: Fight for NY — Recompiled v0.7.3

Choose a tag to compare

@github-actions github-actions released this 12 Oct 22:52
6a985fc

v0.7.3 — Texture streaming and Steam Deck input

Smoother HD textures: the packs no longer stall the render thread when they load, and the
fight frame rate with the packs on is back near the packs-off rate on Windows. The Steam Deck
no longer sees each menu press twice.

Changes

  • HD textures stream in the background. Replacement PNGs are decoded and mipped on up to
    three low-priority worker threads, on Windows, Linux and macOS. The render thread only creates
    the texture and copies the finished mip chain in; until a replacement is ready the original
    texture is drawn. RECOMP_TEXTURE_SYNC=1 restores the old synchronous path. On the Steam Deck
    this cut the render-thread texture time from title to main menu from 4.9 s to 0.56 s, and the
    slowest single upload from 348 ms to 24 ms (scripted, packs on).
  • Texture identity on Windows. The game identifies each bound texture by a SHA-256 of its
    bytes. Windows read the clock in 15.6 ms steps, so the 8 ms re-check window expired on nearly
    every bind and each texture was re-read every frame. The clock is now monotonic and
    sub-millisecond, and each texture's re-check backs off: 8 ms while its bytes move, up to 64 ms
    once stable. A texture whose bytes change on three checks in a row is drawn with its original
    texture for up to 500 ms between checks.
  • Texture cache 2 GiB on every platform (was 512 MiB off Linux), so a four-fighter match keeps
    its replacements resident. Set [textures] cache_mb to change it.
  • Presentation pacing and colour upload on Linux and macOS: the frame pacer sleeps to within
    0.3 ms of the deadline instead of spinning, and linear A8R8G8B8 textures convert straight into
    the upload buffer.
  • Steam Deck double input (D100). Under Steam Input the physical Valve pad and Steam's
    virtual gamepad both reported each press. A physical Valve pad is ignored while a Steam virtual
    pad exists, at start-up and on hot-plug. A Steam pad moves up to the lowest free player when
    its player leaves; other controllers keep the player they were given.
  • Logging. RECOMP_TEXTURE_TRACE=1 logs [TEXPACK] every two seconds: replacements uploaded,
    source revalidations and full hashes. [VKPERF] lines show frame cost on the Vulkan renderer (Linux and
    macOS), and [XA2] lines show when the sound device runs dry.

Measured

Windows, Release build, faithful-hd pack, one scripted fight (regress.py --only fight),
presents per 2 seconds (floor 110):

Build Traced Untraced
Before this release (per-bind identity check) 94 (failed) 98 (failed)
v0.7.3 120, minimum 95 120, minimum 106

Packs off, the quick regression (unit tests, three golden frames, one fight) passes 5 of 5.
The Steam Deck figures are scripted measurements on the Deck, recorded in PR #20 (not a play-test).

Known limits

  • The Story tutorial fight on the Steam Deck averaged about 45 fps and was not reproduced by
    script; FFA holds 58 to 60 fps. The new [TEXPACK] and [VKPERF] lines are there to show where
    those frames go.
  • Audio gaps were not verified by ear.
  • The Windows numbers above are from the scripted harness; no owner play-test on Windows has been
    recorded for this release.
  • The Steam move-up for a Steam pad was not run on a Steam Deck with Steam Input; the automated
    input fixture covers the other controllers.
  • The identity cache still costs a SHA-256 for each texture whose bytes change. The next step
    would be write-tracking on guest memory, which is not in this release.

Def Jam: Fight for NY — Recompiled v0.7.2

Choose a tag to compare

@github-actions github-actions released this 12 Oct 04:34
ce4d4ab

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.

Def Jam: Fight for NY — Recompiled v0.7.1

Choose a tag to compare

@github-actions github-actions released this 11 Oct 16:39
7292f2f

v0.7.1 — Icons and Steam artwork

Every executable, app bundle, launcher and shortcut now carries the shield from the game's own
menus, and the Linux setup gives the game's Steam shortcut library artwork on the Steam Deck.
No gameplay or runtime code changes. This release follows the Linux release (v0.7.0): it builds
on the Linux setup and its Steam shortcut.

Changes

  • Icons everywhere. The shield, rendered from the in-game texture at eight times its size
    with its edge re-sharpened, on a dark plate with the glow of the title screen's skyline:
    • Windows: DefJamSetup.exe, DefJamLauncher.exe and the game, each with file properties
      (description, version, product), the Start-menu and desktop shortcuts, and the icons of the
      wizard, launcher and game windows.
    • macOS: Def Jam Setup.app, Def Jam Recompiled.app (and the Desktop alias and
      ~/Applications copy of it), and the Dock icon while the game runs.
    • Linux: the application-menu and desktop entries, the setup wizard window, and the game's
      window and taskbar icon.
  • Steam artwork for the Linux setup. With Add to Steam (or --steam-shortcut), setup
    reads the shortcut's id back from Steam and places a portrait capsule (the official cover with
    the wordmark redrawn crisply on it), a wide capsule, a hero and a logo in the shortcut's
    grid folder. The title carries a FAN RECOMP tag so the port reads as a fan project; the
    plain, tag-less set stays in branding/ for future editing. It never replaces artwork you chose, uninstalling removes only what it placed,
    and --steam-art places it later for a shortcut you added by hand. Restart Steam or switch to
    Gaming Mode to see it.
  • branding/. All of it, plus a GitHub social preview image (plain and FAN RECOMP), is in the repository with
    scripts/make-branding.py, which rebuilds the set from its masters. CI pins every file by
    checksum (D98); see branding/README.md.

The artwork

The artwork is the game's own: the shield, the title wordmark and the title-screen scene are
rendered from its textures, and the portrait starts from the official cover (a scan without its
logo, from a community upload on SteamGridDB). It remains the property of its rights holders;
the MIT licence does not cover it. The owner approved committing exactly these files.

Validation and limits

  • Windows: the setup was built from this tree and its asset check passed (the payload
    carries branding/); a full silent install from an XISO compiled the game, and the game exe,
    the installed launcher and the setup exe each carry the shield and their file properties
    (read back through the shell's icon and version calls); a running game window has its class
    icon registered; a copy of the shortcut script, pointed at a temporary folder, made shortcuts
    whose icon is the launcher's. The install check ran on a setup built before the version number moved
    to 0.7.1 and before the FAN RECOMP files were added (neither touches the game); the final 0.7.1 setup was
    then built from the pushed tree and passed the game-free asset check with all of branding/ in its payload.
  • Linux logic: 22 unit tests pass on Ubuntu (WSL), including the binary shortcut-file
    reader, the artwork placement (appid naming, the player's own art kept, uninstall) and the
    desktop entry's icon.
  • Not checked: macOS (the bundle icon keys and the .icns are written but no Mac has run
    them); a Steam Deck and Steam itself (the grid file names and the
    appid read from shortcuts.vdf follow Steam's documented layout but were not seen working);
    the icon in the Dock and on Wayland taskbars; Windows icon caches may show an old icon until
    they refresh.
  • The sources are 640x480-era art. The renders are as sharp as that allows; the backdrop is
    graded, not invented, and the hero extends the skyline past the scene.
  • The setup scripts and the Linux launcher have no icon of their own (a shell script cannot
    carry one); the setup tarball's DefJamSetup.sh shows a generic icon in a file manager.

Def Jam: Fight for NY — Recompiled v0.7.0

Choose a tag to compare

@github-actions github-actions released this 11 Oct 04:55
3754d6d

v0.7.0 — Linux and the Steam Deck

This release makes x86-64 Linux, and the Steam Deck in particular, a native platform alongside
Windows and macOS, with a setup that builds and installs the game for you. It runs natively, not
through Proton: Vulkan on the Deck's GPU, PipeWire sound and the Deck's own controls as a pad. The
launcher and F1 overlay of v0.6.2 are there too. Windows and macOS behave as in v0.6.2. No precompiled
game, dump or generated guest code is distributed: setup compiles the game on your computer from your
own supported USA Xbox dump.

Changes

  • Linux setup. DefJamSetup-0.7.0-linux-x64.tar.gz: unpack it and open DefJamSetup.sh (on the
    Steam Deck, in Desktop Mode, double-click it and choose Execute). Same steps as the Windows and macOS
    wizards (your ISO, XISO or extracted dump, an install and a data folder, shortcuts), plus Add to
    Steam
    so the game starts from Gaming Mode. It brings its own Python and needs nothing else of yours.
    On a computer without a compiler, such as the Deck, it builds in a container pinned to SteamOS 3.8's
    library versions. The container is fetched once, about 1 GB, so the first install needs an internet
    connection, and it then builds offline. The game runs on the system's own SDL3, Vulkan and shaderc. A
    first install on the Deck takes about five minutes; an update about two. --silent, --uninstall
    and the exit codes are as on the other platforms (guide).
  • Native Linux. Fixes found by the first Linux runs, in the toolkit (fork branch defjam/linux-v0.6.1,
    24724b5): the guest's 4 GB address window is reserved whole; the MMIO decoder handles the ALU forms
    the USB interrupt handler uses; guest paths match files whatever their case, as on the console;
    the audio and timer clocks no longer wrap every 18 seconds, and the audio deadline no longer runs
    ahead after a pause; textures are converted in ordinary memory instead of write-combined staging memory
    (movies went from 10 to 30 frames a second, and boot soaks from 0 of 10 to 10 of 10). In the game:
    dladdr builds, and test runs without a window can be stopped with Ctrl+C.
  • Vsync only at multiples of 60 Hz, as on Windows. The Deck OLED's 90 Hz panel and a 144 Hz monitor
    held the title to about 40 frames a second with vsync on; the game now paces itself there. The log's
    [HOST] display refresh line says what was found.
  • Building by hand on the Deck. The guide builds in a podman image pinned to SteamOS's libraries:
    a current Arch Linux container links Dear ImGui's maths against glibc 2.43, which SteamOS 3.8 does not
    have (guide).
  • CI builds and checks the Linux setup on every change, and the release attaches it with its SHA-256
    and provenance, like the other two setups (D96).

Try it

Windows and macOS: update through your setup as for any release. Linux and Steam Deck: download the
tarball from this release and follow Linux setup. The setups are
unsigned.

Validation and limits

  • Steam Deck OLED, SteamOS 3.8: install, update, repair and uninstall through the setup; the installed
    game played by Vlad ("looks good"). The regression run on the Deck: --quick 5 of 5, launcher and
    overlay checks 2 of 2, boot soak 3 of 3, and 12 of the 14 checks of the full run (combat and versus fail
    only on a few audio-queue underruns).
  • Vlad's full regressions on Windows and macOS of this release's code found no regressions.
  • A little audio clipping or distortion on the Deck (#11).
  • On displays that are not at a multiple of 60 Hz (75, 90, 100, 144 Hz) the picture can tear, since the
    game paces itself without vsync.
  • HD textures are not offered by the Linux setup yet.
  • Not tried: a desktop Linux distribution with its own compiler (--toolchain host), the wizard
    driven by hand from start to finish, the Steam shortcut started from
    Gaming Mode, Proton.

Def Jam: Fight for NY — Recompiled v0.6.2

Choose a tag to compare

@github-actions github-actions released this 10 Oct 17:40
25c11f1

v0.6.2 — the launcher and in-game overlay on macOS

This release brings the start-up launcher and the F1 settings overlay, which Windows has had since
v0.4.0, to macOS on Apple Silicon. It is the same screen on both: display, texture, controller,
pad-button and keyboard settings, saved as you change them. The Windows game is unchanged. No
precompiled game, dump or generated guest code is distributed: setup compiles the game on your Mac
from your own supported USA Xbox dump.

Changes

  • The launcher. A window appears every time the game starts, before the game's own window, with
    the settings and Play and Quit buttons. Settings that are read only at start-up (render scale,
    who plays, how many controllers, the pad backend) apply to that very launch. Tick Skip the launcher
    at start
    to go straight in; hold Shift while opening Def Jam Recompiled.app to see it again, or
    open "Def Jam Recompiled.app" --args --launcher (--no-launcher skips it for one start).
    Closing it with the red button or Cmd+Q quits without starting the game. It is drawn through Metal by
    SDL's renderer and is sharp on a Retina display.
  • The overlay. F1 (or the pad's guide button, or both stick clicks held for half a second) opens the
    settings over the picture while the game keeps running with every input held at rest; Esc, the pad's B
    or the same key closes it. The pointer shows while it is open, also in full screen. On a Mac keyboard
    F1 is often the brightness key, so use fn+F1 or choose another key in the General page.
    It is drawn by the toolkit's Vulkan present step, after the picture has been scaled into the window,
    so it is never in a test capture.
  • Every page works with mouse, keyboard and pad. Learning a key or a pad button for a binding, the live
    view of each pad, the rumble test, and Show settings.ini in Finder are all there.
  • Setup. The macOS setup now carries the Dear ImGui source (pinned by hash) and builds it offline with
    the game. Def Jam Recompiled.app hands the two launcher options on to the game and nothing else.
  • Toolkit. d3d8_vk_set_overlay in the Vulkan backend (defjam/macos-launcher on the fork): a render pass
    on the window's image after the blit, opened only on frames where the host asks for it. A host that sets
    no overlay is unchanged.

Try it

Update through the macOS setup as for any release (the setup is unsigned: macOS blocks it the first
time; choose Done, then System Settings → Privacy & Security → Open Anyway). Start the game as usual.

Validation and limits

  • Checked on arm64 macOS 26 by scripted runs, not by a person at the keyboard (the Mac's screen was locked
    during development): the launcher's rendered frame read back and looked at, tabs and checkboxes
    clicked, a changed setting found in settings.ini, Play continuing into the game and Quit leaving,
    --launcher and --no-launcher; the overlay opened by F1 through the real SDL event path, a tab clicked,
    an overlay key learned and saved, and opened and closed by a virtual gamepad; the window's picture
    read back with the overlay on it. The regression results are in the release record
    (PROGRESS.md, work log 2026-10-09).
  • Not run: a full session by hand with a real keyboard, trackpad and DualSense; Shift held at start through
    the app bundle; macOS before 26; Intel Macs; the setup packaged and installed from the dmg with this
    change (the packaging change is covered by the unit tests and the asset check only). The Linux build compiles
    from the same sources and has not been run.
  • Windows was not re-run for this release. The Windows launcher and overlay are expected to behave as
    in v0.6.1: their code (pc_ui.cpp) is shared and was only given platform guards around the Windows-specific
    calls (the lock, the clock, the fonts, the window type), and the Windows-only files are untouched. Windows CI
    does not build the game. A Windows build and a click through the launcher follow separately.
  • Changing the window width or height in the overlay resizes the window at once, as on Windows (a first test by hand found
    that the settings changed but the window did not; fixed before release).
  • Text boxes take typed characters, not input-method composition. Smooth (trackpad) scrolling in the overlay
    is not tuned.

Def Jam: Fight for NY — Recompiled v0.6.1

Choose a tag to compare

@github-actions github-actions released this 09 Oct 23:55
fd6817c

v0.6.1 — macOS setup and HD textures on macOS

This release adds a setup installer for Macs with Apple Silicon and draws the optional
HD texture packs through Vulkan on macOS. The Windows game is unchanged. No precompiled
game, dump or generated guest code is distributed: setup compiles the game on your Mac from
your own supported USA Xbox dump.

Changes

  • macOS setup (Apple Silicon). DefJamSetup-0.6.1-macos-arm64.dmg holds a native
    wizard with the Windows wizard's steps: your ISO/XISO or extracted dump, separate install
    and data folders, an unchecked HD texture option, a desktop-shortcut choice, Install /
    Repair, logs, Play and Cancel, plus silent mode (--silent, --uninstall, --hd-textures)
    with the same exit codes. It needs no Terminal, Homebrew, CMake or Python of your own and
    no internet connection. See the installer guide.
  • Command Line Tools. Apple's compiler cannot be bundled. If the Xcode Command Line
    Tools are missing, setup stops with exit 3 and links Apple's instructions.
  • A launcher app made on your Mac. Def Jam Recompiled.app takes the play lock, supplies
    the data folder, keeps the ten newest play logs in ~/Library/Logs/DefJamRecompiled and
    becomes the game; setup adds copies in ~/Applications and on the Desktop and removes
    exactly those on uninstall.
  • HD textures on macOS. The Vulkan renderer now keeps mip chains, honours the mip filter
    and uploads each level, and the pack loader runs on macOS and Linux (stb PNG decoding,
    the system SHA-256). Packs are the same files as on Windows. Without a launcher or overlay
    on macOS yet, turn them on or off with [textures] in settings.ini.
  • Bundled, pinned runtime. Python, CMake, Ninja, SDL3, shaderc and MoltenVK (linked
    directly, no Vulkan loader) ship in the payload, each pinned by SHA-256 or commit; the
    game build ignores /opt/homebrew and /usr/local. The toolkit no longer links OpenSSL
    (it never called it) or needs pkg-config.
  • HD generation fix. Parallel workers could write the same texture through one temporary
    file name and stop the run; each now writes through a name of its own.

Try it

Open the disk image and open Def Jam Setup. The setup is unsigned, so macOS blocks it
the first time: choose Done, then System Settings → Privacy & Security → scroll to
Security → Open Anyway, and confirm. You do this once.

Validation and limits

  • Checked on arm64 macOS 26 with /opt/homebrew and /usr/local made unreadable: a full
    silent install from an XISO (extract, analyze, lift, compile), the launcher starting the
    game with the receipt's data folder, a repair while the game runs refused (exit 5),
    shortcuts created and removed, and the installed build passing the title, menu and
    fight checks.
  • HD: the full 18,971-image pack (6,212,168,677 bytes, identical to the Windows build's)
    generates in about two and a half minutes, loads with 12-level mip chains, and the title,
    menu and a fight match the goldens with packs on, the fight holding a median of 120
    presents per two seconds. Frames were compared with packs on and off by eye.
  • Windows was not re-run for this release. The Windows setup and game are expected to
    behave as in v0.6.0, but this release changes shared code (the setup engine and packager,
    the asset checker, the HD corpus writer and the pack loader, whose Windows code was moved
    behind a small host-services block, not rewritten). Windows CI covers the unit tests, the
    setup build and the pack fixture; a real Windows setup run follows separately.
  • Not yet validated: a Mac with nothing installed (a clean user or virtual machine),
    macOS versions before 26, Gatekeeper's first-open prompt on a downloaded copy, a full
    setup run with the HD option from the wizard itself, and the first-time hitch when a
    texture is first shown on slower Macs.
  • Still to come on macOS: the launcher and overlay (v0.6.2). Linux has no installer.
  • Generated pack folders are named after the setup's HD scripts, so a setup that changes them
    makes new packs and leaves the old ones (about 6 GB each) in your data folder; delete the
    ones you no longer use from mods.
  • The Windows setup and game are as in v0.6.0 apart from the HD generation fix above.

Def Jam: Fight for NY — Recompiled v0.6.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 17:03
e3300dc

v0.6.0 — Optional faithful HD textures

This release adds Windows Direct3D 11 HD texture support and optional
Lanczos 4x generation in Setup. The textures are generated locally from your own
supported USA Xbox dump. The downloadable installer contains maintained source
and tools; it contains no game artwork, generated game code or game executable.

Install and play with HD textures

  1. Run DefJamSetup-0.6.0-windows-x64.exe and choose your dump, installation folder
    and separate data folder. Existing installations should use the same folders.
  2. Select Apply HD texture upscale during install (increases install time).
    This option starts unchecked; installation also works with original textures.
  3. Allow the local game build and CPU texture processing to finish. Select Play,
    use your shortcut, or open DefJamLauncher.exe in the installation folder.
  4. To return to original textures, open Textures in the launcher or F1 overlay,
    disable Use HD texture packs, and restart the game.

HD PNGs occupy 6.21 GB (5.79 GiB) for 18,971 unique static images. Reusable
previews, originals and metadata add about 0.65 GB. Setup checks for 15 GiB
additional working space
when HD is selected, beyond its normal build and dump
requirements. Upscaling took approximately four minutes on the development PC;
your CPU, storage and local compilation time determine installation duration.

Silent mode adds --hd-textures to the normal Setup arguments. Leaving this flag
off during an update preserves existing HD settings. Close the game before
repair/update. Older generated packs and caches remain in the data folder.

Changes

  • Content-addressed PNG and classic BC1/BC2/BC3 DDS replacement packs. Original
    texture dimensions, atlas coordinates, filtering and addressing remain intact.
  • Bounded cache with fallback to original textures and restart-based pack selection.
    PNG mips support opacity-aware or independent channel filtering.
  • Faithful Lanczos processing keeps colour and alpha separate, pads edges and
    spreads UI colour into transparent pixels where appropriate. No neural model
    or GPU dependency is required for Setup generation.
  • Local inventory, category/search gallery, RGB/alpha comparison, review flags
    and reproducible processing tools for later artwork passes.
  • Setup progress, resumable generation, verified pack assembly and final activation
    with preservation of unrelated settings and custom pack selections.

Scope and validation

Validation is recorded in the release validation record:
Release and Debug full game regressions (14 of 14 each), a packaged Setup run with
HD textures selected from a real dump (exit 0; the installed game loaded the
18,971-image packs), and hosted CI (Windows, macOS, Linux). Not exercised against a
real dump: Setup update, repair and cancel with HD, the unchecked-HD packaged run,
and cold/warm performance of the full pack.

HD replacement currently targets Windows Direct3D 11. macOS/Linux/Vulkan keep
their existing original-texture paths. Font outlines, HD movies and widescreen
remain follow-ups. One unsupported static encoding retains its original texture;
runtime transformations and unsupported/dynamic resources also fall back.
The owner accepted the full static Lanczos gallery; another customization/fighter
artwork pass can be revisited later.

See HD texture usage, Setup guide and
processing/review workflow. GitHub source archives omit
the toolkit submodule; manual builds require a recursive clone of v0.6.0.