[Scummvm-devel] Stuff :)

Torbjorn.E.Andersson at tietoenator.com Torbjorn.E.Andersson at tietoenator.com
Fri Nov 28 04:19:01 CET 2003

J.Brown (Ender) <ender at scummvm.org> wrote:

> Could everybody give me the progress of


> * BS2 (any volunteers to stick in a mpeg2 decoder? :)


The game and demo should be working pretty well, at least on the platforms I
have access to, i.e. Linux / Windows on Intel CPUs. I've been told it works
on big-endian, but not on architectures where alignment matters, but I can
neither confirm nor deny this. I haven't played through the game in a long
time (though I have played individual scenes of it), so obviously there
could be regressions.

State of the Code

Most of the code was in pretty good shape to begin with. Much of the
'driver' code (i.e. sound and graphics) has, of course, been completely
rewritten, but the engine itself remains largely untouched.

The in-game dialogs (restart, quit, save and restore) have been completely
rewritten, and the debugging commands uses the same console class as the
SCUMM engine does. I don't even know what the original debug console
looked like!

I've separated the code into different classes, but there's still a lot of
cleanups to be made. Partly because I don't really know C++. :-)

I've removed unused code where I've seen it, but there's probably more to


I've only tried it with a "manual install", i.e. putting all the necessary
files in one directory (renaming the speech and music clusters so that
ScummVM can tell the ones from CD 1 and 2 apart).

I have re-enabled the CD swapping code, but there is one problem: From what
I understand, there are three places where the game expects to be able to
find data: on the hard disk (presumably the files that are copied from CD 1
even when doing a minimal install), CD 1 and CD 2. For this to work,
ScummmVM would need one search path for the files on the hard disk, and at
least one for the CD-ROM. (If the files it expects to find on hard disk had
been present on both CDs we wouldn't have this problem, but they aren't.)

Missing Features

Cutscenes. Does anyone know the status of this?

The credits roll. We only play the music right now. Did we ever get the
source code for this one? (It's not in CVS, and in the original game you
could view them from the start menu so they were probably a separate

Known Bugs

The "Pyramid Bug" described in the TODO file. This was in the original game
as well, but I'd really like to find a workaround. I now have a very
primitive script disassembler, which might help me understand what's going
on here, but I only got it working this morning so I don't know yet.

Future Plans

The engine redraws the entire screen for each frame, at 12 fps when the
camera is stationary and as quickly as it can when the camera is moving to
make the animation smoother. It'd be nice if only the parts of the screen
that changed were redrawn. (The original engine drew interpolation frames
even when the camera wasn't moving, so our version is still a slight

The speech and music are stored as some kind of WAV file. The 16-bit samples
are stored as some kind of 8-bit delta values, so they are compressed, but
I'm guessing MP3 / Ogg Vorbis encoding would still save quite a bit of

Did I forget anything? Probably, but what the heck...


TietoEnator Resource Management AB
Torbjörn Andersson

More information about the Scummvm-devel mailing list