Commit Graph
1042 Commits
Author SHA1 Message Date
James Dansereau 0698524e87 Post-v0.5.0 docs: Pages markdown fix, credit line, release-notes template, ROADMAP/D572
- Pages: the two cblock sections render as markdown under GitHub Pages'
  kramdown (markdown="1"); the Download block's unparsed `<file>` had swallowed
  every heading below it. Gallery alt text says 3840x2160.
- Credit line (README "How it was made" + social preview card): several coding
  agents directed by one maintainer, with a handful of contributors; card
  findings count 430.
- Release-notes template: drop the stale header-stills comment and the Aztec
  re-check-owed note.
- ROADMAP: Windows display-scaling (not DPI-aware) item
  D572: CI-tarball verification (glibc floor, X220 + Deck fresh
  install, 21/21 pixel gate on both).
2026-10-07 12:04:04 -04:00
James Dansereau 56b574cb1c Merge pull request from jkdansereau/goldeneye-pc-port/release/v0.5.0
release/v0.5.0: v0.5.0 split-screen, options menu, N64 accuracy and Deck fixes
2026-10-07 10:50:51 -04:00
James Dansereau 5c43e69b23 Docs media: ~29 s looping v0.5.0 gameplay montage (GIF, 400x226 @ 15 fps, 15.8 MB) replaces the README stills strip; split-screen still is now 2-player v0.5.0 2026-10-07 10:39:21 -04:00
James Dansereau 10651a88d1 Docs media: v0.5.0 stills from 4K captures (12 level intros at max settings + split-screen and options-menu feature shots); README strip, release-notes header and site gallery use them 2026-10-07 09:49:32 -04:00
James Dansereau c45dece72f CI: linux-build container job runs steps under bash (D572) 2026-10-07 08:43:27 -04:00
James Dansereau 9f1cfe909e CI: Linux bundle built in the Steam Runtime sniper container (glibc floor 2.38 -> 2.31), SDL2 2.30.0 from source (D572) 2026-10-07 08:39:34 -04:00
James Dansereau 1d75c4c849 Docs: v0.5.0 release date 2026-10-07; Linux tarball needs glibc 2.38+ (README requirements, release-notes Known issues) 2026-10-07 08:24:16 -04:00
James Dansereau 44f526c3e8 eep_convert.py: no nested same-quote f-string (Python < 3.12 SyntaxError; ships in the bundles) 2026-10-06 22:23:44 -04:00
James Dansereau 4875fd4343 bundle-win.sh: package build-pc/ge007.x86_64.exe first, not a leftover renamed exe 2026-10-06 22:15:28 -04:00
James Dansereau 0a80d19333 Release notes: final build is 21/21 on all three platforms (Windows re-run on a quiet desktop) 2026-10-06 22:13:12 -04:00
James Dansereau e67c419628 Docs: ROADMAP D565 row describes the shipped Fog distance floor; release-note gate line matches the final runs 2026-10-06 22:07:42 -04:00
James Dansereau b5f1c18152 Icon: in-game sight red, pixel-art style, for exe, window and favicon (D571) 2026-10-06 21:59:17 -04:00
James Dansereau 107f151530 Crosshair: clamp the sight texture when scaled, no speck under the bottom bar (D570) 2026-10-06 21:32:33 -04:00
James Dansereau 3c3ba4b5fd F10: rename to "Crosshair always on" (D436), off by default; tip and docs 2026-10-06 21:27:20 -04:00
James Dansereau 4ab2b96a54 Docs: crosshair when not aiming (#123, D436) and PD-style crosshair colour (D569) in README, release notes and ROADMAP 2026-10-06 21:23:01 -04:00
James Dansereau afd86cd7f8 Merge PR #123 from dolent: opt-in crosshair when not aiming (D436)
Video.CrosshairPersistent, F10 Game page after Show crosshair. Merged with
the 2026-10-01 review conditions: both display-mode presets set it off,
tip added, gunDrawSight change is draw-only (Rule 2 sign-off by the
maintainer, 2026-10-06). Default off is pixel-identical (Dam gate PASS).
2026-10-06 21:22:17 -04:00
James Dansereau fadc0d6d33 F10: dropdown popup stays on screen (D568); Crosshair color is Original/Custom with 0-255 sliders, PD style (D569) 2026-10-06 21:20:22 -04:00
James Dansereau 1d15e5695a v0.5.0 final pass: AI and Deck fixes (D565-D567), docs and site refresh
Fixes:
- D565: AI awareness no longer follows two player render settings. Fog
  distance is floored at 100 (below it the shortened clip hid guards from
  AI on-screen checks); the D466 gameplay fog cull is rescaled to the game's
  own FOV (identity at defaults).
- D566: Steam Deck Game Mode no longer shows the on-screen keyboard at
  launch (SDL text input stopped; screen-keyboard hint off).
- D567: opening PC Options from the front end with a pad no longer drags
  the game's crosshair to the top-left corner.

Docs and site:
- README News/Status/Features/controls brought up to date; the unpublished
  v0.4.1 work is folded into v0.5.0 everywhere; stats to v0.5.0.
- Release notes reordered: player-facing highlights first, finding labels
  and verification at the bottom.
- Site status rewritten; favicon is now the exe icon (make_icon.py writes
  docs/favicon.ico).
- ROADMAP: AI review results, update-check follow-up, stale rows closed.

Verified: Windows + Linux builds; Windows pixel gate Surface 1 PASS;
Deck build deployed for the maintainer's Game Mode checks.
2026-10-06 21:06:48 -04:00
James Dansereau 4b710728bf v0.5.0 playtest fold-in: fog and near-plane clip, crash fixes, polish (D540-D564)
Deck/Windows playtest fixes: fog rework (D540) and RSP-style CPU near-plane
clip with per-vertex N64 fog (D543), with fog recomputed on near-plane-clipped vertices as the RSP does,
so the haze around the player stays steady (D553); colour-combiner clamp for banded walls
(D548); rocket and thrown-item stack overflows (D545, D549); menu
double-trigger mitigation (D541); Dam ending first-shot camera swivel
restored by removing an old port look-at workaround (D552); settings standardisation (D546), live
All unlocked (D547), F10 mouse (D544); static window title and the project
mark (the in-game crosshair shape, site gold) as window/taskbar icon and
favicon (D550). Reference frames re-based
on Windows, Linux and Steam Deck (A/B-confirmed); capture_p7.sh runs on
Windows. Opt-in update check, off by default (D551: one HTTPS request to
GitHub per launch when enabled; winhttp.dll loaded only then; the tag CI
job checks the tag against GE007_VERSION). Release notes, ROADMAP,
internals and security docs updated; tree-hygiene pass.

Refs: D540 D541 D543 D544 D545 D546 D547 D548 D549 D550 D551 D552 D553 D554 D555 D556 D557 D558 D559 D560 D561 D562 D563 D564
2026-10-06 18:35:44 -04:00
James Dansereau d7b9371afb Docs: public copy, site presentation, release-gate review (D533, D534)
Public-copy language pass, homepage restructure and Documentation rename,
404 page, dead-anchor and permalink fixes, release-gate sign-off, and the
pre-release review fixes of the 2026-10-05 batch (probe-doc drift,
build-path hygiene, verify.sh and capture safety).

Refs: D533 D534
2026-10-06 18:35:44 -04:00
James Dansereau 452fa1025a Golden gate: Linux baselines, canonical save, gate hardening (D521-D532)
Linux reference-frame set for all 21 levels and the cross-platform golden
rule (D521); golden tooling made non-destructive (D524); the gate pins a
canonical in-tree save (D529) and the PRNG seed (D532); the capture tool's
per-level re-pin bug fixed and the Linux set re-captured under the
canonical save (D530, D531); no-arg verify.sh exits non-zero. README and
docs visual/consolidation passes; the 15 MB preview gif replaced by stills.

Refs: D521 D523 D524 D525 D526 D527 D528 D529 D530 D531 D532
2026-10-06 18:35:43 -04:00
James Dansereau aa5a1b81fe v0.5.0: settings UI, control styles, save import, documentation
PD-style F10 menu with six groups, checkbox/slider/dropdown controls (D504),
wording pass and real-unit sliders (D505-D509), overlay/FPS-counter window
scaling (D510, D512), small settings (D511), control scheme Ext/Original
(D513) with the game's own N64 styles (D516-D518), emulator-format save
import on first launch (D514), build arch tag (D515), converter argv quoting
and sidecar size check, one PC options UI (D519) with by-eye follow-ups,
antialiased overlay sliders (D520), README settings paths, ROADMAP trim,
D441 tier-1 all-level sweep (21/21 pass).

Refs: D503-D520 D349 D441
2026-10-06 18:35:43 -04:00
James Dansereau daa2522511 D489-D502: settings persistence, collision, A/B harnesses, D441 census
F10 pad slider persistence (D489), glass collision hull (D490), A/B input
harnesses (1964 virtual pad, GE_INPUTSCRIPT, live one-pad launcher), adjacent
global struct reads (D491), vibration percent, D441 complete pointer-width
census with high-arena tier-1 build, fix batches 1-5 and an ABI warning
ratchet, playtest verification of D493-D502.

Refs: D489 D490 D491 D492-D502 D441
2026-10-06 18:35:42 -04:00
James Dansereau 4b38c2566e D478-D490: crash log, session start, performance, fidelity, regions
Crash-log snprintf (D478), start-mp folder (D479), shader pre-warm (D480),
render worker thread (#92 low-end 45 to 60 fps, D481), lighter first-launch
defaults (D482), sniper crouch/zoom fixes (D483-D485, #136), Rareware text
TMEM swap (D75), D173 residual, turret/explosion fidelity (D486, #126),
21-level Windows golden rebase with a two-tier gate, PAL and JP convert/build/
boot (D258) with PAL frame height (D487) and osTvType (D488).

Refs: D478 D479 D480 D481 D482 D483 D484 D485 D486 D75 D173 D258 D487 D488 #136 #126
2026-10-06 18:35:42 -04:00
James Dansereau 88bcef32a3 Performance work D473-D477; scaffolding batches 3-4
Uncached getenv per vertex batch (D473), fast3d micro-optimisations (D474),
hitch diagnosis (D475), CI4 palette-bank cache key (D476), spike counters,
CI8 palette churn measurement (D477). Dead diagnostic probes removed.

Refs: D473 D474 D475 D476 D477 GE_PERFSTAT
2026-10-06 18:35:41 -04:00
James Dansereauanditaloarruda b735190fd9 Input and audio features D469-D472
Gamepad presets and per-seat rebinding (D469, building on
italoarruda's #109), master volume and output
device (D470), controller-family button names and player LEDs (D471), F10
owner-pad input and widescreen pillarbox polish (D472).

Refs: D469 D470 D471 D472

Co-authored-by: italoarruda <3868006+italoarruda@users.noreply.github.com>
2026-10-06 18:35:41 -04:00
James Dansereauanditaloarruda 9dd98bdb20 Gameplay and rendering fixes D463-D468; D441 pointer-width sites
Zero-line tile texrect guard and texture-import skip (D463), stage-bank red
zone checker (D464), Dam/Caverns water slide (D465, #127), extended draw
distance no longer changing gameplay (D466, #125), player matrix pointers and
Model/PROMOTE/vtxstore rebase (D457 c/d), AI view clamp for ultrawide
(D468), fire-sound path audit (D433, D467 #130), italoarruda's #107 pointer-width
sites (two sites, credited).

Refs: D463 D464 D465 D466 D467 D468 D457 D433 #125 #127 #130 #107

Co-authored-by: italoarruda <3868006+italoarruda@users.noreply.github.com>
2026-10-06 18:35:40 -04:00
James Dansereau 00fdd94c8d 2-4 player split-screen (#99): D416-D419, D422, D428, D448, D450
Virtual seats, per-seat camera and input routing, aim modes, hot-plugged
controllers reopening via a coalesced rescan (D450, dolent's PR #122,
merged as the original commit). Rule-2
sign-off for D417.

Refs: #99 D416 D417 D418 D419 D422 D428 D448 D450 #122
2026-10-06 18:35:40 -04:00
James Dansereau 41d690f7ca 32-to-64-bit pointer-width fixes D451-D462; scaffolding removal batch 1
Tick-based auto-fire gate (D451), knife keyframe pointers (D454), font/text
slots (D456), memp arena start (D453), exe-address truncation census (D455),
global bank/RDRAM and background slots (D457 a/b), item-slot allocation
stride (D461), vtxstore table stride (D462). Mechanical, semantics-preserving
ABI/layout edits only. Diagnostic probes removed (batch 1).

Refs: D451 D453 D454 D455 D456 D457 D461 D462 D408 D294
2026-10-06 18:35:39 -04:00
James Dansereau ad3856892a v0.4.1 sync: build and CI fixes, settings presets D440-D447, outside PRs
build-pc.sh Windows temp-dir re-exec fixes; CI pin actions and no-cache ROM
handling; original-N64 and Deck presets; D440 preset labelling; D442 All
unlocked as a RAM/query-time override; D443 settings values (MSAA 16x,
Restart game); D444 front-end Previous/Next paging; D447 Original-aspect
pillarbox/letterbox. Outside contributions by dolent: PRs #120 and #121 (relabelled D445,
D446), merged as dolent's original commits.

Refs: D440 D441 D442 D443 D444 D445 D446 D447 D387 D283 #120 #121
2026-10-06 18:35:39 -04:00
James Dansereau 811e9a62cf Bug-fix pass for reported issues #114-#119 (D424-D434)
Recoil byte order, crouch-tank interactions, auto-fire cadence in ticks,
hipfire turret tracking, light-fixture Gfx index parsing, hit-type byte
reads. Rule-2 sign-offs recorded for D424 and D427. Documentation re-triaged
onto a single tracker (docs/ROADMAP.md).

Refs: D424 D425 D426 D427 D428 D430 D431 D432 D434 #114 #115 #116 #117 #118 #119
2026-10-06 18:35:38 -04:00
dolentandClaude Fable 5.1 17891cc468 feat: D436 -- persistent crosshair, opt-in (Video.CrosshairPersistent; F10 > Gameplay > HUD > "Crosshair when not aiming")
The native sight is drawn at crosshair_angle outside aim mode too: one
masked condition in gunDrawSight (#ifdef PORT, beside the D373/D381
hooks) ignores GUNSIGHTREASON_NOTAIMING when the option is on; every
other reason and the MP menu still hide it. Default off is byte-identical
(frames 600/1200/1800); hipfire on/off differ only in the sprite region;
aim mode on/off identical. Findings D436.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-29 13:26:21 -07:00
dolentandClaude Fable 5.1 05af6d4e0d fix: D435 -- replugged controllers never reopened (render-thread event pump swallowed hot-plug events)
SDL_CONTROLLERDEVICEADDED / REMOVED are dequeued by whichever of the two
event pumps polls first; fast3d's gfx_sdl_handle_events had no case for
them and dropped them, so inputRescanPads never ran after a replug (the
stale handle later aborted in malloc). Both pumps now post a request and
inputUpdate() consumes it on the pad-reading thread. Findings D435.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-29 13:26:20 -07:00
dolentandClaude Fable 5.1 d954dfb581 docs: D420 findings entry (crouched-rifle firing animation table: linker adjacency)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-29 13:26:20 -07:00
dolent 4705b0e4e8 fix: D430 -- stale per-texture anisotropy on recycled GL ids made watch text layout-dependent
gfx_opengl_set_sampler_parameters set GL_TEXTURE_MAX_ANISOTROPY only for
mipmapped samplers and never reset it. GL ids freed by
gfx_texture_cache_delete_range are recycled in unordered_map order (keyed by
texture address), so a non-mipmapped glyph could inherit a world texture's
4x anisotropy depending on the binary's data layout -> +-1-2 per channel on
the MP pause-menu text in couch 2P (frame 2400). Now always written (level
when mipmapped, 1 otherwise). #ifdef PORT, render-only.

Verified: couch 2P frames 2300-2500 fix vs fix+3KB array 0/21 differ
(before: 13/21); base vs fix: couch 2P 0/21, solo -level_09 f1800 and couch
4P f2400 byte-identical; netplay 2P SH identical (2 671 ticks).
Findings D430 + index row, porting note.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit ec5057f026259f35d4075833e89bf6fd0b6c467f)
2026-09-29 13:26:20 -07:00
dolent 8e5d4bcd5a fix: D420 -- crouched-rifle firing animation never resolved on PC (linker adjacency) -> SIGSEGV in MP matches
crouched_rifle_firing_animation_group1 (chr.c) has one entry and no
terminator; on the N64, .data is in source order, so
crouched_rifle_firing_animation_groupA follows it and the single
initResolveAnimGroupTable pass over group1 also resolves groupA (len 2).
GCC places groupA below group1, so groupA[0] kept the raw anim offset
0xB84 (PTR_ANIM_fire_kneel_left_leg). playerTick (bondview2.c:11021) passes
it to modelSetAnimation for a player's crouched rifle fire
(firing_animation_groups[1][5]) -> SIGSEGV in modelConstrainOrWrapAnimFrame
(fault 0xb88). Crouching rifle guards also saw len 1 instead of 2.

#ifdef PORT: one array {right_leg, left_leg, terminator} (the N64 layout),
groupA = &group1[1] (chr.h). ABI/layout exception, porting-notes D5 class
(D164 precedent). Verified: 4-seat repro (M16, Complex, frame 5030) runs
5 min x3 SH-identical, no crash; gdb scan of all firing_animation_groups
entries: 1 bad pointer before, 0 after; P1 corpus (1324 recordings) verdicts
identical; solo/couch frames byte-identical; netplay 2P/4P identical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 8595a06edd40ca22ac9ba4955b13a9ce61064475)
2026-09-29 13:23:47 -07:00
James Dansereau 0e8c2ce213 docs: fix reconciliation date in GE-ENV-PROBES.md (2026-09-28, not 10-07) v0.4.0 2026-09-28 10:29:52 -04:00
James Dansereau 500b83dfdb README: final Background stats for the v0.4.0 tag (1005 commits) 2026-09-28 10:28:04 -04:00
James Dansereau 8e4c3cfce2 Merge pull request #112 from jkdansereau/release/v0.4.0
release/v0.4.0: v0.4.0 feature + fidelity release (widescreen, aim system, rebinding, crosshair, rumble, options rebuild, 60 fps fix)
2026-09-28 10:27:40 -04:00
James Dansereau d267d2311e docs: reconcile GE-ENV-PROBES.md for v0.4.0 (31 new rows); fix env-drift checker to see envflag.h wrapper reads; drop README hero row 2026-09-28 10:25:31 -04:00
James Dansereau 7dd7b819e3 release notes: add Tank aim speed (Input.TankAimScale) to the options reference table — it was described in the tanks bullet but missing from the table 2026-09-28 10:11:27 -04:00
James Dansereau 668a2b629b gallery: drop the four v0.2.0 playtest stills (Facility, Bunker 1, Silo, Bunker 2) — gallery is now all-v0.4.0 attract (12 shots); manifest + contact sheet refreshed; readme link count 16 -> 12 2026-09-28 10:09:24 -04:00
James Dansereau 48c37a3c7e readme: trim hero row to a single caption — drop the second caption line, fold the stills link into the gif caption 2026-09-28 10:07:42 -04:00
James Dansereau e7f4540b15 release: v0.4.0 screenshot set — 12 intro-attract stills (3072x1728 widescreen) downscaled to 1600px JPG, replacing the v0.2.0 playtest shots per level; Control/Streets/Jungle added; 6 superseded duplicates dropped; manifest + contact sheet refreshed; README gains a press-kit hero row (Streets/Dam/Runway/Aztec); preview gif re-cut at 400px/15fps/128c (smoother, 15 MB vs 23.6) 2026-09-28 10:06:52 -04:00
James Dansereau efef63fd7f release: v0.4.0 preview media — 24 s montage from live v0.4.0 play sessions (Runway tank opener, Dam, Caverns, Aztec, Bunker 2, Surface 2); release-notes image ref re-pointed to the v0.4.0 tag; README/index captions refreshed 2026-09-28 09:52:52 -04:00
James Dansereau 4f66db12d6 v0.4.0 wrap-up: D407 RESOLVED — tank board-ordering fix, board-animation lockout, menu-accept B gate, in-tank aim routing + Input.TankAimScale; PC Options wheel direction fixed (D407(b)); all 10 TANKDBG probes stripped (src/game zero-diff); D408 logged (SkipIntro skips the failure dossier — Skip intro marked EXPERIMENTAL); release notes + readme stats 2026-09-28 09:28:28 -04:00
James Dansereau 76e9202dfd release: v0.4.0 notes — tank board/exit bullet + PC Options paging follow-up; readme final stats (995 commits, 285 findings D1-D407) 2026-09-28 08:26:09 -04:00
James Dansereau 2b75f3ed8e findings: D407 logged — tank board/exit dead on PC after the D378/D393 use/reload split (port-only fix; live tank drive owed for sign-off) 2026-09-28 08:26:09 -04:00
James Dansereau 460cfd77e0 port: D407 — tank board/exit via the B bit in tank states; PC Options page-edge highlight clamp + mouse-wheel/W-S paging (D407(b)) 2026-09-28 08:26:09 -04:00
James Dansereau a8a9f2932e readme: final project stats (992 commits, 284 findings D1-D406); mark the agentic-development case study as a v0.3.0-era snapshot (through 20 Sep / D321), with the README carrying the final numbers 2026-09-28 02:31:31 -04:00