SAGA/TODO
Jump to navigation
Jump to search
Status
- ITE is completable with rare minor gfx glitches.
- IHNM (demo) is not supported yet
- IHNM (full game) 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): Completable with full points but has some glitches
- Chapter 3 (Benny): Completable with full points but has some glitches
- Chapter 4 (Nimdok): Completable with full points but has some glitches
- Chapter 5 (Ted): Not completable, it's impossible to interact with the maid's door (the closed door is not drawn)
- Chapter 6 (Endgame): Not possible to test yet
IHNM ToDos
Major issues
- [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
- [Important] Properly handle objects that have more than 1 frame
General
- 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
- Finish up saving and loading and their corresponding dialogs:
- Load confirmation dialog is not shown
- Buttons in confirmation dialogs don't have borders like in the original
- Input line in save game description doesn't have borders like in the original
- Some colors are wrong
- The save game scrollbar is wrong
Missing functions
- Implement several missing functions:
- Psychic profile related: sfPsychicProfile and sfPsychicProfileOff
- sfScriptFade is not properly implemented, probably a new event type needs to be added (kEventPalFade)
- for videos, erase the screen before showing a video
- 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
Sprite bugs
These bugs occur because currently ScummVM doesn't handle properly objects that have more than 1 frame. In all the problematic cases, Actor::getSpriteParams throws an invalid frameNumber warning about the problematic object.
- 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 2 (Ellen): When pushing/using any monitor, after the cutscene the monitor doesn't show anything on its screen
- Chapter 2 (Ellen): The animation shown when the sarcophagus opens and closes is wrong
- Chapter 2 (Ellen): After picking up the blue crystal from the statue, it's possible to incorrectly see the compact disk on its chest. The compact disk should only be viewable after speaking with AM. It's not possible to interact with it before speaking with AM though (which is correct).
- Chapter 2 (Ellen): The speaker is incorrectly shown in the fountain screen before the player sees the blueprints for the circuit, but it's not possible to interact with it at that point. Interaction with it is possible after the player sees the blueprints (which is correct).
- 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
Pathfinding bugs
- Chapter 2 (Ellen): When trying to interact with the monitor on the right in the monitors room, Ellen enters the next room instead
Chapter 1: Gorrister
- sfPlaceActor throws a "Wrong frameOffset 0x0" warning when using the knife to scare the mice away in the kitchen
- Repeatedly looking at the cages in the zeppelin's engine room while a caged animal is shown causes 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
Chapter 3: Benny
- The nightfall animation is not handled correctly yet, due to the missing sfScriptFade function. Currently, there's a workaround that doesn't show it at all
Chapter 4: Nimdok
Chapter 5: Ted
- [Important] It's not possible to interact with the maid's door, as the closed door is not drawn at all. Therefore, it's not possible to tell Surgat to unlock it
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
- 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
- After Benny speaks with the child through the monitor the first time, he walks backwards for a bit
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.