Difference between revisions of "Gob/TODO"

From ScummVM :: Wiki
< Gob
Jump to navigation Jump to search
m (Hang in EGA version has been fixed)
(CD audio is supported)
Line 1: Line 1:
== Status ==
== Status ==
Game is completable. There are occasonal minor graphical glitches.
Game is completable. There are occasonal minor graphical glitches. No audio except Red Book from CD version.


== Problematic places ==
== Problematic places ==
Line 11: Line 11:
* When game calls delay() screen doesn't get redrawn. Noticeable at "please wait" screen and especially cutscenes (try screen #5 FTWKFEN)
* When game calls delay() screen doesn't get redrawn. Noticeable at "please wait" screen and especially cutscenes (try screen #5 FTWKFEN)
* Demo doesn't handle last screen properly. It hangs instead of printing ordering info
* Demo doesn't handle last screen properly. It hangs instead of printing ordering info
* Intro in CD version slowly gets out of sync with sound track. Apparently we have small errors in delays which stack up


== Main and long-term goals ==
== Main and long-term goals ==
Line 17: Line 18:


== File-specific tasks ==
== File-specific tasks ==
=== cdrom.cpp ===
* Support for gob1cd tracks. ''sev is working on this''
=== gob.cpp ===
=== gob.cpp ===
* Write proper game detection. (MD5-based?)
* Write proper game detection. (MD5-based?)

Revision as of 18:26, 13 April 2005

Status

Game is completable. There are occasonal minor graphical glitches. No audio except Red Book from CD version.

Problematic places

  • map_loadDataFromAvo() in map.cpp. These are plain calls to memcpy() so all read data is not endian safe and moreover it could read wrong size if sizeof(structure) is used in length calcualtion. All structures should be unwind, i,e, read element by element and FROM_LE_XX wraps applied.
  • data_readData(). Same as above.

Bugs

  • Keyboard input is buggy as some keypressed get ignored. Particularly noticeable when entering screen code
  • When game calls delay() screen doesn't get redrawn. Noticeable at "please wait" screen and especially cutscenes (try screen #5 FTWKFEN)
  • Demo doesn't handle last screen properly. It hangs instead of printing ordering info
  • Intro in CD version slowly gets out of sync with sound track. Apparently we have small errors in delays which stack up

Main and long-term goals

  • Convert it to C++ classes. This should be done on per-file basis.
  • Alignment fixes

File-specific tasks

gob.cpp

  • Write proper game detection. (MD5-based?)

interp.cpp

  • Since neither VGA nor CD versions have protection screen we may skip it in EGA version too

sound.cpp

  • Has yet to be written from sound.asm
  • Support Red Book audio in CD versions

text.cpp

  • This file should be removed and is not currently required for compilation but we need to inspect which variables does it set and to which values and convert them to our Config Manager. We should support all video outputs and at least PC speaker and Adlib.

util.cpp

  • Get rid of rand() and use RandomSource

video.cpp

  • Implement pDrawLine function from the VGA driver (lvga.gdr) Is it ever used?
  • Add support for other rendering modes (EGA/CGA/Hercules) lega.gdr, l360.gdr, lcga.gdr