Skip to content

Injector - #1

Merged
oneup03 merged 27 commits into
mainfrom
injector
Jun 13, 2026
Merged

Injector#1
oneup03 merged 27 commits into
mainfrom
injector

Conversation

@oneup03

@oneup03 oneup03 commented Jun 13, 2026

Copy link
Copy Markdown
Owner

Summary

Adds 3DVision4All as a proxy-DLL injector that hooks DirectX 9 and NvAPI Stereo
in-process, capturing each eye's frame and compositing the stereo output the
display needs — no external Shader Glass window required. Also rewrites the
docs site so the injector is the default workflow for every output mode and
demotes the Shader Glass setup to a collapsible legacy section.

What's new

Injector (src/, proxy/)

  • Four interchangeable proxy DLLs (dinput8.dll, dsound.dll, version.dll,
    winmm.dll) share a single DllMain and forward exports to the real
    system DLL. dsound.dll additionally /EXPORTs Direct3DCreate9{,Ex} so
    HelixMod fixes that route D3D through DSOUND chain correctly.
  • D3D9 / D3D9Ex vtable hooks + NvAPI Stereo hooks drive a two-pass per-eye
    capture (src/Hooks_DX9.cpp).
  • Output paths:
    • Overlay compositor (src/Output_Overlay.cpp, src/Compose_D3D11.cpp)
      handles sbs, tab, row_interlaced, column_interlaced, and
      checkerboard via a shared D3D11 compose pipeline.
    • LeiaSR (src/Output_LeiaSR.cpp) hands an SbS-packed texture to the
      Simulated Reality weaver for Acer Spatial Labs / Samsung Odyssey 3D.
    • Katanga (src/Output_Katanga.cpp) publishes frames over the Katanga
      IPC protocol for Katanga.exe / VRScreenCap to display in an HMD.
  • Capture modes: CPU readback (default, widest compat) and GPU-shared
    (alternate_capture_mode = 1, faster but some games glitch).
  • Diagnostic switches for bisecting init crashes (install_device_hooks,
    install_d3d9_vtable_hooks, install_d3d9_display_mode_hooks).
  • Config via 3dvision4all.ini next to the game EXE with inline comments on
    every option (mode, swap_eyes, force_windowed, defeat_directflip,
    disable_vsync, confine_cursor, hide_cursor, render_width/height,
    copy_width/height, log_file/log_level).

Build

  • 3DVision4All.sln + per-proxy .vcxproj files; static-linked CRT.
  • _build_win32_release.bat / _build_x64_release.bat and a VSCode task.
  • GitHub Actions workflow (.github/workflows/build.yml) producing
    Win32-Release/ and x64-Release/ artifacts.
  • Submodules: Deviare2 (hooking), SR-lib (LeiaSR), nvapi.

Docs rewrite

  • New shared includes: _includes/Injector.md (3DFM → NV CP Discover mode →
    fix install + verify in anaglyph at 1080p → proxy DLL + ini drop → full
    options reference) and _includes/InjectorPlay.md (running a game).
  • Per-output guides now lead with the injector and tuck Shader Glass /
    3D Game Bridge / HelixVision-Katanga / Virtual Desktop into
    <details> collapsibles:
    • docs/SbSTaB.mdmode = sbs / tab
    • docs/ARGlasses.mdmode = sbs with Full-SbS render override guidance
    • docs/SRDisplay.mdmode = leiasr (no ReShade / 3D Game Bridge needed)
    • docs/HMD.mdmode = katanga with VRScreenCap shortcut params; both
      HelixVision/Katanga and Virtual Desktop methods preserved as collapsibles
    • docs/Interlaced.md — keeps EDID ID Override as the default (native
      3DVision interlaced); injector method added as a collapsible alternative
  • docs/Native.md is unchanged (the injector doesn't apply to native
    frame-sequential / frame-packed / anaglyph paths).
  • README.md video guide labeled as outdated (Shader Glass-era).

@oneup03
oneup03 merged commit 560e706 into main Jun 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants