HomeGamesUpdatesPricingMethodology
Steam News30 December 20256mo ago

[Beta] 2.10.0 Update

Hibiscus 2.10.0 Fixed a bug where `RequestCurrentStats` was removed but the corresponding detection code wasn't, causing achievements and stats to never update.

Full notes

Full EndlessShinyBlues update

Read the full published notes in a cleaner layout. The original post stays linked below.

What changed

0 fixes4 additions13 changes1 removal
  • Fixes
  • Performance
  • Gameplay
  • Server
  • UI and audio
  • Events
changedFixed a bug where `RequestCurrentStats` was removed but the corresponding detection code wasn't, causing achievements and stats to never update.Couldn't unlock a single achievement lol
changedFixed a bug where `RequestCurrentStats` was removed but the corresponding detection code wasn't, causing achievements and stats to never update.Actually, in previous versions, the stats function somehow became an empty function lol
changedFixed a bug where `RequestCurrentStats` was removed but the corresponding detection code wasn't, causing achievements and stats to never update.Achievements and stats should now unlock normally.
changedFixed a memory leak bug after encrypted font embedding failed.If embedding failed, it would just return—forgot to delete the pointer lol.
changedFixed crash when exit due to VEH not removeddangling
addedMigrated `LaunchCount` and `SettingsPage` to `_GlobalProgress`But running it again would treat you as a new user. Oh well, not many people will be affected anyway

Hibiscus

2.10.0

Fixed a bug where `RequestCurrentStats` was removed but the corresponding detection code wasn't, causing achievements and stats to never update.

Couldn't unlock a single achievement lol

Actually, in previous versions, the stats function somehow became an empty function lol

Achievements and stats should now unlock normally.

Fixed a memory leak bug after encrypted font embedding failed.

If embedding failed, it would just return—forgot to delete the pointer lol.

Fixed crash when exit due to VEH not removed

dangling

Updated to FFMpeg 8.0.

Should be a bit faster now...

Migrated `LaunchCount` and `SettingsPage` to `_GlobalProgress`

Otherwise, the settings file would be modified every time the program runs

But running it again would treat you as a new user. Oh well, not many people will be affected anyway

FFmpeg now supports full hardware decoding

When playing videos, pixel format conversion for hardware-decoded results can now be done on the GPU, with hardware decoding enabled by default. Enabling this noticeably reduces CPU usage. If running on very old graphics cards, you might also observe increased GPU usage, as modern GPUs can easily handle hardware decoding of dozens of 1080p YUV 422 videos simultaneously.

Create a file named NOHWDECODE in the game's root directory to force software decoding.

Fixed a crash in `EpicOnlineServices` when parsing application command lines containing Chinese characters in paths.

The command line parsing library uses std::codecvt and requires UTF-8 encoded input strings, while GetCommandLineA defaults to returning the application's code page. Previous functionality likely relied on code page modifications elsewhere—essentially operating under a dependency bug.

Game recording (Steam Timeline) support

Features a comprehensive set of functionalities

Audio threads for FFMpeg objects no longer start by default

During resource-intensive operations—such as loading large video files or streaming videos with poor network conditions—unexpected audio may play even after closing the window before screen updates. For instance, on lower-spec machines, opening the video gallery page unlocking all videos for the first time may occasionally trigger audio resembling an explosion.

AVFormatContext and AVCodecContext for frame capture at specified positions are now created only when necessary

Improves video loading speed

Memory leak during FFMpeg audio format conversion

This significant leak previously went undetected likely because videos displayed briefly, causing corresponding memory to be released upon destruct and masked by normal memory usage

Optimized FFMpeg decoding workflow to improve jump and speed playback performance

During precise jumps, speed playback, and audio-video synchronization, intermediate frames sometimes need to be discarded. Previously, every decoded frame underwent conversion; now only references are retained, with conversion applied only to the final frame. Additionally, older versions attempted to fill the queue during playback—an unnecessary practice causing delays in jumps and playback initiation. Now, both audio and video threads populate the queue as needed, rather than waiting for the main thread to fill it. When switching video differentials, the playback jumps to the timestamp of the previous video. Loading a new video also decodes to the first frame before jumping back to the beginning. These optimizations significantly improve performance in this area.

Universal Platform Function Calling Method

Previously hardcoded Steam platform methods have been abstracted.

Allow platform disabling

To properly display the overlay, Steam initialization must occur before D3D. Since this cannot be directly controlled via events, additional work was done to allow its initialization to be disabled.

Skip text range recalculation when unnecessary

This might be slightly faster in specific scenarios, but such scenarios are unlikely to occur in this project.

Added text annotations supporting nesting and icon display

Scriptwriters must manually add annotations via script modifications; absence indicates no annotations

Steam post imageSteam post image

Allows controlling horizontal alignment modes for different lines

Seems largely redundant outside VN mode

Custom tag callbacks within text

Called sequentially after rendering completes, but largely useless given bridging functionality

Supports annotations in text using `[Trigger="Content" ="" Comment,="Comment,"][/Trigger]` format

Requires script modifications by the writer to add; if not added, it won't be there. Boxes also need to be drawn by the artist.Steam post image

Allows setting formats not to be ignored in history text

To enable annotations and comments in history, all formats were previously stripped.

Adjusted encryption key generation logic

If the provided length is insufficient, it will generate a sufficiently long key using the input key instead of defaulting to the base key. Rest assured, your game's encryption key length is more than adequate.

Process handles copied during preloading were not closed

It only launches once during the title screen anyway, and it's quite difficult for handle leaks to become noticeable.

Refactor the Steamworks extension

The base class originally provided only one callback method. Later, multiple callbacks were found in certain areas, so the base class was modified. This change is imperceptible to players.

But it seems a bit rushed.

Fixed an issue where login failed when launching via Epic Launcher due to command-line parsing errors.

The command line is particularly quirky. Previously, due to budget constraints, we couldn't afford tickets for actual testing. Relying solely on documentation proved insufficient.

Source

Steam News / 30 December 2025

Open original post

Changelog.gg summarizes and formats this update. How we read updates.