This was a quick one. In 0.3.1 we found a critical bug that hung the Player when loading some maps. This version is codenamed “Hornet” because that’s the 3rd enemy in the official English RPG Maker 2000, in Don’s translation the 3rd one is “Spider”.
Besides this crash fix we also introduced some other improvements that didn’t finish on time before 0.3.1: Battle animations finally work as expected everywhere, this includes animations on the whole screen and animation on targets, additionally sound effects and flash effects are executed now (#365, #574)
Another interesting one broke ゆめ２っき (Yume2kki). This game faded out the screen at the beginning and then showed a message box which got instantly closed using “\^” and showed the screen again. So this message box was never visible and completely useless (same for the fade out/in), but the Player had a bug that had the closing logic of the window in the drawing code which was never called because it is faded out. Now the closing logic is in the normal update loop and the game finally starts. It seems this game was designed on purpose to break the Player :D. (#577)
Music was not playing in the battle in OFF. The cause for this was that many parts of the Player code used the Database default music/sound effects and not the ones in the savegame data (the ones that can be altered via events). A gigantic “Search & Replace” resolved this issue everywhere. (#581)
Another annoying bug that crashed the Player randomly after ending a battle since a long time and nobody ever found a reason for is #580. But the cause is finally found: It happens when a battle animation plays on the map while the battle is started. But this is finally resolved so you must not be afraid of that crash anymore :)
Games that used bitmaps with a width that was not a multiple of four were rendered incorrectly. This affected the game “Mimicry Man”. (#583)
liblcf got some more chunks documented. These chunks are not yet used by the Player, but will be in a future release. Thanks to Cherry for the help! (#152)
The hot days are over and the developers move from outside to inside again. The result is the next bugfix release 0.3.1 (Codename: /\../\ (Bat), the flying friend of slime).
The most significant changes are as usual: Interpreter and battle improvements resulting in the best version of EasyRPG Player by now.
Another guy who likes bats is the main protagonist, “The Batter” in OFF. This game is now compatible with EasyRPG Player. Bat (0.3.1) makes the battles with The Batter and his bat better. Everything is better with Batter. Sorry for the bat puns :)
Besides OFF the following popular games got fixed: The battle against Sal in Wadanohara, drinking blood in Vampires Dawn, the intro of Vampires Dawn 2 (rescue your mother).
Yeah we know that the German community says that Vampires Dawn is overrated but for testing the battle system of the Player it’s great.
Just retest your favourite game, maybe it works now, too?
In terms of events some really significant features were implemented.
Characters on lower layer can pass the Hero now. (#486)
When using more then 50 pictures the picture data got corrupted and the Player crashed (#485)
Message command “\!” (pause) printed sometimes the next character (#515)
The ESC key was not recognized by Ahriman’s prophecy (#433)
The command “Continue event execution” when combined with a Move command does not result in random dead locks anymore, this happened e.g. in Unterwegs in Düsterburg before fighting any random encounters. (#344)
When the hero is moved by an event and touches “On touch” events on his route these touch events are now executed when the event that executed the move route ends (#331)
Another game that got fixed thanks to these changes is “Vampires Dawn 2”. When Nyria comes back to her house at the beginning you got an instant game over before because the timer did not start.
Basicly these improvments fixed probably hundreds of games.
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.
Now back to the new major release. It brings many important features, some of them were completely missing before, these are:
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).
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)
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)
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)
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)
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.
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)
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)
This is the second blog entry from our “Quirks in RPG Maker” series. In the previous article we introduced the non-Unicode application problem. Now let’s explain how this problem has been addressed.
The problem: Non-Unicode games
As explained in the previous article, Unicode is a standard for writing characters and texts using an universal encoding. Before existing an universal standard, some languages were using their own character encoding, sharing often the same bytes representing different glyphs. Games created with a non-Unicode editor contain non-Unicode texts. These games won’t be readable properly under operating systems with a different encoding than the original, unless some conversion between encodings is applied.
Encoding conversion issues
Modern operating systems are Unicode. This helps to convert non-Unicode encodings to Unicode, having enough room to fit any previous encoding to the new universal. However there are multiple issues when conversion standard was being designed.
Non-Unicode Windows Japanese Encoding is Shift JIS. This encoding was similar in the first 127 characters with ASCII (7-bit part), except the backslash (\) showing a yen symbol as a replacement. Originally, the command trigger for show messages is a ¥ followed by a letter, e.g. ¥c, in western is \c. This was breaking message codes before. In fact, Japanese Windows shows a Yen sign (¥) as a directory separator even in modern Unicode Windows. In Korean Windows shows a Won sign (₩) instead. The wave dash from Shift JIS was incorrectly mapped to the Unicode full-width tilde, generating issues not only when showing the sign, the problem could affect games with filenames using this character.
The first approach: libiconv and Windows API
libiconv is a library to convert common legacy encodings to Unicode, supporting most non-Unicode Windows encodings. In order to play any non-Unicode game we needed to set the encoding manually before playing the game. There is an EasyRPG specific parameter in RPG_RT.ini to set the encoding by hand.
However, libiconv and Windows API were not supporting a way to detect the encoding. There were issues with yen, won and full-width tilde conversions, having issues when playing Japanese and Korean games.
Games don’t say which encoding are using
There are RPG Maker 2000/2003 games written in many encodings, but there is no a clear way to determine which encoding are using, as they can share the same bytes for different languages.
The solution: ICU
ICU (International Components for Unicode) is a library which brings very good support, including proper encoding conversion for Yen, Won and full-width tilde and an heuristic system for character encoding detection. With this feature the encoding can be autodetected and works fine for most games.
Broken game translations
There are games however, specifically game translations which are mistranslated, having mixed encodings and making the encoding autodetection fail. This is the case for some broken Yume Nikki translations. If you have file not found errors, you probably are using a broken translation. You can try to force manually the encoding in RPG_RT.ini for these particular cases, they may work better.
The ICU encoding heuristics detection gets some text data from the game. Currently uses some texts from the game database terms. Not all are passed because some default database translations from some editors are untranslated from Japanese and ICU would detect these games as Shift JIS when they probably are written using Windows codepage 1252 (western).
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.
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
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.
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)
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.
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.
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!
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
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
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)
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)
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!
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.