Repository navigation
v0.5.12-alpha
Pre-release
Pre-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 asN/Ain 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]withALLrouting 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.mdto document automatic[trax]population and orphan cleanup. - Updated
CONFIGURATION.MDto note that[trax]entries are synced automatically on startup. - Updated
docs/application-context.mdwith thesettings::sync_trax_entries()behavior. - Added
docs/releases/v0.5.12-alpha.md. - Added
docs/trax-persistence-tests.mdas a test plan for the persistence feature. - Updated
CHANGELOG.mdforv0.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