Open main menu

MADE/TODO

< MADE
Revision as of 10:22, 13 January 2009 by Md5 (talk | contribs) (Updated 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
    • sfGetSynthType
  • 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
  • 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