Difference between revisions of "SAGA/TODO"

From ScummVM :: Wiki
Jump to navigation Jump to search
(Update)
(Update)
Line 3: Line 3:
* '''IHNM''' shows complete intro. Also, some chapters are partially working, but it's not possible to return to the character selection screen once a chapter is completed (or abruptly stopped by a wrong player option) and ScummVM exits instead.
* '''IHNM''' shows complete intro. Also, some chapters are partially working, but it's not possible to return to the character selection screen once a chapter is completed (or abruptly stopped by a wrong player option) and ScummVM exits instead.
** '''Chapter 1''' (Gorrister): '''Completable''' with full points but has some glitches
** '''Chapter 1''' (Gorrister): '''Completable''' with full points but has some glitches
** '''Chapter 2''' (Ellen): Needs more testing
** '''Chapter 2''' (Ellen): Not completable, it's impossible to take the compact disk from the yellow statue after the elevator scene
** '''Chapter 3''' (Benny): Not completable, trying to use the video screen in the elder's cave crashes ScummVM. Also, when Ben goes to sleep, ScummVM crashes too
** '''Chapter 3''' (Benny): Not completable, trying to use the video screen in the elder's cave crashes ScummVM. Also, when Ben goes to sleep, ScummVM crashes too
** '''Chapter 4''' (Nimdok): '''Completable''' with full points but has some glitches
** '''Chapter 4''' (Nimdok): '''Completable''' with full points but has some glitches
Line 29: Line 29:
** Video and cutaway related: Scene::restoreScene
** Video and cutaway related: Scene::restoreScene
*** ''If you look outside the porthole in the room where the gun is (Gorrister's chapter, exit starting room, go left and enter the right door), the screen will change, showing the ship's engine. However, after the animation is complete, the scene doesn't update properly to show the room again, and it shows the last frame of the engine animation instead. This occurs because of the unimplemented parts of Anim::returnFromCutaway(), in particular the missing restoreScene() function''
*** ''If you look outside the porthole in the room where the gun is (Gorrister's chapter, exit starting room, go left and enter the right door), the screen will change, showing the ship's engine. However, after the animation is complete, the scene doesn't update properly to show the room again, and it shows the last frame of the engine animation instead. This occurs because of the unimplemented parts of Anim::returnFromCutaway(), in particular the missing restoreScene() function''
*** ''When interacting with the rightmost monitor in the room with the monitors, the animation is not shown correctly and the game's palette after the animation is all wrong, because of the missing restoreScene function''
*** ''After any animation or video is finished, the scene is not updated''
** sfScriptFade is not properly implemented, probably a new event type needs to be added (kEventPalFade)
** sfScriptFade is not properly implemented, probably a new event type needs to be added (kEventPalFade)
** for videos, erase the screen before showing a video
** for videos, erase the screen before showing a video
Line 49: Line 51:


=== Sprite bugs ===
=== Sprite bugs ===
These bugs occur because currently ScummVM doesn't handle properly objects that have more than 1 frame
* Chapter 1 (Gorrister): When flushing the toilet, the door is moved to a weird spot (looks like a line above the toilet stall)
* Chapter 1 (Gorrister): When flushing the toilet, the door is moved to a weird spot (looks like a line above the toilet stall)
* Chapter 1 (Gorrister): The hatch inside the zeppelin is not drawn correctly
* Chapter 1 (Gorrister): The hatch inside the zeppelin is not drawn correctly
* When Ellen is selected at the character selection screen and while AM is talking to her, she should have a different expression in her portrait, which changes once she gets zapped outside the pyramid. Her portrait is static in ScummVM
* When Ellen is selected at the character selection screen and while AM is talking to her, she should have a different expression in her portrait, which changes once she gets zapped outside the pyramid. Her portrait is static in ScummVM
* Chapter 2 (Ellen): The animation shown when the sarcophagus opens is wrong
* Chapter 4 (Nimdok): When pushing the vent in the patient recovery room, the vent sprite is not updated (but the vent opens normally)
* Chapter 4 (Nimdok): When pushing the vent in the patient recovery room, the vent sprite is not updated (but the vent opens normally)
* Chapter 4 (Nimdok): When the prisoners take over the prison, the mob of the angry prisoners in the entrance is not shown properly. Only the animated arms of the prisoners are shown
* Chapter 4 (Nimdok): When the prisoners take over the prison, the mob of the angry prisoners in the entrance is not shown properly. Only the animated arms of the prisoners are shown
Line 62: Line 66:


=== Chapter 2: Ellen ===
=== Chapter 2: Ellen ===
* When interacting with the rightmost monitor in the room with the monitors, the animation is not shown correctly and the game's palette after the animation is all wrong
* ['''Important'''] It's not possible to interact with the compact disk that appears on the statue after the elevator scene, because the statue's hitzone is above the compact disk's hitzone. This seems to be caused by sprite priority, and is similar to the chalk issue in Ted's chapter. Perhaps this is caused by the differences in QueueDisplayedObject
* When Ellen is in the elevator and she pushes a date, the answers that the elevator gives have no text


=== Chapter 3: Benny ===
=== Chapter 3: Benny ===
Line 72: Line 77:


=== Chapter 5: Ted ===  
=== Chapter 5: Ted ===  
* ['''Important'''] When you use the sleeping spell on the witch, she falls down and drops a chalk. It's not possible to interact with that chalk, the circle's hitzone is above it
* ['''Important'''] When you use the sleeping spell on the witch, she falls down and drops a chalk. It's not possible to interact with that chalk, the circle's hitzone is above it. This seems to be caused by sprite priority, and is similar to the compact disk issue in Ellen's chapter. Perhaps this is caused by the differences in QueueDisplayedObject


=== Chapter 6: Endgame ===  
=== Chapter 6: Endgame ===  

Revision as of 03:21, 10 June 2007

Status

  • ITE is completable with rare minor gfx glitches.
  • IHNM shows complete intro. Also, some chapters are partially working, but it's not possible to return to the character selection screen once a chapter is completed (or abruptly stopped by a wrong player option) and ScummVM exits instead.
    • Chapter 1 (Gorrister): Completable with full points but has some glitches
    • Chapter 2 (Ellen): Not completable, it's impossible to take the compact disk from the yellow statue after the elevator scene
    • Chapter 3 (Benny): Not completable, trying to use the video screen in the elder's cave crashes ScummVM. Also, when Ben goes to sleep, ScummVM crashes too
    • Chapter 4 (Nimdok): Completable with full points but has some glitches
    • Chapter 5 (Ted): Not completable, it's impossible to interact with the chalk that the witch drops when you sleep her
    • Chapter 6 (Endgame): Not possible to test yet


IHNM ToDos

General

  • Conversation options are not shown correctly (wrong colors)
  • Actor walking speed is not correct when exiting from rooms
  • After chapter selection AM has intro speech. After the speech, the actor is incorrectly shown for a brief moment. In the original, the screen colors get garbled momentarily, so this seems to be an issue with the scripts in the original game, albeit it affects ScummVM in a different manner
  • It seems that depth image isn't correct. Different format?
  • Options panel shows up without textures on the buttons and some options are not functioning yet (e.g. the load/save dialogs)
  • The way that verbs are assigned internally is ugly and needs to be cleaned up
  • Only numbers 1-4 on the keyboard are working to select a converse option, the rest are only selectable with the mouse
  • When the spiritual barometer changes, the character's portrait changes to "happy" or "sad", but the background color is updated after moving to another screen

Missing functions

  • [Important] Implement sfScriptGotoScene differences for IHNM, which will allow to go back to the character selection screen once a chapter is complete
    • When a wrong monitor is selected with Ted, normally the door closes, screen goes black and AM says "Oh oh oh sorry Ted, try again", and we're taken to the character selection screen again. ScummVM just exits, because this case is currently not handled by sfScriptGotoScene yet
  • Implement several missing functions:
    • Psychic profile related: sfPsychicProfile and sfPsychicProfileOff
    • Video and cutaway related: Scene::restoreScene
      • If you look outside the porthole in the room where the gun is (Gorrister's chapter, exit starting room, go left and enter the right door), the screen will change, showing the ship's engine. However, after the animation is complete, the scene doesn't update properly to show the room again, and it shows the last frame of the engine animation instead. This occurs because of the unimplemented parts of Anim::returnFromCutaway(), in particular the missing restoreScene() function
      • When interacting with the rightmost monitor in the room with the monitors, the animation is not shown correctly and the game's palette after the animation is all wrong, because of the missing restoreScene function
      • After any animation or video is finished, the scene is not updated
    • sfScriptFade is not properly implemented, probably a new event type needs to be added (kEventPalFade)
    • for videos, erase the screen before showing a video
    • sfPlacard does not place the text in the correct spot sometimes
      • When Nimdok enters the hospital at the beginning of the chapter and talks with the other doctor, the text of their dialog goes off screen. This is probably caused by sfPlacard
  • Investigate what the following opcodes are:
    • sf87
    • sf88
    • sf89
    • sf103 (is_actorfacing?)
  • Investigate if opcodes sf64, sf69, sf70, sf73 and sf92 are really dummy (null) opcodes
  • Voices volume isn't implemented yet
  • Implement saving and loading

Pathfinding bugs

  • Chapter 3 (Benny): When walking with Benny from the forest to the caves, the actor can't find the path properly
    • Instructions to reproduce: Use the stairs, fall down and try to follow the path up to the caves
  • Chapter 3 (Benny): When clicking on a cave entrance with Ben, he starts walking to the cave and then moves a step back, thus he can't enter it. If the user clicks on the lower left of each cave (or other spots around the cave entrance), Ben enters the cave correctly
    • Instructions to reproduce: Use the stairs, fall down, go up to the caves and try to enter the middle cave (the one with the blue light)

Sprite bugs

These bugs occur because currently ScummVM doesn't handle properly objects that have more than 1 frame

  • Chapter 1 (Gorrister): When flushing the toilet, the door is moved to a weird spot (looks like a line above the toilet stall)
  • Chapter 1 (Gorrister): The hatch inside the zeppelin is not drawn correctly
  • When Ellen is selected at the character selection screen and while AM is talking to her, she should have a different expression in her portrait, which changes once she gets zapped outside the pyramid. Her portrait is static in ScummVM
  • Chapter 2 (Ellen): The animation shown when the sarcophagus opens is wrong
  • Chapter 4 (Nimdok): When pushing the vent in the patient recovery room, the vent sprite is not updated (but the vent opens normally)
  • Chapter 4 (Nimdok): When the prisoners take over the prison, the mob of the angry prisoners in the entrance is not shown properly. Only the animated arms of the prisoners are shown

Chapter 1: Gorrister

  • sfPlaceActor throws a "Wrong frameOffset 0x0 warning when using the knife to scare the mice away in the kitchen
  • Using the jukebox in the honky-tonk changes "use" to "use with". Perhaps an issue with whichObject()
  • Looking at the cages in the zeppelin's engine room while a caged animal is shown can cause ScummVM to crash
  • When doing a good deed which raises the spiritual barometer with Gorrister (e.g. when Gorrister is wiping his hands on the tablecloth), the music should change to a more "light" theme. This is not happening in ScummVM

Chapter 2: Ellen

  • [Important] It's not possible to interact with the compact disk that appears on the statue after the elevator scene, because the statue's hitzone is above the compact disk's hitzone. This seems to be caused by sprite priority, and is similar to the chalk issue in Ted's chapter. Perhaps this is caused by the differences in QueueDisplayedObject
  • When Ellen is in the elevator and she pushes a date, the answers that the elevator gives have no text

Chapter 3: Benny

  • [Important] It's not possible to use the video screen in the elder's cave, ScummVM crashes
  • [Important] ScummVM crashes when Benny goes to sleep, at the scene where the caves are shown and it's getting dark. The crash occurs with sfWaitFrames

Chapter 4: Nimdok

  • The video where the golem kills Nimdok is not shown correctly

Chapter 5: Ted

  • [Important] When you use the sleeping spell on the witch, she falls down and drops a chalk. It's not possible to interact with that chalk, the circle's hitzone is above it. This seems to be caused by sprite priority, and is similar to the compact disk issue in Ellen's chapter. Perhaps this is caused by the differences in QueueDisplayedObject

Chapter 6: Endgame

[Not possible to test yet]

Original engine bugs

  • When loading games, the music played is the one that was playing from the scene where the game was loaded. For example, if a saved game is loaded from the character selection screen, which was made on chapter X, then once the game is loaded, the music from the character selection screen is still played


ITE ToDos

  • Amiga versions of the game would be nice to support. Though Amiga porter which once appeared at our forums doesn't reply to sev's letters. Maybe another dev should try that?
  • Original DOS demo. It is based on very early version of engine, so many structures are different. I've mapped most of resources but they stay untested.
    • Move actors and objects list to our code. I've found them but not yet processed.

Requests

  • We need to find out where following functions are called:
    • SF_cycleColors -- all implementation bits sit in palanim.cpp
    • sfPlayVoice -- used in ITE CD
  • There are currently two versions of ITE that are not uniquely identified: the Wyrmkeep "Win32 CD Version" and the original "DOS/Win32 CD Version". When adding games, the user gets to do the disambiguation, but what happens with the detection when playing the game?

BUGS

  • Occasional graphics glitches in ISO rooms. (At least in the Rats maze.) Most notable when entering rounded doors. (3d draw sequence is wrong)
  • pressing ESC during making fire - breaks anim sequence

Interface

  • wrong Option button draw sequence - some dots have inproper color.
  • handleConverseUpdate scrolls converse too quickly.
  • handleCommandUpdate scrolls inventory too quickly.

Original engine bugs

  • Actors are drawn (some pixels above status bar) at Chota's falling. - Original engine draws its too - so it is not our bug


Long-term ToDos

Bugs/misfeatures

  • Make actor animation Event-driven. See FIXME in actor.cpp. Maybe it should be INTERVAL_EVENT
  • Inspect Font module - free memory, GameFontIds <-> FONT_ID
  • In many places RSC_LoadResource() is called but memory is not freed afterwards, i.e. there is a huge leak
  • Optimize screen output. Now we blit whole screen for each frame.
  • When using the original XMIDI music resources, some songs play at the wrong speed. The worst example I've heard of this is the "Elk Fanfare" during the intro. It could be the meta events we don't handle, but at least the tempo event doesn't seem to make any difference. Maybe something in the data header instead...?
  • Remove use of floating point, especially doubles.