Skip to content

v0.6.0-alpha

Pre-release
Pre-release

Choose a tag to compare

@RCompanyX RCompanyX released this 31 Aug 14:53
· 4 commits to main since this release

What's New

New Feature

dgVoodoo2 D3D9 Renderer Capture

  • ECM-R now captures NFSU2's dgVoodoo2 D3D9 renderer through the SPEED2.EXE Direct3DCreate9 call site, including CreateDevice, EndScene, Present, and Reset. The live-capture path avoids synthetic-device probing and provider-export hooks, improving compatibility with the game's renderer facade.

Persistent Diagnostics

  • ECM-R now maintains persistent ecm-r.x86.log diagnostics with bootstrap debug capture, persisted [config] log_level, a fixed 2 MiB active limit, one .1 backup, bounded record truncation, and console-only fallback when file logging fails. These safeguards keep troubleshooting data available without allowing log growth or file errors to disrupt runtime operation.

  • Diagnostic coverage now includes bootstrap, MinHook, renderer, settings, BASS, playback, state-transition, pause, loading-screen, and mute-package events without per-tick, per-frame, or per-poll logging. Users get useful lifecycle detail while avoiding noisy high-frequency records.

CI Artifact Packaging

  • Direct pushes to main now publish a dedicated ECM-R-Win32 artifact containing the ASI, translations, README.md, and LICENSE, while other CI runs retain ecm-r-build. This gives direct main builds a predictable user-facing package without changing artifact naming for other workflows.

Release Symbols

  • Release builds now generate a matching PDB and CI publishes it as a separate symbol artifact for crash-dump analysis. Keeping symbols outside the runtime package preserves a smaller deployment while allowing maintainers to investigate matching failures.

Bug Fix

Playback Navigation While Paused

  • Previous and skip navigation no longer leave custom playback permanently silent when used during manual pause. The playback state now remains coherent so users can resume control after navigating from the paused overlay or hotkey flow.

Startup Ordering

  • Renderer, game-loop, package, and playback callbacks now respect BASS device initialization and session shutdown boundaries. This prevents early or late callbacks from attempting audio work before the device is ready or after ECM-R has disabled audio.

Renderer Failure Handling

  • Renderer startup failures now keep ECM-R loaded when direct game hooks may still reference the module. A bounded no-callback path fails closed instead of unloading the module, avoiding dangling game hook targets while making the failure finite.

dgVoodoo2 Startup

  • dgVoodoo2 startup now preserves the provider's original call and return path while waiting for live renderer callbacks. If the expected callbacks do not arrive, ECM-R fails closed without unloading, preventing startup races from breaking the game's existing renderer path.

Documentation Updates

  • Updated CHANGELOG.md for v0.6.0-alpha.
  • Updated README.md and CONFIGURATION.MD with diagnostics scope, paused-navigation behavior, and renderer startup safety details. BUILDING.md already documented the direct-main artifact, Release PDB separation, and stable runtime package layout, so no edit was needed there.
  • Updated docs/releases/v0.6.0-alpha.md. The release documentation preserves ECM-R's lineage to the original ECM project by BttrDrgn and the established runtime filename contract.

Validation

  • Release | Win-x86 build validation is pending because msbuild is not available in this environment.
  • Validated frontend/loading/racing/overlay/config contracts for all touched areas through source and documentation review; live NFSU2 execution was not available in this environment.
  • Verified the version macro, changelog structure, release link, direct-main artifact naming, separate symbol packaging, bounded diagnostics behavior, renderer callback boundaries, and release-note comparison link.

Notes

  • dgVoodoo2 remains optional third-party software, and configurations outside the tested environments are not guaranteed. ECM-R remains focused on the NFSU2 Win-x86 runtime and still requires ecm-r.x86.asi, ecm-r.x86.ini, bass.dll, and the established ecm-r/translations files in their documented locations.

Full Changelog: v0.5.15-alpha...v0.6.0-alpha