Repository navigation
v0.4.0
·
47 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
fahrenheit-parry-mod v0.4.0 (2026-07-11)
This release provides pre-built ZIP packages for Windows (FFX/X-2 HD Remaster + Fahrenheit):
- Full package: fahrenheit-full-v0.4.0.zip
- Mod-only package: fhparry-mod-v0.4.0.zip
- SHA256: fhparry-mod-v0.4.0.zip.sha256
Installation
Prerequisite: Microsoft .NET Runtime 10 (x86 recommended).
If missing, fahrenheit/start-fahrenheit.cmd will prompt to install it via winget.
- Download one of the ZIP packages above.
- Extract into your game directory (folder containing
FFX.exe). - For the full package, start via
fahrenheit/start-fahrenheit.cmd(recommended). - Alternatively run
fahrenheit\bin\fhstage0.exe ..\..\FFX.exefromfahrenheit\bin.
Changes in This Release
- chore(release): v0.4.0 (7d69c64)
- refactor(camera): drop custom saved cameras; keep the static hold + freecam (65ccccb)
- fix(camera): hold suppresses camera requests too, not just enemy turns (2457e3a)
- refactor(camera): strip to freecam + one save button; drop encounter table & follow-cam (1e9cc15)
- feat(debug): selectable, copyable log box; drop timestamps (858f2af)
- fix(camera): settle-grace fallback keeps the correct default framing; caret to screen corner (13b89e5)
- feat(camera): zoom-punch on parry — quick eye dolly toward the gaze (f5672ed)
- chore(mappings): slim runtime bundles from 24MB to 3.5MB (1bdc23f)
- feat(camera): follow-cam — look-at tracks the acting enemy, damped (5e6b64b)
- feat(camera): dedicated Camera tab with per-map encounter table (4fbe0f0)
- feat(freecam): anchors keyed by battle map + enemy constellation (0c04f59)
- fix(freecam): move back to WASD + Q/E — it reads more natively than the numpad (c87d172)
- feat(freecam): numpad movement, inverted look, persistent battle-start anchor (b1176bb)
- feat(freecam): experimental hand-controlled battle camera + angle capture (2470fac)
- feat(debug): manual screen-shake test buttons; whole-party shake 0.80s (6f60613)
- feat(camera): AllTurns hard-lock suppresses the ATEL position writers (557baf2)
- fix(shake): single parry 0.40s, whole-party 0.73s (f2b3354)
- feat(overlay,shake): whole-party shake, corner-caret window, retire sweep (df10347)
- refactor(settings): two-column feedback grid, inline checkbox labels (dbd0932)
- refactor(cleanup): drop write-only CheckHit MISS cache, relocate turn drivers (edf88be)
- feat(overlay): titleless window, proximity fade, collapse caret, timing readout (3f23624)
- refactor(debug): drop the cue-preview panel for a slimmer state panel (6ca3e68)
- refactor(settings): prune dead toggles, fold magic camera into the lock combo (275582d)
- feat(timing): restore tiered windows, de-toxify Expert, bring back the dodge cooldown (16cc05b)
- fix(streak): a streak dies when the player regains control; lock all turns by default (5aea319)
- feat(timing): gameplay timers count ticks; the dodge window comes from the model (4ae29f9)
- feat(timing): count battle ticks, and stop letting difficulty move the window (2f98c90)
- refactor(overdrive): move the overdrive code out of the debug file (9bbd9de)
- feat(ui): move the settings into the mod's own window (8b23cd6)
- refactor(offsets): drop the FhCall dependency entirely (a7b5de7)
- refactor(hooks): funnel every orig_fptr call through a single seam (c936f92)
- fix(evade): identify MISS_ALIVE structurally instead of guessing the enum (60b3220)
- feat(debug): probe the ATEL opcodes that actually move the battle camera (69ccdfd)
- fix(parry): reset per-action parry state at cue boundaries (8531445)
- fix(camera): return -1, not 0, when suppressing MsAtelRequestCamera (a7ea9fb)
- feat(debug): shake duration sweep with a shuffled bag and a debug-overlay panel (a04e586)
- fix(parry): stop a successful parry from erasing its own evidence; decorrelate the shake axes (0ef9a4c)
- feat(dodge): terminate the evade motion deterministically instead of letting it run out (86062bd)
- build(fahrenheit): pin to v1.0.0-alpha10 (ea602d4)
- fix(combat): a perfect dodge is a dodge — no impact shake, no parry consequences (c826512)
- feat(combat): fire the engine's native screen shake on parry and perfect dodge (d6a80bf)
- docs(overdrive): riposte no longer charges on perfect dodge (22961c1)
- feat(overdrive): make learn-by-parrying unconditional, remove learn_custom_overdrive setting (c8140f1)
- feat(combat): overdrive is the parry's reward alone, and the labels read whiter (507ffda)
- feat(overdrive): learn custom mode by parrying instead of unconditional unlock (062ea22)
- feat(debug): dump overdrive learn counters in the read-only save probe (ba3bcc2)
- feat(overdrive): unlock custom mode 0x11 in save mask behind default-off setting (2c45dae)
- fix(combat): resolve dodge only for slots the attack actually targets (2272a18)
- feat(debug): add read-only overdrive-mask save probe (777d565)
- fix(probes): remove the magic-camera probe, correct MsSetMotion's signature (7154893)
- feat(overlay): remove the parry state HUD (ef28de9)
- fix(build): preserve state/ and logs/ across a full deploy (62f496b)
- feat(combat): native evade, perfect dodge and anchored combat labels (a98bf96)
- feat(startup): bundle splash/launcher skip on the alpha09 baseline (6e73a06)
- build: pin Fahrenheit ref to fahrenheit.release.ref by default (41f205c)
- feat(combat): battle camera lock, parry effect, native evasion disable, streak observe (43ef0fb)
- feat(combat): Stage-1 native observe probes (log-only, opt-in) (#25) (21aa0a8)
- chore: stabilize parry state machine and native probe logging (#22) (2faa21a)
- fix(build): resolve Fahrenheit core project under new src/ layout (#24) (72f7d9b)
- fix(build): normalize line endings in docs-sync (#23) (3e30db7)
- chore: disable Nuke telemetry, fix warnings, pin vulnerable deps (33ab0a9)
- feat: scale parry SFX volume to live game audio settings (6639ef3)
- chore: remove pipeline-owned tooling and stale workspace state (e91fd68)
Full Changelog: v0.3.1...v0.4.0 | README