So, it turns out that coding whilst on holiday is hard. Especially when your holiday isn't what most people would call a holiday... I would also like to register my hatred of mosquitos.

Anyways, progress so far is basically fixing those crazy error messages and a few GUI faults. It's pretty much ready to go, actually, and would be apart from the fact that the way the patcher is being used by Vkozyrev (comments here under the handle VK) effectively breaks version portability. Normally I'd tell him to fix things on his end, but the specific behaviour (that the directory inside a zipped patch needs to be the same name as the zip file) is not intuitive and really something of an oversight. Unfortunately, it gets worse with the new GUI.

Hence, I'm taking the opportunity to rewrite my ZIP file handler. Presently it's less than ideal (it actually extracts the zip, calls the normal handler, then deletes the folder when done), so the new one will (hopefully) just read stuff out of the ZIP. Anyways, the new ETA is before the end of the week.

Delayed: v1.95

I'm afraid I'm having some problems with getting RPGMaker Trans v1.95 out. My normal build system isn't working well, and compiling it by hand on Windows throws up some pretty crazy error messages.

Basically, it needs more time, and as I'm on a holiday from today I really don't know how much free time I'm going to get. I'll see what I can do (especially on the plane out there), and I'll be trying to get it out as soon as possible.

Sorry for anyone waiting on it, but you'll have to wait a little longer.

Inbound: v1.95

Heads up to people who I've told "wait for version 1.95, it'll be easier to use". Well, wait is nearly over. Just needs a little more testing and packaging, then it'll be here.

ETA: 29th July.

Features: Log files generated without explicitly setting debug mode, a proper GUI.

Big fat public warning for 3rd party tools...

If you're just a user of RPGMaker Trans, please ignore this message. Translators can look forward to a proper GUI and stuff. However, developers... please click through and read on.

I'm having some trouble with current work in RPGMaker Trans; specifically with some internal architecture choices. Basically, it boils down to the nature of the patch structure: originally it was "one-file, one-patch file" basis. This failed due to the RPG_RT.LDB file being massively oversized. Presently it's a sort of cludged together method that splits the RPG_RT.LDB file. That's inelegant, but it works. Another cludge was the problems with multiple meanings associated to the same translated text, partial fix implemented by "contexts". Again, inelegant.

The problems start with the communications part of my speedup architecture - communicating data between processes is somewhat tricky. However there's other problems, for instance sharing data across files when desirable, and more fine grained control over replacement policies i.e. allowing instances to be translated etc. Final problems come with porting the tool to RPGMaker XP/VX, which use variable width fonts - meaning giving advice on line sizes is very, very hard in a txt file.

Finally there seem to be some user experience issues, due to users not reading instructions properly. Some users appear to think that RPGMaker Trans is an automatic machine translator as it's default behaviour is to create a patch folder if it can't find a patch. Clearly I need to do something about this.

Basically, the more I look at it, the more it seems that the current method of text based patches is wrong. Hence the v3 RPGMaker Trans patch format will almost certainly not be human readable, and instead there'll be an editor program. Whilst the format will likely be Pickle based, this is not helpful for 3rd party utilities.

In addition, because of the license for RPGMaker Trans, after this patch format is released it will not be permitted to run older versions of RPGMaker Trans which use the v2 format.

Now to be clear on all fronts, this is still a little way out there (2-3 months, maybe). But I want to give advance warning to anyone working on tools: I am without doubt, that all 3rd party tools will be broken by these changes and it will require a vast effort to restore them.

GUI Work...

Not too much done on this yet, but future versions of RPGMaker Trans will look something like this:

Plan is that you'll be able to select games from the dropdowns if there in the places that RPGMaker Trans expects them to be in now, or find them with other otherwise. Patches likewise, and if RPGMaker Trans can find the appropriate patch automatically it'll be auto selected.

And yes, the GUI might come earlier rather than later.

RPGMaker Trans Roadmap

EDIT: All dates in that were in this roadmap are now wrong, so I removed them. XP/VX support will be more involved than I thought, and will likely involve creation of an editor GUI program. The GUI version is likely to happen before the speedy version, and is also likely to happen soon.

So, as there were... well, no contributions on future direction... here's the plan and some expected deadline dates. Note that the roadmap is of course subject to change, and extra releases will be made in case of bugs etc.

RPGMaker Trans v1.91-s
  • Not a true new version, so no new version bump
  • Debut of RPGMaker Trans utilities - RPGMaker Trans will be split into two parts, a small "core program" and a large "utilities pack" which doesn't change as much. RPGMaker 2000 game translation will be possible without the utilities pack, but will be much faster with it. The planned RPGMaker XP/VX support will require the utilities pack
  • Utilities pack contains pypy for speed ups.
  • Remove some unnecessary code paths for some other speed ups. Probably won't make too much difference, but every little helps.
RPGMaker Trans v1.95
  • Add a wxWidgets based GUI
  • Add a developer CLI mode - for people building utilities on top of RPGMaker Trans
RPGMaker Trans v2.00
  • RPGMaker XP+VX support!
  • RPGMaker Trans patch format v3, to cope with XP/VX support
  • Utilities pack update to support XP/VX games.
RPGMaker Trans v2.1
  • Automatic machine translation support (hopeful translators: ATLAS, Google Translate)
  • Possible Utilities pack update to support ATLAS translations
  • Google Apps based online translation/collaboration software 

    CPython and PyPy: Small and Slow or Big and Fast

    This is a heads up for all interested parties.

    Presently, RPGMaker Trans is built on CPython, or the bog standard Python distribution. The reason for this is that when I was writing it, CPython was the only Python distribution which had all the Python 2.7 language features in it, and I wanted to use some of them.

    Now the situation has changed; PyPy is now fully 2.7 compliant. Playing around with running the source through PyPy I can get substantial speedups - at least on my machine. Given that RPGMaker Trans is a slow program I'm thinking it may be a good idea to look at taking advantage of these speedups.

    There's two slight problems I've got at the moment: the first is that PyPy doesn't support freezing - that is creating a special EXE file to run. There's a few ways around this - I'm leaning towards making a basic loader program that launches things. Heck, it might even be a good time to add a proper GUI and proper CLI if I go down that route. The second issue is download size; PyPy is a big binary - something like 27MB. So... perhaps a two version system (small download size but slow, and big download size but fast)?

    And for reference, the RPGMaker XP code I'm working on does benefit substantially from PyPy - to the extent that it is a lot more usable. It really may be necessary to switch to a PyPy based system because of this.

    If there are any thoughts, I'd be happy to hear them. In fact, I'd really welcome some feedback on where people stand on the small download size and slow or big download size and fast part!

    Tweaking the blog...

    Well, a few tweaks to the blog. First off, ads have disappeared. Why? Well, three reasons: the first is that by the browser stats, I guess about 70% of people who view this blog have ad blocking. The second is that the majority of ads I get seem to be about enterprise patch management, and that's not exactly anything that people here want. The third is that really, I don't get too much traffic anyway. Those factors mean that obtaining any support for this project via ads is not really feasible.

    So my new strategem is to recommend people to download RPGMaker Trans via Easy-Share. The reason for Easy-Share is that all other file hosts pay moneys based on the size of file to be downloaded, and RPGMaker Trans is too small to qualify for any payouts. Easy-Share doesn't take file size into consideration, and so provides a lot more revenue. I suppose I could pad the files or something... but that seems like a bad idea really...

    Note that I'm specifically not recommending people to take out premium memberships with Easy-share - unless you really want to. Doing so isn't a way of supporting me however.

    But yeah, it'd be nice if everyone could download via Easy-share. I appreciate that for some people it's not possible, and for others they just prefer a different file host, but if everyone downloaded via Easy-Share I'd have gotten $10. Not much, but enough for me to put a donation to some of the 3rd party software that made RPGMaker Trans possible.

    EDIT: And now Easy-Share do penalise smaller files. I'd still prefer people to download from them, as the penalties aren't as much as the other hosts, but still annoying.

    RPGMaker Trans v1.91

    Huzzah! A new version, though this is strictly a bugfix version.

    Bugs quashed:

    1. Added an undocumented event code that some games use: Thanks to a bug report, I now know that at least one game uses an undocumented event code, E71A. I have no idea what it does, but it's existence was causing the script parser to trip up and die. In any case it's been added to my list of event codes, and the game in question now dumps an extra megabyte of text (or there abouts).
    2. Converting RPGMaker Trans format 1.0 to 2.0 should now work properly: Specifically, the LMU files will not import correctly. I don't think anyone actually had a problem with this...
    3. Don't dump null strings: Strings which are just a null character are now no longer dumped.
    Anyways, have fun with it people.

    Anonymous comments are now off

    Just a quick note on this. The reason is simple: It's getting really confusing.

    If you don't want to link a Google account here for whatever reason (this blog is family friendly, you know!), it's easy enough to just get a spare.