Skip to content

v0.3.0

Latest

Choose a tag to compare

@cobalticarus92 cobalticarus92 released this 26 Feb 18:45
· 1 commit to main since this release
edbf13c

v0.3.0

🚀 Highlights

This release merges the shaders branch into mainline, bringing production shader tooling, Remix API integration, advanced lighting systems, and a completely redesigned menu interface.

  • Shader inspection & dumping - Bulk shader export, assembly search, and disassembly viewer
  • Remix API integration - Direct Remix runtime API support with custom light authoring
  • Advanced lighting system - Shader lighting metadata parsing, deterministic light forwarding, custom light animations
  • Complete menu redesign - Professional multi-tab interface with Camera, Shaders, Lights, Remix API, and About sections
  • Custom Remix API - Programmable light control and raster/Remix compositing modes
  • Barnyard profile - Hybrid SetTransform interception for mixed-pipeline engines
  • Enhanced overlay - Scalable UI, JetBrains Mono/Roboto fonts, modern theme

The shaders branch transforms the camera proxy from a matrix forwarding tool into a comprehensive RTX Remix development and debugging platform.


✨ Added & Improved

Shader Inspection & Analysis

New Shaders tab with comprehensive tooling:

  • Shader viewer - Live display of active vertex/pixel shaders with disassembly
  • Bulk shader dump - Export all captured shaders with one click
  • Assembly search - Filter shaders by keyword (dcl, def, mov, tex, etc.) with configurable scopes
  • Search scopes - Target specific instruction types or shader sections
  • Shader metadata - View usage counts, register layouts, and constant dependencies

Enables rapid shader analysis for engine reverse engineering.

Remix API Integration

Direct access to Remix runtime API:

  • remixapi integration - Loads and initializes Remix API on startup
  • API status monitoring - Real-time connection status and error reporting
  • Custom API tab - Dedicated interface for Remix API operations
  • Optional logging - remix_api.log diagnostics for troubleshooting
  • Per-frame API calls - Synchronized draw-time and present-phase operations

Foundation for advanced Remix integration features.

Advanced Lighting System

Shader-driven light metadata forwarding:

  • Deterministic light parsing - Extract lighting data from shader constants
  • Custom light authoring - Create, edit, and manage custom light sources
  • Light animations - Keyframe-based light position/color/intensity animations
  • Shader lighting overrides - Override detected lights with custom configurations
  • Present-phase light injection - Dynamic light creation at present time
  • Ambient radius defaults - Configurable ambient light falloff (default 1.0)
  • Light import/export - Save and load custom light configurations

Enables full lighting control for Remix scenes.

Raster/Remix Compositing

Experimental blend modes between raster and path-traced output:

  • Opt-in fullscreen blend - Configurable via [RasterBlend] INI section
  • Multiple blend modes - Control how raster and Remix layers combine
  • Per-scene tuning - Balance between original raster and path-traced lighting
  • Runtime toggle - Enable/disable compositing without restart

Useful for partial Remix integration or artistic effects.

Complete Menu Redesign

Professional multi-tab overlay interface:

  • Tab organization:

    • Camera - Per-matrix panels with source metadata and custom projection preview
    • Shaders - Shader viewer, search, and bulk dump controls
    • Lights - Custom light management with animation tools
    • Remix API - API status, configuration, and advanced controls
    • About - Comprehensive usage guide and matrix-hunting tutorial
    • Constants - Shader register viewer (existing, now organized)
    • Memory Scanner - Background scanning (existing, now organized)
    • Logs - Real-time log stream (existing, now organized)
  • Typography overhaul:

    • JetBrains Mono - Primary monospace font for code/data
    • Roboto Regular + Bold - UI text with clear hierarchy
    • Improved readability at all scales
  • Theme improvements:

    • Modern color palette with better contrast
    • Consistent spacing and alignment
    • Visual hierarchy with section headings
    • Centered non-clickable button headers for organization
  • Camera tab rework:

    • Separate panels for World, View, Projection
    • Custom projection preview with parameters
    • Source metadata display (register, confidence, frame)
  • About tab:

    • Step-by-step matrix hunting guide
    • Example register layouts for known games
    • Best practices and troubleshooting tips
    • Makes Camera tab default on menu open

Game Profile: Barnyard (2006)

New hybrid profile for mixed-pipeline engines:

  • Intercepts native SetTransform(VIEW/PROJECTION) calls
  • Captures and re-forwards at draw time for synchronization
  • Shader-based WORLD detection from constants
  • BarnyardForceWorldFromC0 - Force c0-c3 as WORLD
  • BarnyardUseGameSetTransformsForViewProjection - Enable interception

Enhanced Matrix Detection

Expanded detection capabilities:

  • Transpose probing (ProbeTransposedLayouts=1) - Check transposed layouts
  • Inverse-view support (ProbeInverseView=1) - Derive view from inverse-view constants
  • Improved structural validation - Better disambiguation between View and inverse candidates
  • Runtime override reset - F7 hotkey returns registers to auto-detect
  • Per-matrix register forcing - Granular control over detection

Hotkey System

Single-key controls that work even with input conflicts:

  • F10 - Toggle overlay (HotkeyToggleMenuVK)
  • F9 - Pause/unpause emission (HotkeyTogglePauseVK)
  • F8 - Force emit matrices once (HotkeyEmitMatricesVK)
  • F7 - Reset register overrides (HotkeyResetMatrixOverridesVK)

All keys configurable via VK codes in INI.

SetTransform Compatibility

Modes for engines with mixed transform behavior:

  • SetTransformBypassProxyWhenGameProvides=1 - Detect and skip double-forwarding
  • SetTransformRoundTripCompatibilityMode=1 - Round-trip for strict API compliance
  • Hybrid interception for partial fixed-function usage

Memory Scanner

Runtime matrix pattern discovery:

  • Background process memory scanning
  • Configurable confidence thresholds
  • Quick-assign to World/View/Projection
  • Minimal overhead with smart scanning

Matrix Emission Improvements

  • Avoid identity emission - Skip forwarding identity matrices
  • Retain last-known state - Persist valid matrices across frames
  • Combined MVP/VP/MV fixes - Improved decomposition math

⚙️ Default Configuration Behavior

All v0.2.0 defaults remain unchanged.

New defaults in v0.3.0:

  • ProbeTransposedLayouts=1
  • ProbeInverseView=0
  • ImGuiScalePercent=100
  • SetTransformBypassProxyWhenGameProvides=0
  • SetTransformRoundTripCompatibilityMode=0

Experimental features (disabled by default):

  • Shader bulk dumping (manual trigger)
  • Remix API custom lights
  • Raster/Remix compositing
  • Memory scanner
  • Light animations

🐛 Known Issues

Same issues from v0.2.0 remain:

  • Combined MVP decomposition requires testing
  • Custom projection is experimental
  • Some games may need manual register overrides

New considerations in v0.3.0:

  • Remix runtime fallback distant lights or custom remix api lights appear to follow the camera
  • Custom lights are experimental - validate visually
  • Raster/Remix compositing may not work with all render paths
  • Shader dumping can generate large file sets
  • Memory scanner may impact performance on large games

🙌 Credits

  • mencelot
  • cobalticarus92
  • Kim2091