Sunday, 21 June 2015

Beta v4.0d Released

And another beta comes out. Only one change, but a pretty useful one.

  • Perform basic parsing on regular expressions in scripts. This should prevent the parser from accidentally consuming brackets, and as a consequence, taking a very long time to parse some script. 
And when I say very long, I'm talking in terms of the heat-death of the universe.

Obviously, other bugs exist which prevent me from upgrading this to a final release. But this is one of the bigger ones, and warrants it's own release.

Saturday, 9 May 2015

Beta v4.0c Released

So, the v4.0c beta was released. Major highlights from v4.0b:
  1. New Unmarshall script - hopefully the end of all compatibility issues, ever.
  2. GUI/CLI modes are now separate packages. In addition, the CLI mode now works. 
  3. Release channels - before, beta versions had no update notifications. Now they do.
  4. Some hidden functionality that will be exposed in the near future.
  5. Major tidying up of the source code. Not much of a highlight for most, sure, but handy for me. 
On websites and stuff: I'm seriously considering moving all RPGMaker related stuff off of this blog, and onto the main RPGMaker website, once its redesign is finished. The Nikola engine supports all kinds of neat stuff for this, so there won't be a loss of functionality, and it should result in a nicer blog with a nicer comment system. Not sure if I'll keep this one up or use it for other purposes or something, but unless there's a massive outpouring of support for a Blogspot blog, then that's probably what's going to happen.

EDIT: I've had reports that Ruby 2.1 fails to work on 32-bit Windows XP. As Ruby 2.1 is more-or-less required for this version of RPGMaker Trans, that means I have to declare Windows XP unsupported. Anyone on WinXP? Please upgrade Windows. There's a lot of good reasons to do so.

Saturday, 2 May 2015

Hopefully final progress report on v4.0c, playing around with new site

So, hopefully this is the final progress report for v4.0c.

What's changed? A handful of things:
  1. GUI and CLI executables will be in separate packages. cx_freeze doesn't have any real way of having the two modes in the same package (or indeed, the same executable), so it's going to be 2 packages available for download. On the plus side, having to do this force me to sort out some long-standing source code organisational issues, and then implement hacks around Python bugs to get it to work on Windows...
  2. Changing the way data files are loaded - again: My previous solution was to load a shim RPGMaker compatibility layer and then load the scripts of the game into Ruby so that Ruby could unmarshal all the classes. This turned out to be a bad move because many games do processing on script load (rather than on game start), and so many games would crash the Ruby interpreter during this stage. The new approach is something I implemented nicknamed "unmarshall", and basically uses the errors generated when failing to unmarshal something to generate a shim to enable unmarshalling... if that makes any sense.
  3. Move from Ruby 1.9 to Ruby 2.1: because one thing I found out during implementing unmarshall is that under certain circumstances Ruby version < 2.1 will quite happily unmarshal a data structure to completely the wrong class, without even a hint on an error message.
  4. Hidden support for translating script labels: My test case game requires this. However, to stop labels polluting the majority of patches which don't require it, it's disabled by default. And has no option to enable it - although there will be one, probably in the next semi-major version.
Things that need to happen before v4.0 final:
  1. More testing
  2. UI bug when unpacking a game (progress bar stuck at 100% during patching) 
  3. Release channels
And the final thing in this post... It turns out that I hate HTML. Unfortunately, that's what my website is written in. I'm currently experimenting on a replacement website, which will be powered either by Nikola or Urubu. I'm not sure what I'll end up with, but whatever it is there will be pretty big changes on the website in the near future.

Sunday, 5 April 2015

More Progress on V4

This is just an update, considering 3 weeks ago I said 'expect something soon' and then nothing on this blog.

Basically, my code has inexplicably stopped working on Windows. I am genuinely confused as to what is going wrong here, because I have no reason to believe that the code shouldn't work with Windows, and yet it does not.

For those technically minded: after this commit, things don't work on Windows anymore. There seems to be some kind of deadlock, but I'm still no closer to figuring out where it is or why it happens. All I know is that patching jobs get submitted to a multiprocess Pool, but they never start. My concern is that there is a problem within multiprocessing, because the aforementioned commit does not do anything that should affect this, and the problem persists even when I make the jobs modal (which is definitely worrying...)

So there'll be a new release when it's ready, basically. I'm hoping this is sooner rather than later, but as I'm genuinely lost on this issue, no promises.

Monday, 16 March 2015

Progress on V4

So, what's the status of V4? Well, here's a list of what I know to be not working in the 4.0b release.
  • CLI mode is executable is broken. It's actually been broken since release, which suggests it isn't being used much. In any case, this should be fixed soon.
  • XP support was broken. Hopefully this is fixed in current code (not released)
  • Ruby 1.8/1.9 differences are causing problems. I'm investigating ways to fix this, but it's looking tricky.
  • Anything using non-standard DLL extensions doesn't work. 
  • And some problems to do with bad emulation of the RGSS scripts.
The last three issues are caused because I'm just loading the Scripts file, and a lot of games appear to do loading and processing on load (rather than on game start). While I'd call it sloppy programming, not much that can be done about it, unfortunately. Hence, I'm considering another new loader. This will either be doing some very lightweight processing on the scripts to figure out the structure (without doing any processing - something that may work as I only require module/class names), or brute forcing the structure from Ruby error messages.

Expect a v4.0c release shortly to fix the first 2 issues, then something else later to fix the others.

Saturday, 7 March 2015

RPGMaker Trans v4.0 Prerelease

So I'm uploading this as a prerelease first, because of the massive and extensive changes to RPGMaker Trans. Seriously, there's a lot that happened since the v3.07 release. Excluding bug fixes, here are the big ticket items:
  • RPGMaker XP and VX Ace are now supported. Although XP support is somewhat untested at present.
  • Translated scripts now have some validation done to them. The validation is not perfect, but it'll certainly stop you from accidentally leaving a closing quote off a string (which is the most common error I've made).
  • Heavily customised games should now be supported. Scripts are now loaded into RPGMaker Trans, which should allow even the most heavily customised game to be translated.
  • v3.2 Patch format simplifies contexts by removing class names, correcting the order of things to be more logical, and fixes a bug where InlineScripts didn't have their position in the event page displayed.
  • And (hopefully) games residing in a non-ASCII folder will now work properly.
The reason for announcing this as a prerelease is there is one thing which needs more broad testing than I can realistically do by myself, which is the method for handling heavily customised games. As this loads in scripts, I'm a little concerned that the incompatibilities between Ruby 1.8.7 and 1.9.3 might mess up some XP/VX games. If anyone encounters any such game, or any game which doesn't work, please file a bug report.

The prerelease can be found on the RPGMaker Trans website.
EDIT: Prerelease updated to 4.0a to fix a crash when choosing a game through the file picker.
EDIT2: Prelease updatead to 4.0b to fix a crash when launching a Ruby process through GUI.

Thursday, 26 February 2015

RPGMaker Trans v3.07 Released

So... the number and severity of bugs appears to be going down. Here's a quick release, which contains the following fixes:
  1. Correct a bug where multiline inline scripts would not parse
  2. Include the README and LICENSE files in the distributed binaries
Assuming that's the last of the bugs in the v3.0 series, the next release will probably be a major version bump due to adding in support for VX Ace (and hopefully XP), as well as the new script loader and minor patch version.