SCUMM/NES
Jump to navigation
Jump to search
Things To Do
Engine Verification
- Verify functions:
- ScummEngine::runInputScript()
- V2 opcodes:
- beginOverride
- waitForMessage
- waitForSentence
- waitForActor
- assignVarWordIndirect
- assignVarByte
- addIndirect
- subIndirect
- add
- subtract
- isLessEqual
- isGreaterEqual
- isLess
- isGreater
- ifClassOfIs
- startScript
- chainScript
- ifNotState08
- ifState08
- ifNotState04
- ifState04
- ifState02
- ifNotState02
- ifNotState01
- ifState01
- setState08 * does not appear to request redraw (as clearState08 does)
- clearState08
- setState04
- clearState04
- setState02
- clearState02
- setState01
- clearState01
- drawObject
- pickupObject * partially checked
- loadRoomWithEgo * unchecked
- setBitVar * unchecked
- getBitVar * unchecked
- setOwnerOf * unchecked
- delay
- walkActorToObject * unchecked
- putActorAtObject * unchecked
- walkActorTo * unchecked
- setActorElevation * different - does not multiply elevation by 2, takes it as-is
- putActor * unchecked
- setObjPreposition * different - does nothing at all
- getObjPreposition
- doSentence * partially checked
- drawSentence * unchecked
- cutscene * difference - also saves _currentScript and clears some click-related vars
- endCutscene * difference - clears the _currentScript var saved in cutscene
- setCameraAt * difference - sets camera to Panning mode, not Normal mode
- panCameraTo * difference - no mention of camera._movingToActor
- cursorCommand
- getActorX
- getActorY
- getActorElevation * different - does not divide elevation by 2, returns it as-is
- getActorWalkBox
- animateActor * unchecked
- lights * partially checked
- setObjectName * unchecked
- resourceRoutines * different - does nothing at all
- restart * unchecked
- setBoxFlags
- verbOps * different - no case for 0xFF (verb on/off), sets fewer vars
- roomOps * different - lacks case 2 (room color)
- actorOps
- actorFromPos * unchecked
- findObject * unchecked
- switchCostumeSet
- V5 opcodes:
- jumpRelative * unchecked
- stopObjectCode * unchecked
- breakHere * unchecked
- setVarRange * unchecked
- move * unchecked
- increment * unchecked
- decrement * unchecked
- equalZero * unchecked
- notEqualZero * unchecked
- isNotEqual
- isEqual
- stopScript * unchecked
- pseudoRoom * unchecked
- loadRoom * unchecked
- getObjectOwner * unchecked
- printEgo * unchecked
- print * unchecked
- getDist * unchecked
- getClosestObjActor * unchecked
- getRandomNr
- getActorMoving
- isSoundRunning
- isScriptRunning
- delayVariable
- stopSound
- startMusic/startSound
- walkActorToActor * unchecked
- putActorInRoom * unchecked
- actorFollowCamera * unchecked
- getActorCostume
- getActorRoom
- getActorFacing
- faceActor * unchecked
- saveLoadGame
- stopMusic * different - only stops music track
Graphics
- Flashlight shape
- Gray room palette in flashlight mode
Scripts
- Fix freeze after scrolling Maniac Manion logo
- Somehow add static MM logo and LucasArts logo (needs to be done before engine initializes)
Known Issues
- Moving the cursor in the verb/inventory area will 'select' objects in the room if they touch the top of the room (example: stairs)
- Text wrapping doesn't work for the sentence bar (it moves down 1 pixel, right in the middle of the word; needs to wrap at name/word boundaries)
- Walking and talking at the same time doesn't work - stop walking while talking and your mouth will not move, stop talking while walking and you start sliding across the room.
- Clicking in the top 16 pixels of the screen (above the subtitle bar) crashes the program.
- Walkboxes have some bugs - in some cases, you can walk through corners. This appears to be a bug with all V1-V2 games.
- After you select your characters and hit start, the first sound that gets played is 'chirping crickets' instead of 'pickup item'. This may be due to improper handling of o2_stopMusic()
- The 'maniac mansion' logo scroll during the intro gets stuck due to a camera issue (original engine expects screen to be 224 wide, but in scummvm it's 256 wide so it can't scroll far enough).