So then, an explanation of what's been happening, because I've been essentially away from development for a while.
First off: my laptop died. I do most development on my laptop, so that slowed me down a lot. Within a week though
I had reassembled my old laptop, which was perfectly serviceable, and was back in action. Then that laptop died
as well. It took a few weeks before I could recover the data from it and repair it, which is where I am now. However,
I still haven't gotten around to looking at the bugs that have been open for some time.
Now, onto more interesting things. I'm currently working on v5.0 of RPGMaker Trans.
First, some history: Since v1.95, RPGMaker Trans has been running on a custom multiprocessing based architecture
called Headless. Headless made a great deal of sense at the time, because there was no standard way of doing these
things in Python. One thing that was a hack then and is still a hack now is running the GUI on Headless as well -
while this works nicely on Linux, it causes a lot of lag on Windows.
In addition, Headless actually brings an overall speed penalty when fast operations are introduced -
this seems to be due to something like a FPS limiter effect. This became noticeable when the new CFFI unpacker
was integrated into a Headless framework, and ended up being slower than the original (when without Headless,
it's a lot faster). This is coupled by the fact that Pythons now has built in support for the majority of things
that Headless does, and the built in support does things a lot better.
To top things off, I've recently discovered that there's a number of issues with the Windows version.
The GUI is adding substantial amounts of padding (for some reason I have yet to figure out), as well as ZIP based
patches being thoroughly broken. Also it's slow - possibly something to do with networks.
Further, the GUI is adapted to a workflow which I feel is no longer optimal - specifically, it insists that the
game should never be patched in place. This was fine when I designed it, but now that I think I know how to do
patching in place successfully, it's a limitation.
So, what's going on?
I'll be looking at the bugs on the issue tracker and trying to close them for a new RPGMaker Trans release.
This will also include some experiments with Nagles algorithm disabling to see if I can get the Windows version
to translate Ruby games faster.
In parallel to that, I'm also working on v5.0. The things which are going into it:
- Moving away from the old Headless architecture to something based on Python standards.
Should make RPGMaker Trans faster and better
- A new GUI - this may also remove the need to bundle PySide in it's entirety, which would cut the download size
sdown a lot
- A new system for handling file resources
- Patching games in place, handling the original versions of files sensibly
- The ability to patch RGSS archives without unpacking them
- A patch export format
- Embedding patches into translated game binaries, for patch recovery/distribution.
- Ruby-side patch loading, for more reliable speed
And what about RPGMaker MV?
I've had a look at RPGMaker MV and for unpacked games, it should be easy to add support. I'm not doing so now,
but will do in the future. However, I have no idea how to handle packed games at present. I'm able to extract
some of the scripts, but nothing else. Anyone with any ideas on this, please get in touch!
EDIT: So, following some discussion on a forum
(ULMF, very much NSFW), the format of the packed games
has been identified as Enigma Virtual Box. There's some Python libraries that claim they can open these, but
they're quite out of date. In any case, I've at least got a starting point. All credit for that to Erithzak over there.