Difference between revisions of "Tinsel/TODO"

From ScummVM :: Wiki
Jump to navigation Jump to search
(Moving all "Happens in Original" bugs to BUGS page)
(Reformat Tinsel TODO page into logical order.)
Line 5: Line 5:
}}
}}


== Missing features ==
== TODO ==


* 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.
* 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.
Line 13: Line 13:
*# 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.
*# 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.
*# 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.
*# 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 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.
 
* Perform play testing, looking for bugs.
== Other stuff ==
* Add fixes/workarounds for bugs present in the original games - See [[Tinsel/Bugs]].
 
* Currently, we semi-arbitrarily assigned F5 & F7 to open the load/save dialogs (dreammaster did this to match Lure, which in turn follows the 'Sierra standard'). Maybe we should 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:34, 28 May 2012

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

TODO

  • 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.
  • Check engine code for any 64-bit system incompatible code.
  • Check engine code for endian issues, specifically Big Endian issues.
  • Perform play testing, looking for bugs.
  • Add fixes/workarounds for bugs present in the original games - See Tinsel/Bugs.
  • Currently, we semi-arbitrarily assigned F5 & F7 to open the load/save dialogs (dreammaster did this to match Lure, which in turn follows the 'Sierra standard'). Maybe we should agree on some standard hotkeys which work in all (most/many) engines?