Difference between revisions of "SAGA/TODO"

From ScummVM :: Wiki
Jump to navigation Jump to search
(The MIDI parser bug has been fixed)
(Update on sfSCriptFade and the nightfall scene in Benny's chapter)
Line 25: Line 25:
* Chapter 1 (Gorrister): sfPlaceActor throws a "Wrong frameOffset 0x0" warning when using the knife to scare the mice away in the kitchen
* Chapter 1 (Gorrister): sfPlaceActor throws a "Wrong frameOffset 0x0" warning when using the knife to scare the mice away in the kitchen
* The introduction of IHNM (from the "hate" part onwards) is played a bit too quickly
* The introduction of IHNM (from the "hate" part onwards) is played a bit too quickly
* The nightfall animation in Benny's chapter is not shown correctly




=== Opcodes ===
=== Opcodes ===
* Implement the missing sfSCriptFade opcode: currently, it is not properly implemented. Probably a new event type needs to be added (kEventPalFade)
* The sfSCriptFade opcode is not properly implemented yet. Currently, it always fades to black or to the scene palette (from and to values need to be used)
** ''The nightfall animation in Benny's chapter is not handled correctly yet, due to the missing sfScriptFade function. Currently, there's a workaround that doesn't show it at all''





Revision as of 13:42, 24 August 2007

Status

ITE

  • ITE is completable
  • The Amiga version is not supported yet
  • Demo versions:
    • The newer demo versions of the game are supported
    • The older Windows and Mac demos are not supported yet, the game crashes when exiting the first screen
    • The original DOS demo is not supported yet, as it is based on very early version of engine, so many structures are different. Most of the resources have been mapped but they're still untested. The actors and objects list needs to be moved to our code. They've been found but not processed yet


IHNM

  • The demo has two parts, an interactive and a non-interactive one. It's playable and probably completable


  • The full game is working with some glitches. It needs further testing. Status:
    • Chapters 1-5 (Gorrister, Ellen, Benny, Nimdok and Ted) are completable with full points
    • Chapter 6 (Endgame): Needs testing


IHNM ToDos

General

  • Chapter 1 (Gorrister): sfPlaceActor throws a "Wrong frameOffset 0x0" warning when using the knife to scare the mice away in the kitchen
  • The introduction of IHNM (from the "hate" part onwards) is played a bit too quickly
  • The nightfall animation in Benny's chapter is not shown correctly


Opcodes

  • The sfSCriptFade opcode is not properly implemented yet. Currently, it always fades to black or to the scene palette (from and to values need to be used)


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. The character interacts correctly with the monitor in the IHNM demo, but there the monitor has a corresponding hitzone, which does not exist in the full version


ITE ToDos

General

  • There's a slight pause (about a second or less) when a digital music track loops, when using compressed music. This pause does not exist when the music tracks are not compressed


Opcodes

  • We need to find out where following script functions are called:
    • SF_cycleColors -- all implementation bits sit in palanim.cpp
    • sfPlayVoice -- used in ITE CD


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
  • There is a missing sound sample in the intro of some ITE versions: "The humans also knew the Secret of Life, and they used it to give us the Four Great Gifts:". The missing sound sample is played correctly with the file P2_A.iaf, found in Wyrmkeep's update 2


Long-term ToDos for the SAGA engine

Bugs/misfeatures

  • handleConverseUpdate scrolls converse too quickly
  • handleCommandUpdate scrolls inventory too quickly


Optimizations

  • 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. Use "dirty rectangles" instead
  • Remove use of floating point, especially doubles.
  • Rewrite the IHNM intro credit part (ihnm_introproc.cpp), so that it uses LoadCutawayList, like the original. There's some commented out test code currently that gets the cutaway IDs via LoadCutawayList, but the cutaway playing mechanism for the introduction needs to be rewritten


MIDI related

  • 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...?