Savegame format changing ordeal

HI! Tried changing the Cine engine’s savegame format from plain data without any markers to a chunked format akin to IFF. Got lots of ideas, and some code together too, but eventually gave up as making it really work would’ve required some major objectifying of the engine and it’s still very C style in many places currently.

Back to working with Operation Stealth

Hi, just got the release critical Future Wars old savegame loading bug fixed (My thanks to wjp on #scummvm for his help with nailing this bug). Getting the Operation Stealth’s savegame stuff working is now next…

Bughunting season

Hi! Last week went mostly in bughunting as the next ScummVM release is being prepared and bugs are being fixed.

Making Operation Stealth completable

Hi! With the mid-term goals done and the bathroom door crash fixed I’m now setting out to make the PC version of Operation Stealth completable. My plan is to try to play through the PC version of Operation Stealth and fix any showstopper bugs along the way (i.e. bugs that keep me from completing the game). In addition I’ll also try to fix any seriously annoying bugs like e.g. the current mouse cursor pointing problem (You can’t just point to an object onscreen to access it but you have to point a bit to the right of it).

Mid-term goals done

Hi! The last of my mid-term goals (The actor animation regression) got nailed this week.

Here are my recent achievements:

  • Implemented resetGfxEntityEntry function in r32848
  • Fixed addAni function in r32850
  • Fixed and implemented the rest of processSeqListElement function in r32874

And I’ve been documenting the Operation Stealth’s disassembly generally along the way a bit too.

Got into reverse engineering mode

Hi! Got the Operation Stealth versions’ opcode comparison done after all (It took an awful lot of time with all the procrastination and indecision thrown in and it wasn’t very inspiring work) and now I’ve been mostly reverse engineering Operation Stealth’s missing opcodes or fixing existing ones’ implementations. Feels a lot better now :-). Reverse engineering is fun!

IDA‘s graph view has proven extremely useful. It helps a lot in understanding what a function does and how it does it by giving a flow chart view of the function. It wouldn’t be easy to go back to using IDA without it, I’ll say! The graph view is one good reason for getting a license for IDA Pro as the freeware version 4.9 of IDA doesn’t have it.

Delphine compression format deciphering

Spent most of my work time last week deciphering Delphine’s compression format. Now I feel satisfied by having made the implementation in ScummVM’s Cine-engine quite robust and hopefully understandable too (I documented it and really made myself understand what the darn thing does).

The decompression code had been initially reverse engineered from disassembly by someone else and there were no comments to speak of so that’s why it wasn’t very understandable to me in the beginning. Just compare the older version that I started with (Header file & code file) with the version that’s now in place (Header file & code file).

Some procrastination and preparation for opcode comparison

Hello everyone. There’s been some procrastination in the air so to speak. I’ve been working on making an opcode comparison between different Operation Stealth versions in order to discover which opcodes are platform specific (Amiga/PC/ST), which are extensively used etc. The idea is that once I know that then I’ll know which opcodes to try to implement first. Sev pointed out to me a standalone resource file unpacker and script decompiler for Cinématique.

First steps: French language and dead code

Got the disassembly of the French version of Operation Stealth (There was already some work done on it by another person so I’m not starting totally from scratch here) and also the disassembly of the French version of Future Wars (Les Voyageurs du Temps) so I’ve got another version of the Cinématique engine to compare functions with. Luckily enough I know at least a little bit of French (I studied French as a fourth language in elementary school and gymnasium) – although I’ve forgotten most of it ;-). Learned that échec in French means failure btw.

And so it begins!

Hi! It’s time for GSoC to start! Just installed my licensed copy of IDA Pro and getting ready for some reading up on the disassembly and on the cinE-engine characteristics. Let the games begin!