Skip to content

0.8.1 "Stun"

Latest

Choose a tag to compare

@Ghabry Ghabry released this 07 Apr 09:04
92c4450

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
  • liblcf: CMake in-source builds are now prohibited
  • liblcf: Vendored inih was removed (we still use some example code based on it) and requires now the system library
  • liblcf: Vendored string-view-lite removed and migrated to C++17 std::string_view.
  • liblcf: Support for iconv was removed, use ICU instead (ICU is the default since 7 years, nothing changes here)
  • liblcf: Expat (XML) uses now the legacy EXPAT find package when the config file is missing.

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.

The header string-view-lite was removed and replaced with std::string_view which is a new feature in C++17. (#3360, liblcf #495)

Messages from the liblcf library can now be redirected instead of just appearing on the terminal. This allows us to log parsing problems and skipped (unknown) chunks to our normal log file when running a game through EasyRPG Player. (liblcf #416)

Starting with Windows 10, Microsoft bundles the Unicode library ICU. We now support building liblcf against this system library. The disadvantage is that you need Windows 10, otherwise you will not be able to run applications that depend on it. We asked around in chat and decided to build a custom version of ICU anyway. This way you get support down to Windows 7. (liblcf #427)

New chunks have been added to support new EasyRPG and Maniac features:

  • EasyRPG extension: For battler facing direction (liblcf #463)
  • Maniac Patch: For separate Width/Height parameters when scaling pictures (liblcf #473)
  • EasyRPG extension: To store state when an event command yields and is called again after (used by Wait for Single Movement on repeated calls, liblcf #478)
  • Maniac Patch: For separate (X/Y) camera pan speeds (liblcf #482), for various message settings (not implemented yet), for new terms related to battles and for giving names to string variables (liblcf #499)
  • The default trigger type for common events was changed to call (liblcf #484)

In addition to ICU, we supported iconv. This code was unmaintained, and we decided to remove it. As a bonus you can now build liblcf without ICU, but then only Windows-1252 encoding is supported. (liblcf #465, #471)

The tool lcf2xml now uses the system encoding by default, and you can override it with --encoding. (liblcf #468)

The vendored copy of inih (a library for accessing INI files) was removed, and building now requires the system library. We still distribute parts of the C++ interface of this library, as we have modified it to suit our needs. (liblcf #479)

liblcf now builds with RTTI (runtime type information) disabled. This is used on our homebrew platforms to reduce library size. (liblcf #483)

One of the things liblcf is designed to do is read and write RPG Maker files in a bit-perfect way. This basically means that if you read a file with liblcf and don't make any changes, the output file should be exactly the same. Apart from files that have corruption issues, this was the case before version 0.8. However, in version 0.8, we accidentally broke this feature because we always wrote certain EasyRPG chunks in the files. These are now omitted by default, which restores the bit-perfect read/write behaviour. (liblcf #485)

The library inih can be disabled to make building liblcf easier. However, when you do this EasyRPG Player will not compile. (liblcf #490)

On some sytems the libexpat package (used to parse XML files) does not provide a CMake config file. The config file generated by liblcf correctly handles now the case that a legacy find package is used by Expat. (liblcf #496)