[Scummvm-devel] New engine: Wintermute (Lite)

Einar Johan Trøan Sømåen einarjohants at gmail.com
Mon Aug 13 03:35:14 CEST 2012


As some of you may know, I've been porting the Wintermute (Lite)-engine to ScummVM as part of GSoC this summer,
and I'm now close to completion of this task (and indeed GSoC itself), as of now, quite a few games work in my port,
and almost as many games don't work (for lack of interlaced PNG-support, and possibly other issues, which I can't easily
test for yet, for lack of interlaced PNGs).

The state of the engine:
- Saving: Works, might be a bit slow on some platforms, but that is mostly an issue of disabling the progress-bar, which slows down
 the saving by quite a lot.

- Endianness: Most games I've tested atleast starts up on my PPC Macs, I have yet to test a game through to completion there,
 but will try to get this done in the coming week. There is one known issue with Big-Endian, namely that alpha-masks for movies
 are interpreted wrongly there (should be a quick fix once I'm back at one of my PPC macs)

- Sound: So far I've only encountered OGG and WAV-sound in the games I've tested, and those seem to work quite OK,
 the engine DOES theoretically allow for changing the loop-state of an audio-clip while it's playing, but this isn't implemented
 at this point, as I've yet to find a game that does this.

- Graphics: I have a semi-working dirty-rectangle system implemented in the engine, which sadly doesn't quite work at this point,
 this means that the engine is quite CPU heavy at this point, especially since most games use alpha-bitmaps liberally.

- Detection: The engine does have both a MD5-based detection-system, as well as a fallback that tries to find out what the game at
 hand is called. The latter is necessary to allow for fanmade games in development to be run in ScummVM

- Advanced feature-support: The engine supports all the listed advanced engine features, except for "enhanced debug / error messages"


There are still some remaining issues with regards to localization, as UTF8 isn't supported yet, and thus I can't draw the necessary characters
with the TTF-backend. (Some games also tend to use the Windows-version of ISO-8859-1 instead of pure 8859-1, this conversion is also not
yet implemented).

Additionally, the way most games allow for multiple languages is to move files around on launch, this means that I'll have to add the various
filters for games on a mostly game-by-game basis. Right now, all english versions of the games I have tested should work ok though.

At this point, I'm targetting 5 games for testing/verification:
- Dirty Split
- The White Chamber
- Chivalry is NOT dead
- Rosemary
- Pigeons in the park

I also test with the J.U.L.I.A.-demo from time to time, as that game stretches the limits of the engine by quite a bit.

All in all, at this point these games seem to be playable, albeit not as fast as they could be. I'll be doing some retesting in the upcoming
week, to verify that these 5 are indeed still completable, and that no regressions have snuck in. 

Down the road there is a decent possibility that this engine will support quite a lot more games (depending on file-format support)

All in all, this is a heads up that I think this engine is reaching a state where it might be mergeable.

Those that would like to take a look at the port, can find it at:
https://github.com/somaen/scummvm/tree/wintermute/engines/wintermute

- Einar Johan Trøan Sømåen





More information about the Scummvm-devel mailing list