⬇ Download for Windows
⬇ Download for Linux / Steam Deck
What's Changed
- Prevent Castle Town guard-house crashes with a larger render-target pool by @nathanaelries in #1202
- build: refuse a back end that would not load, and name the symbol by @notquiteog in #1200
- fix: preserve NUP member names during implicit reads by @klimovich008 in #1185
- Document AMD courtyard shadow and sky-block workaround by @nathanaelries in #1225
- Document how to start a new game with the keyboard by @bronze-ff in #1222
- fix(builder): stop when generated source cleanup fails by @monsterlag in #1218
- perf(fpx): keep the hardware result for FMUL/FMLA S when the flags are already set by @klimovich008 in #917
- Motion controls: gyro aiming from SDL pads, with sensitivity and inverts by @wyatt-poole in #1114
- Mix for 5.1 when the default output has 5.1 speakers by @janvitos in #1182
- vk: read a pipeline cache over 2 GB on Windows by @jarynclouatre in #1226
- Run a waited-for pipeline build at once when it is still queued by @duck-paradise in #1129
- fix(vk): no mirror is made inside a parallel replay's segment by @t0masz407 in #1184
- Preserve descriptor-array indices across compatible handle Phis by @klimovich008 in #1038
- fix(vulkan): preserve guest mip levels in partial clears by @Trycky64 in #1084
- Contain pipeline cache save allocation failures by @monsterlag in #1046
- Report finished audio buffers at the renderer update, so a speaker no longer goes silent by @janvitos in #1181
- fix(vulkan): release modules from rejected cache records by @Trycky64 in #1082
- fix(vk): Linux/Wayland: take an sRGB surface format for the swapchain (#679 rebased) by @metroid98 in #1086
- Builder: the ready page names both places when the build files are in a folder the player chose (rest of #623) by @amaralthalesalves in #1079
- NVIDIA DLSS, DLAA and Reflex (NGX + Vulkan, Linux and Windows, opt-in) by @hckrman101 in #841
- Show the middle 16:9 in the save picture on ultrawide by @janvitos in #1183
- perf(lift): one page mark per straight-line group of stores through a base register by @klimovich008 in #912
- fix(vk): Sharpness samples one picture pixel apart, RCAS-style, the same at any window size by @hckrman101 in #1256
- perf(vk): prepare the seed's compute programs first by @hckrman101 in #1277
- HD rumble on Switch Pro Controllers and Joy-Cons, through SDL's effect call by @hckrman101 in #1213
- perf: stream sampled profiles instead of loading every line by @JooaoPedro15 in #1094
- vk: inline the global-load helper in task and mesh stages (the floating trees, #994) by @blushOFF in #1334
- Add a controller-accessible Quit option to the Gameplay menu by @bronze-ff in #1255
- Audio output in the Insert menu: Auto, Stereo or 5.1 by @janvitos in #1240
- feat: Monitor's shape for screens narrower than 16:9 (4:3, 16:10, 5:4) by @nesrodzair in #1224
- menu: a Restart row in Gameplay, beside Quit by @bronze-ff in #1266
- fix(vulkan): bind only bytes accessed by buffer-image copies by @Trycky64 in #1083
- Clean up rejected mesh argument buffer initialization by @monsterlag in #1107
- feat(vk): frame generation Auto: a frame for each of the display's refreshes by @t0masz407 in #1121
- feat(vk): time a capture's GPU wait for its late pages apart in the log by @Nitnek in #1243
- Vulkan: pool imports take the game pools across a chunk's end whole, and commit their pages in one call by @jordanella in #1267
- fix(linux): the AppImage's parts list names the repository it is built in by @notquiteog in #1312
- perf(lift): the interrupt poll before each backward goto, calling a64_poll_cur() with no argument, so a loop's guest registers stay in host registers by @SadTransGirl in #1351
- vk: land #792's four mesh fallback fixes (the fallback's compute pipelines crashed NVIDIA's Pascal driver) by @CiLiBi18 in #1314
- fix(builder): copies from a read-only install stay writable by @t0masz407 in #1104
- Vulkan: the synchronous replay on the reserved core while it replays, and that core the fastest kind (follow-up to #1034) by @jordanella in #1158
- fix(builder): explain unavailable selected game input by @monsterlag in #1247
- fix: ignore half-float NaNs when locating flashes by @JooaoPedro15 in #1274
- Linux: the OoT debug tools (cheats, teleport, flight, free view) by @Joey-Magnus in #1292
- Raise the Motion sensitivity X limit to 600% by @nicholasgower in #1302
- Builder: stand in for the damaged textures of a 23.3 GB dump (Water Temple walls, #1002) by @Joey-Magnus in #1308
- docs: mods that make files bigger need the resource size table grown by @Joey-Magnus in #1325
- Keep Linux update extraction from writing through symlinks by @bronze-ff in #1327
- Report Windows display startup failures by @bronze-ff in #1333
- Reject symlinked Linux update staging folders by @monsterlag in #1343
- fix(sdl): keep the mouse captured when the pointer leaves the window by @ebarrera89 in #1251
- Send the held batch before waiting for a recording by @Odrannnn in #1276
- vk: RX_VK_MESH_NOCULL, the Steam Deck's task shader hang without leaving models out (#817) by @KewinBR in #1300
- fix(vk): DLSS at handheld Ultra Performance, and NGX paths on Linux by @hckrman101 in #1364
- test(dlss): four-byte UTF-8 case as a surrogate pair on Windows by @hckrman101 in #1365
- perf(vk): the retirement sweep's texture write-backs in batches, one submission and one wait each by @SadTransGirl in #840
- feat(vk): FXAA in the gameplay TAAU stand-in (edges on cards without the network) by @t0masz407 in #1115
- Stop the replay and exit when the GPU device is lost by @berelels in #1291
- Stick dead zone: an Insert menu row (stick_dead_zone), issue 752 by @bronze-ff in #1298
- vk: a mesh fallback program whose compute pipeline failed is not compiled again by @CiLiBi18 in #1317
- Native mouse look: turn the player camera from its own update, not a heap search by @itaskaev2 in #1356
- Stop the Builder when its working exefs cannot be cleared by @bronze-ff in #1363
- fix: harden what files, downloads and guest memory hand to host code by @hckrman101 in #1398
- fix: hardening part 2, guest sizes and indices in the OS layer and renderer by @hckrman101 in #1422
- vk: descriptor slotgen and sampler cache by @bibigurl-yum in #1330
- Motion controls: the full six-axis state as Eden builds it (follow-ups to #1114) by @wyatt-poole in #1237
- fix(vk): render BC targets through raw views, and stop leaving out OoT's noise volume pass by @Nitnek in #1338
- Dependabot: a 7-day cooldown before proposing a new action version by @Joey-Magnus in #1464
- Build: prepare the shaders at the end of the build, not at the first start by @klimovich008 in #1026
- fix(vk): restore Deku Tree floor web lighting on NVIDIA by @RoksTK in #1442
- Count the compiler a driver starts in the Windows memory gate by @corentinbonjour in #1089
- Keep the CPU's newer pages when a remade pool's mirror inherits a retired one by @duck-paradise in #1127
- Add 5120x1440 (32:9) Output resolution by @mockcomic in #1290
- fix(audio): align SDL device buffer to audio frame quantum and allow env override by @suarezoscar in #1329
- perf(os): wake WaitAny only for objects a multi-wait watches by @klimovich008 in #1353
- fix(vk): prepare again when the shader seed changes by @hckrman101 in #1387
- fix: measure free space on the NUP extraction volume by @JooaoPedro15 in #1391
- fix: support fractional profile skips on pipes by @JooaoPedro15 in #1392
- Free the space left by a failed NUP unpack by @bronze-ff in #1393
- fix: keep interrupted ROMFS copies out of the destination by @JooaoPedro15 in #1395
- Leave a mesh shader with no outputs instead of OpUnreachable by @berelels in #1407
- Reject save backups inside the folder being backed up by @bronze-ff in #1408
- fix: clean up failed NUP extraction members by @JooaoPedro15 in #1412
- fix: explain incomplete flash probe captures by @JooaoPedro15 in #1418
- fix(vk): release frame interpolation resources when setup fails by @Arkex-ai in #1445
- Release buffers after fallback initialization failure by @monsterlag in #1087
- fix(vulkan): bound configured frame waits to ring capacity by @monsterlag in #1113
- fix(linux): exit after unexpected display startup failure by @monsterlag in #1128
- fix(setup): preserve extractor failure diagnostics by @monsterlag in #1153
- docs: bring the docs in line with the code, and a reference of the testing switches by @itaskaev2 in #1262
- fix(vk): preserve the picture display aspect when resizing by @Arkex-ai in #1339
- Honor the Linux menu font face selected by Fontconfig by @bronze-ff in #1371
- docs: PR descriptions open with why, screenshots for visible changes, and an AGENTS.md by @hckrman101 in #1466
- vk: render target images reused from a pool, not made and destroyed for each of OoT's shifting transient targets by @DUDUYG in #1416
- vk: render targets' images in VMA blocks of their own; dead targets swept every 10 presents (follow-up to #1416) by @DUDUYG in #1436
- AMD FSR 3.1 upscaling and frame generation (split from #1335) by @notquiteog in #1386
- Native mouse: only the active player camera takes the mouse (slingshot aim, shops) by @Joey-Magnus in #1462
- fix: validate cache paths before building from extracted folders by @JooaoPedro15 in #1397
- fix(vk): recover from failed swapchain replacement by @Arkex-ai in #1403
- Lowering: LEA.HI with a constant base and no carry (40 vertex programs drawn again) by @Joey-Magnus in #1437
- vk: the pipeline notes file and the state list opened by the precompile, before play, not at the first new pipeline in play by @DUDUYG in #1417
- Warn at boot when memory and swap are below what the game needs by @berelels in #1406
- Stand-ins: check once per unpack, on --update too, skippable frames (follow-up to #1308) by @Joey-Magnus in #1373
- Linux: skip menu fonts that have no Latin letters by @berelels in #1405
- vk: share one mesh-fallback record/payload pair per recording thread by @nicholasgower in #1383
- Leave a stage library the driver has not compiled to a worker by @jarynclouatre in #1429
- Render UTF-8 names correctly in the Linux Insert menu by @bronze-ff in #1389
- feat(builder): the Hookshot Builder in Python, the same window without an executable of Hookshot's own by @NotRexed in #1483
- fix(build): quicker, steadier updates: compiled objects kept, a cut-short lift translated again, 45 GB needed by @NotRexed in #1484
- feat: smoother play, HDR10, a frame rate cap, Discord status, the Debug tab, sharper shadows by @NotRexed in #1485
- fix: harden what the security scan flagged (https-only downloads, no strtok, SHA-1 marked not for security) by @NotRexed in #1470
- build: the release does not carry the Python builder by @NotRexed in #1486
- Button prompts for Xbox, PlayStation and Steam Deck controllers, following the controls by @gab9281 in #1321
- ci: retry the AppImage's package install after a fresh apt-get update by @NotRexed in #1491
- fix(tools): require consecutive frames for flash analysis by @Arkex-ai in #1467
- fix(vk): remove duplicate motion deadzone formatter by @Arkex-ai in #1496
- test: restore renderer regressions after main changes by @Arkex-ai in #1498
- tools: validate the program cache's SPIR-V offline (scripts/validate_spirv.py) by @rakefire-impala in #1508
- fix(vk): replace menu upload buffers only after successful growth by @Arkex-ai in #1453
- Avoid overflow in Windows preparation timestamps by @klimovich008 in #1517
- ci: retry the complete AppImage package bootstrap by @Arkex-ai in #1523
- fix(menu): Quality presets leave Frame generation alone, so it stays off by default by @hckrman101 in #1526
- Refuse an absolute-target symlink when unpacking an update part (#1295) by @rockysscenery in #1525
- feat(vk): draw the menu, FPS counter and start-up screen with Dear ImGui by @hckrman101 in #1459
- docs: point the Linux install section at the command-line build by @quazardous in #1529
- fix(appimage): copy sysroot library aliases by value for updates by @Arkex-ai in #1536
- fix(vk): disable failed frame log sinks and unwind startup by @Arkex-ai in #1531
- fix: Discord status starts on Windows by @NotRexed in #1539
- fix(audio): keep 512-frame power-of-two default on SDL2 fallback by @suarezoscar in #1550
- fix(menu): keep the FPS counter off the banner on a window just wider than 16:9 by @hckrman101 in #1545
- fix(menu): clarify frame-generation preset help by @Brett-D in #1554
- fix(linux): safely rebase legacy sysroot links by @Brett-D in #1553
- fix(vk): preserve brightness in flash sampling across capture sizes by @Arkex-ai in #1537
- feat(vk): trace effective presentation geometry on changes by @Arkex-ai in #1457
- fix(vk): preserve pending screenshots before readback slot reuse by @Arkex-ai in #1519
- fix(vk): publish complete screenshot resource sets by @Arkex-ai in #1472
- fix: the display stays on while playing with a controller (#1532) by @NotRexed in #1538
- fix(vk): validate capture dimensions before allocating readbacks by @Arkex-ai in #1551
- fix(menu): the mouse wheel scrolls, it never changes a value by @hckrman101 in #1557
- fix(build): the logo and fonts are made only where the Vulkan back end is compiled (AppImage builds failed) by @NotRexed in #1567
- fix(vk): flush custom UI texture staging before GPU use by @Arkex-ai in #1559
- fix(build): stop sampling memory for exited compiler roots by @Arkex-ai in #1562
- tests: the stamp-cache fixture gives the back end's branch its logo and fonts writers by @NotRexed in #1575
- test(changelog): keep the scratch repository off the user's git config by @mmkzer0 in #1571
- test(fpx): build with HOOKSHOT_MINGW's clang when it is set by @mmkzer0 in #1570
- fix(vk): preserve CPU write watches during pool imports by @klimovich008 in #1434
- fix(linux): keep update symlink targets inside staging by @monsterlag in #1597
- fix(packaging): include the prompt encoder runtime dependency by @monsterlag in #1598
- Reject oversized NUP members before writing them by @bronze-ff in #1596
- ci(appimage): start a player's build from the packaged AppImage before it ships by @NotRexed in #1607
- fix(display): do not toggle fullscreen on F11 when modifier keys are held (#1309) by @oscarlosu-lab in #1608
- feat(menu): let players choose the keyboard shortcut by @bronze-ff in #1609
- fix(vk): publish complete PNG captures and report failures by @Arkex-ai in #1604
- fix(menu): a save keeps the options file's lines the menu does not write by @NotRexed in #1493
- fix(menu): F1 always opens the menu by @NotRexed in #1632
- fix(vk): make frame dump copies visible to host reads by @Arkex-ai in #1621
- fix(builder): honor DLSS opt-in when updating a game by @Arkex-ai in #1643
- fix(menu): distinguish game and generated frame rates by @bronze-ff in #1659
- fix(vi): keep the game at real speed under a Frame rate cap above 60 by @klimovich008 in #1612
- fix(builder): report bytes during NUP extraction by @bronze-ff in #1671
- fix(vk): publish texture staging slices before GPU reads by @Arkex-ai in #1672
- fix(input): a stick axis steers once it has been seen at rest (camera spinning on its own) by @NotRexed in #1677
- fix(build): invalidate DLSS objects when SDK headers change by @Arkex-ai in #1648
- Lowering: IMNMX with an immediate wider than 20 bits (vertex programs translate again) by @Joey-Magnus in #1451
- Lowering: SULD.P on a 1D surface (17 compute programs translate again) by @Joey-Magnus in #1447
- RX_VK_VRAM_MB and the integrated-GPU cap win over a preset's texture budget by @aquinas22 in #1376
- Name the member and the drive when NUP extraction runs out of space by @SimonKimDev in #1595
- fix(vk): multi-second freezes and white foliage without mesh shaders: fallback pipelines on a worker and in the precompile by @rakefire-impala in #1512
- fix(vk): mesh fallback flicker: wait for the last draw before clearing the shared buffers (#1383 review) by @rakefire-impala in #1509
- fix(vk): rainbow block-noise textures on low-VRAM cards: a failed BC3 upload is tried again, not drawn as noise by @rakefire-impala in #1505
- fix(vk): texture noise when system RAM runs low: a staging arena of the size needed when 64 MB can't be pinned by @rakefire-impala in #1514
- Let a draw run its own queued shader translation by @jarynclouatre in #1714
- docs: tested configurations, the runs behind the status table by @Joey-Magnus in #1723
- perf(vk): DLSS keeps its feature through loading screens (a 44-78 ms stutter at each area entry) by @NotRexed in #1520
- test(vk): cover staging fallback ownership and publication by @Arkex-ai in #1741
- fix(build): escape the build folder in glob patterns (a work folder with [ ] found no lifted code) by @BrunoSilvestre00 in #1722
- feat(startup): lower the start-up screen, smaller text, fade to black at the end by @hckrman101 in #1558
- fix: hardening part 3, updates, shared files, guest buffers and texture sizes by @hckrman101 in #1684
- docs: a workflow from report to release, with priorities by severity and by the hardware people run by @Joey-Magnus in #1724
- Game menus: point and click with the mouse in the title, pause menu, panel pages, options and dialogs by @jordanella in #1500
- os: no vcore checkpoint in WaitAny's scan while it holds mw_lock by @klimovich008 in #1696
- fix(vk): Read texture handles from stage constant banks by @klimovich008 in #1014
- fix(vk): mark a clear's targets in the parallel replay's dry pass (the one-frame black scenes) by @SadTransGirl in #1639
- AMD FSR 4.1 as a second upscaler engine, on #841's frame chain by @madebyjordan in #1008
- perf(vk): keep four pages for the replay's reads as submitted, not one (Kokiri village view 50 -> 57 fps) by @Joey-Magnus in #1762
- Builder: the damaged-texture check after an unpack shows its progress by @breakthetargets in #1764
- linux: the process affinity mask is the process's, not the asking thread's by @leonardochappuis in #1430
- fix(vk): share validated source crops across presentation paths by @Arkex-ai in #1448
- feat: RecompLauncher support (recomplauncher.json, make_game --game/--prepare) by @Xarishark in #1102
- fix(shaders): lower TLD.MS (multisampled texel fetch) to Maxwell TLDS 2D.LZ.MS by @Joey-Magnus in #1769
- fix(vk): RX_VK_FSR4 and RX_VK_DLSS go over a saved FSR 3.1 (#1008 follow-up) by @madebyjordan in #1773
- tests: test_nup_stand_in's stand-in takes the progress argument (fixes main's Python checks after #1764) by @breakthetargets in #1780
- build(deps): bump the actions group across 1 directory with 2 updates by @dependabot[bot] in #1475
- fix: a game folder whose deepest file passes 260 characters builds and plays (#1468) by @NotRexed in #1497
- fix(vk): make capture readbacks visible before CPU reads by @Arkex-ai in #1502
- fix(vk): slow resume and black HUD hearts on 4 GB cards: the texture squeeze waits while VMA's blocks have room by @rakefire-impala in #1506
- fix(vk): dark lighting and glowing bloom on AMD: 64-lane graphics warps and Lichii #273's fragment shuffle fallback by @rakefire-impala in #1507
- fix(vk): missing floor grass without mesh shaders: indirect task draws ran no mesh workgroups by @rakefire-impala in #1510
- fix(vk): dense grass cut off and far trees flickering without mesh shaders: fallback records from an allocator, 65535 slots by @rakefire-impala in #1511
- fix(vk): coloured specks on fallback foliage (AMD): the generated vertex stage's outputs start at (0,0,0,1) by @rakefire-impala in #1513
- fix(vk): decode gameplay RGB9E5 upscale fallback by @Brett-D in #1552
- fix(scripts): the profile readers name and count Linux samples by @Joey-Magnus in #1746
- fix(vk): publish recording stream writes before GPU submission by @Arkex-ai in #1568
- perf(vk): FSR 3.1's passes go through the pipeline cache kept across runs by @NotRexed in #1574
- Warm the stage libraries from the program cache into the pipeline cache by @jarynclouatre in #1586
- fix(hid): deduplicate gamepad polling when SDL controllers are active (#1480, #1583) by @oscarlosu-lab in #1606
- perf(vk): copy captured pages with non-temporal stores by @itaskaev2 in #1619
- perf(vk): Descriptor reuse on by default (options_version 4) by @NotRexed in #1625
- Translate a texture size query with the type its handle is sampled with by @jarynclouatre in #1627
- perf(vk): skip write-backs of large GPU-written bindings by @DFN-master in #1629
- feat(build): Probe for system Vulkan packages, add proper requirements by @kacperoo29 in #1572
- fix(vk): recover recording stream and descriptor allocation failures by @Arkex-ai in #1658
- feat(vk): add AMD Anti-Lag 2 (VK_AMD_anti_lag) by @liska1304 in #1729
- fix(framegen): 2x uses the renderer's own blend again; FSR 3.1 interpolation opt-in (#1635) by @NotRexed in #1730
- Work around AMD Vulkan task shader timeouts and restore cloth rendering by @lucasmsqt in #1747
- fix(build): package scripts/ in the Linux AppImage, so NVIDIA DLSS can be fetched by @lucasknutr in #1748
- fix(vk): admit only successful samplers across cache layers by @Arkex-ai in #1754
- fix(vk): ask for task and mesh shader counts only where the driver offers them by @mihawk-99 in #1731
- Ask the pipeline cache for a compute pipeline before queueing its build by @jarynclouatre in #1765
- docs: collect comparable logs for low FPS reports by @bronze-ff in #1768
- docs(worklist): garbled textures after play time; Gohma jump and Kokiri stutter rows updated by @Joey-Magnus in #1774
- fix: write-back stale-shadow edgecase by @ShroomKing in #1776
- perf(host): write the log in batches, a few writes a second instead of one per line by @DUDUYG in #1675
- perf(vk): write the pipeline cache only when its data changed (no 1.1 GB rewrite at every start) by @DUDUYG in #1660
- feat(linux): opt-in NVIDIA DLSS in Linux Builder and AppImage by @suarezoscar in #1585
- test(vk): restore source fixture dependencies after admission changes by @Arkex-ai in #1819
- test: each test names its own run_all arguments, skips and modules by @hckrman101 in #1822
- Ultrawide: pause, item and map menus in the middle 16:9, sides blurred or black by @KrysGG in #1352
- feat(builder): the Linux builder looks like the Windows one by @hckrman101 in #1838
- test: two stale tests keep main red (lift cleanup's PREPARE, launcher keys of renamed rows) by @Joey-Magnus in #1836
- fix(shaders): R2UR's source is one register, not a pair (a vertex program refused) by @Joey-Magnus in #1806
- Redesign the Debug tab, Inventory and Teleport pages, and add a 5K output by @ArmstrongThomas in #1670
- feat(builder): warn before building on a hard drive by @nicholasgower in #1835
- fix(shaders): LDG/STG [URn+imm] with ordering bit 78 lower (2 compute programs) by @Joey-Magnus in #1778
- fix(shaders): two large compute programs lower (an immediate is not R254) and get their local memory by @Joey-Magnus in #1800
- perf(vk): less copying of captured memory on the game and replay threads by @valonsodev in #1375
- docs(menu): the frame rate cap past 60 is experimental (#1742) by @NotRexed in #1805
- fix(loader): add the addend to GLOB_DAT and JUMP_SLOT relocations by @mmkzer0 in #1646
- Log a driver fault caught by the Windows pipeline guards by @jarynclouatre in #1766
- fix(vk): report device loss throughout native presentation by @Arkex-ai in #1515
- fix(vk): Use host timestamps in frame captures by @klimovich008 in #1763
- fix(shaders): ISBERD.O, a task program reading back its payload (12 failing pipelines) by @Joey-Magnus in #1789
- docs(worklist): shader translation 10 -> 2, stutter next step, floating trees verified by @Joey-Magnus in #1802
- fix(shaders): a loop that leaves by predicated EXITs ends at its closing self-branch (the last program that did not lower) by @Joey-Magnus in #1810
- Open the window on COSMIC's Wayland with SDL2 by @italloramon in #1839
- fix(vk): retry transient texture image view failures by @Arkex-ai in #1688
- fix(vk): tie texel buffer views to their imported backing by @Arkex-ai in #1706
- fix(vk): submit a 2x set's copies together so its presents keep their times by @mayathaim-hue in #1720
- feat: Audio tab in the Insert menu with Volume and Mute in background by @bvtterbroot in #1270
- fix(display): publish coherent pointer and drawable samples by @Arkex-ai in #1428
- perf(vk): what play makes goes into a pipeline cache of its own, one file per save (no 0.5-1.2 GB rewrite in play) by @DUDUYG in #1772
- fix(rt): mark an exclusive store's page after the store, not before by @mmkzer0 in #1645
- fix(menu): hide rows for features this PC lacks, and keep mouse clicks on the row meant by @hckrman101 in #1825
- docs(worklist): merge duplicate texture rows; owl-intro crash GPU; drop the Ally X menu row (on #1860) by @Joey-Magnus in #1869
- docs(worklist): shader row to Fixed; the first-cutscene row split into the two RTX 30 crashes by @Joey-Magnus in #1860
- fix(vk): present ahead's vk_replay.cpp half, lost in #1720's merge (main doesn't link) by @NotRexed in #1858
- Save Output resolution as a size, and take any size from the config by @ArmstrongThomas in #1814
- tests: fix four source checks broken on main (PREPARE fixture; ini_key renames; long-path out-of-space folder; DrawParameters Ctx) by @NotRexed in #1793
- Builder: a game folder it can't write to stops at once with the reason by @NotRexed in #1849
- feat(vk): Anisotropic filtering option, 16x by default, and the upscalers' texture LOD bias by @hckrman101 in #1898
- perf(vk): the capture's streaming-store copy opt-in (RX_VK_CAPTURE_NT=1): more stutters, no gain measured by @NotRexed in #1841
- bake: offline NVN translation harness + live bank writer + verify by @blessedplummer in #1707
- Builder: the damaged-texture check uses what the extraction saw (no ~100,000 files reopened) by @NotRexed in #1885
- fix(vi): a cutscene's cues stay with its movie above a 60 cap (#1742) by @klimovich008 in #1875
- build(release): ship the pipeline state list with every release by @hckrman101 in #1918
- vk: Add an opt-in recorder thread for the serial replay by @klimovich008 in #1473
- feat(vk): add opt-in VRAM compaction and hold the driver's count below its limit by @SadTransGirl in #1821
- fix(vk): prevent aligned uniform words from thrashing the cache by @i-love-computers-dude in #1910
- fix(vk): retire native FSR images after GPU completion by @Arkex-ai in #1584
- fix(vk): own native FSR constants for each recording by @Arkex-ai in #1591
- fix(render): reset temporal history when reprojection is invalid by @Arkex-ai in #1715
- fix(vk): reject unbound imported buffers and roll back ownership by @Arkex-ai in #1718
- feat(menu): a Text size row for dialogue, Navi and signs by @getzabelz in #1579
- fix(vulkan): track writes from direct buffer bindings by @monsterlag in #1133
- fix(vk): add VMA image allocation retry without WITHIN_BUDGET by @1conver in #1438
- perf(vk): keep the write-back shadows while VRAM is full of free space inside VMA's blocks by @SadTransGirl in #1637
- perf(host): keep the game's threads on the 3D V-Cache cores of two-CCD X3D CPUs by @SadTransGirl in #1638
- fix(render): publish coherent temporal jitter samples by @Arkex-ai in #1691
- Builder: let the player choose how much memory a build may take by @corentinbonjour in #1090
- fix(vk): a masked clear whose pipeline the driver did not make is tried again, not cached as null (#1787) by @oscarlosu-lab in #1880
- Fix background shader and pipeline jobs left pending after exceptions by @SRhartty in #1874
- fix(security): verify Windows updater asset digests by @monsterlag in #1792
- fix(setup): explain how to restore missing Windows tar by @monsterlag in #1922
- fix(builder): constrain the Show details hit area by @monsterlag in #1863
- A DualShock 4 or DualSense touchpad click opens the menu as F1 by @nicholasgower in #1846
- build(release): a fuller shipped pipeline list, 4276 pipelines (follow-up to #1918) by @Joey-Magnus in #1935
- feat: Add an option to disable automatic camera centering by @fatalis in #1921
- fix(vk): keep adjacent uniform words in separate cache slots by @i-love-computers-dude in #1932
- tests: main's red bake and ub checks skip where their tool can't run; the ub fixture builds on Windows by @NotRexed in #1939
- docs: say where the host shaders and the shipped pipeline list come from by @hckrman101 in #1978
- build: scripts/host_shaders.py makes the host shader headers from their sources by @hckrman101 in #1987
- Keep the menu Medium on every input, and shrink a long version to fit by @breakthetargets in #1968
- fix(builder): the Linux builder's details box is read-only by @SimonKimDev in #1966
- ci(release): release with release-please, and check PR titles by @hckrman101 in #1059
- test: log_batch "off" takes the fastest of three; bake tests skip on Windows CI (600 s limit) by @NotRexed in #2013
- Debug tab: a Movement speed choice for Link (1x to 3x) by @ArmstrongThomas in #2020
- fix(menu): the FPS counter looks as it did (green outlined text in the corner, no plate) by @NotRexed in #1957
- fix(menu): run the upscalers' one-time probes during the start-up screen, not at the menu's first open (#1886) by @NotRexed in #1916
- feat(menu): Esc can open the Insert menu (Menu shortcut "Insert, F1 or Esc") by @pmwork-personal in #1998
- build(release): a shipped pipeline list from most of the game, 11527 pipelines by @jarynclouatre in #2029
- ci(release): release candidates from release-please, Promote to release, and a nightly of main by @hckrman101 in #2018
- feat(menu): DLAA as DLSS's Native render resolution, and Render resolution as a slider in real sizes by @pmwork-personal in #2000
- feat(menu): a Mesh shaders row (Automatic, Native, Compute) by @NotRexed in #1971
- build(release): the shipped pipeline state list merged from separate sources (tour + contributed lists) by @hckrman101 in #2040
- fix(vk): build every predicted pipeline before the game (the prediction found nothing on fresh builds; no 90 s budget; one progress bar) by @hckrman101 in #2032
- fix(host): room in the drivers' shader caches for the prepared pipelines (Linux) by @hckrman101 in #2033
- ci: run the Windows source checks in two parts, slowest checks first by @hckrman101 in #2025
- chore(main): release 2.1.0-rc.1 by @github-actions[bot] in #2026
- build(release): a contributed pipeline list from an AMD card with FSR 4, 1273 pipelines by @madebyjordan in #2044
- fix(vk): handle RDNA 1 wave32 and wave64 shader stages by @brunobaccari in #1657
- test(display): the startup fixture stubs driver_cache_room (main is red since #2033) by @NotRexed in #2051
- ci(release): list every commit type in the changelog by @hckrman101 in #2055
- feat(vk): GPU- and settings-independent pipeline state list (HKSTATE2) by @hckrman101 in #2046
- ci(release): big download links for Windows and Linux at the top of each release by @hckrman101 in #2059
- chore(main): release 2.1.0-rc.2 by @github-actions[bot] in #2053
New Contributors
- @nathanaelries made their first contribution in #1202
- @notquiteog made their first contribution in #1200
- @bronze-ff made their first contribution in #1222
- @wyatt-poole made their first contribution in #1114
- @janvitos made their first contribution in #1182
- @jarynclouatre made their first contribution in #1226
- @t0masz407 made their first contribution in #1184
- @Trycky64 made their first contribution in #1084
- @blushOFF made their first contribution in #1334
- @nesrodzair made their first contribution in #1224
- @CiLiBi18 made their first contribution in #1314
- @ebarrera89 made their first contribution in #1251
- @Odrannnn made their first contribution in #1276
- @KewinBR made their first contribution in #1300
- @berelels made their first contribution in #1291
- @itaskaev2 made their first contribution in #1356
- @RoksTK made their first contribution in #1442
- @corentinbonjour made their first contribution in #1089
- @mockcomic made their first contribution in #1290
- @suarezoscar made their first contribution in #1329
- @Arkex-ai made their first contribution in #1445
- @DUDUYG made their first contribution in #1416
- @rakefire-impala made their first contribution in #1508
- @rockysscenery made their first contribution in #1525
- @quazardous made their first contribution in #1529
- @Brett-D made their first contribution in #1554
- @mmkzer0 made their first contribution in #1571
- @aquinas22 made their first contribution in #1376
- @SimonKimDev made their first contribution in #1595
- @BrunoSilvestre00 made their first contribution in #1722
- @breakthetargets made their first contribution in #1764
- @leonardochappuis made their first contribution in #1430
- @Xarishark made their first contribution in #1102
- @DFN-master made their first contribution in #1629
- @kacperoo29 made their first contribution in #1572
- @liska1304 made their first contribution in #1729
- @lucasmsqt made their first contribution in #1747
- @lucasknutr made their first contribution in #1748
- @mihawk-99 made their first contribution in #1731
- @KrysGG made their first contribution in #1352
- @valonsodev made their first contribution in #1375
- @italloramon made their first contribution in #1839
- @mayathaim-hue made their first contribution in #1720
- @bvtterbroot made their first contribution in #1270
- @blessedplummer made their first contribution in #1707
- @i-love-computers-dude made their first contribution in #1910
- @SRhartty made their first contribution in #1874
- @fatalis made their first contribution in #1921
- @pmwork-personal made their first contribution in #1998
- @brunobaccari made their first contribution in #1657
Full Changelog: v2.0.11...v2.1.0
Which file do I download?
| On | Download |
|---|---|
| Windows | HookshotBuilder.exe, the setup
|
| Linux, Steam Deck | Hookshot-v2.1.0-x86_64.AppImage
|
You need your own copy of the game. hookshot-setup.txt, hookshot-linux.txt and the .zsync are for the updaters. To check a download: sha256sum -c --ignore-missing SHA256SUMS, or gh attestation verify <file> -R NotRexed/Hookshot.