Full release notes
https://blog.easyrpg.org/2025/04/easyrpg-player-0-8-1-stun/
For Developers / Maintainers / Building
Always upgrade liblcf before upgrading the Player. Both need to be on the same version.
As a reminder: liblcf is our library for parsing RPG Maker files.
tl;dr for busy maintainers :)
- C++17 required
- autotools will be removed soon, migrate to CMake
- SDL3 is now supported but SDL2 is still the default. This will be changed in the next release. To already enable it use
-DPLAYER_TARGET_PLATFORM=SDL3
. fmt >= 10
is supportedlhasa
is a new, recommended dependency (for playing games inside LZH archives, a popular archive format among RPG Maker games)dr_wav
prefers now the system library instead of the vendored copy (via#if __has_include
)rang
was removed- Vendored
picojson
was removed and replaced withnlohmann_json
and is a new, recommended dependency on all systems, not just emscripten (used by the new JSON event command).
Detailed
Building liblcf and Player now requires a C++17 compatible compiler. For liblcf this is actually enforced by a dependency: ICU (the Unicode library we use) requires C++17 as of version 75. (#2190, liblcf #458)
Building with autotools is deprecated and will be removed right after this release. The archaic m4 language used by autotools became more and more of a maintenance burden, and our autotools build system lacks many features compared to our CMake build system. If you are a package maintainer, please migrate to CMake.
We support now SDL3. SDL3 is the latest version and brings enhancements such as a better graphics API proper scaling on high-DPI displays. Our support for SDL3 is very basic (same as SDL2) and is fairly recent so we decided to stay on SDL2 by default for now. To enable it use -DPLAYER_TARGET_PLATFORM=SDL3
. (#2865)
CMake: zlib
now uses find package because the config file is broken if not both shared and static version of zlib
are installed. (#3318)
The Player compiles now when using fmtlib
10 or newer. (#3002)
Loading games inside LZH archives, a popular format for RPG Maker 2000/2003 games because the editor can create it, is now supported and requires lhasa
, a new, recommended dependency. (#3033)
Dr_wav
(header-only library to play WAV audio files) uses now the system library, when available, instead of our vendored version. (#2986)
The vendored version of rang
(library for coloured output in the terminal) was removed. We now use the functionality of fmtlib
. This breaks the terminal output on Windows versions prior to Windows 10 but considering this is only a debugging feature this is acceptable. (#3181)
The vendored copy of picojson
(JSON library) was replaced with nlohmann_json
. The JSON library is now used everywhere, not just for emscripten, making it a new, recommended dependency for the Player. For emscripten it's used to parse index.json to figure out which files exist and for the other platforms a new event command was added to access and manipulate JSON files. (#3228)
When compiling a libretro core for Android some components depending on SDL2 were not disabled which broke the build. (#2983)
The CMake build system has a new setting -DPLAYER_BUILD_LIBLCF_BRANCH
to build a custom branch when using -DPLAYER_BUILD_LIBLCF=ON
. (#3017)
The Player now builds when resampling is disabled (neither speexdsp
nor libsamplerate
available). (#3251)
CMake now correctly detects the endianess (big or little endian) when crosscompiling. (liblcf #464, #3060)
A callback API was added to make it easier for external code to hook into our code without causing merge conflicts every time our code is updated. (#3224)
The header string-view-lite
was removed and replaced with std::string_view
which is a new feature in C++17. (#3360, liblcf #495)