HTML5 Player port

Not interested in any details? Run TestGame in your browser

Some months ago we wrote a post for the April Fools’ Day called HTML5 port plans which was announcing a planned web based EasyRPG Player port.

Because of this date it could be a fake, however some details were really planned about making this real. Using the Emscripten compiler, Player C++ code can be converted to JavaScript code and run in modern web browsers with a faster computer.

This effort could be considered too early to be done, however it is pretty useful, for example, for checking the result online along with the Test Game for fast testing without needing to download Player, game and RTP if not installed in the current machine.

The new port will require a fast machine with a modern browser. Mozilla Firefox (newest version) is recommended, as it is faster than other browsers when running it. Processor requirements are currently high, a +2GHz multi core processor is suggested.

Saving works. The Esc key maps to “Disable fullscreen” in the browser in some cases, use the X key instead to toggle the menu. But even with these flaws it is still a nice proof of concept.

You are invited to try TestGame running in your browser, feel free to share your thoughts and feedback in post comments. Imagine when the JavaScript port becomes more matured you can run RPG maker games directly from your website, how cool is that?

Android version of 0.2.2 now available

We just want to announce that the Android version of our latest release is now available. There were some issues after updating the libraries we used for the project that needed a while to get resolved. But now you can finally enjoy the updated version on your device

If you don’t already have it you can simply install it via the Play Store. In case you dislike Google get the APK from our download section.

For all new features see our previous blog post.

One of the most anticipated features – support for additional buttons like the number keys – is still not available. We are aware that this is important for many games.

EasyRPG Player 0.2.2 “Brian”

After some months, here is a new maintenance release of the RPG Maker 2000/2003 game interpreter. This release has been focused on bugfixes though it adds some new features.

What is new for users?

Hangul support for Korean games. Before this release, all games using Korean characters were unreadable. The Baekmuk Gulim font glyphs have been added to cover them (#336). Nobody of the team speaks Korean, however we want to support all games possible written in any language.

Gray Garden Korean translation
Korean translation of the Gray Garden game

There is also initial work to add missing Traditional Chinese glyphs, designed by Dmytro Kushnariov (#359)

Fixed major bug regressions introduced in previous releases:

  • Fixed shop’s invalid item bug and refresh sell window when opening it (#305)
  • Fixed sprite flashing (#300)

Fixed picture rotation (position and initial angle) (#310)

Implemented rest (fade out and fade in) in the inn (#313)

Fixed Battle related features:

  • Battle: Added fatigue trigger, fixed hp trigger and cleaned battle_calling to make battle command interpreter work (#326)
  • Battle: Fixed the acquisition of battle backgrounds (#304)

Maps and tile related:

  • Implemented Save (Allow/Forbid/As in parent) map property (#293)
  • Improved tile animation speed (#306)
  • Regenerate autotiles cache after a new chipset is setup (#313)

Messages:

  • Fixed message flags clearing (#313)
  • Show gold window during inn prompt, skip prompt if price is 0 (#313)
  • Implemented closing windows animation (#313)
  • Fixed face not cleared after the event execution ends (#340)
  • Fixed font color when changing game system graphics (#345)
Wadanohara and the Great Blue Sea
Fixed font color was affecting Wadanohara game

Multiple fixes and implementations in the event interpreter:

  • Improve animation speed (#235)
  • Fixed hero facing when triggered (#235)
  • Use the prelock direction for spinning animation like in RPGM (#235)
  • Use middle frame pattern when changing a character’s graphic (#235)
  • Update self movements when GetContinueEvents is true and reset move_route_repeated flag when a new move route is forced (#280)
  • Update interpreter after each autostarting event is set up (#280)
  • Stop event processing during transitions (#313)
  • Prevent destruction of parallel interpreters when map is refreshed and that interpreter is currently running (#325)
  • Fixed delayed deallocation when there are multiple parallel interpreters (#327)
  • Use the through-bool only for Through mode in movement events (#321)
  • Implemented transparent flag for Events (#302)
  • Implemented bush depth for character sprites and fix screen center (#326, #361)

Fixes to menu related issues:

  • Fixed segfault when item ID > max ID in Equip menu (#337)
  • Don’t play menu sound on cancel if menu access is not allowed (#289)
  • Always draw equipment stats (even when ’empty’ item is chosen) (#329)

Added Keypad 0 as Cancel button (#301)

Added MIDI support in OpenAL backend (#308)

Improved loading performance for some games by avoiding recursive folder mapping when not needed (#326)

Building: Patches for SDL and SDL_mixer were backported from Hg for Windows and Android to fix audio and wave issues (#353)

liblcf: Fixed various crashes when loading invalid data size blocks from some games (#120, #121)

Android: Added external gamepad device support.

What is new for developers?

Added code documentation generation option (Doxygen) to Autotools build (#323)

Quirks in RPG Maker: RTP and the translation hell

Welcome to our new series “Quirks in RPG Maker”. Here you will read about interesting issues we discovered while developing liblcf and EasyRPG Player.

RTP: “RunTime Package”

Almost all RPG Maker versions for PC bundles a shared game assets package, containing graphics, sounds and music. RTP packages are installed separately and they are downloadable for free from authorized distributor websites. The main motivation for this was intended to have a common asset library (graphics, music, sounds) shared between games to save some disk space in early distribution days (floppy disks, dial-up modems). Modern RPG Maker versions still use this shared way to provide game assets like a shared application library.

RPG Maker 2000 (and 2003) was published in Japan only. All RPG Maker 2000/3 RTP file names are in Japanese. This is OK, nowadays we can read Japanese and other languages across the web without issues. However, things were different around 15 years ago. RPG Maker 2000/2003 installers only work in Japanese Windows (or configured as Japanese), even today they are tricky to install. Though the license didn’t allow to modify the application, there have been unofficial translations of the product, requiring translating all file names to be able to install on non-Japanese Windows.

The problem: Non-unicode applications

Some years ago, there were lots of language specific character encodings around. Operating systems needed to map character symbols for different languages. E.g. Windows used the codepage 1252 for Latin script (western), 1251 for Cyrillic script (Russia, eastern Europe) an dozens more. These encodings shared same byte identification for specific characters, so documents needed to include some encoding identification to be read in systems with different languages and doing a conversion to be read.

Due to early years limitations, Unicode was created to have an universal character encoding for all symbols from all languages. This was awesome, but:
Year 2000. The year of the release of RPG Maker 2000. Popular Windows version that year: Windows 98. Unicode support: no.

Unicode was introduced in Windows NT, but the first user oriented Desktop version with Unicode support (based on Windows NT) was released later: Windows XP (2001).

Being RPG Maker 2000/2003 a non-unicode application supposed lots of problems as usual due to the character encoding legacy. Specific encoding quirks will be extended for the next “Quirks in RPG Maker” article.

RTP translations

Apart of the worldwide repercussion and facts about releasing program translations not needed to mention, the focus on the RTP translation deserves its own space.

The first popular RPG Maker 2000 RTP translation was made by Don Miguel. He translated all 465 filenames, some bugs and inconsistencies but nothing serious… well, he removed 3 files and added 38.

EasyRPG Player has a translation table feature. This allows to play games depending on Japanese filenames with an installed unofficial English RTP translation and vice-versa. If a game uses one of these 38 files added by Don Miguel and the system has the original Japanese RTP, weird things will happen. To prevent missing files, assets have been mapped in the table pointing to other files, but this is not the best solution.

Around 2002, RPG Maker 2003 was announced, after some advice about how bad are translations for the business. Don Miguel said he ceased translating RPG Maker. New, now major problems again.

Multiple RPG Maker 2003 RTP translations

After the RPG Maker 2000 translation release, RPG Maker became very popular around the world. With the RPG Maker 2003 announcement and RTP release, a couple of translators published different RTP translations, even before RPG Maker 2003 translation releases. This race of independent translators became a major mess. Then appeared multiple games depending on RTP assets but incompatible between RTPs. As a result, missing file errors appeared when trying to run them and became a pretty common issue.

EasyRPG Player needed to deal with it, by adding a multiple RTP translation table. Currently we have one translation for RPG Maker 2000 RTP and 3 translations for RPG Maker 2003 RTP. Now it is capable to solve this issue, as a value-added feature.

You can check the EasyRPG wiki for more technical details about RTP and some additional features like 2000 to 2003 migration and shared assets between versions, not mentioned here, but may be mentioned for other articles.

EasyRPG Player on GCW Zero

Shin-NiL updated the GCW Zero version to 0.2.1. You can find them in our download section. If you are having issues or want to say thanks, take a look at the on-going discussion.

As an additional service to the community we are providing now automatic builds for GCW Zero via our Jenkins build service (and of course in the download section under “Continious builds”). Together with the Wii this is the second community maintained port officially distributed via our Website.

You are a developer and want to maintain a port for another system? Feel free to contact us!

Installation

RTP

  • Install the RTP files on your computer
  • RPG2K games: Copy the RTP files, not the RTP folder iteself, to /media/data/local/share/easyrpg/rtp2k
  • RPG2K3 games: Copy the RTP files, not the RTP folder itself, to /media/data/local/share/easyrpg/rtp2k3

Games

  • Copy the desired game to your device (this folder name must not contain blank spaces)
  • Run EasyRPG then navigate into the game folder and select the RPG_RT file to play

Video

EasyRPG Player 0.2.1 “Carol”

The last month was filled with lots of activity on the Player development side. Therefore we decided to publish the first bugfix release. The compatibility should have significantly increased compared to 0.2.

What is new for users?

One of the more exciting features is the automatic encoding detection. This basicly means that you don’t have to set the encoding manually (via Encoding option in RPG_RT.ini) for games that are not from your region. In our tests we couldn’t find any games where the detection fails, but the manual setting is still supported. This also resolves a problem with the wave dash (~) in japanese games which was mapped to the wrong unicode character. (#258)

Lots of movement related issues were resolved:

  • Pictures locked to a map position are supported now (#44)
  • Events face the hero now when triggered. Movement mode “spinning” added and movement with fixed orientation (#253)
  • Fix passability between events of the same layer (#259)
  • Fix HaltAllMovement with repeating move routes (#259)
  • Improve jumping, allow to jump on the same tile (#259)
  • Always block player movements when a window message is shown (#259)
  • Don’t cancel forced move routes when a new page is set up (#259)

Fixes for the event interpreter:

  • Events on the upper layer (above hero) with “On Touch” trigger execute now (#264)
  • Fix rendering for tiles when replace tile command is used. The game Tetrix 3 uses this feature in a quite clever way: It uses two tiles for a bridge that are looking the same but have different attributes (“circle” and “star” flag). When the player walks over the bridge the circle tile is used and when driving by boat under the bridge the star tile is used (#142)
  • Fix incorrect termination of parallel processes (#255)
  • Fix passability of upper layer characters over the hero (#265)
  • Fix counters (tiles with “counter” flag) (#274)
  • The Tone command was sometimes displaying wrong colors (#265)

Improvements to Image handling:

  • Some BMP images contained invalid header data and failed loading (#248)
  • The image type is now determined by reading the header. Image files with incorrect extensions (e.g. BMP files that are actually PNG) load now (#163)
  • The Player loads a dummy image (checkerboard) now when an image is not found instead of terminating (#32)
  • When a picture was loaded twice, one time with transparency flag and the second without, the second picture was transparent, too. (#86)
  • If a graphic didn’t have a file assigned the Player falls back to sane defaults now (#139)
Checkerboard for missing graphic
Checkerboard for missing graphic

Improvements to Audio handling:

  • The type of audio files is now detected by reading the header. This allows e.g. playing of “MOD” files with WAV extension (RPG_RT got this feature via the Audieremony patch) (#74)
  • Fade in support (except on Windows due to a platform bug) (#62)
  • Increase channel limit from 8 to 32 to prevent “no free channels available” warnings. (#247)

Our Font got full Cyrillic and Latin Extended A to cover all Central and Eastern European languages (#245)

Russian game
Russian game (look at the beatiful parallax mapping!)
Polish game
Polish game

Messages:

  • The “gradient” color from System graphic was misaligned for wide chars and symbols. (#145)
  • Because of the way Japanese and Korean are encoded they use Yen (¥) and Won (₩) symbols instead of backslash (\) for message commands. These command triggers are now supported (#259)
  • Show faces on the right side and choice input was broken due to a regression introduced in 0.2 (#246)
  • In TestPlay mode messages can be fast-forwarded by pressing the Shift key (#196)

Skills that change switches were implemented. (#274)

Allow creation of Monsters without graphics (#125)

The Menu scene got some bugfixes:

  • Cursor position in Save/load menu fixed (#265)
  • Using null/empty items, skills or equipment doesn’t crash anymore (#254)

Map and Battle transitions are supported now and the default transition speed was adjusted.

The Title scene window position was fixed, the opening animation speed adjusted and HideTitle command is supported now (#49)

Our FileFinder supports files in subdirectories now (this isn’t officially supported by the RPG Maker editor but somehow works in RPG_RT). Yen and Won are supported as folder seperators now (same issue as for message commands) (#259)

Handling of the RTP was improved:

  • A warning is now displayed when there is no RTP found and RPG_RT.ini doesn’t contain FullPackageFlag=1. (#247)
  • More RTP 2003 translations supported. (#244, #283, #291)
  • Fix WINE registry UTF-16 parsing (#238) and add fallback support (#250)

The Android port was updated. Get it from the Play Store or get the APK from our download section.

  • Support for Xperia Play buttons (#232)
  • The select region menu (long press on item) got an autodetect option and contains more regions/languages now (#291)
  • INI writer corrupted the INI file when [EasyRPG] was the last line (#291)
  • MIDI playback tempo is now correct. A patch for SDL2_mixer (The audio lib we use) was backported to fix this (#291)
  • The OSD buttons were hard to see and are now less transparent (#291)
  • Timidity now ships directly in the apk. MIDI playback works now without any additional user interactions. (#291)
  • Added (highly experimental) standalone mode. This allows distributing of RPG Maker 2000/2003 games inside a single .apk. We will give more details about this in a later blogpost because there are still some issues we have to resolve. (#291)

The Wii port had outdated libraries and wasn’t completly working anymore. User carstene1ns was so kind to update them for us.

The on screen console supports linebreaks now (#256).

The command line interface got a new argument –start-party option to overwrite starting party members and the Player was crashing for arguments requiring values when no value was passed (#259).

The Linux distribution Mageia provides now a RPMs for the Player (maintained by Akien). Note that there are also AUR packages for Arch Linux since a longer time (maintained by carstene1ns).

What is new for developers?

The Player got an experimental double resolution mode. (#249)

Our jenkins system supports now building of pull requests. This allows faster reviewing of new code contributons if they work correctly on our major platforms.

We were mentioned in the Press

The japanese website Gigazine posted a very detailed tutorial about correctly configuring our Android port. The related tweet was retwetted more then 300 times. Thanks for this great article!

Our project got a page in the magazine “Advanced RPG Maker: Issue 3” on rpgmaker.net.

Somebody mentioned us on Hackernews which resulted in a small discussion.

Shoutouts to that japanese person who recommends our Android Player over Neko RPGXP and Choco R2k Player (another RPG2k/2k3 interpreter) because it doesn’t want internet permission and is not from a korean developer.

 

 

EasyRPG Player 0.2 “Alex”

Only 5 months behind schedule we are glad to announce the next stable release: Version 0.2

This version is named after everyones favourite hero “Alex”.

What is new for users?

As already stated in the Android post in December, SDL2 is used now. The major differences you will notice is that you can play now in fullscreen mode without having resolution changes, so all graphics are perfectly sharp and pixelated now :).

The Android port is now also distributed via the Google Play Store. The account is managed by our developer lobomon. Because the updates are uploaded by hand and are verified everytime by Google before publishing the releases are usually some days behind. You can find more up-to-date ones on our website in the download section.

Battle System (and random encounters) for RPG Maker 2000 and 2003 (#218) with some limitations:

  • Only traditional battle style supported for RPG2k3
  • Battle event interpreter not well tested
  • Conditions (Poison, Sleep, …) unsupported
  • Some battle commands unsupported (you get a warning in that case)
RPG Maker 2000 Battle System
RPG Maker 2000 Battle System
RPG Maker 2003 Battle System
RPG Maker 2003 Battle System

Support for saving and loading (#186). The files are written in the LSD format. In theory they are compatible with the original RPG_RT. Because the LSD-format is not fully understood yet, not all data is saved/loaded yet (we support ~75% of the data), but should be good enough for most cases. As a side effect the arbitrary 50 pictures limit was removed.

All missing move commands implemented (diagonal movement and jumping). Further more some issues with incorrect passability checks (Whether you can (not) walk on a tile) were fixed and the movement frequency is now more accurate when compared with RPG_RT (#224).

Support for half-width cyrillic fonts in our built in font “shinonome” (#216).

Russian language support (old: left, new: right)
Russian language support (old: left, new: right)

Support for command line arguments (See wiki page for further details, #225).

The game title is now read from the RPG_RT.ini and displayed in the title bar (#52).

When returning to the title scene (via End Game or F12) some data was not reset (#192).

In TestPlay mode pressing F11 opens the save scene.

The annoying, game blocking warnings messages are replaced with a quake-like drop down console and therefore don’t halt the game anymore. As a side effect you get full unicode support in the messages (e.g. for asian languages). (#193).

New output
New output

What is new for developers?

Readers was renamed to liblcf and relicensed to MIT license.

Improvements in the build system. The Player and liblcf should compile on more linux distributions now.

The makefiles for the PSP (Playstation Portable) build were removed. Nobody contacted us in the last years to maintain the (broken) PSP build.

Anything else?

Yepp. MarianoGNU is working on a new editor called “Editor-Qt“. It is making good progress but is Not really in a usable state yet, but you can grab the Windows binary from our jenkins system. The Linux version will be released later.

Editor Qt
Editor Qt
Editor Qt Database
Editor Qt Database

Gameplay Video: Battle system on Android

Server downtime

As some of you probably noticed our website was unreachable for nearly two weeks. Sorry for the long downtime!

Our server was actually working fine but we had problems with the DNS, therefore easy-rpg.org didn’t resolve to our server… The same problem occured for rpgmaker.es, because they share the same server.

Our next blog post will come during the next days and is about the current progress of the EasyRPG Player and other related projects. Stay tuned and happy Easter!

HTML5 port plans

So much time without updating the blog. Well, we have been pretty busy preparing the upcoming release of EasyRPG Player: 0.1.3.

Version 0.2 will be delayed because of narrower spare time from development team to complete the Battle System. However the next version feature list is yet relevant and will be announced in a not much later blog post.

But now, let’s introduce the yet another next-gen, cloud-enabled, big-data-capable, RPG-as-a-service and The-Internet-Of-Things-embeddable port: EasyRPG Player HTML5 Port (alternate name: EasyRPG.js).

Play your own RPG games in the cloud!

With the HTML5 port you will be able to play your games in any HTML5 compatible browser, share your game with your friends and conquer your neighborhood with your amazing RPG skills.

Let’s make it faster!

Increasing Player popularity with HTML5 will help with development, becoming attractive for Facebook, which could buy our product for a few billions and allowing us to have full time developers improving the Player engine even the Editor.

Run your RPGs everywhere!

The Internet Of Things makes Internet available in unexpected gadgets. With the HTML5 port you will be able to play RPG Maker 2000 and 2003 games in your microwave embedded browser while preparing popcorn!

We plan to release the HTML5 version some day of 2014, expect us!

Enjoy your favourite RPGs on Android

Merry Christmas everybody.

Today we have a special gift for you:

A port of Player for Android. Click here to download the apk or scan the QR code below. You must enable installing of non-appstore apps. This option is somewhere in the Android settings, depending on the version.  under Security -> Unknown sources. Warning: Be careful when installing apks that are not in the app store. We will only provide APK downloads from our domain (easy-rpg.org).

Download EasyRPG for Android (Scan me!)
Download EasyRPG for Android (Scan me!)

System requirements:

  • Android Api10 (2.3.3 and newer)
  • OpenGL ES2
  • CPU with hardware floating point (armeabi-v7a)
  • The fastest CPU you can get (runs okay, but not great, on a Tegra 2)

If you are unsure about OpenGL and hardware floating point: When it crashes on startup you probably lack these features ;). If you know how to use logcat you can provide us with the output when it crashes.

What to do after installing the apk:

Place the game folders in “[sd-card]/easyrpg/games”.

For midi music you need timidity, download timidity.tar.gz from the SDL mixer page and extract it into “[sd-card]/easyrpg” (when done correctly you should have a timidity.cfg and instruments in “[sd-card]/easyrpg/timidity”)

Games depending on a RTP expect it in “[sd-card]/easyrpg/rtp/2000” for RTP 2000 and in “2003” for RTP 2003.

Special features:

Do a long click on a game in the game browser to set the region. “Western Europe” is the default, select “Eastern Europe” for Russian games and “Japan” for Japanese games obviously.

The FPS and the virtual buttons can be enabled/disabled by pressing the menu button of your phone.

About 0.2

We expected to release version 0.2 of Player this year featuring battle system and savegames. Unfortunately we will miss that deadline and need more months to finish them, sorry. We will also try to get the Player in the Google App Store when 0.2 is ready.

But in the meanwhile we got some other new features:

  • SDL2: We updated to a new version of the SDL framework. The major differences you will notice is that you can play now in fullscreen mode without having resolution changes, so all graphics are perfectly sharp and pixelated now ;)
  • A strange bug was fixed: When a common event that displayed a message box was called via [Call Event], and the command after that was [Show Message] the message box wasn’t displayed. This was especially bad when that message box contained choices.

Screenshots

RPG Maker Testsuite on Android
RPG Maker Testsuite on Android
Game browser
Game Browser