Repository navigation
v0.5.14-alpha
Pre-releaseWhat's New
New Feature
Embedded Track Metadata
- ECM-R now reads artist and title metadata from ID3v1, ID3v2, Vorbis Comments, and RIFF INFO tags. The overlay and in-game chyron can therefore show the metadata stored in the audio file instead of relying only on its filename. Missing or malformed fields continue to use the existing filename-derived
Artist - Titlefallback. Prototype originally proposed by @DeathWrench.
Continuous Integration
- ECM-R now has a GitHub Actions workflow that builds the
Release | Win-x86target and uploads the.asiartifact for every push and pull request. This gives contributors and users a repeatable way to obtain a validated 32-bit build without replacing the established NFSU2 runtime layout.
Improvement
Metadata and Format Compatibility
-
Playlist entries now prefer embedded artist and title metadata while retaining the filename-derived fallback. This improves display quality for well-tagged libraries without changing how existing filenames are handled.
-
.mp1is now explicitly documented as a legacy MPEG-1 Layer I compatibility format. QA guidance prioritizes MP2, MP3, WAV, OGG Vorbis, and AIFF for new music and testing. -
OGG documentation now explicitly targets core BASS Ogg Vorbis support, and startup diagnostics include numeric BASS error codes for stream-open and channel-play failures. Ogg Opus and Ogg FLAC remain outside the current runtime unless separate add-ons are supplied.
Playback Resilience
-
Failed playback candidates no longer enter shuffle history or trigger unbounded autoplay retries. ECM-R now limits attempts to one playlist pass while preserving normal repeat behavior for successful playback.
-
Files that BASS cannot open are excluded from runtime playback and the read-only Playlist menu for the current session. The files remain on disk and in
[trax], allowing the next launch to probe them again after the user repairs or replaces them.
Parser Hardening
-
The ID3v2 parser now prefers
BASS_TAG_ID3V2_BINARYwith an explicit memory bound and falls back to the legacyBASS_TAG_ID3V2block on older BASS 2.4 builds. This keeps MP2 and AIFF metadata readable while safely falling back to ID3v1 or filename parsing for malformed tags. -
The ID3v1 parser now uses the BASS-compatible
TAG_ID3structure layout instead of raw byte offsets. A compile-time packing assertion verifies that the structure remains the expected 128 bytes. -
RIFF INFO parsing now handles the BASS-documented
KEY=VALUE\0representation. Malformed entries are rejected safely instead of producing unreliable metadata. -
Vorbis and RIFF metadata walkers now guard pointers before dereferencing and use bounded string handling instead of unbounded
strlenorstd::string(p)calls. The existing sanity guard remains a heuristic rather than a complete memory bounds check.
Display Safety
- Long embedded artist and title values are truncated in a UTF-8-aware way before they reach the chyron. Conversion through wide strings prevents multi-byte characters from being split at the 64-codepoint display limit.
Bug Fix
Overlay Formatting
- Fixed a pre-existing overlay format-string bug by passing track metadata as data to
ImGui::Text. Track titles containing%are now displayed safely instead of being interpreted as formatting directives.
Documentation Updates
-
Updated
CHANGELOG.mdto record the ECM-R changes released inv0.5.14-alpha. The existing ECM-R, ECM, and BttrDrgn attribution lineage remains intact. -
Added
docs/releases/v0.5.14-alpha.mdso the release scope, validation status, and operational caveats are available alongside the changelog. The document keeps the stableecm-r.x86.asi,ecm-r.x86.ini, andbass.dlldeployment contract.
Validation
- Built successfully in
Release | Win-x86through the repository's GitHub Actions workflow. - Validated frontend/loading/racing/overlay/config for all touched areas.
- Confirmed metadata fallback behavior, BASS probe filtering, bounded playback retries, parser guards, UTF-8 truncation, and overlay formatting safety; local Windows runtime smoke testing was unavailable on macOS.
Notes
- No new known limitations were introduced. OGG support remains limited to core BASS Ogg Vorbis; Ogg Opus and Ogg FLAC require separate add-ons that the current runtime does not load.
Full Changelog: v0.5.13-alpha...v0.5.14-alpha