Difference between revisions of "Tinsel/TODO"

From ScummVM :: Wiki
Jump to navigation Jump to search
(→‎Game issues: Add 64-bit/BE TODO from Tinsel status page)
(Moving all "Happens in Original" bugs to BUGS page)
Line 19: Line 19:
* Check engine code for any 64-bit system incompatible code.
* Check engine code for any 64-bit system incompatible code.
* Check engine code for endian issues, specifically Big Endian issues.
* Check engine code for endian issues, specifically Big Endian issues.
* The scene where Rincewind finds the dragon's loot at the end of act 1 is severely bugged. Rincewind and the dragon's treasure constantly disappear and reappear, and Rincewind's animations constantly restart (e.g. the animation where he enters the scene, the animation where he stuffs the treasure into the trunk and so on). I do not remember this bug from earlier revisions, perhaps it is a regression from the latest ProcessSleep removals?
** Update: The buggy animation is directly related to the subtitles speed. If the subtitles speed slider is moved all the way to the left (fast subtitles/no delay), the scene is shown correctly.
** Subtitle speed seems to cause other glitches much earlier in the game, e.g. at the very beginning, when Rincewind gets out of his bed. (These, or at least something similar, happen in the original interpreter)
* After finishing the game, after the ending animation and the credits screen, we are taken back to the title screen (where it says "Press any key to start"). If the game is started again, its state has not been reset so all the actors are in the state they were in act 3/4 - i.e. the luggage is awake, the dean is missing, the sleazy guy in prison and so on. (this happens in the original interpreter)
* When you ask the Lecturer of Recent Runes (in the Dining Room) about the librarian, the subtitles say "No, no, no." while the voice-over says "Did you get the number of that donkey cart?" It is probably the sample that is wrong, not the script, since the sample IDs are played in order. (Only in English V2?) (this happens in the original interpreter)
* When examining the trapdoor in the broken drum, its description ("Hmmmm... that characteristic scent of turpentine, crushed cockroaches and recycled beer!") does not fit on screen. (this happens in the original interpreter)
* After opening/closing the Luggage's inventory, the frame around Rincewind's inventory is sometimes drawn wrong. I've only seen this happen after learning how to pick pockets. You can try [http://www.update.uu.se/~d91tan/ScummVM/dw.004 this savegame], for English v2. (this happens in the original interpreter)


== Other stuff ==
== Other stuff ==


* Right now, we semi-arbitrarily assigned F5 & F7 to open the load/save dialogs (dreammaster did that to match Lure, which in turn follows the 'Sierra standard'). Maybe we can agree on some standard hotkeys which work in all (most/many) engines ?
* Right now, we semi-arbitrarily assigned F5 & F7 to open the load/save dialogs (dreammaster did that to match Lure, which in turn follows the 'Sierra standard'). Maybe we can agree on some standard hotkeys which work in all (most/many) engines ?

Revision as of 02:07, 28 May 2012

TODO List
Name Tinsel Engine TODO
Technical Contact(s) Tinsel Engine Team
Subsystem Engine

Missing features

  • The AdLib music does not sound right. I'm speculating that we would need to use the SAMPLE.* files from the original for Adlib instruments. Here is a description of the format probably used by SAMPLE.BNK: http://www.descent2.com/ddn/specs/bnk/ . The adlib.diff patch could possibly provide a starting point.
  • Return to launcher is currently impossible, because the game uses a ton of global variables to keeps its state. These are not reset when one exits one Tinsel game to the launcher and then starts another Tinsel game (possibly the same). A quick way to fix it would be the following:
    1. Identify all global variables (this includes "static" variables hidden inside function bodies).
    2. Optionally, remove the inline initialization for all of them. This way, Valgrind can detect if they are used uninitialized, which may help in tracking down problematic vars.
    3. Initialize each global variable (or at least each that needs it) in an InitFILENAME() method in each file, which is to be called by the TinselEngine constructor or some other appropriate place.
    4. On the long run, turning all these variables into members of to-be-added classes (i.e. objectifying the engine) is preferable, but the above seems to be the easiest and quickest solution.

Game issues

  • Perform play testing, look for problems, and then add them all here!
  • Check engine code for any 64-bit system incompatible code.
  • Check engine code for endian issues, specifically Big Endian issues.

Other stuff

  • Right now, we semi-arbitrarily assigned F5 & F7 to open the load/save dialogs (dreammaster did that to match Lure, which in turn follows the 'Sierra standard'). Maybe we can agree on some standard hotkeys which work in all (most/many) engines ?