EasyRPG Player 0.5.2 “Miracle Candy”

Only three months after the last release we have another update for you before we take a development break for the summer.

This time with a fix for a critical bug that snuck in right before 0.5.1 and corrupted savegames of non-English games. This was especially bad in Yume Nikki because it completely broke the Save and the Player was stuck at the loading screen of the game.

Map

Hero graphics are always reset now when they were changed by a move route command and a teleport happens. Before the reset only occurred when the teleport was to a new map. (#1111)

The birds in a quite cruel minigame in Deep 8 play now the dead animation properly. This was a bug in our interpreter: The movement pattern of the new event page was not applied under all conditions. (#1112)

We handled timers incorrectly. Some games had code that checked e.g. for “Timer >= 1s” followed by “Timer <= 0s”. By looking at it both cases should be false for the time between 0.99s and 0.01s but RPG_RT rounds up the timer checks to the next second and EasyRPG does the same now. (#1165)

The timer functions of “Control Variable” wrote the frame count into the variable, not the seconds. This broke the intro of The Sacred Tears: TRUE. (#1166)

A regression introduced in 0.5.2 which broke horizontal parallax scrolling was fixed. (#1148)

The algorithm of movement type “cycle” matches now closer the RPG_RT behaviour:

  • When the character is ready to move, he will first try moving forward (or in the default direction if we are facing the wrong way: Right for Left-Right, Down for Up-Down)
  • If that failed for 20 frames, keep trying to move forward, but if it fails, now try moving the opposite way too.
  • If that fails for 40 more frames, try going forward and if it fails, now move (do not just try to move) in the opposite way, and reset.

As you can see in the video of Deep 8 below, Chloe walks now in the correct direction. Since it is a looping map, she passes by multiple times in the incorrect version which looks funny. (#1167)

Additionally the video illustrates the new font we support (mentioned further below).

Tile 0 is now always drawn, before our code assumed that this tile is always transparent. (#1169)

Tile ID 0 is rendered now. No mice anymore ;)

Pan screen commands that go out of bounds are ignored now. Before the Player calculated the offset which went out of bounds, e.g. when the camera is at the right map border and the screen is panned by 3 right and 3 left nothing happens, but in reality the screen must scroll 3 tiles to the left as RPG_RT does. This fixes the incorrect camera in the Razas intro. (#1169)

Correct screen panning in Razas

The hero jumps now in the correct direction after touching a “!”-switch in Super Mario RPG – The Seven Sages. Jumping did not respect the turn commands before. (#1171)

The collision check based on the tile id in Schmetterlinkskuh-Flugsimulator-Simulation 2k did not work, because the tile id command did not handle looping maps correctly. (#1176)

Our message box code crashed when a hero name (indirectly) referenced itself with a message command, e.g. Hero 1 with name \N[1] would endlessly substitute the first hero name with itself. (#1145)

Battle

The English release of RPG Maker 2000, v1.61 is detected now and the message substitution by placeholders and automatic linebreak feature was implemented. (#588)

Text substitution is supported now in the RPG2k v1.61 battle system.

The well hidden “Appear Randomly” option in the troop context menu of RPG Maker 2003 was implemented. (#987)

The battle against the nurse in 7thjojo was not winnable, because the battle ended when all party members were removed. This was introduced to fix The Huntress of the Hollow in the last version but the behaviour was wrong: Only RPG Maker 2003 ends the event execution immediately when the enemy party is defeated. For the ally party case and RPG Maker 2000 the victory/lose check happens after the event execution finishes. (#1180)

Battle encounters respect now the current tile – sea monsters will not appear on land anymore.

The “Change Enemy HP” command did not end the RPG2k battle when the last monster died when the event was executed at the beginning of a new battle turn. (#1191)

Conditions for enemies in RPG2k battle which prevent them from attacking are respected now (#1204).

Internationalization

In RPG Maker it is possible to choose between two different fonts: In the unofficial translation by Don they are called RMG2000 and RM2000 and in the Japanese version they are MS Gothic and MS Mincho. (#352)
For non-CJK (Chinese, Japanese and Korean) languages a new font as a replacement for RM2000 was added: ttyp0. The look and feel is similar to Don’s RM2000 font.
The RMG2000 uses a font similar to Shinonome (which is the font we already used before).
For CJK-games not much changes, our already built-in Shinonome Gothic and Mincho are used but with the following changes compared to RMG2000:

  • ` (grave accent) is an opening quote
  • ' (straight apostrophe) is a closing quote
  • " (straight double quote) is a closing double quote
  • Cyrillic and Greek characters are double-width
  • ellipsis … is in the middle of the line
Illustrated are the old font and the new font. Both fonts are supported and they depend on the font setting of the game.
Illustrated are the old font and the new font. Both fonts are supported and they depend on the font setting of the game.
Support for additional scripts: Greek and Armenian. Though we are not aware of any games with these languages :(

The “Enter Hero Name” scene does not show Hiragana and Katakana anymore when playing a non-Japanese game. This caused a lot of confusion for years. We plan to add custom pages with glyphs related to the current language later. (#364)

The Korean RTP was added to our built-in RTP table. This means when you have the Japanese RTP installed it is possible to play Korean RTP games, too. (#452)

The Japanese name input scene shows now ヴ instead of を or ヲ which are very uncommon in Japanese names. (#1193)

Audio

The Opus audio codec is now supported for both music and sound. This is especially useful for the web player because it reduces the filesize a lot. (#1159)

Misc

The output system, consisting of the on-screen console and the log file writer was improved: (#1199)

  • The message overlay can now collect all messages since startup and shows them when the graphic system is ready (e.g. the DSP firmware missing message on the 3DS), before they were only written to the logfile and usually not noticed by the user.
  • For file-log and on-screen similar messages increment now a counter which is appended to the line. For the file-log a message is always written twice: The 1st time it happens and a 2nd time how often it was duplicated (this is to ensure that something is logged in case of crashes)
  • The console does now automatic line breaking with the code written for the RPG Maker 2000 v1.61 battle system which requires this feature, too.
  • Path components outside of the game path are stripped now (see screenshot, look at the filenames reported). When the path is outside the game path it does nothing, so RTP paths are not touched.
The new on-screen console automatically inserts linebreaks now.

The “–load-game-id” command line argument ignored the “–save-path” option. This remained mostly unnoticed because the save path matches usually the project path except for the web player where it resulted in “File not found” errors. (#1174)

The Z index values which are used to define the rendering order of everything on the screen were refactored and all magic numbers are gone. This makes the code more maintainable and actually fixed a bug which resulted in heavy flickering because the rendering order of Pictures and battle animations was below the Screen effects. (#1062, #1195)

Android

The fast forward button was not rendered on all platforms, because some default fonts did not include it. (#1124)

The text is now properly centered in our on-screen buttons and hopefully does not overflow over the border anymore. (#1146)

The fast forward mode can be switched from “hold” to “tap” and the multiplier can be configured. (#1146)

Web Player

The file system used by the web player can be replaced through Module.EASYRPG_FS. This is useful to implement a server-backed savegame system and was implemented upon request of rmarchiv.de where you can see it in action. (#1173)

Using “Fast forward” in the web player skipped map loading and resulted in “Map not found” errors. (#1174)

Arrow keys do not scroll the browser window anymore. The F-buttons are filtered, too (not supported by all browsers). (#1188)

OSX

The project path was not correctly set when EasyRPG Player was executed from the command line. (#1175)

3DS

The Nintendo 3DS version does not crash anymore when the DSP firmware is missing and displays a visual warning instead. (#1142)

Similar to the Wii port the RTP is now searched in “/data/rtp/”.

The touchscreen reported the incorrect button since the beginning and nobody noticed it :(. A nice outline was added which highlights the currently pressed button.

PSVita

An unnecessary thread scheduling was removed in the rendering thread. However, this probably has no noticeable performance impact. (#1158)