Skip to content

Releases: blocker-3/HWDER

HWDER v0.3.5

Choose a tag to compare

@github-actions github-actions released this 01 Nov 22:58

What's new in v0.3.5

  • Linux Setup explains a damaged release instead of stopping at version.txt (reported in #8). version.txt is the last file in the tarball and the last one Setup checks, so an unpack or download that did not finish, or a release unpacked over an older HWDER folder, failed there. When release.json's version and commit reproduce the expected version.txt, Setup now rewrites it and continues. Otherwise the error names the file, the folder checked, what it found and the expected version, and says to unpack into a new, empty folder. README-LINUX now says to use a new folder for each version. HWDER Setup.exe is unchanged (Setup 1.0.0, the same file as in v0.3.4).

Full history: CHANGELOG.md.


Draft built by GitHub Actions. SHA-256 of each download (also in SHA256SUMS):

13e1ba0dcd73f0b42f41586397082c4356bf1314ca1ecd8d2d0b092ba95f0adb  HWDER-setup-v0.3.5.zip
ddd20149944559ff737e2e6ed6a430c899636974ee363d2b6803985c39b01934  HWDER-linux-x86_64-v0.3.5.tar.gz

If your antivirus flags HWDER Setup.exe, see docs/antivirus.md.

HWDER v0.3.4

Choose a tag to compare

@github-actions github-actions released this 01 Nov 22:44

What's new in v0.3.4

  • GTX 10-series graphics cards can start the game (reported in #7 and #2). HWDER asked the driver for a fixed list of Vulkan features, including 16-bit float shader support, which GTX 10-series (Pascal) drivers do not offer, so the game stopped at startup with "did not accept the features HWDER needs (error -8)". HWDER now asks the card what it supports, requires only what it really uses (timeline semaphores and dynamic rendering) and turns the rest on where available. If a card lacks a required feature, the message names it instead of claiming Vulkan 1.2 is missing.
  • Intel UHD 620 crash after Legend Mode's first movie worked around (reported in #6). The Intel driver crashed in the renderer's fast colour clear on every driver version tried. HWDER now clears with the regular path on Intel GPUs (and on any GPU when the target's format cannot be drawn to). Other GPUs keep the fast clear.
  • New debug switches for testing these: HWDER_MASK_FEATURES (treat named Vulkan features as missing) and HWDER_NO_FAST_CLEAR (use the regular clear on any GPU).
  • Fewer antivirus false positives for HWDER Setup.exe (Microsoft Defender flagged v0.3.3 as Trojan:Win32/Wacatac.B!ml). Setup now has an icon, an application manifest and version information, ships without debug symbols, and no longer starts PowerShell hidden or suspended: its console is visible, minimized. Setup is built reproducibly with its own version (1.0.0), so an unchanged Setup is the identical file in every release. Releases attach a SHA256SUMS file.

Full history: CHANGELOG.md.


Draft built by GitHub Actions. SHA-256 of each download (also in SHA256SUMS):

f1770a5059519b8dd231e8b1e1c8718f21d1ebf5602c5a67cf9322b9fc41f1e1  HWDER-setup-v0.3.4.zip
3c4bcbfca9fc501383fcff58a666898a6250e897f930ff9753388eb3d6a18c3e  HWDER-linux-x86_64-v0.3.4.tar.gz

If your antivirus flags HWDER Setup.exe, see docs/antivirus.md.

HWDER v0.3.3 (pre-release)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Oct 22:07

This is a pre-release. It fixes Linux Setup on the Steam Deck and makes Linux build failures easier to report.
Everything from v0.3.2 is included (Japanese release support and "Try anyway", both still untested with Japanese
game files).

Fixes

  • Steam Deck: Setup's build stopped with "Could NOT find OpenSSL" (issue #1). The build looked for the system's
    OpenSSL for two test programs even though HWDER bundles its own. SteamOS does not include OpenSSL's developer files,
    so the build failed there. The release build now uses the bundled library throughout.
  • Linux Setup shows why a build failed. It showed CMake's "CMake Error" line but hid the reason under it. It now
    shows the reason and the last lines of build output, so a failure can be reported in one paste.
  • Linux Setup no longer says the build happens "the first time only": it also runs after each HWDER update.
  • The Linux release package retries a failed download instead of stopping.

Windows users on v0.3.2 lose nothing by skipping this one: the Windows game is unchanged.

HWDER v0.3.2

HWDER v0.3.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Oct 16:06

HWDER v0.3.2 (pre-release)

This is a pre-release. It adds support for the Japanese release of the game, which has not been tested with
real Japanese game files yet, and a "Try anyway" option for game versions HWDER does not recognise. It also
carries everything from v0.3.1, which was never published on its own: the Vulkan device fix for Windows, the Linux
link fix (not yet confirmed on an affected system), the version in the menus and the antivirus notes. If you just
want to play, v0.3.0 remains the last full release.

New in v0.3.2

  • Japanese release recognised (issue #3). Setup accepts the Japanese game (title 01002AB007FD2000). It builds
    the game if its code matches a version HWDER knows; otherwise Setup names the build (build ID and SHA-256) so it
    can be reported. The game asks for Japanese text with it. Saves use the same folder as the other releases.
    Untested: nobody has run it with Japanese game files yet, and a Japanese game update is not read. Please report
    what Setup says, and whether the game starts, on issue #3.
  • Try anyway (may crash). A Setup option (Windows: under Advanced; Linux: next to Prepare) that builds a game
    version HWDER does not recognise using the closest known version's layout. It only works if the code is laid out
    the same; otherwise the build or the game fails.

From v0.3.1

  • Windows: "Vulkan not available" on PCs with the OpenCL/OpenGL/Vulkan Compatibility Pack (issue #2). The pack
    adds Microsoft's Vulkan-on-Direct3D 12 layer as an extra device, which lacks an extension HWDER needs; it could be
    chosen over the real NVIDIA/AMD/Intel driver. HWDER now checks every device for the extensions it needs and
    prefers native drivers, then discrete GPUs, then Vulkan 1.3. When no device is usable, the error says so instead of
    claiming Vulkan is missing.
  • Linux: Setup's build failed at the final link with unsupported linker arg: --dependency-file=... when
    ld.lld was on the PATH (issue #1). Fixed, but not yet confirmed by someone who had the error.
  • Version in the menus. The startup menu and the F1 menu header show the HWDER version.
  • Links for bug reports, Releases and cloning point at blocker-3/HWDER, with credit to the original repository.
    Releases no longer carry separate .sha256 files: GitHub lists each asset's SHA-256.

Antivirus warnings

Some players saw a virus warning when downloading v0.3.0. An audit of the v0.3.0 release found nothing malicious:
both packages hold exactly the tagged source, HWDER Setup.exe is byte-identical to an independent build of that
source except for its link timestamp, the tools Setup downloads match the official files, and Microsoft Defender
reports no threats. Setup is still unsigned and starts PowerShell and downloads compilers, which heuristic scanners
can dislike. docs/antivirus.md explains what is flagged and why, and how to check your download against the
SHA-256 GitHub lists next to each file. If your antivirus flags HWDER, please report the product and the detection
name.

Install / upgrade

  • Windows: unzip HWDER-setup-v0.3.2.zip and open HWDER Setup.exe. On an existing install the main button
    says Update; saves and settings in %LOCALAPPDATA%\HWDER\play are kept.
  • Linux: extract HWDER-linux-x86_64-v0.3.2.tar.gz, run hwder-setup and choose Update over an existing
    install. Saves stay in ~/.local/share/HWDER/save.
  • You still need your own dump of the game and your prod.keys; nothing from the game ships with HWDER.

Known issues

Unchanged from v0.3.0: Linux is tested on a ROG Ally with Bazzite only, the first Linux audio report after start-up
can show the output running dry, and an Update spends 10-20 s on "Checking your game".

Linux, Mod Support, Game update 1.0.1 and performance improvements

Choose a tag to compare

@github-actions github-actions released this 28 Oct 14:50

HWDER v0.3.0

HWDER v0.3.0 adds a native Linux release: a Setup window (or a terminal setup) that builds the game from your own files on your machine, with Steam integration and no container. It was developed and tested on a ROG Ally running Bazzite, in Game Mode and on the desktop. Both platforms gain a mods folder (LayeredFS), and Setup now recognises an older install and offers an Update instead of starting the old game. The build tools Setup downloads are checked once and then shared, so updates no longer re-install or re-check them. A round of GPU-thread work keeps busy battles at 120 fps in 120 fps mode on the Ally.

Highlights

  • Linux release. Download HWDER-linux-x86_64-v0.3.0.tar.gz, extract it and run hwder-setup. The Setup window (or hwder-setup --cli in a terminal) checks your game, keys and update 1.0.1, downloads a pinned build toolchain (checked by SHA-256) and builds the game on your machine. It adds menu entries and can add the game to Steam, so it starts from Game Mode. No container, no extra packages: it needs only Python 3, which Bazzite, SteamOS, Fedora, Ubuntu and Arch include.
  • Mods folder. Files in mods are laid over the game's files (LayeredFS), on Windows and Linux. See the README.
  • Setup offers Update. Opening a newer Setup over an existing install shows Update, with the installed and the new version named above the button. Before, a newer Setup could keep starting the old game.
  • Faster Setup. The private build tools are checked against their published SHA-256 when downloaded, then only by a quick stamp. One copy is shared by every Setup you unpack, so an Update reuses it. Repair private tools re-checks everything on request.
  • Smoother busy battles. The renderer's GPU thread does much less work per draw (command recording on a worker thread, fast clears, cheaper caches, no periodic 20 ms hitch from the geometry cache). On the Ally, the busiest battle tested holds 119-120 fps in 120 fps mode. 120 fps mode no longer adds frames while the game runs at 30 fps (video cutscenes), and smooth zooms are blended instead of dropping the extra frame.
  • AMD/Mesa fix. On GPUs without the D24S8 depth format (AMD with Mesa 26 RADV), battles rendered no ground, walls or characters. Depth now falls back to D32S8. Thanks to drewb583, whose amd-fixes branch (1d78229) this fix was ported from.

Install / upgrade

  • Windows: unzip HWDER-setup-v0.3.0.zip anywhere and open HWDER Setup.exe. On an existing install the main button says Update: it rebuilds the game (a few minutes; the tools are reused). Saves and settings are kept in %LOCALAPPDATA%\HWDER\play (saves in play\save).
  • Linux: extract HWDER-linux-x86_64-v0.3.0.tar.gz and run hwder-setup (double-click it, or run it from a terminal). First install: about 15 minutes on a ROG Ally, including the toolchain download. Later versions: run the new hwder-setup and choose Update. Saves live in ~/.local/share/HWDER/save, mods in ~/.local/share/HWDER/mods. Your game, keys and update files are read where they are and never copied.
  • Nothing from the game ships with HWDER: you need your own dump of the game, your prod.keys and, optionally, update 1.0.1.

Details

Linux

  • Native Linux port of the runtime: guest memory and threads, file system and saves, NSP services, timing, SDL window and input, Vulkan surface, SDL audio and an FFmpeg H.264 decoder (d27f24e, da0ac6f, f5496b2, 32b9003, 3765ab7, 4560559, b878524).
  • Write watch on Linux with userfaultfd write-protect and PAGEMAP_SCAN (8187ec6).
  • Player release: Setup backend and Setup window, tarball packaging and a GitHub Actions job (0b2ef2e, b67888a). Builds use a pinned Zig toolchain targeting glibc 2.35 and prebuilt static SDL3, FFmpeg (H.264 only) and libcrypto (7d9b833, a09b0dd). Only the last good build is kept.
  • Setup window: system file picker; pointer offset under display scaling fixed (7850a67).
  • Add to Steam (dfd3269, c5efc65, 3ae4c2e, 25de4dd); game update 1.0.1 via --update (23a42aa, 61e3828).
  • Saves default to $XDG_DATA_HOME/HWDER/save (5ef750a).
  • Error dialogs as message boxes; crash report with a backtrace in hwder.log (a83c4a8).
  • Audio: the mixer stays locked to the output device and no longer pads with silence, which fixes buzzing, robotic sound on PipeWire (115e1bd).

Windows

  • A newer Setup shows Prepare/Update instead of Play (82e775f, aeda035).
  • The save root stays an absolute long path; pre-release builds made by Setup used a folder below the game folder (c111a0d). v0.2.2 was not affected.

Setup (both platforms)

  • Update detection by kit version (aeda035, 5a81d37).
  • Tools: verified once from the SHA-256-checked downloads, then a stamp; Repair private tools (beba881); one shared toolset for every kit folder, older installs adopted without re-hashing (0bc31d7); relative tool paths with .. (a5926da).
  • Release kit from one command and from GitHub Actions (97467ac); licence notices checked against the pinned archive (4c7d407).

Runtime and graphics

  • GPU thread: per-draw work, descriptor-set reuse, flat hash maps for geometry, texture-header and index caches, cache probes (7eae304, 006969b, 57f18b9, cfdc012, ddfed10, f3496cd).
  • Vulkan: work submitted on its own thread, in order (56b05b5); command buffers recorded on a worker thread (c216e45); presents queued only after their frame is submitted, fixing a GPU hang (77d769c, 34deaf1); fast colour clears (61f2661); D24S8 to D32S8 depth fallback (b19eab3).
  • Geometry cache swept in slices instead of a full rebuild every 300 frames (f207fc9, 3f32766).
  • Pipeline warm-up recipes kept across builds (e7bb3ff).
  • 120 fps mode: objects blended on their own thread (ffd800b); smooth zooms blended (1e4ad64); no extra frames at a 30 fps game tick (b32c538).
  • Guest draw path: SDK libc as host calls, register caching (561bf24); texture write watch queried once per guest submission (61c2571).
  • Mods folder (LayeredFS) laid over the game RomFS (6721630).
  • Controller: a pad family without a saved layout follows the button-label setting, so A/B match their labels (319fe25).

Tooling and tests

  • Linux autoplay harness with per-thread stats, GPU timing and a muted audio check that fails on the game's own dry-run or dropped-audio counters (cba01eb, af2ea14, 50db100, 115e1bd, 5931cfe, 081ad46).
  • Public link fixture follows the named hooks; managed build test checks the compile call (a5926da); debug-switch table sorted again, so run_synthetic.py runs end to end (c7b2a67).
  • README leads with what HWDER adds and a Setup quickstart; mods listed (797058f, 5511a78).

Known issues

  • Linux is tested on a ROG Ally (Z1 Extreme, RADV, Mesa 26) running Bazzite only. Other distributions and GPUs should work (glibc 2.35 or newer, Vulkan 1.3, an AVX2 CPU) but are untested; SteamOS is untested.
  • On Linux the first audio report after start-up can show the output running dry while the device starts; it settles within seconds.
  • An Update spends 10-20 s on "Checking your game", because Setup hashes the whole game file to confirm it is unchanged. Setup's small private Python is also checked on every run.

SHA-256:
c84a851e038d6135d70de4ebead08c36f6cd011630f000312b41450a942e6bcb HWDER-linux-x86_64-v0.3.0.tar.gz
96fe3f83fcedcd20013cd52558338f50199e08091b97aa98252c53686c0712a5 HWDER-setup-v0.3.0.zip

Smoother 120 fps in big battles, support for game update 1.0.1, and an easier way to launch the game from your desktop or Steam.

Choose a tag to compare

@blocker-3 blocker-3 released this 24 Oct 13:18

Install

Windows 10/11 x64. Download HWDER-setup-.zip, extract it into a folder you keep, and open HWDER Setup.exe. You need the same files as for v0.2.0: your own game dump (.nsp) and prod.keys.

Highlights

  • Steady 120 fps in big battles. On the busiest stages 120 fps mode used to drop to about 73-85 fps. It now holds 120, and the normal 60 fps mode holds an exact 60.
  • Game update 1.0.1. Add the update in Setup's new Game update field (.nsp or .nsz). The base game on its own still works.
  • Desktop shortcut and Add to Steam. Both are on Setup's main screen. Add to Steam closes and reopens Steam for you, and adds the game as Hyrule Warriors: Definitive Edition with box art.

What made 120 fps steady

Crowded battles were limited by the one thread that turns the game's graphics commands into Vulkan work, not by your CPU or graphics card.

  • That thread now does far less work per frame (about 12.5 ms down to 8 ms): vertex and index data that has not changed stays on the GPU, and memory changes are checked in batches.
  • The extra 120 fps frame returns the game's screen buffer right away instead of holding it.
  • Frame timing is tighter: sleeps end on time, and a slightly late frame is caught up instead of dropped.
  • On Intel hybrid CPUs the game runs on the performance cores. To use every core, set HWDER_ALL_CORES=1.

Also new

  • Game memory option in Settings > Gameplay: Switch 3.2 GB (default), 4 GB or 6 GB.
  • Save picker: choose your save file (zmha.bin) directly instead of a folder.
  • Clear startup errors: if your CPU lacks AVX2 or your graphics driver lacks Vulkan 1.2, the game now tells you instead of closing silently.
  • Ultrawide: menus and loading screens no longer stretch into the side bars.
  • Fix: pressing + at startup no longer crashes the game on the title screen.

Known issues

  • 120 fps: the text box in the Volga cutscene flashes, and Link can show a slight ghost at very high speed.
  • The black bars beside video cutscenes can show purple garbage.

Checksums

  • HWDER-setup-.zip SHA-256:

HWDER: 120 fps mode, controllers and local co-op, PC graphics options, setup GUI, stability and fixes

Choose a tag to compare

@blocker-3 blocker-3 released this 23 Oct 20:38

HWDER: 120 fps mode, controllers and local co-op, PC graphics options, setup GUI, stability and fixes

Draft for the push of local main (34873fc) to blocker-3/HWDER. Base: upstream sonsegajp/HWDER main 2a85d50 (v0.1.1). 220 commits, 161 files, +20,343 / -4,592. Every item below names the commit or merge it comes from.

Players: don't clone this repository. Download HWDER-setup-20261023.zip from the Releases page, extract it and open HWDER Setup.exe; the README's "Playing" section walks through Next, Install, Prepare and Play. The zip holds only the code-free setup exe and public source (no game code, keys or compilers).

Before: the recomp ran at 60 fps with a fixed window picture, keyboard plus basic pad input, no in-game menu, no startup checks, and needed a manual build with a hard-coded Visual Studio path.

After: an optional 120 fps mode, SDL3 controllers with remapping, rumble and two-player local co-op, an in-game menu with graphics options (FOV, FXAA, sharpening, contrast, bloom, ultrawide fill), a startup screen that checks the game files, a one-button Windows setup window, crash dumps and version stamps, and a number of rendering fixes.

Major items

  1. Guided Windows setup. HWDER Setup.exe walks a player through one button: Next (pick your own .nsp and prod.keys), Install (pinned build tools, SHA-256 checked, no admin rights), Prepare (builds the game from the player's own dump with a progress bar) and Play, with a desktop shortcut under Advanced. Ships as a setup zip with a player-first README; no Python, Visual Studio or repository clone needed. (14e957a, e0c7c0c, c76c34c, dbb20bb, 6b854a2)
  2. Local multiplayer (two-player co-op). The game's 2P mode works on PC: controllers take player slots in the order they connect, the keyboard joins the first free slot (or a fixed player, or off) in Settings > Input > Players, and each slot has its own remap, deadzones and rumble. The game's controller applet is answered with the connected player count, so its 2P mode starts, and the freeze on the warrior select controller screen is fixed. (a369d46, ce3aee5, 5860bb4, 1ae7e90, merged in 0adf36b)
  3. In-game UI. A tabbed HWDER menu (F1, Escape or hold View) that scales with the window and is fully usable with a controller: Display (120 fps, 60 Hz monitor switch, VSync, window size, borderless), Graphics (field of view, FXAA, sharpening, contrast, bloom, ultrawide fill, resolution, keep props), Input (remapping, deadzones, rumble, players), Audio and Gameplay (save folder), plus a startup screen that checks the game and keys. (1543470, c7fabb0, 4ef7f4c, 8c66fdb, 522b30a, e9668e0)
  4. 120 fps mode (Settings > Display > Frame rate > "120 fps (experimental)"). The game keeps its 60 logic steps per second; between two steps HWDER draws an extra frame with the camera, characters and objects blended halfway, presented at 120 Hz. Menus and loading screens stay at 60. Objects and bones are blended per whole block or not at all, which removed the jagged flashes. (03cc469, 875c35f, 1c88a71..5e677e4; research paths removed in eab5368)
  5. Controllers. SDL3 gamepads with remapping, deadzones, rumble and hot-plug; XInput fallback so a pad paired after launch works. A is the same button in HWDER's menus, the startup screen and gameplay, and new installs map face buttons by printed label. (63b2d43, 12c9f39, 66d46ed)
  6. Small stage props stay drawn in big battles (Graphics > "Keep props in big battles", on by default). Fences, rubble and other small scenery no longer vanish when a fight gets crowded. (4e96935)
  7. Stability, rendering fixes and faster starts. Present-race and index-range fixes, black-box fix, ultrawide fill and resize fixes, CPU texture write detection, Vulkan validation findings fixed, pipeline catalog and prewarm before the game starts, background cache persistence, crash minidumps, version stamp. (details below)
  8. Code structure. Named guest symbols and hook macros, the Vulkan renderer split into focused files, table-driven debug switches with a generated listing, and unit tests. (b92a493, 4dd73f2, 301f48e)
  9. Contrast Slider. Dramatic change to visuals by increasing the contrast higher than default on most monitors.

All details

120 fps / frame pacing

  • Game-drawn in-between frame per tick with a blended camera; 120 Hz release only while extra frames are drawn, skips the extra frame after a late tick; triple buffering under the mode (c909720, 4ece5df, a160707, merged in 03cc469).
  • Object and bone transforms blended in the in-between frame; ultrawide side bands no longer flash (852dbbb).
  • The 120 fps setting toggles only at frame boundaries (875c35f).
  • Whole-block blending: strict all-or-nothing per block (1c88a71), then relaxed pairing by block contents as the default (2578be0, 6be78bb, 78cd975, 1217aed, 5e677e4).
  • Rescaled render targets are recreated on next use, so queued 120 fps frames don't jump while resizing (9815003).
  • Widescreen: camera projections rebuild when the window aspect or FOV changes (d863fc8).
  • Removed the finished research paths: legacy Vulkan-level replay interpolation, camera-match mode, strict/legacy object modes, the frame probe and draw census, and their switches (d93c83d, merged in eab5368).
  • Settings honesty pass: the 60 Hz monitor switch is opt-in and restored on exit, resolution UI shows the real render size, hwder_settings.ini is versioned (v1 migrates to v2) (54fddad).

Input and co-op

  • SDL3 submodule (release-3.2.30, static, gamepads only); gamepads, rumble with preview, controller remapping in the Input tab, SDL-driven menu navigation; gyro camera mode dropped (1b2ba04, 1aea4e9, 4ef7f4c, 1ba51a9, 42bb63a).
  • XInput fallback while SDL has no controller open, so a pad paired after launch works without a restart (12c9f39).
  • Two-player local co-op (the game's 2P mode; the host side keeps four slots): controllers take player slots in connection order; keyboard slot in Settings > Input > Players (automatic / player N / off); per-slot remap, deadzones, View-hold and rumble (a369d46).
  • Input > Players offers the keyboard as Off, Automatic, Player 1 or Player 2 and lists two players; saved slots above 2 load as player 2 (b630068).
  • Controller applet is library applet 0x0C; it reads ControllerSupportArg, answers GetResult with the connected player count; the library-applet launchable event stays signaled, fixing the freeze on L3 at warrior select (ce3aee5, 5860bb4, 1ae7e90).
  • Menus confirm/back with the buttons bound to Switch A/B and the hints name them (cd38351); face buttons default to "by printed label" on first run only (3b1a9b7); the startup screen polls host input and accepts the same A/B (16b0b0f).

Graphics options and display

  • In-game menu: tabs, gamepad navigation, Escape / hold View to open, scales with the window, Segoe UI, gold theme (1543470, c7fabb0).
  • Graphics > Picture: field of view, FXAA, sharpening, contrast, bloom; unused depth of field / radial blur dropped (2edeee2, 1f1e387, f03dd17). Custom FOV is hidden while officer nameplates misalign (34c295f).
  • Fill ultrawide: widen the game camera to the window aspect, black side bands for movies and partial draws, preserved across queued presentations (3e304f2, 3769387, a453ab2).
  • Unlocked resolution fits 16:9 inside the window instead of stretching (08ab28a).
  • "Keep props in big battles": the game's docked crowd rule zeroes layer 1's draw distance above 60 counted characters; HWDER keeps it, with guards for the crowd-count pointer before a battle exists and for the distance scale (df6c056, fc650ac, ebc114f, 8d7d18d).
  • Configurable save folder on the startup screen and the menu's Gameplay tab (5e157ef); selected account save folders are recognized as save roots, fixing a duplicated leaf folder (8a21e70).

Rendering fixes and performance

  • Hold a presented buffer until its screen blit has read it; declare the present timeline before display init (ce6bf3f, 3ce919a).
  • Re-scan index ranges per submission; retry failed async pipelines once; reuse pending pipelines for synchronous draws (6cba553, 5cd1f83).
  • Render-target-sampling draws compile synchronously, fixing the black box (cbe8c0b).
  • CPU texture writes detected with write watch instead of timed re-hashing (acb38b2).
  • Vulkan validation: messages routed into hwder.log, start without the layer when it isn't installed, three findings fixed (present hazard, swapchain semaphore, sRGB view usage) (09c1059, 64721a5, 59713b8, 75659cd).
  • No double scaling of disabled-transform viewports; accurate nonconstant TEX offset counts (32122c3, 4b1117a).
  • Pipeline catalog: bounded warmup recipes with exact shader metadata, prewarm before guest startup, metadata-only catalogs with local game resolution, byte-unaligned NVN containers resolved, private history kept on partial imports (9013b31, 7ac4dbb, 95bafbc, cff149b, b20ef08, df950f1).
  • Cache persistence runs off the renderer thread with immutable snapshots (bc098c3, merged in 860684e).
  • The README and release notes tell players that a fresh install can hitch in the first minutes while pipelines compile, and that the saved pipeline_cache.bin / pipeline_warmup.bin are prebuilt on later launches until the HWDER version, GPU or driver changes (226a03e, 6b30a67).

Startup, setup and build

  • Clean clones build and boot: Visual Studio found with vswhere, entry seeds tracked, PLT0 discovered (805ca94).
  • Startup screen with game and key checks, file pickers and quick settings; unexpected title ID warns instead of blocking (39201b7, ab894db, 45c74c2).
  • First-run local build of the private game code, source setup kits, locked portable build modes, private generat...
Read more