FEAR port: STATUS doc + smart .gitignore + tracked findings/logs#17
Open
skurtyyskirts wants to merge 5 commits into
Open
FEAR port: STATUS doc + smart .gitignore + tracked findings/logs#17skurtyyskirts wants to merge 5 commits into
skurtyyskirts wants to merge 5 commits into
Conversation
…nd run logs
Add patches/FEAR/STATUS.md as the canonical entry point for the FEAR port.
Pulls together the static analysis (engine ID, hybrid FFP+shader pipeline,
VS register layout, skinning state, run history), the live tooling state
(remix-comp-proxy build/deploy, Run 1 PASS with 535 KB diagnostic capture,
Runs 2-15 documenting the bridge blocker), the active blocker analysis
(NvRemixBridge.exe aborts via _invalid_parameter_noinfo_noreturn before
logger init; 32-bit client crash signature is a secondary CRT shutdown
race), and the next steps on both the bridge-unblock and FFP-only tracks.
Rework .gitignore to track per-game patches/<Game>/ work alongside the
shared toolkit:
- Drop the blanket patches/ exclusion (was for asi_patcher artifacts;
nothing under patches/ was previously tracked).
- Allow the rtx_comp/ diagnostic logs and our PowerShell helper scripts
out of the otherwise-ignored game install dir, but keep game assets,
the .trex/ Remix runtime, and the game executables out.
- Ignore tools/rtx_remix_dl/ (199 MB downloaded archive) and FEARRTX/
(separate placeholder git repo).
- Extend patches/FEAR/.gitignore to skip large redistributable vendor
trees: deps/dxsdk/ (Microsoft DXSDK Jun 2010 redist), deps/remix-bridge-x86/
(Nvidia bridge binaries), deps/remix-test-2026-03-13/ (380 MB Remix
runtime test stash), and allowlist deploy.ps1 / *.template /
bootstrap_report.txt that the original template missed.
216 files / ~6 MB total: per-game source tree, the imgui/minhook vendored
sources, the bridge_api headers, the remix-comp-proxy.ini and bridge.conf,
all of patches/FEAR/{findings.md, HANDOFF.md, kb.h, STATUS.md, README.md},
and 32 numbered run logs from rtx_comp/.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ression notes Adds a generic game-supplied matrix injection seam in ffp_state (on_game_view/proj/world setters; takes priority over VS-const path; no transpose since LithTech matrices are already row-major). Wires the proxy's SetTransform interceptor to feed those setters from FEAR's per-draw W/V/P calls (caller FEAR.exe!0x004FF99C). Logs proxy vtable slot addresses at CreateDevice for live-BP targeting. Adopts the infiniteRetries=True bridge.conf fix from earlier today, but documents that vanilla launches have regressed — bridge IPC now hangs at SYN-ACK without Frida instrumentation. Updates STATUS/HANDOFF with the new plan (SetTransform path replaces the abandoned D3DXMatrixMultiply hook) and captures the static-analyzer's matrix-hook discovery section in findings.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
After progressing past the FEAR launcher with [Remix]=0 [FFP]=1, the proxy's console.log shows the expected one-shot lines: [FFP] Game-supplied World matrix received from per-game hook [FFP] Game-supplied View matrix received from per-game hook [FFP] Game-supplied Proj matrix received from per-game hook The seam is wired correctly end-to-end. Visual confirmation that world geometry renders in correct positions is still pending for the next session. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…inimal bridge.conf First successful end-to-end render through the RTX Remix bridge. Three combined fixes resolved cascading failures across driver, bridge handshake, and proxy init order: * Bridge swap b7de9a96 -> a03c16db (Brotherhood's working build) -- escapes the driver-9636 RegisterWaitForSingleObject(parent) hang documented in HANDOFF Cause A. Old runtime preserved as .trex.b7de9a96.bak/ in both game installs; patches/FEAR/deps/remix-bridge-x86/d3d9.dll deploy source updated separately on the user's local install. * bridge.conf minimized to three load-bearing overrides: exposeRemixApi (proxy requires), infiniteRetries + disableTimeouts (CONTINUE-wait race exists in BOTH bridge versions; FEAR's slow LithTech+DirectInput client triggers it). All other FEAR overrides reverted to defaults. * Deferred init_debug_lines() from remix_api::initialize() to begin_scene_callback_internal(). Creating materials inside Direct3DCreate9 (before any IDirect3DDevice9 exists) posted RemixApi_CreateMaterial on the Device queue while no device existed, stalling the Module queue so FEAR's GetDeviceCaps hung forever. Moving to BeginScene runs once after CreateDevice; guarded by existing m_debug_lines_initialized flag. Plus formal capture of prior FFP fixes that already worked in [Remix]=0: fog disable around FFP draws (renderer.cpp), SELECTARG1 stage 0 (ffp_state.cpp), [FFP] Enabled=1 (remix-comp-proxy.ini). deploy.ps1 gains -GameDir param for targeting alternate installs (CLEAN). HANDOFF.md updated with breakthrough TL;DR; remaining open issue is d3d9_remix.dll+0xf0cc crash ~3min in after window-focus toggle. Verified on CLEAN install 02:29:19 -> 02:32:35: - Bridge: "Handshake completed!" -> "Server side D3D9 Device created successfully!" - Proxy: CreateDevice succeeds, SetTransform interceptor captures W/V/P - 72,060 bridge commands processed over 3 minutes of steady-state rendering Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…forms fix Per-draw matrix dump in diagnostics revealed that SetTransform(WORLDMATRIX(0)) is identity for every draw in FEAR, with vertex positions already in world space (e.g. DIP Ekozmaster#9 pos=(26116, -1289, -13774)). This matches Remix's documented "baked transforms" case: instanced meshes appearing with identity xform matrices. Two rtx.conf options resolve the wrong positions/scale/orientation symptom: rtx.leftHandedCoordinateSystem = True # LithTech Jupiter EX rtx.capture.correctBakedTransforms = True # derive transforms from vertex AABBs After the fix, the warehouse scene renders with geometry in plausibly correct positions, but surfaces appear washed-out white -- textures/lighting now the new blocker. The rtx.conf files themselves are gitignored per-install; this commit captures the source changes and full diagnosis in HANDOFF.md. Source changes: - diagnostics.cpp: per-draw game_WORLD/VIEW/PROJ dump for first 20 draws - ffp_state.hpp: 3 public accessors (game_view/proj/world) - remix-comp-proxy.ini: DelayMs 180000 -> 60000 (capture fires in-level before crash) - HANDOFF.md: 03:04 TL;DR with the matrix dump, the fix, the new blocker Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
patches/FEAR/STATUS.mdas the canonical entry point for the F.E.A.R. Ultimate Shooter Edition → RTX Remix port: mission, toolkit overview, what's been gathered (engine ID, hybrid FFP+shader pipeline, VS register layout from Run 1's 535 KB diagnostic capture, 15-run debugging history), the active blocker (NvRemixBridge.exeaborts before logger init), and parallel next-step tracks (bridge unblock vs. FFP-only iteration on the matrix hook)..gitignoreso per-gamepatches/<Game>/work, thertx_comp/diagnostic logs, and our PowerShell helper scripts are tracked, while build outputs (patches/FEAR/build/≈ 287 MB), large redistributable vendor trees (deps/dxsdk/,deps/remix-bridge-x86/,deps/remix-test-2026-03-13/≈ 380 MB), the 199 MBtools/rtx_remix_dl/archive, the game install (executables,.Arch00,.trex/), and the placeholderFEARRTX/repo all stay out.patches/FEAR/.gitignoreallowlist to includedeploy.ps1,*.template, andbootstrap_report.txt(the upstream template missed them).remix-comp-proxy.ini,bridge.conf, the four key markdown docs (STATUS.md,findings.md,HANDOFF.md,README.md),kb.h, and 32 numbered run logs.Test plan
patches/FEAR/STATUS.mdon GitHub — internal links tofindings.md/HANDOFF.md/kb.h/assets/remix-comp-proxy.ini/ the diagnostic logs all resolve.git ls-files patches/FEAR/build/ tools/rtx_remix_dl/returns nothing on the branch.FEAR Ultimate Shooter Edition/rtx_comp/diagnostics_run1_ffponly.log(the 535 KB Run 1 capture) opens on GitHub.cd patches/FEAR && build.bat release --name FEARstill works given the (now ignored) DXSDK + bridge binaries are obtained out-of-band.🤖 Generated with Claude Code