Sunday 6 May 2012

A beginning

Since I started thinking about approaching this task, I've been doing a little work on the WME Lite code base. I originally forked that repos, and started removing the bits I knew that wouldn't work with ScummVM, which mainly meant stubbing all the dependencies away (Boost, BASS, SDL2), and getting to grips with where STL was used (as ScummVM doesn't allow me to use those).

I then did a bit of "reverse-porting", copying over pieces of ScummVM to that repos, so that I could start replacing pieces of WME-code that depended on things that aren't available in ScummVM, with the proper ScummVM-solutions. This worked up until a certain point, namely getting files to actually load (that would require copying over LARGE amounts of ScummVM-code). At this point I'd gotten to know the WME-codebase a bit better, and also untangled a bit of the header-dependencies that was there (which was usefull, to avoid having to copy the ENTIRE codebase in one go), to the point that I could start copying the files over to a branch in my ScummVM-fork.

This led to a day or so of resolving problems relating to common/forbidden.h (I hadn't purged all the STL/FILE-related pieces of code, since the main reason for moving on from a fork of WME, to a fork of ScummVM, was to get files loading). Additionally I also had to follow the "HOWTO: Engines"  guide in the ScummVM-Wiki, to get the connections correct with the rest of ScummVM

But, in the end, I managed to atleast get a repos that compiles, and links in-tree. Right now, it even detects the game data, and should be just a few hours away from being able to get the scripts out of the data files, to start running the main loop of the engine.

This puts me quite a bit into stuff that was planned a bit further down the road in my GSoC-timeline, but sometimes things tend to happen in rather different orders than what one actually plans, there is still work to be done for what was planned as the first week's work (Refactoring), but happily, I've gotten some help from Sev with automated renaming of variables, which should save me a day or two of manual labour. (Combined with some application of astyle, this atleast gets me of the start line for making the code base follow the ScummVM code-formatting guidelines).

In closing:
I might not be getting too much work into the next few weeks, as I have exams coming up, but I do plan to get the game data files at least loading, and hopefully to start looking through the files for any code formatting-breakages in the upcoming time.

Einar Johan

2 comments:

  1. Good luck for your exams... I'm impatient to see how it evolves after :)

    ReplyDelete
  2. Good luck, it's going to be quite amazing to be able to play Wintermute games on different platforms.

    It could be even nicer if you're able to integrate aMUSE plugin. Maybe the authors will agree to give you the source code :D

    http://forum.dead-code.org/index.php?topic=4768.0

    ReplyDelete