Skip to content

0.8.9

Latest

Choose a tag to compare

@exch-bms2 exch-bms2 released this 21 Oct 03:19
· 94 commits to master since this release

This release expands song selection, skinning, audio, and IR integration features while improving memory usage and stability. Experimental features may change in future releases.

Song Selection & Library Management

  • Expanded the functionality of random selection folders.
  • Added experimental support for loading songs directly from ZIP and some RAR archives, including playback without temporary extraction. Archive detection is disabled by default.
  • Moved tags and favorites to a per-player songreview.db.
  • Added progress indicators for song database and difficulty table updates, and improved exception handling during updates.
  • Added experimental difficulty filters and filters for charts featuring scratches, long notes, and speed changes.

Skins, JSON & Lua

  • Added support for referencing various properties by name.
  • Added named conditions and negated conditions for op and draw.
  • Added editable text input to SkinText and applied it to the search field on the song selection screen.
  • Added experimental skin previews in the skin configuration screen and the skin.skinpreview definition.
  • Added skin definitions for the Practice settings screen, along with related properties and events.
  • Added clipping support using clip_x, clip_y, clip_w, and clip_h.
  • Added support for Unicode characters, emoji, and fallback fonts.
  • Fixed an issue where the space setting for numeric displays did not scale with resolution.
  • Added experimental support for WebP and animated WebP.
  • Expanded the Lua APIs for properties, timers, events, files, HTTP, and audio.

Audio & Video

  • Added PortAudio/CoreAudio output on macOS and PortAudio/ALSA direct output on Linux.
  • Improved PortAudio device selection fallback and shutdown handling.
  • Fixed 8-bit PCM playback and reduced memory usage during PCM conversion when loading audio.
  • Fixed long-note handling in Guide SE.
  • Added pitch-preserving time stretching for playback speed changes in Practice mode.
  • Fixed noise along the right edge of videos and buffer exceptions during fast-forwarding and seeking.
  • Improved video looping, initial frame display, audio track compatibility, and resource cleanup on shutdown.
  • Added experimental GDX AudioDevice output.

Gameplay, Scores & IR

  • Added longnoteMargin to Custom Judge.
  • Added support for #SPEED. It is ignored when Constant is enabled.
  • Fixed score log overwriting and added avgjudge and oldavgjudge.
  • Added skin properties for the last play time, IR rankings, player scores, usernames, and more.
  • Changed rival score retrieval to sequential background updates.

Performance & Stability

  • Reduced memory usage and garbage collection pressure in rendering, fonts, audio, and database operations.
  • Fixed resource leaks involving font textures, shared resource pools, and unused skin resources.
  • Added safeguards against crashes caused by invalid settings, JSON, replay data, and other malformed input.

Compatibility Notes

  • Restricted Lua access to Java, files, and some os functionality. Existing skins may require changes. A limited luajava compatibility API is also available.
  • The previous mechanism allowing IR plugins to access the application directly is no longer supported. Some plugins may require updates.
  • Symbolic links are no longer followed when scanning skin and system sound folders.
  • Back up your configuration files and player data before updating.