Difference between revisions of "MADE/TODO"

From ScummVM :: Wiki
Jump to navigation Jump to search
(Updated TODO)
(Layout)
Line 18: Line 18:
* Script functions:
* Script functions:
* For all:
* For all:
** sfPlayMusic (for LGoP2/Manhole)
** sfGetMusicBeat
** sfGetMusicBeat
** sfGetCdTime
** sfGetCdTime
Line 25: Line 24:
** 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
** 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
** sfShakeScreen
* For LGOP2/Manhole:NE:
** sfPlayMusic
* For Manhole:NE:
* For Manhole:NE:
** sfPlayNote
** sfPlayNote

Revision as of 08:51, 12 January 2009

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 music for LGoP2 and Manhole is not played
  • The intro credits in RtZ are not played
  • Only soundblaster music is played for RtZ
  • The first version of the Manhole is not supported

Bugs, glitches and ToDos

Script bugs

Implement/finish up some commands and script functions:

  • Commands:
  • 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 LGOP2/Manhole:NE:
    • sfPlayMusic
  • For Manhole:NE:
    • sfPlayNote
    • sfStopNote
    • sfPlayTele
    • sfStopTele

General

Graphics

  • Use "dirty rectangles" (e.g. in updateSprites())

Sound

  • Music is disabled in LGoP2 and Manhole (it's not loaded correctly)
  • Finish up MIDI music playing (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