**Announcement** Renaming the project to JapeTrans

This is to let everyone know that soon this project will be changing it's name to JapeTrans. The new logo has even been designed (subject to change if I can either make something better, or something gets submitted to me by someone who knows the first thing about logo design!).
/jape100.png

Why Rename?

When RPGMaker Trans was started, RPGMaker was not really a thing in the West. Of the versions of RPGMaker, with only XP having seen an official Western release. 2000, 2003 and VX only had releases in Japan.

Times have changed. RPGMaker is now popular in the West, with VX Ace and MV both having received official releases on Steam. That's a good thing, but it means that for legal reasons, the name "RPGMaker Trans" is no longer a smart name, because Enterbrain could choose to enforce their Trademark at any time. Renaming the project pre-emptively removes this threat.

There's also the fact that I am actively working on adding support for WolfRPG. If I keep the RPGMaker Trans name, then it would probably lead to very clumsy names, like "RPGMaker Trans, now supporting WolfRPG" or somesuch.

Finally, Version 5 is pretty much a complete rewrite. If I'm going to rename, now's the time to do it. Further, Version 5 does not have feature parity with RPGMaker Trans v4.5 - specifically, it does not support RPGMaker 2000. Renaming the project means that people will find it easier to get the correct version if they require RPGMaker 2000 support.

Why "JapeTrans"?

The name is deep with meaning. Behold!

  1. I originally wanted LarkTrans, as Lark is a synonym for Game, and would have lead to a nice bird related logo. Unfortunately, Lark Software have trademarked their name, so it would be legally precarious. However, Jape is a synonym for Lark, and to my knowledge is not as legally precarious.
  2. Jape is one letter from JAPEN, or JAP->EN. Given the huge number of Japanese RPGMaker games, I suspect this will be a common translation direction.
  3. A Jape is a mischeivious prank. Given that many translations with RPGMaker Trans are unauthorised, I'd say they're mischeivious.
  4. RPGMaker Trans is a bit of a mouthfull, JapeTrans is not.
  5. A slightly dirty reason, but pre-15th century, Jape had a different meaning: sex. This is a funny little callback to the origins of RPGMaker Trans and the role adult RPGs played in it's formation.

What next?

The RPGMaker Trans project will stay up; I'm not inclined to remove it for now. Obviously though, if I end up receiving a legal request to remove it, it'll have to go.

The RPGMaker Trans source code and downloads will stay in place. The source code will be cloned across to the new JapeTrans repository.

JapeTrans will be a separate project, and the focus of all new development. I've registed the appropriate URLs for the project, but I haven't put up a website yet; this will happen when JapeTrans is released.

Hence RPGMaker Trans v5 will become JapeTrans v1, and RPGMaker Trans Patch format v4 becomes JapeTrans patch format v1.

RPGMaker Trans v5 Status

Given how long it's been since the release of v4.5 Legacy, a post on the progress for v5 seems to be in order. How things are going...

Overall Progress: Not great. I've been fighting a lot of bugs, mainly due to me learning new technologies and being a bit of an idiot in places. I'm getting to the point where patching is starting to come up to speed, but there's still a lot of features to implement. In hindsight, I probably should have worked on this in a more incremental fashion - although, then again, it would have taken a lot of effort to make the old code even talk to the new code. Now, onto new features:

Macros

RPGMaker Trans v5 will support macros. For those who know Latex, I'm taking a lot of inspiration from Latex's style, although RPGMaker Trans's macros will be a lot more limited. The basic idea is that the macros will let you set bits of RPGMaker Trans's state directly (e.g. \newpage to start a new dialogue page) or avoid typing tricky code (e.g. \red{This text is red} instead of setting the colour codes manually, or even much more basic stuff like \star mapped to the unicode character for star).

Speed

As has been mentioned before, RPGMaker Trans will be much speedier. The cause of problems on Windows before was socket based IPC being slow, and RPGMaker Trans doing a lot of socket based IPC. To fix this I've moved to a pure Python Ruby marshal format implementation to handle reading/writing/patching files, and sqllite databases for storing translation data. I've also parallelised the reading/writing of patch files, so big projects will load quicker.

Obviously the proof will be once I do end-to-end tests on Windows, but I've seen big speedups of each component on my Linux dev machine. I'm quietly confident on this one.

More Strings

RPGMaker Trans v5 has the capability to customise what it translates. By default it will translate the normal fields you'd expect, but it is trivial to add tell it to add other things to the patch. Currently these are controlled by regular expressions which match against the context of the string, but I will be adding support for glob-like selection. Hence if you want to translate, for example, comment fields, adding the rule "*/comment" would suffice. If you wanted to only translate comments on items, then "Items/*/comment" would be the correct way of doing it.

Reliability

RPGMaker Trans has always had some issues with reliability, especially when dealing with malformed files. v5 should address this; it's much harder to crash, and handles many more error cases. Further, the script parser has been rewritten to use the Pygments library, and so should be much more reliable than the buggy mess I created. There's also...

Patch Formats

RPGMaker Trans v5 will support 3 patch formats; a new variant of the textual format that's already familiar to everyone, sqllite databases which should be useful for people seeking to make tools that interface with RPGMaker Trans, and a single file "distribution" patch. As the name implies, the single file patch is designed for people to use when distributing their patches; it will be automatically compressed and should be somewhat faster to use than the textual format patches. It will also provide a degree of obfuscation for people who are intensely protective of their translation patches, but it wouldn't be too hard to convert a distribution patch back to the original format.

There's also a new v4 of the textural patch format. This is to enable support for macros, but also to correct what I feel is one major oversight of the original patch format. In the original patch format, strings extracted from scripts kept their quotation marks in the patch; this led to an easy way of breaking things (if a translator messed up Ruby escape codes like newline) and violated the Do not repeat yourself principle of RPGMaker Trans patching (a script string was always different from a dialogue string). There was a reason I did it this way; the original script parser was designed to allow modification of variables interpolated into a string, although in practice it very rarely detected this. The new script parser doesn't support this, and so there is no reason to keep it in place. Hence RPGMaker Trans will now now include the dialogue quotes, and just handle any necessary conversion to Ruby strings as needed.

In-place Patching

Since version 1, RPGMaker Trans has worked on the principle of having three inputs/outputs: a source game, a patch folder and a target directory. RPGMaker Trans v5 will still work in this way, if you want that. However, it will be promoting an in-place version as the default. Here the patch is located inside the source games folder (either created by RPGMaker Trans or placed there by a user), allowing RPGMaker Trans to automatically find the patch. Then RPGMaker Trans will patch the game in-place rather instead of creating a translated copy - backing up any files which are changed so that the game can be reverted/repatched as necessary. It will also have the capability to read/write RGSS archives, meaning that people don't have to unpack them if they don't want to. There's a few arguments as to why you shouldn't unpack them (spoilers/normally better to have one big file than hundreds of small ones), but supporting this is, at the least, a neat feature.

Note: When RPGMaker MV support rolls out, I will support unpacking EnigmaVirtualBox (EVB) files, but not repacking them. Unlike the RGSS archives, there's a lot of good reasons to always unpack EVB MV games - mainly due to EVB causing massively inflated memory requirements.

Patch Metadata Wizard

RPGMaker Trans has supported patch metadata for some time, although it's not a widely used feature. RPGMaker Trans v5 will update the metadata to be more formally specified and also have a metadata wizard, that will produce some metadata files on demand. This will be basic stuff; being able to set the games name, games author, logo for the project, translator, any Copyright dates, and the license of the translation. The last of these is a sort-of political/belief thing; fan-translator in particular should start specifying the licenses of their work, because this way fan-translators will have at least some legal defences in the case their work is misused (e.g. to promote piracy). Of course, all of this will be optional, so people who don't want to use it don't have to.

And now something which will annoy some people:

Ending of Windows XP Support/Vista GUI Support

I am currently planning to drop support for Windows XP completely. This is out of my hands; Python no longer supports Windows XP, and so RPGMaker Trans has to move on from XP as well - or at least if I want to be able to use features like asyncio/pathlib, which are part of my push to make this program faster and more reliable. Incidentally, given Windows XP has a tiny file cache, I'd also think that performance with the new sqllite database would be rather poor.

Windows Vista is a more complex case. I'm using Qt 5.9 for the user interface at present, which does not support Windows Vista. This means that unless there is a massive outpouring of grievances from the Windows Vista RPGMaker Trans community (which I'm not sure is a thing that exists), I will likely drop support for the GUI version on Windows Vista, but the CLI version will still work. Given the in-place patching above, it should be straightforward to use even for non-technical users; dropping the game folder on-top of the CLI executable would suffice.

Anyhow, a big post, but hopefully that brings everyone up to speed of what I'm doing, and why it's taking so long. There's a lot to do.

RPGMaker Trans v4.5: Legacy Edition

Well, I had hoped to get RPGMaker Trans v5 out today. Unfortunately, due to August being very busy, I haven't managed to do that. What I am able to put out though is the final version of the 3/4.x series, RPGMaker Trans v4.5 Legacy Edition. This is basically me putting down a final update to the old codebase. The changelog is very minor:

  1. v4.5 will not require people to upgrade to v5 when it is released
  2. v4.5 can display a message from this website - a feature I'll use to advertise the completion of v5
  3. If you require RPGMaker 2000, you must continue to use v4.5 even after v5 is released. RPGMaker 2000 will be supported in due course, but not in the initial release.

One important note though: with the exception of any critical problems with v4.5, it is now officially unmaintained. Going forward, bugs will be fixed for RPGMaker Trans v5 and onwards only. Obviously there potenitally going to be a bit of a messy period over the next couple of weeks while I get RPGMaker Trans v5 out there, but part of the reason I'm in this mess is that I spent too much time bug-fixing old code which I'm going to be getting rid of shortly. Or rather, I shouldn't have tried to fix the unfixable.

RPGMaker Trans v4.41 Released

Another minor release, but hopefully a useful fix. For some reason there was a minor rush of people who had corrupt patches. While everyone managed to sort these out by themselves, the old behaviour (i.e. crash when reading a dodgy patch) clearly wasn't acceptable. Hence this release should give an error message making clear that the patch is bad, but perhaps not where - this isn't really practical for a quick-fix release, and so will wait until the new patch format is released with the next major version.

For those who use the command line version of RPGMaker Trans, this release should also fix it so that error messages are actually printed.

Version Update Error Messages

These are mostly harmless - just annoying. They're caused by Bitbucket switching off support for the bitbucket.org project websites and moving them to bitbucket.io. In any case, RPGMaker Trans v4.4c fixes the issue, so please use that.

RPGMaker Trans v4.4 Released (Updated x2)

So, a new release. Unfortunately, it's not the version 5 which I had, once upon a time, hoped would be out now.

This release should fix a longstanding but hard to reproduce bug, where RPGMaker Trans could apparently delete translations. The bug was particularly problematic as it only occurred on case-insensitive file systems, and development of RPGMaker Trans is primarily on case-sensitive file systems. In any case, RPGMaker Trans should now (theoretically, at least) be smart enough to handle this situation, and therefore avoid loss of data. If you do see any data loss, please file a bug.

UPDATE: I accidentally uploaded the wrong build, so if you downloaded it within the first few hours of release, please redownload. It should actually work now.

UPDATE 2: It turns out that the Python folks haven't fixed a bug and it crept into a new build environment. See this bug report for more info. In any case, a fixed version has been uploaded, so please redownload it. Again. This release could have gone better.

Regarding v4.38beta

There has been a long-standing, hard-to-reproduce bug in RPGMaker Trans whereby for some people, patches or portions of patches were erased. For translators, this it is of course a massive inconvenience if your work goes up in smoke.

The bug turned out to be hard-to-reproduce as it only effects case-insensitive file systems, and all of my work is done on Linux. I'm still not entirely certain on the precise cause of the bug within RPGMaker Trans, as I had thought that I was handling the case-insensitive filesystem case correctly. The next best thing to a fix however is a mitigation, which is included in RPGMaker Trans v4.38. If RPGMaker Trans v4.38-beta detects a situation where data loss due to this bug is going to occur, it aborts execution. However, this might be annoying for those who just want to patch a game.

Therefore, my recommendation for now is:

  1. If you are a translator, use RPGMaker Trans v4.38-beta
  2. If you just want to patch a game, use RPGMaker Trans v4.37

I am hopeful that RPGMaker Trans v5, which rewrites the file IO portions with something hopefully more robust, will fix the problem.

RPGMaker Trans v4.37 Released

I'm afraid this release isn't very exciting - it just does some minor modifications to the update checker.

The reason is as follows: it's looking increasingly likely that I will be temporarily splitting out RPGMaker Trans's 2k functionality into a seperate program when I release RPGMaker Trans v5. As things stand, that would confuse the update checker somewhat. Therefore I've made a little modifcation so that when I do this, I don't get a lot of complaints that everything is broken.

The March to v5.00

It's time for a progress report, I think. The march to v5.00 is a long and tiring one, unfortunately, but it will enable a lot of good things.

I've now got a definitive strategy. The Ruby/Python interoperability is not working. It was always pretty shaky, but on Windows the situation is pretty much intolerable. It's the cause of both the general slowness of patching games on Windows and portions of games randomly failing to patch.

In it's place, I've got a Python native Ruby Unmarshal library. I'm still working on it, but it is at a state where it can read files correctly. Writing files is still a work in progress. Eliminating the use of Ruby should give a significant speed boost on Windows and make RPGMaker Trans much more reliable. It'll also enable a bunch of new features as well, such as being able to select exactly which contexts you need; games which use custom scripts that RPGMaker Trans can't detect at present will become translateable, albeit with a little user work.

There's also been work on the Ruby parser, and planning on the upgrades I will need to carry out to the patch format.

Other utilities?

The other utilities that I've long promised are still in the pipeline. If all goes well, they should be released this month. Just don't expect GUIs.

A quick note on v 4.35

I though I had posted on this, but apparently not. An apology to anyone hit by the brief period in which RPGMaker Trans stopped working. The 'expiry system' was implemented for various reasons in the midst of time, but mainly due to people insisting on using versions of RPGMaker Trans that were more than a year old and then demanding I fix bugs that were already fixed. And between not having enough time to work and Windows 10 messing up my build environment, the expiry date of RPGMaker Trans v4.35 just slipped by me.

v4.36 fixes this issue, and also corrects some stale links. Again, sorry for anyone inconvenienced by this.

Revised Plans

So we're now in July, and RPGMaker Trans v5 is not around. Most of this is due to circumstances beyond my control, such as real life work and Ruby JSON libraries not really being up to the spec that they promise.

I'm currently assessing the scope of the problem. My gut says that I'm probably best off doing away with the Ruby dependency completely and implementing Ruby marhsalling in Python. However I am also investigating if there is some way of hacking Ruby to give me some kind of transparent JSON+Binary string serialisation. Open classes may actually be good for that.

In addition, I'm also plugging away at bug reports. There will likely be an interim bugfix release within the next week or so which should fix some of the problems people have been having.

Linux Support

Considering that I do all my development on Linux, it seems surprising that I don't offer a Linux download of RPGMaker Trans. This basically comes down to two things.

  1. Linux users are normally fairly technical folks, and able to install from source.
  2. Packaging stuff for Linux is a real pain, especially as PySide does not support Python 3.5, which is what modern distro's offer.

Fortunately the recent containerisation work has meant that packaging RPGMaker Trans should be possible. My plan is that RPGMaker Trans v5 will be released for Linux as a Flatpak bundle.

As to Macs... I actually do have access to a Mac, but I've never been able to get the GUI versions of RPGMaker Trans to work on it. If I can, I'd be more than willing to drop it on there. But for now, it's a pipe dream.