Yay! That went well. I've now got Castle Master (and a crippled Total Eclipse!) up and running with libgba, GBFS and my own libsxmp, which I've modified to also do sound effects... This is a pretty good first step since it makes everything a bit easier to fit together. GBFS in particular should ease me troubles with the GUI files and how to load in each games's data. It makes things impossible to debug with gdb, but then the debugger hooks in VBA no longer seem to work anway so no real loss here.
Doing this also got me back into the swing of things, since I'd forgotten everything about the freescape engine. Like the fact that object 255 in a room isn't a real object but a list of objects in the global room space. Interesting stuff, I'm sure you'll agree. I'm going to experiment with hacking in some classes and whatnot next, see if I can figure out a clever way to crowbar in the differences between games without going mad. It ain't going to happen (the clever way of doing things, I mean. The going mad is very likely to happen) and I can see me resorting to the old #ifdef, but I'll give it a go!