Monday, 11 February 2013

Progress and such

In the spirit of actually trying to get things done, I'm going to start posting more regular progress reports. Not sure that it makes too much difference given that this is a low-traffic blog, but what the hey.

So, in the time since the last blog update these things have been worked on:
  • Bugs: Designed the fixes for the bugs (as said before, they're actually quite complex to fix), now just need to implement them
  • New feature: In-place patches. These won't create a copy of the game, so they're not useful for games which are in a constant state of flux or translations that are being updated frequently. However, once the game and translation are finished, in-place patching is a lot faster, so it's a nice feature.
  • New feature: QT based UI. Up until now, the UI of RPGMaker Trans has been based on wxWidgets. I'm migrating to a QT UI for primary reason that rewriting the UI properly will mean less work in enabling features, and the secondary reason that I really need to learn QT for other utilities I'm planning, as wxWidgets doesn't support certain features on Windows.
  • VX Support: Um... no progress on that yet, whoops.

Saturday, 2 February 2013

Bugs and Workarounds

This post describes a couple of known bugs in RPGMaker Trans, and workarounds. I'm posting it because I'm somewhat overloaded at the moment, and fixing these is actually quite a bit more involved than most of the bugs I've seen so far. Well, for a good fix, at least.

Bug 1: Repeated Bad File Descriptor error
Cause: Patching from a ZIP which contains non-ASCII file names
Solution: Unzip the ZIP'd patch, and patch from the unzip'd version.

Bug 2: Files copying never finishes / files aren't copied to translated directory
Cause: Stale files in the _translated directory
Solution: Delete everything in the _translated directory apart from save games, and then re-run the patcher.
Solution 2: If the first solution fails, when the patcher enters its "waiting for file copying to finish state" close it. Then manually copy all files apart from LMU/LDB files from the base game to the translated game. 

Monday, 7 January 2013

VX Status Report

Well, I've got a status report on the upcoming VX support.

Basically, it's almost entirely working. There's a handful of issues remaining, but only one is a real problem.

  • Real problem: Save files can contain large portions of events, including dialog. So I need to work out how these can be translated, or else updating games might be impossible.
  • Minor problem: Ruby can have code embedded inside a string. That means I need to figure out how to escape this properly
  • Minor problem: Ruby can visit attributes/dict elements in an inconsistent order, meaning things can potentially jump around inside patch files - this needs to be fixed
Also, VX support will mark the debut of patch format 3.0. This fixes a handful of issues with the old patch format. Contexts become much more detailed, and each translatable string only appears in the patch once - even if it appears in multiple files - with a different translation being possible for each context.

I will however point out that for the time being 2k games will remain using the old 2.0 format. That's because I've not yet modified the 2k code.

Monday, 31 December 2012

Last update of 2012

Well, not much really. I've put the donate button back, because I am actively working on RPGMaker Trans now. Any bribery to speed me up is greatly appreciated.

Also I believe I've managed to solve all the fundamental problems I had previously encountered with patching XP/VX games. With a bit of luck, this will get rolled out early in 2013.

Hope people have had a good year, and let's hope for a good year to come.

Friday, 28 December 2012

About Trans-locale patching...

Long story short, it ain't working.

As to why, I'm at a bit of a loss. Evidently, there's something in the file somewhere which is still in cp932 locale, but as to what exactly, I don't know. So, for now, I'm suspending work on this feature. Apologies to all who wanted it, but there's at least one RPGMaker VX game coming out in February which I would like to see translated, so my current priority is to get VX support working.

However, one nice note on this subject: XP/VX use Unicode, and hence whilst it probably won't be possible to translate 2k games to non-latin based languages for the forseeable future, once XP/VX support is in those games will be translatable to any language.

UPDATE: I've managed to get a primitive VX dumper/(sort of) assembler going. Looks like XP/VX support should be done sooner rather than later.

Tuesday, 25 December 2012

RPGMaker Trans v1.99b

Not a big update, unfortunately, but an update to add a feature that was requested and I thought was already in.
  • Unused strings are now in a fixed order, rather than the arbitrary order used before. This should make versioning using RPGMaker Trans easier.
I've been playing around with getting XP/VX support working, but nothing concrete is done yet. Partly this is because I don't know much about Ruby programming, but a lot of this is because the scripts out there for reading/writing RPGMaker files aren't written that well (heavy use of global variables, lack of safety checking, highly dependant on Windows platform, and using eval. Eval for crying out loud! gegerlan/rakudayo, you should be ashamed of yourselves - although I am still grateful for you giving me a decent starting point...).

Tuesday, 4 December 2012

Progress Report

Just figured I'd drop a progress report here...


  1. Trans-Locale patching: Targetted for end of year.
  2. RPGMaker XP/VX support: Currently investigating msgpack for Python/Ruby communication and learning some more Ruby - which is, annoyingly, pretty much required to actually unpack XP/VX files. 
  3. ScriptableQuickAtlas: Learning QT, as my current UI toolkit, wxwidgets doesn't support some features I want on Windows.
  4. Speed improvements: Investigating if it's possible to use PyPy instead of vanilla Python; currently struggling with packaging. If it is possible, I'll be able to offer a much, much faster version of RPGMaker Trans.