EasyRPG Player 0.3 “Slime”

We are happy to announce the next major EasyRPG Player release. We want to thank all our developers for the huge amounts of time they invested in improving the Player. The new release is called “slime” everyones favourite enemy. You can get it in our download section. But what is the 2nd most popular enemy? You will see when 0.3.1 comes out.

Official RPG Maker 2003 release

Before we write about the new features we have an annoucement to make. It was a really unexpected news for all of us: An official English version of RPG Maker 2003 was released. Instead of using an illegal fan translation you can buy a legal version now. This is basicly your only option because our own editor is still far away from being in a usable state. (No we were never in contact with Enterbrain and are not payed for this statement). We read that the sourcecode got lost. Therefore they have to use binary patches. This means the risk that gigantic new features are provided is reduced – Which is good for us. The new English RTP is automatically detected by the Player (#454), games made with the new version will work as good as the old ones.

New features

Now back to the new major release. It brings many important features, some of them were completely missing before, these are:

Vehicles

Vehicles (#219) was one of most important missing feature, breaking many games depending on them. A well known game broken directly at the beginning by this was Don Miguels Sample Game, you can now cross the lake together with Marcus! The implementation includes boarding/unboarding, vehicle teleport, on board music change, save and load position support, airship terrain based landing check and system graphics based airship shadow (#434, #436, #441).

Don crossing the sea
Don crossing the sea

Map loop

Another important feature implemented is the endless scroll map, vertical, horizontal or both. This was required by some games to work properly and some of them didn’t work without this at all. The implementation includes support of special movements, like jumping between loop edges, and takes care of event picture, panorama and camera movement. This change makes the dreams in Yume Nikki finally completely enjoyable. (#455, #457)

Battle improvements

The battle system is one of the most complex and most commonly used parts of RPG Maker. We added further additions to our implementation, including: Items dropped by defeated enemies are now added to the party’s inventory (#398) and multi-use items are really multi-use now (#420). Some skills crashed the game when used (#405).

When a timer reaches 0:00 the battle ends now. This is a strange behaviour because there is no way to call a timer based event in battle. But that’s the RPG2k way.

The event interpreter got some bug fixes: The command “End battle” is now supported (#393) and weather/tone effects are visible now on-screen (#396). The condition checks “Monster/Hero can act” and “enemy hp” were broken (#367)

We also fixed a deadlock that sometimes occured in the RPG2k3 battle system. (#474)

Save

As you know RPG Maker uses a binary format and we try to figure out the fields to improve compatibility. Our main problem is still the save file because we are the only ones who try to figure out the format. We don’t provide our own format but are compatible with the original RPG Maker savefiles. There were many new fields discovered, some statistic:

In 0.2.2 release we had 1103 chunks in all binary formats (LDB, LMU, …) of which 81 were unknown (92.66% known). Now with 0.3 new chunks were discovered resulting in a total of 1122, of which 31 are unknown (97.24% known). Yes, 19 new chunks were discovered, it’s possible that we discover even more. (#128, #132 and #133)

  • A nasty bug preventing parallel events from continuing after loading got resolved. (#474)
  • Fix savegame corruption for Russian games when encoding was specified in RPG_RT.ini file (#139)

Android

If you checked the PlayStore the last weeks you probably noticed that we made some updates to the Player. Thanks to a new developer (BlisterBoy) the Android version got significant improvements. He added support for the long-awaited button mapping, now you can enjoy all RPG Maker 2000/2003 because all buttons are available on the screen if you want. (#443)

Besides these there were some minor improvments:

  • Accessing the settings for changing encoding crashed the program when the INI file was missing (#435)
  • Support for Joysticks (#392)
  • German and French translation (#412)

Further extensions like support for different game directories and game/engine dependend will come later because our Android developer is currently busy with real life.

Run in the Web

As already mentioned in an earlier blog post EasyRPG Player runs now inside your web browser. This port was further improved and supports now asynchronous loading of assets. That means not the whole game is downloaded during start up which significantly improves the loading times. All images and music is downloaded on demand and map files are downloaded while the transition plays. Save files are locally stored, they are lost when you clear the local storage of your browser (#389, #417, #425 and #462).

How about playing a round of Ib? More games will come! We can also help you in releasing your own RPG Maker games to the web. Just contact us!

You will need an up-to-date browser. Firefox runs the games a bit better then Chrome. This could change when new versions of the web browser are released.

Other

Now about other fixes that don’t fit anywhere else:

The most funny one is probably a Polish fan translation of RPG Maker that translated a bit too much. The “stop music” event specified by file name “(OFF)” was translated as “(Brak)”. The Player accepts now both strings. (#391)

  • Frame skipping is now more smooth (FPS stay constant). Before frameskip was speeding up and slowing down the game which felt strange (#287)
  • PNG transparency was incorrectly applied in some cases. (#358, #430)
This is me reading the libpng docs
This is us reading the libpng docs
    • Referencing a variable indirectly via another variable wasn’t working correctly (#387)
    • Transparent textshadow color in Wadanohara fixed. (#394)
    • Common events were reset during map change. In Vampires Dawn this resulted in recasting of transformations after each map change (#402)
    • Switch items (e.g. save stones in VD) were not consumed. Same for skills of type switch. (#403, #404)
    • Timers are now visible on screen (#406)
    • Support for ThisEvent in CommonEvent (references callee of CommonEvent instead of crashing) (#412)
    • RPG2k VALUE (a newer version of RPG2k) uses a different way to encode the Key Input Event (“Enter password” in Don’s translation).  (#424)
    • Rendering of some sprites/tiles was off-by-one pixel (#428)
    • MoveForward moves now always correctly, map passability fixes and animation speeds more consistent with RPG_RT (#451)
    • Too many games relied on RPG Maker ignoring access to switch/variable 0, which is an invalid index. EasyRPG doesn’t warn about this access on-screen anymore. (#458)
    • 32 new chinese characters and Wong sign added to built in shinonome font (#464)
    • Bush depth (Character bottom becomes transparent over bush tiles) implemented (#468)
    • KeyInput command was improved. The game NASU (included with YumeNikki) is now playable! (#469)

liblcf

Most changes in our lcf parsing library were support for new chunks mentioned earlier under “Saves”.

  • We fixed a bug in the number parsing code that broke a few games (because the database failed to parse) (#128)

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)

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.