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.