Skip to content

v0.5.12-alpha

Pre-release
Pre-release

Choose a tag to compare

@RCompanyX RCompanyX released this 06 Jun 15:49
· 44 commits to main since this release

What's New

Unicode Filename Support

ECM-R no longer crashes when MP3 files contain Cyrillic, Korean, Japanese, or other non-ASCII characters in their filenames. The game will now enumerate, display, and play these files correctly.

Background

The game engine uses ANSI (CP-ACP) internally, which cannot represent most non-Western characters. ECM-R now stores all file paths as UTF-8 internally and converts only at the boundaries where required.

Playlist Display

  • The ECM-R in-game overlay now renders Unicode filenames correctly (Cyrillic, Korean, Japanese, etc.) in the playlist menu.
  • Fixed a bug where filenames with multiple - separators (e.g. Artist - Title - Subtitle) showed as N/A in the notification.

In-Game Notification (Chyron)

  • The chyron shows the parsed title and artist for every track.
  • Characters that cannot be represented in the game's ANSI code page display as ?. This is a game engine limitation and affects all mods that interact with the stock notification system.

INI Persistence

  • The [trax] section now stores filenames as UTF-8, which is backwards compatible with existing INI files.

Bug Fixes

  • Fixed a crash on startup when any audio file has non-ASCII characters in its name.
  • Fixed the file extension filter that was incorrectly accepting all file types regardless of the configured extension list. Extensions are now matched case-insensitively (.MP3, .WAV, etc., are recognized correctly).
  • Fixed the title parser that corrupted some track titles by trimming the first two characters.

Track Persistence Auto-Sync

ECM-R now keeps the [trax] section in sync with the actual files on disk. No manual editing or version bumps needed.

Automatic Population

  • New music files discovered in the playlist folder are automatically written to [trax] with ALL routing on the next startup.
  • Previously, new songs would play in memory but never appear in the INI unless a configuration migration was triggered.

Orphan Cleanup

  • When a music file is removed from the playlist folder, its corresponding [trax] entry is automatically cleaned up on the next startup.
  • Existing track routing values (ALL, FE, IG) are preserved while new tracks are added and orphaned entries are removed.

Documentation Updates

  • Updated README.md to document automatic [trax] population and orphan cleanup.
  • Updated CONFIGURATION.MD to note that [trax] entries are synced automatically on startup.
  • Updated docs/application-context.md with the settings::sync_trax_entries() behavior.
  • Added docs/releases/v0.5.12-alpha.md.
  • Added docs/trax-persistence-tests.md as a test plan for the persistence feature.
  • Updated CHANGELOG.md for v0.5.12-alpha.

Validation

  • Built successfully in Release | Win-x86.
  • Verified that MP3 files with Cyrillic, Korean, and mixed-script filenames enumerate and play without crashing.
  • Verified that the playlist overlay displays the correct filenames.
  • Verified that the chyron shows the parsed title and artist.
  • Verified that new tracks appear in [trax] automatically and orphaned entries are removed.

Notes

  • Track routing values (FE, IG) can still be changed manually by editing the INI file.
  • The in-game notification shows ? for characters outside the game's ANSI code page due to the NFSU2 engine limitation.
  • sync_trax_entries() runs on every startup, not just on configuration migration.

Full Changelog: v0.5.11-alpha...v0.5.12-alpha