MADE/TODO
Status
- Return to Zork is completable
- Leather Goddesses of Phobos 2 is completable
- The Manhole is playable
- Rodney's Funscreen is playable
Still missing game features
- The intro credits in RtZ are not played (invalid sound data is read at that point)
- Only soundblaster music is played
- The first version of the Manhole (EGA) is not supported
Bugs, glitches and ToDos
Script bugs
Implement/finish up some script functions:
- Script functions:
- For all:
- sfGetMusicBeat
- sfGetCdTime
- For Return to Zork:
- sfGetSoundEnergy (used to animate the mouths of characters when they're talking). This has been implemented now, but the mouth animations are out of sync. This occurs because the original unpacked sounds on the fly, whereas ScummVM unpacks them when they're loaded. In ScummVM, the "sound energy" values are stored in an array (used as a stack), which means that sfGetSoundEnergy can empty that array prematurely. A proper fix would be to figure out when a value should be popped from the sound energy stack, or to unpack sounds on the fly like the original does
- sfShakeScreen
- sfGetSynthType
- For Manhole:NE:
- sfPlayNote
- sfStopNote
- sfPlayTele
- sfStopTele
General
Graphics
- Use "dirty rectangles" (e.g. in updateSprites())
Sound
- Finish up MIDI music playing/MT32 instrument mapping (only Soundblaster music is played for now)
Video
- In RtZ's intro, after the flyover, an invalid number of sound chunks is read. There is currently a hack which stops the parser when this happens to prevent the game from crashing, but the intro credits screen is not shown
File-specific tasks
database.cpp
- Read/verify database header
- Verify save game header
pmvplayer.cpp
- Read/evaluate PMV file header
screen.cpp
- Implement clipRect in placeSprite(), placeAnim() and placeText()
- Finish up Screen::show()
- Finish up printText()
Bugs of the original engine
- The screen effect palette changes incorrectly after a PMV video
- Animations in LGoP2 are incorrectly drawn above text (they should be drawn below it). An example can be seen when talking to the Indian as Lydia and performing the kiss/screw action. Also, with Barth, it can be seen from the first screen if you try and shoot Barth's spaceship: Barth will say something, and the smoke from the spaceship will be incorrectly drawn above the letters