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 completable, with some glitches
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
- Music for chapter 6 (endgame) is problematic and is not played for now
- When returning to the character selection screen during the endgame part, the animation of the characters is too fast (perhaps it's an issue of clearCutaway)
- Only half of the end credit sequence is shown
- The first frame of animations is not shown when changing scenes. Perhaps a problem with the rendering pipeline. Currently, there's a hack to show it correctly. This issue is apparent in Nimdok's chapter, with the mob of prisoners, when the prisoners break loose and take the prison
- The (dis)appearing compact disk in Ellen's chapter is currently handled with a hack
- Screen fade out when a cutaway begins is not implemented yet
- There's a slight glitch with the music fading: Try running the intro at really low volume, say 50. Then wait for when setVolume(0, 1000) is called. Rather than going from 50 to 0, it goes through 229, 204, 178, 153, 127. (I think it starts a new tune then, at volume 50, so it never has the time to reach zero.)
compress_saga tool
- Currently, the SFX.RES file in IHNM cannot be compressed
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
Bugs in the original game
- Chapter 1 (Gorrister): After digging Glynis' grave, when loading a game the grave is no longer there
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
compress_saga tool
- MacBinary files are not supported yet (used by the Mac CD Guild version)
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
Bugs in the original game
- 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
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.
- Gfx::palFade is not implemented correctly yet. Right now, it only fades to/from black and to/from half the brightness (though I haven't seen any other values passed to it)
- Freed script modules are not reloaded correctly when changing chapters in IHNM
- 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...?