Thanks to FreeSCI, I'm regularly encountering new binary formats no man has ever encountered before (or something like that). My descriptive attempts for them have been pretty informal so far; but now I'm starting to wonder if there is a good formal machine and human readable description language for binary data (Yes, I know it's pretty late in the game, but there are still a few data formats used in later games we don't support, and lots of other formats that haven't been properly described yet). Of course, using a declarative attempt for binary languages has one disadvantage: While creating efficient reader programs from the declarations should be possible, creating writer programs may be either be NP-complete, result in programs that use NP-complete algorithms, or will require the language to be restricted beyond usability (compare this to the problem of creating "good" MPEG encoders).
Still, the ability to automatically generate reader programs from platform (meaning processor, OS, and programming language) agnostic description files (including automated checking) should easily make up for this...
So, has anybody heard of anything like this?
Moving slowly... I've been re-working part of the widget system from a flag-based to a function variable based system. This is relatively straightforward work, but I don't seem to be able to find the time to work on it very much lately... Still, it's almost done now, so there's a real chance the whole thing will be released to CVS in the next 10 days or so- this way I can finally focus on fixing bugs once again (Woo-hoo... I guess..). A new contributor popped up, and, with some minor assistance, managed to describe an algorithm for the deflate-based decompression algorithm required for later SCI games. With some luck, we may soon have implementations for all SCI compression algorithms.
As a long-time Ultima fan, I took the recent alpha release as an excuse to finally try Exult. It's based on SDL, multithreading and C++, i.e. mostly stuff I'm not really familiar with, so that's another good excuse to play with it :-) Unfortunately, it turns out that it doesn't work on the Alpha, so I'll have to whack it in the head a few times. Now I'm finally experiencing the joys of debugging multithreaded code... However, DrCode appears to be very willing to help me with the port, so I'm not quite left out in the cold there. (Yeah, I know, this is heresy, but don't worry, I'm not abandoning FreeSCI quite yet ;-)
For those of you fearing that the rest of the world might be making fun of the US because of this: Rest assured, we are.
EU council vs. patents
So they decided against patentability of software (with Luxembourg, Switzerland, and Austria being the bad ones this time). This is one of the rare moments where we have to be grateful that the concept of deregulation (patenting computer programs is explicitly disallowed) is something the council has yet to grasp.