[Scummvm-devel] tinsel 2, Discworld 1 and Discworld 2

Filippos K philipk79 at hotmail.com
Tue Dec 2 15:04:05 CET 2008


Hello everyone

This is a little update and information on tinsel 2, plus a description of its current status and issues.

Background
=========
Tinsel was an engine that was written to support Discworld and Discworld 2, by Perfect Entertainment. Perfect Entertainment was originally two different companies, Teeny Weeny Games, and Perfect 10 which merged to become one company, Perfect Entertainment. The engine had three different versions, or "generations":
- V0, which was used in the Discworld demo
- V1, which was used in Discworld 1
- V2, which was used in Discworld 2

V0 + V1 are called "tinsel V1" / "tinsel 1" and V2 "tinsel V2" / "tinsel 2"

Tinsel in ScummVM
==============
Initially, many people started working on tinsel once we received the source of tinsel 1 - dreammaster, drmccoy, eriktorbjorn, fingolfin, joostp and md5 (in alphabetical order).
The source was very well structured and organized, however the engine used an out of the ordinary "trick" known as coroutines, which allow subroutines to pause and resume code execution. For more information, check here:
http://en.wikipedia.org/wiki/Coroutine
Coroutines are NOT supported natively in C++, so we followed Simon Tatham's approach:
http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html
and thus, tinsel 1 was created, and added to ScummVM's code tree. This adaptation was done almost entirely by fingolfin.

Later on, dreammaster started working on integrating tinsel 1 and tinsel 2 into a single engine, which would be able to support both Discworld 1 and 2. He did it, and with the help of drmccoy, who worked on BMV videos and sound, the new tinsel 2 engine was added to ScummVM's code tree yesterday, able to support both Discworld 1 and 2. Both games are completable.

Current status
===========
* Both games are completable under little-endian 32bit systems
* The demo versions of the games are not yet supported (the DW2 demo might be supported, if it's using the same version of the engine that the full version does).
* There might be issues in big endian and 64bit systems - although the code should cover endianess issues and issues with 64-bit pointers. Testing both games under such systems would be very helpful

Discworld Noir
==========
I'm not sure if this game uses the tinsel engine, however, since it has 3D graphics, it's not suited for ScummVM, but for the ScummVM subproject residual. Noone has worked on it, and I don't know if anyone will.

Thanks to:
========
John Young, for the source code of the engine
dreammaster, drmccoy, eriktorbjorn, fingolfin, joostp and md5 (in alphabetical order), for all their contributions


Regards
Filippos Karapetis (md5/thebluegr)

_________________________________________________________________
Send e-mail faster without improving your typing skills.
http://windowslive.com/Explore/hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_speed_122008
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.scummvm.org/pipermail/scummvm-devel/attachments/20081202/907c0613/attachment.html>


More information about the Scummvm-devel mailing list