EasyRPG Player 0.6.1 “Surprise Attack”

Before we all leave into the summer vacation we want to announce the next release: EasyRPG Player 0.6.1 “Surprise Attack”. Our journey through the battle systems continues and we are happy to announce: The RPG Maker 2000 Battle System is fully implemented! For Player 0.6.2 we plan to achieve the same goal for the RPG Maker 2003 battle system.

Of course we didn’t ignore the world outside of the battle system: We developed a method to get a frame-per-frame dump of the game state: We create a test case and combine it with a Parallel Event which opens the Save scene once per frame. With this simple idea we get a frame-per-frame dump of the game state. The saving is automatically detected by a script when the savegame changes and the relevant savegame data extracted and displayed. This made it possible to implement many, before almost impossible to debug, timing fixes and bringing the interpreter closer to perfection! Unfortunately we won’t be able to explain them all to you because we are talking here about corner cases which result in a difference of 1 frame in the execution timing. For many of these cases we don’t even know games that depend on them, which means no pictures or videos in the blog for this :(. Additionally for 0.6.2 there are already many patches in the queue which will improve the accuracy of the interpreter and savegames even more but we decided to delay them because they are very complex.

We also added made some quality of life improvements. It doesn’t matter anymore which RTP you install (we recommend the Official English versions from rpgmakerweb.com), the Player will detect the installed RTP and the RTP used by the game and load the correct assets. Additionally the Debug scene learned new features: The page you had open is remembered and you can now heal the party and teleport across the map.

We also want to remind you that EasyRPG Player is now available as a libretro core which means the Player can run as part of RetroArch. More exotic platforms like the SNES Mini are not maintained by us, please tell the corresponding maintainers to update the Player to the latest version :).

Vehicle Glitch Exhibition

First lets have some fun: Here you can see four vehicle glitches now supported by EasyRPG Player.

Fixed regressions

Our previous release, 0.6.0, had a huge amount of regressions. We improved the procedure how we test our releases, e.g. by pushing APKs for testing to Google Play and waiting for feedback. This way we are optimistic that no significant regression are in 0.6.1.

Here are the fixed regressions:

As promised the picture zoom in the Smash Bros. clone もしもスマブラだったら works again. (#1662)

The immersive fullscreen mode in Android resulted in the rendering of a white bar at the bottom. (#1667)

The actors had only 1 HP in DBZ: The Legend of Z due to a bug in our new scene calling code. This also affected other games because the event command right after the battle call was executed. (#1685, #1705)

The Windows registry was not searched anymore for RTPs. (#1673)

Assets were not found in the RTP folder anymore when they were not listed in the rtp translation table. (#1709, #1754)

When using a potion or any other healing item from the menu the amount was not decrementing. (#1744)

Fixes delayed for the next release (0.6.2)

We are aware of two issues in Yume2kki:

  • The music room is broken in newer versions of the game
  • The “Amusement park clown hell event” and other events that force a wakeup get stuck in a blackscreen (this worked before, we broke it in 0.5.4)

We already have fixes for them but they depend on another complex interpreter accuracy rewrite. For releases we need to decide when we stop to accept complex patches and move to pre-release testing.  Because these fixes depend on this delayed patch these fixes are delayed, too.

We will announce on Twitter when our continuous build ships these patches and additionally provide a Beta APK via the Google Play Beta program.

On slower systems Lime’s minigame in Witch’s Heart has significant lags which make it unplayable. A workaround is disabling the audio during the minigame. We learned very late about this issue therefore we couldn’t fix it on time.

Sorry for the inconvenience.

Crash fixes

Everything which terminates or freezes (must be terminated through the task manager) the Player without showing an error message is considered a crash. Usually the fix consists of showing an error message and closing the Player afterwards because the problem is a fatal game bug. This will still cause the lose of all unsaved data but at least the user knows why.

Using Enter Hero Name with an invalid actor shows now an error message instead of crashing. (#1719)

When entering “The Depths” in Yume2kki the Player does not run out of memory anymore and crash. (#1755)

When an invalid ExFont picture is loaded a warning is displayed and the built-in fallback is used. (#1756)

The message when a map file was not found is now more helpful and closes the Player with an error message. (#1730, #1756)

Our SDL1.2 renderer falls back to windowed mode when the requested fullscreen mode is unavailable but the logic was wrong and it executed an endless loop instead. We don’t use SDL1.2 anymore on any major platform, therefore this probably never affected you. (#1692)

Map

Using a huge amount of test cases the timing of the interpreter was further analyzed and reworked which fixed a significant amount of bugs. It is not possible to determine which games were fixed by which patch but when a known game issue was fixed you find it mentioned later in this section. (#1623, #1628, #1664)

The execution order of parallel map events that show message boxes is now correct. (#662)

The moment events with “Player touch” or “Event touch” start trigger execute now at the correct moment: Player touch when the Player is about to enter the tile and Event touch when the Player is on the tile (#886, #1697).

In Doraemon: Nobita’s Resident Evil (のび太のBIOHAZARD) the sound effect of the zombies was quickly repeated when they were stuck while walking against a wall. This spammed hundreds of “No free channel” warnings and was very noisy. (#998)

The game COLORS: Lost Memories does not get stuck in an infinite loop anymore when reading a sign. (#1247)

The endless intro loop in Final Tear 3 was fixed. (#1316)

A 8-way movement script (by pressing two arrows at the same time) created by a M3Kat was not working correctly in EasyRPG Player. (#1346)

The color handling for choices in messages was incorrect: The colors are not reset when the color command is part of a choice. (#1361)

A strange interaction of teleports while opening the menu is now properly implemented. (#1457)

Bombs explode now in Grimps: Squeaking of the Dead. (#1595)

Events have a limit of 10000 commands per frame before they are interrupted. The behaviour in the Player was incorrect: The End-case of a conditional branch didn’t count to this limit. (#1613)

Correctness changes when calling a scene: (#1642, #1658)

  • Event execution continues in the current frame when a scene is called (except for the caller) but each event only runs one command (this is an obscure RPG_RT behaviour/bug we must support)
  • When multiple events call a scene only the last called scene is respected

The airship is now always drawn above the tilemap. (#1683)

Various accuracy improvements for the teleport commands. (#1624, #1694)

Events with negative coordinates are not rendered anymore on non-looping maps. (#1676)

Move to Variable location on the same map behaves now like a normal teleport instead of moving the party directly. (#1693)

Screen X and Screen Y of player and events were wrong on looping maps. (#1699)

The accuracy of timers was improved, they match now exactly the RPG_RT behaviour. (#1702)

Panoramas are now frame perfect to RPG_RT, including all strange “background jumps” bugs when changing the Panorama on looping maps. (#1704)

Scene calls are not possible anymore when a message box is visible. (#1705)

The menu opening is now correctly delayed until the Player finished moving on the next tile and until an active move route is finished. (#1714)

Transition fixes:

  • Sometimes, when changing the map in the game OFF, showed the next map too early in the first frames which resulted in an ugly flicker. (#1505)
  • The transition timings between the different scenes are now correct
  • When the screen is erased by an event the Map will stay black even when you open and close the menu
  • The debug scene can’t interrupt scene calls anymore, before it was possible to cancel random encounters with this. (#1717)

When a game was converted from RPG Maker 2000 to 2003 the shake event was incorrectly handled resulting in infinite screen shake which made the game unplayable. (#1743)

Equipment with Escape or Teleport skill is not usable from the menu anymore and items with skills play now the skill sound effect. (#1745)

Battle animations are now affected by screen flash (#1774)

States that heal while walking (RPG Maker 2003 feature) are now supported but we are not sure if any game uses this. (#1804)

While a move route is active, states don’t inflict damage or heal while moving. (#1805, #1806)

Vehicles can be unboarded on tiles which contain events that have no active event page. (#1828)

The XO-Puzzle in Die Reise ins All can be completed. There was a bug in obtaining the Terrain ID when tile substitution was used. (#1834)

Battle

We are happy to announce that the RPG Maker 2000 Battle system is complete. Algorithm wise the RPG Maker 2003 battle system is also complete but animations, timings etc. are still off. The final implemented features are (#821):

  • Equipment states. RPG Maker 2003 contains a feature we call “Equipment states”. Equipment can automatically invoke skills when equipped. This appears to be only usable for cursed equipment which can’t be unequipped because states are auto-healed when the equipment is removed. We also emulate the bug that states which are removed after battle are invoked after a full recovery or after sleeping in an Inn. (#1770)
  • The same applies for Skills where the inflict and the recover option can be inverted. This is now also supported (#1490)

When starting a new game or teleporting via a Parallel event and starting a battle directly the transition in RPG_RT looks glitchy. This behaviour is now replicated in EasyRPG Player. (#1382)

When a battle event page disables a switch that is a start condition for another battle event page the next page is not executed anymore. This fixes the “Steal” skill in Heaven and Hell Episode 3, which stole three times from the enemy instead of one. (#985, #1652)

The timings of the RPG Maker 2000 Battle Console/Message Box are now, with some minor exceptions, frame accurate. This was again a time consuming task, basically all frame timings during battle were recorded in RPG_RT and exactly replicated in our Player. Now the battles feel much more natural. (#1677, #1725, #1726, #1785)

The screen shake when a character receives damages matches now the RPG_RT shake. (#1678)

The magic point calculation for skills that cost a percentage instead of a fixed value is now correct. (#1684)

In RPG Maker 2003 weapons can invoke skills. Even when the weapon is equipped it will appear in the skills list. This was already partially supported  but we missed on corner case: When the equipped weapon is the only weapon of this type, casting skills simply failed. (#1722, #1797)

Screen shake of monsters was off by 1 frame and not fully on sync with the background. (#1735)

Items that revive battlers work in RPG Maker 2003 battle. We are 99% sure this worked before but no idea when we broke this. (Reported for “Trank der Ewigkeit” in Vampires Dawn 2, #1748)

Contrary to RPG Maker 2003 the flags for dual wield etc. are not saved in RPG Maker 2000 savegames. The Player ignores this information now when loading a 2000 savegame. This fixes dual wield in Phantasia Gaiden and probably other RPG Maker 2000 games after loading a savegame. (#1789, #1794)

The rendering order of monsters was wrong. (#1791)

The inventory is now sorted by the ID of the item. The inventory of old savegames  is sorted upon load. (#1799)

When the battle starts with a “First strike” escape always succeeds on the first turn. (#1830)

Enemies can now use skills which turn switches on or off. (#1830)

Movement

The main game changer which fixed 10 movement issues at once is #1601 (they are explained below in this section). It’s too difficult to explain all the nuances of this pull request but to sum it up: Via careful testing of movement behaviour in RPG_RT and the goal to reach frame perfect animations, movements and stop count (frames to wait between moves) many timing issues were resolved.

And the second game changer was a huge refactor for the “Make Way” algorithm. When an event walks into another event, then the event that was walked into gets a chance to run the interpreter early and move away. This had many small inaccuracies and was broken e.g. for jump and crossing of map borders. (#1606, #1675, #1687)

RPG_RT has a funny side effect in the movement handling which allows to step in place: Create a parallel event which does:

SetMoveRoute: Player, Decrease Speed, Decrease Speed
Wait for Movement
SetMoveRoute: Player, Increase Speed, Increase Speed
Wait for Movement

When this event executes the hero will step in place and this is now supported. (#663)

Get On/Off Vehicle failed when the Vehicle is entered while a move route is active. (#1267, #1429)

The movement accuracy improvements fixed minor visual issues in Ascendence. (#1293)

Spinning events don’t reset there spinning direction anymore when you talk to them. (#1585)

When entering a ramp in Lakria Legends the hero doesn’t enter an endless up-down-movement anymore. Events with “On Collision” trigger don’t execute while a move route is active. (#1593)

Move towards player move commands behave now correctly. (#1604)

Events were unable to jump on tiles that were occupied by events on different layers. (#1612)

MoveType toward/away movement type behaves now as in RPG_RT. (#1644)

When an event has a cycle move type (horizontal or vertical) and an “Event Touch” start condition the event stops now the movement when the Player is in it’s path instead of inversing the direction. (#1659)

More, highly specific issues, fixed in the unreleased minigame Kanga Punch: #1587, #1654 and #1671

Savegames

The flash color of a screen/character flash effect is now saved. (#1772)

Vehicle types were not correctly written into savegames. Fortunately we save a version information since 0.6.0 which allows us to add compatibility hacks for fixing old savegames. (#1796)

Android

The menu text is not purple anymore on newer Android versions. (#1670)

Emscripten (Web Player)

When the screen is faded out the web player will wait now until all currently pending images are downloaded. This makes map changes look much nicer because the assets won’t pop in anymore after the transition is finished. (#1694)

libretro/RetroArch

We officially support the libretro core of EasyRPG Player now. Read the dedicated blog post for more information. (#1464)

Other

The title scene renders now a black background when no title graphic is specified in the editor, before the system graphic was used (as hide title does). (#1728)

Almost since the beginning we supported RTP lookup for Japanese to Other and Other to Japanese. This avoided many issues because you were not required to figure out how to install the Japanese RTP but other common lookups like Don Miguel English RTP (the inofficial RPG Maker 2000 RTP) to Official RPG Maker 2000 were not supported. This changes now! Player detects now all installed RTP and the game RTP and will do a RTP-to-RTP lookup. Additionally, for our Linux users, detecting of the installed RTP in a 64-bit Wine Prefix was fixed. (#802, #1754)

For a smoother game play experience the Player is caching recently used assets in memory. The cache had no upper limit and only removed resources from the cache if they were not used for a certain amount of time. This strategy required a huge amount of memory which were unavailable on some of our ports. The new cache is now much smarter and even supports the caching of effects (Screen Tone) which gives a speedup on maps which have many events. A notable speedup happens in “The Depths” in Yume2kki, before the map was almost unplayable. (#1760)

The Game Browser (shown when no game is found in the current folder) shows now the Player version in the about page. (#1843)

We noticed that some games contain the same folder twice in the archive, e.g. TITLE and Title. This is no problem on Windows because the system is case insensitive and will simply merge the folder but on other systems assets will fail to load. We emit now a warning on startup when a game has such a folder structure. (#1594)

Improved Debug Scene (#1813, #1817):

  • You can now teleport across maps
  • The party can be completely healed
  • The indices of the various options are remembered, even when you close the scene

We listened to your feedback: In 0.6.0 we added a noisy warning that always popped up when a RTP asset is used reminding you that the RTP is not installed. Unfortunately this warning resulted in many users giving us bad ratings because of “Yellow text”, even more bad ratings than we got before for “Silence” (because the audio file is missing). We disabled the warning for missing Music/Sound, enjoy the silence instead. (#1672)

Building

Various build fixes for MorphOS and AmigaOS4. (#1682, #1686)

CMake supports now both resamplers: speexdsp and libsamplerate. (#1746)

The tarball of 0.6.1 contains now all files necessary to build with CMake. (#1835)

 

 

Official libretro/RetroArch support for EasyRPG Player

RetroArch is a frontend for emulators, game engines and media players which is powered by the libretro API that provides an abstraction layer to connect other applications (so called  “cores”) to RetroArch.

EasyRPG Player is now supporting libretro including all features you know from our other ports, which means you can decide if you want to use any RetroArch specific features not (yet) provided by our standalone version.

We will continue maintaining and improving our standalone version. See libretro support as a bonus feature. We don’t see RetroArch as a competitor, you can decide which version you prefer :).

For stability and maintenance reasons the release schedule will be, when 0.6.1 is released, linked to our official schedule which means the core is always updated after a new official release is announced in the blog.

Features

Notable features compared to the normal version:

  • Gamepad button remapping
  • Better file browser
  • Touch UI on any platform
  • Shaders
  • Simple install of WildMidi instruments via the built-in content downloader
  • Everything else RetroArch offers ;) (when applicable, EasyRPG Player is not an emulator)

Download & Platform support

We don’t provide our own builds for it, instead use the core updater of RetroArch or download it from the libretro buildbot.

The core is available for the following platforms/architectures:

  • Windows (32 and 64bit)
  • Linux (64bit, ARM hardfloat and ARM Neon)
  • macOS
  • Android (only ARM, not for x86 due to build issues but your smartphone/tablet is usually ARM-based)
  • iOS (the only platform we don’t really support yet, due to lack of a touch UI)
  • SNES Classic & co. (Maintained by ModMyClassic)

A port for Vita and Switch is possible but due to lack of hardware for testing these are currently unsupported. Use our standalone ports instead. The 3DS is out of scope because of hardware limitations (our official port which is optimized for the 3DS already runs badly). Support for Wii and WiiU is not planned because these platforms are using big-endian byte ordering and compiling some libraries to these platforms really causes a headache. You can use our official Wii port instead. The same applies to emscripten, the web version requires many modifications to run properly, please use our own version of the web player instead.

Controls

Except for some functionality that is already provided by RetroArch (Reset, Fast Forward, Screenshot and FPS toggle) the keyboard mapping is the same as in the standalone EasyRPG Player.

RetroPad:

  • A: Confirm
  • B: Cancel
  • Y: Shift
  • Start: Confirm
  • Select: Reset game
  • X, R1-3, L1-3: RPG Maker games can use more buttons than the RetroPad has. You can map these 7 buttons in the core options.

Core options

  • Remapping of RetroPad X, R1-3 and L1-3.
  • You can decide whether the keyboard (normal EasyRPG Player button mapping), the RetroPad or both are used. Due to possible button mapping conflicts you can disable one of them here.
  • Debug/TestPlay mode can be toggled. This allows you to walk through walls by holding left CTRL or opening the debug menu with F10 (you can map them to the RetroPad)

For developers

To build it locally you can clone our repository and build it with CMake:

git submodule update --init
cmake . -DPLAYER_TARGET_PLATFORM=libretro -DBUILD_SHARED_LIBS=ON|OFF

Use ON or OFF depending on if your platform uses shared libraries for libretro, when you target your Desktop system, use ON.

This will use your platform libraries instead of “baking in” the dependencies, which is usually what you want. To compile dependencies (when cross-compiling) take a look at our buildscripts repository.

If you don’t want to use your system libraries or manually built libraries for whatever reason you can use the Makefile to invoke the “automagical voodoo-build” in the libretro-easyrpg fork. This is designed for the libretro buildbot and otherwise unsupported!

R48 – An alternative editor compatible with RPG Maker 2000 and 2003

This post is part of a series about interesting developments in the community related to EasyRPG & RPG Maker 2000/2003. If you have anything interesting to show, please prepare a draft and send it to us, then we will consider publishing it.

Most work on EasyRPG is focused on EasyRPG Player. It’s the engine to run the games, equivalent to RPG_RT.exe. But the games need to be created before they can be played.

In the future, EasyRPG will include its own game editor. But this is a lot of work, and it’s not a priority right now. So, when creating games you have to rely on external editors. Most popular ones are RPG Maker 2000 and 2003, because EasyRPG is compatible with them. But there is a new option to try out: R48.

R48 is a relatively new editor, created by t20kdc and compatible with EasyRPG. Why use it over RPG Maker? Well, there are quite a few things that set R48 apart:

  • Full-colour image support. No more need to convert your images to 256-colour format.
  • It’s multi-platform thanks to Java. You can run it on Windows, Linux and macOS. There’s also an Android build but it is not optimized for touch input.
  • Support for many languages, thanks to Unicode. You want to create a game in Greek, Georgian or Kazakh? We’ve got you covered. Unicode is optional: you can edit games in legacy encodings, too.
  • It’s free software placed into public domain.

So, do we even need EasyRPG Editor if we have R48? The answer is yes. There are some differences:

  • EasyRPG Editor aims to be a drop-in replacement for RPG Maker 2000/2003: intuitive and easy-to-use.
  • R48 aims to be powerful, allowing to edit many complex internal details and different formats (it even has a mode for editing RPG Maker XP and VX Ace games!).

Also, R48 is just different. It implements the same feature set, but does it in a different way from RPG Maker.

But this shouldn’t discourage you from trying out R48! It’s free so you’ve got little to lose anyway. Below are a few simple steps that can get you started with this editor.

Installing and running R48

To install R48, get the latest .jar or .apk from https://github.com/20kdc/gabien-app-r48/releases

The JAR file is for desktop computers. To run the JAR file, you would need a Java runtime environment (aka Java virtual machine). You would need to install the JVM for your operating system and open the JAR file with it.

Running R48 on Windows

If you use Windows, you can download the JRE for Java 8 from Oracle. After installing it, you will be able to run the .jar file by double-clicking it in the Explorer.

Running R48 on GNU/Linux

If you use GNU/Linux, you can install JRE from your package manager. They usually provide a version of OpenJDK, a free-software analog of Java. In Ubuntu, you can run the following code in the command-line:

sudo apt install default-jre

After installing the JRE, you will be able to run R48 by opening the terminal and running something along these lines:

cd "/folder/where/your/r48/is/located"
java -jar gabien-app-r48.jar

Alternatively, you can set up your system to open JAR files by double-clicking, see the instructions here.

Running R48 on Android

The APK file is for Android. Allow installing applications from third-party sources in the settings. Note that the Android version is pretty preliminary, and it might be hard to use: the buttons are too small and clicking on them might be difficult.

R48 doesn’t come with the engine: you need to use EasyRPG Player for that. It doesn’t even have a “Run”-button. Instead, you’ll need to run EasyRPG Player like you normally do in your operating system.

In Windows, you can download EasyRPG Player and place the Player.exe in your game folder.

Choosing the game folder and game engine

What is a game directory

First, you need a game directory. That is, a folder where your game will reside.

If you want to create a new project, then just make an empty directory that will hold your game. Once opened in an empty directory, R48 will offer to create a “skeleton project”: a bare-bones game that you will build upon. R48 creates quite a lot files and subdirectories, so make sure your initial directory is empty.

If you want to edit an existing game, your game directory is a directory where RPG_RT.ldb and maps (Map0001.lmu, Map0002.lmu, etc.) are located.

Note that existing games made in RPG Maker 2000 and 2003 might depend on the default set of graphics and sounds called RTP. R48 doesn’t come with its own RTP, and doesn’t have a direct RTP support at all. If you want to edit a game with R48, all its resources should be inside the game folder. Note that it might be illegal to edit games made with RTP in R48, because RTP license only allows to use it with RPG Makers and R48 is not an RPG Maker. Consult the RTP license and your local laws before doing that.

Choosing the game directory for R48

R48 has two ways of choosing the game folder.

First, you can just drop the .jar file into the folder where you’ll edit the game, then run R48 without specifying path to game and it will use the folder where the .jar file is located.

Second, you can use the “Path to Game” field after opening R48. Note that you need to click on the field under “Path to Game (if you aren’t running R48 in the game folder)” label, enter your path, and press Enter. The last bit is important: Whenever you type text in R48, you need to confirm your input by pressing Enter. Otherwise, your text will be ignored.

After choosing the game folder (or leaving it blank, if you have placed R48 in the game directory), choose the target engine. For games that are compatible with EasyRPG Player, choose the “RPG Maker 2000, 2003, or EasyRPG” option.

Choosing the text encoding for the game

After this, you will be presented with a choice of how the text is stored in your game:

  • If you plan to edit your game with RPG Maker 2000 or 2003 in the future, choose the legacy encoding relevant for your language (the official engine from Steam only supports “English/French/CP1252”; the official Japanese version used “Japanese/MS932” and fan translations used different other options). If you’re editing an existing RPG Maker game, you should use the legacy encoding relevant to the language of the game.
  • If you don’t need RPG Maker compatibility, try the UTF-8 encoding. This is a modern encoding supporting all kinds of languages. If your language was not supported by RPG Maker, it’s your only choice (e.g. Armenian, Georgian, Greek).

Remember the language choice you’ve made in this step. You will need to choose the same encoding each time you edit the game later.

If you’re starting R48 in an empty folder, it will offer you to create a bare-bones project compatible with RPG Maker 2000 or 2003. Agree to this and you’ll have a number of subfolders created in your empty folder. After creating an empty project, press the Save button in the top right corner of the screen to save all the modified files.

Making EasyRPG Player recognize your language

If you’re creating a game in English or in most Western European languages you can skip this part: your language will be recognized automatically.

But if you’re creating a new game in some other language (e.g. Russian or Japanese), EasyRPG Player might not know the language of your game and will display the text incorrectly. There are two ways to make sure the language is recognised:

  • You can edit the main text strings in the game.
  • You can edit the RPG_RT.ini file in the game folder.

Let’s take the first and route. EasyRPG Player determines the language of the game by looking at the text in the menus, so you need to edit the “Begin”, “Load” and “Exit” buttons that allow to start, load and exit the game. EasyRPG Player determines the language based on these interface elements and the filenames of the system sound effects, so make sure at least some of these buttons are not in English. For this:

  • Click on the ‘Database Objects’ tab in the top.
  • Click on RPG_RT.ldb button — this is the file containing most game data.
  • Find @terms and click on the button to the right of it (it would have a number in brackets, like [127] — click on that number).
  • Scroll the list down to optStart, optLoad and optExitApp, and edit the text of these buttons: they are shown on the main screen. Click on the current text (e.g. “Begin”) to start editing the button. Edit it, and press Enter to confirm your changes (this is important: if you don’t press Enter, your text will be removed!).
  • Replace “Load” and “Exit” text with text in your language similarly.
  • Press the “Save” button (either in the RPG_RT.ldb window, or at the top right corner of the main window) to save your changes. Voilà! Now EasyRPG Player will be able to determine the language of your game by checking these buttons.

Yay! Now you can run EasyRPG Player in your game folder to ensure that the main menu correctly displays the text.

If it’s still incorrect, you can edit .ini file and add the following lines to it:

[EasyRPG]
Encoding=65001

65001 means “UTF-8”. For the legacy Japanese encoding, use Encoding=932. For the legacy English, French and Swedish encoding, use Encoding=1252. For the legacy Cyrillic encoding, use Encoding=1251 line.

After you’ve done this, you can start editing the actual game content in your language.

Interface overview

R48 is being actively developed, so different versions might look somewhat different. But all of them should have a tab bar in the top, where you can choose one of the following:

  • Database Objects contain game-wide settings. RPG_RT.lmt specifies the player’s starting point (where the game starts), and RPG_RT.ldb specifies most game-related things (available actors, skills, items, enemies and enemy troops, tilesets to create maps from, and more).
  • MapInfos allows to select an active map and add new maps.
  • Map allows to edit the active map. You can edit the map by laying your tiles on two levels (L0 and L1), by placing Events (that represent everything non-static, e.g. passages between maps or non-playable characters). There is also a Resize option (hidden behind the … button) that allows to change the map size.
The R48 Map Editor

There are a few things to note:

  • Most changes are not saved by default. Use the Save button at the top right corner of the window (represented either by a floppy disk icon, or by a text “Save All Modified Files”) to save all your changes.
  • When you edit a text, your changes will not be applied until you press Enter. Moving to another field without pressing Enter will revert your changed text!

Basically, this interface allows you to change anything in the game. There’s much more to R48 (it even has a simple image editor), but the things above should be enough to get you started.

The R48 Event Editor

Where to go now?

If you need more graphics or sounds, you can get them from EasyRPG’s RTP Replacement: https://github.com/EasyRPG/RTP (direct download). The folders in the RTP Replacement are the same as in your game’s folder (e.g. ChipSet holds map tiles, CharSet holds event/NPC graphics, etc.), so you can just copy the files over to your game’s folder, and they will become available for you to use in R48.

If you need help with game creation, feel free to ask in EasyRPG’s community forum the #easyrpg IRC channel at irc.libera.chat. A more user friendly way to reach the IRC channel is via Matrix/Element or Discord. Please search the Discord invite link because we don’t want to actively advertise non-free protocols.

R48 is not yet known enough to have its own forum or chat, but you can get help in the EasyRPG-related places.

Author info: This blog post was written by Demetrius.