Releases: EasyRPG/Player
0.8.1 "Stun"
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)
0.8 "Paralyze"
Full release notes
https://blog.easyrpg.org/2023/04/easyrpg-player-0-8-paralyze/
For Developers/Maintainers
Do not forget to update liblcf to 0.8.
Because of the new font support, it is highly recommended to link against FreeType now. For optional shaping support FreeType must be linked against HarfBuzz. We have supported FreeType before, but now we are fully using its potential.
Our version number is now without trailing zeros. Instead of 0.8.0 it is now 0.8. We will change this policy again later in 1.0 ;).
When using CMake the minimum supported version is now 3.13.
Building of the manual page requires now asciidoctor. (#2840)
Our code now compiles when using the g++13 compiler. g++13 cleaned up the system headers a bit and they no longer pull in other system headers indirectly. This was fixed by manually adding the missing headers includes. (#2881)
Autotools no longer fails the configure step if ALSA is missing. (#2676)
This did not make the cut for this release as we still need to get some stuff sorted out but we are currently working on Flatpak and AppImage Linux packages. We also plan to submit to FlatHub soon. When this all works (likely later in May/June) we will tell you about it. (#2192)
All our platforms now compile using the autotools or CMake build systems. Autotools will only work reliably if you are targeting a Unix-based system. For everything else, please use CMake. By all platforms we mean even the homebrew platforms (Wii, 3DS, Switch and PS Vita). If you have a fork of EasyRPG Player, please stop using the Makefiles. Migrate to one of the supported build systems! (#296, #2627) This change finally made it possible to move platform-specific files to a subdirectory. We plan to move even more files in a later release. (#2781)
CMake:
- OBJECT libraries are now used in CMake to make linking faster. (#2913)
- We fixed a build error in CMake with SDL2 when targeting the Raspberry Pi. (#2719)
- CMake presets are now supported to make building of the Player on our different platforms easier. No need to remember long build lines anymore. (#2878)
Most compiler warnings reported by -Wall -Wextra
are now resolved. We resolve the remaining ones after switching to C++17 and upgrading to the Visual Studio 2022 compiler. (#2913)
When building from the git repository, version information is automatically embedded in the Player. (#87, #2774)
Our code now compiles when using C++17. We still target C++14. This just means that enabling the C++17 standard after this release will no longer cause compiler errors. (#2745)
On Windows we support now mpg123 1.28.1 and newer. (#2749)
Newer versions of SDL2 are now supported when building for emscripten. (#2856)
0.7.0 "Sword"
Full release notes
See https://blog.easyrpg.org/2021/10/easyrpg-player-0-7-0-sword
For Developers/Maintainers
Do not forget to update liblcf to 0.7.
This is the last version supporting C++14. Right after this release we will move to C++17. The compiler support is good enough by now.
libfmt is a new required dependency that makes it much easier for us to fulfill all our text formatting needs. Every ancient version down to 5.0 will work. (#2181)
SDL2_mixer was removed and is not supported anymore because the API was too limited for our audio requirements.
libxmp (a recommended dependency for playing MOD/Tracker files) requires now 4.5.0 or newer because the previous versions did not support providing custom IO callback functions. (#2595)
For native MIDI playback on Linux (through a MIDI daemon) the recommended dependency ALSA/libasound is required.
For playing custom soundfonts (SF2) libfluidsynth is a new, recommended dependency.
Deprecation of Makefiles: Except for 3DS, Wii and Switch we build now all supported platforms using autotools or CMake. We will completely drop building through custom Makefiles with 0.7.1. We ask all maintainers using custom Makefiles to migrate to a supported buildsystem. Right now there are still some Makefiles e.g. for Amiga or Dingoo in the repository that are not maintained by us: These will be deleted before 0.7.1!
Building for Android is always a bit special because of Gradle. Instead of using the deprecated ndk-build, Gradle invokes now CMake making building much easier. (#621, #2475)
Further CMake improvements:
- The minimum supported CMake version was increased to 3.10 (#2532)
- The unit tests compile now when targeting Emscripten or macOS (#2303)
- The bash completion scripts were not installed on Linux when using CMake. (#2396)
- Multiple fixes for CMake to ensure the libretro core builds on all platforms. (#2400)
EasyRPG Player is now available on the snap store. This package is not maintained by us. Use at your own risk! (#2413)