release: comprehensive v0.4.0 notes - full v0.3.0..v0.4.0 arc (native widescreen, aim rework D332-D338/D404, HUD scale, rainbow fix, stability wave)

This commit is contained in:
James Dansereau committed 2026-09-28 01:12:56 -04:00
1 parent f84b8023dd
commit 2dd2d9dd35
1 file changed
+138 -70
+138 -70
View File
@@ -17,80 +17,148 @@
### What's new since v0.3.0
- **Water is fixed.** The shimmer/cross-fade on `IsWater` levels (Dam,
Frigate, Surface 2, …) now matches the N64 original — the moving seam
between two patterns and the pattern "resetting" as you moved are gone.
Verified against an era-correct 1994 reference (D245).
- **A modern, regrouped options experience.** Both options screens were
reorganized into functional sections (video/graphics, sound, bond file)
with per-section reset-to-defaults; a GE-style **F10 in-game overlay**
covers video, input and the watch-backed settings; the front end gained a
**PC Options** screen next to the file-select bar; and the confusing
"save file" wording is now "profile". Options that only existed in the
in-game watch (auto-aim, look-ahead and friends) are now editable from the
PC options too — and they *stick*: the "auto-aim won't stay on" report is
fixed (D330/D343/D350/D352–D356).
- **Crosshair, your way (opt-in).** On/off, colour, size and style rows were
added to the options. All default to the untouched N64 crosshair — nothing
changes unless you ask (D373/D379/D381/D382).
- **In-game key rebinding.** A two-slot key editor (PC layout + in-level
layout) now lives in both options screens, alongside a GEPD-style preset
layout that is the new default, and a crouch/reload binding set. INI-file
bindings still work (D371/D383/D385).
- **Controller support got a wave of fixes**: crouch now uses the engine's
real crouch input (D375), Xbox-variant controller parity (D394), and —
new — the N64 **Rumble Pak now drives real gamepad haptics** on supported
pads, with a `Rumble strength` slider (D401).
- **Aim mode finally works on every input device.** The "Aim style" toggle
(N64: the crosshair deflects and the camera follows at the edge — vs
Centred: the crosshair sits at screen center and your mouse *or* stick
moves the camera directly) previously only functioned with a mouse; now it
works with a controller too, with matched full-stick speed and new
"Aim range"/sensitivity rows to dial it in (D404).
- **`All unlocked` ships as a loudly-documented EXPERIMENTAL feature.** It
works for its intended purpose (skip to any mission), but enabling it on a
brand-new install with no prior save can still corrupt audio state and
aim behaviour: **complete a level normally first, then toggle it on**
(D387). The in-game warning says the same.
- **Renderer robustness (community contribution, PR #106).** Setting MSAA
above your driver's maximum no longer risks a black screen — the request
is clamped to `GL_MAX_SAMPLES` — and two framebuffer-state bugs in the
render/resolve paths were fixed. Affects both Windows and Linux builds
(D405).
- **Graphics fixes from the final playtest wave**: the file-select
background / gun-barrel comb rendering (D397), the train-intro soldier
pose (D392), the extra erroneous muzzle-flash on some guns (D303), the
occasional z-fighting (D308), the backwards-facing security-camera props
(D307), and the front-end logo/copyright page (D403). Distant-geometry
dropout on the biggest open levels (Streets, Egyptian) is substantially
improved at default settings (D249).
- **Steam Deck / Linux**: the first clean SteamOS/glibc build, plus a
first-launch preset (native 1280×800, 2× MSAA, vsync) for decks that don't
have a config yet (D402/D283).
- **Gunshot audio fixed**: cadence now matches the N64 original's rate, and
the intermittent silence under sustained fire near a looping sound is gone
(D240/D241). Long-session audio degradation (reported on issue #87) got
pool hardening plus an optional `GE_D322=1` telemetry probe if it ever
**Native widescreen**
- **The world now renders natively at your display's aspect ratio**
(D334/D335): undistorted world geometry at any aspect (wider view, same
vertical FOV), the HUD keeps its shape and anchors to the screen edges,
and the 4:3 front-end menus are pillarboxed. The ending-credits sequence
wraps widescreen too. The F10 `Native widescreen` toggle restores the old
stretched frame if you prefer it.
**Aim, reworked for every input device**
- **Reticule jitter in aim mode is gone**: mouse aim now uses the Perfect
Dark PC port's aim model (D332) on top of v0.3.0's direct-look rework.
- **New `Aim style` option** (D333/D337): N64 (the crosshair deflects and
the camera follows at the edge; internally it runs on the PD aim model
above) or Centred (crosshair fixed at screen center, input moves the
camera directly). In v0.3.0 the centred mode only worked with a mouse;
**v0.4.0 makes it work with a controller too**, with full-stick speed
matching the N64 original's top turn rate (D404).
- **New `Aim range` option** (D338): PC (full-screen feel, the default) or
N64 (original 65% stick limits). A single mouse-sensitivity control with a
wider range remains from v0.3.0.
**A modern, regrouped options experience**
- Both options screens were reorganized into functional sections (video/
graphics, sound, bond file) with per-section reset-to-defaults, and the
confusing "save file" wording is now "profile" — settings are scoped per
profile (D353–D356).
- The **F10 in-game overlay** got a GE-style refresh: category headers,
controller value-adjust with hold-to-repeat, pointer/keyboard navigation
fixes, plus five new settings — Skip Intro, Show FPS, and pad
invert/deadzone/trigger rows (D237/D345–D347/D360–D370).
- The front end gained a **PC Options screen** next to the file-select bar,
and file-select Copy/Erase moves into the bottom bar (D343).
- Options that only existed in the in-level watch (auto-aim, look-ahead and
friends) are now editable from the PC options — and they *stick*: the
"auto-aim won't stay on" report (issue #103) is fixed (D330/D350/D352/
D354).
- **New `HUD scale` option** (75–150%): scale the ammo counter, pickup
text, and subtitle bars for smaller/larger displays (D226).
**Crosshair, your way (opt-in)**
- On/off, colour, size and style rows were added to the options. All default
to the untouched N64 crosshair — nothing changes unless you ask
(D373/D379/D381/D382).
**Key rebinding + new default layout**
- A two-slot key editor (PC layout + in-level layout) lives in both options
screens, alongside a **GEPD-style preset layout that is the new default**
and a crouch/reload binding set. INI-file bindings still work
(D371/D374/D383/D385).
**Controllers**
- Crouch now uses the engine's real crouch input (D375); Xbox-variant
controller parity (D394); pad invert/deadzone/trigger rows (D237); the
F10 overlay is fully gamepad-driven with value-adjust and hold-to-repeat
(D347).
- **The N64 Rumble Pak now drives real gamepad haptics** on supported pads,
with a `Rumble strength` slider (D401).
**`All unlocked`, now a documented EXPERIMENTAL feature**
- It works for its intended purpose (skip to any mission, 007 mode, full
cheat menu) — including on a fresh install, which now yields the game's
own fresh-slot layout instead of corrupting (D281). But enabling it can
still leave odd audio/aim state in edge cases: **complete a level
normally first, and back up `data/ge007.eep` before enabling it** (D387).
The in-game warning says the same.
**Audio**
- Gunshot SFX cadence now matches the N64 original's rate, and the
intermittent silence under sustained fire near a looping sound is gone
(D240/D241).
- Windows audio now prefers the DirectSound backend over WASAPI for lower,
more robust latency (D322), and long-session audio degradation (issue #87)
got pool hardening plus an optional `GE_D322=1` telemetry probe if it ever
recurs.
- The **particle "rainbow" effect is fixed** (D252): the intermittently
recoloured explosion/spark particles from v0.3.0 no longer occur.
**Graphics fixes from the final playtest wave**
- **Water is fixed** (D245): the `IsWater` shimmer/cross-fade (Dam,
Frigate, Surface 2, …) now matches the N64 original — the moving seam and
the pattern "resetting" as you moved are gone, verified against an
era-correct 1994 reference.
- Surface 1/2: the tree backdrop that rendered as a solid wall of texture
now renders as proper camera-facing tree cards (D236).
- Frigate (and the rare "model briefly out of place" quirk): both were the
same never-written-fields read in the head-bob animation; fixed
(D336/D311).
- Ejected shell casings now render (D331); the intro gun-barrel blood drip
draws correctly (D341); the extra erroneous long muzzle-flash on some guns
is gone (D303); the occasional z-fighting is fixed (D308); backwards-facing
security-camera props fixed (D307); the front-end Rareware logo work
narrowed to a subtle filtering residual and the Nintendo logo/copyright
page renders correctly (D403/D75); the train-intro soldier pose is correct
(D392); file-select background/gun-barrel comb rendering fixed (D397);
stale-texture artifacts after level transitions fixed (D235).
- Distant-geometry dropout on the biggest open levels (Streets, Egyptian) is
substantially improved at default settings (D249).
**Windows / PC stability**
- Game exit is now orderly, so quitting no longer lands inside the graphics
driver (a class of driver bugchecks seen during testing) (D344); an
idle-then-click mouse-mode fix cleared a Windows non-self-recovering
freeze (D287); plus a port-wide code audit (missing returns, prototypes,
undefined-behaviour shifts).
- The Facility execution-scene watchdog from v0.3.0 stays enabled as a
safeguard; the animation-pinning that motivated it is root-caused and
fixed at the tick level (D329).
**Steam Deck / Linux**
- The first clean SteamOS/glibc build (D402), plus a first-launch preset
(native 1280×800, 2× MSAA, vsync) for decks without a config yet (D283).
**Renderer robustness (community contribution, PR #106)**
- Setting MSAA above your driver's maximum no longer risks a black screen
(the request is clamped to `GL_MAX_SAMPLES`), and two framebuffer-state
bugs in the render/resolve paths were fixed. Affects both Windows and
Linux builds (D405).
**Also this cycle (research, not yet features)**
- ROM-level mod support was investigated and found viable (the game's file
table lives in the ROM) (D325–D328); HD-texture packs and the drop-in-ROM
flow are tracked post-1.0; a measured CPU budget on low-end hardware
reshaped the #92 performance investigation toward the GPU (D339).
### Known issues
- **`All unlocked` is highly experimental — do not enable it until you have
at least one save written.** Complete a level normally first (e.g. Dam on
Agent), then turn the toggle on. Enabling it on a brand-new install with
no prior save can cause silent audio and odd right-mouse-aim behaviour
(D387).
- **No native widescreen render**: the automatic FOV scaling expands the
*field of view* for 16:9+ displays, but the world geometry and HUD are
still authored/laid out for 4:3 — this is not yet a true edge-to-edge 16:9
render.
- **The front-end Rareware logo has a texture-filtering residual** (D75);
the Nintendo logo and copyright page render correctly.
- **NTSC-U only**: PAL and JP ROMs boot but do not run correctly; asset
repair for those regions is on the post-release roadmap (D258).
- The Facility execution-scene watchdog from v0.3.0 remains enabled as a
safeguard; the underlying animation-pinning cause it was guarding against
is fixed in this release (D318/D329).
- On Facility, if gas leaks during Ourumov's monologue he can pause for up
to ~10 s before resuming the scripted shootout — a latent race that exists
in the N64 original too (where it softlocks permanently); the port detects
and auto-recovers it (D318).
- **Native widescreen is new in v0.4.0**: the world renders undistorted at
your display's aspect and the HUD keeps its shape; front-end menus are
shown 4:3 with side bars. The F10 *Native widescreen* toggle restores the
old stretched frame.
- The front-end Rareware logo shows a subtle texture-filtering artifact
(Nintendo logo and legal page are clean). Cosmetic only (D75).
- This release ships NTSC (US) assets; PAL/JP ROMs are not supported in this
version (D258).
- **`All unlocked` is experimental: back up `data/ge007.eep` before
enabling it.** Any save while ON — even a profile-settings change — can
leave odd audio/aim state; completing a level normally first avoids the
fresh-install case (D387).
### Downloads