35
edits
(list all v2 SCUMM opcodes and checked status) |
|||
(22 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
== General == | |||
The NES version is supported (American, European, Swedish, French, German, Spanish, Italian). Please note the beta version is not supported. | |||
The Famicom version (Japanese) is not supported as it does not use the SCUMM engine. | |||
== Things To Do == | == Things To Do == | ||
=== Engine Verification === | |||
* | * Verify functions: | ||
** ScummEngine::runInputScript() | ** ScummEngine::runInputScript() | ||
** V2 opcodes: | ** V2 opcodes: | ||
Line 38: | Line 43: | ||
*** clearState01 | *** clearState01 | ||
*** drawObject | *** drawObject | ||
*** pickupObject * | *** pickupObject * partially checked | ||
*** loadRoomWithEgo * unchecked | *** loadRoomWithEgo * unchecked | ||
*** setBitVar * unchecked | *** setBitVar * unchecked | ||
*** getBitVar * unchecked | *** getBitVar * unchecked | ||
*** setOwnerOf * unchecked | *** setOwnerOf * unchecked | ||
*** delay | *** delay | ||
*** walkActorToObject * unchecked | *** walkActorToObject * unchecked | ||
*** putActorAtObject * unchecked | *** putActorAtObject * unchecked | ||
*** walkActorTo * unchecked | *** walkActorTo * unchecked | ||
*** setActorElevation * | *** setActorElevation * different - does not multiply elevation by 2, takes it as-is | ||
*** putActor * unchecked | *** putActor * unchecked | ||
*** setObjPreposition * | *** setObjPreposition * different - does nothing at all | ||
*** getObjPreposition | *** getObjPreposition | ||
*** doSentence * | *** doSentence * partially checked | ||
*** drawSentence * unchecked | *** drawSentence * unchecked | ||
*** cutscene * | *** cutscene * difference - also saves _currentScript and clears some click-related vars | ||
*** endCutscene * | *** endCutscene * difference - clears the _currentScript var saved in cutscene | ||
*** setCameraAt * | *** setCameraAt * difference - sets camera to Panning mode, not Normal mode | ||
*** panCameraTo * | *** panCameraTo * difference - no mention of camera._movingToActor | ||
*** cursorCommand | *** cursorCommand | ||
*** getActorX | *** getActorX | ||
*** getActorY | *** getActorY | ||
*** getActorElevation * | *** getActorElevation * different - does not divide elevation by 2, returns it as-is | ||
*** getActorWalkBox | *** getActorWalkBox | ||
*** animateActor * unchecked | *** animateActor * unchecked | ||
*** lights * partially checked | |||
*** setObjectName * unchecked | *** setObjectName * unchecked | ||
*** resourceRoutines * different - does nothing at all | |||
*** resourceRoutines * | |||
*** restart * unchecked | *** restart * unchecked | ||
*** setBoxFlags | *** setBoxFlags | ||
*** verbOps * | *** verbOps * different - no case for 0xFF (verb on/off), sets fewer vars | ||
*** roomOps * | *** roomOps * different - lacks case 2 (room color) | ||
*** actorOps | *** actorOps | ||
*** actorFromPos * unchecked | *** actorFromPos * unchecked | ||
*** findObject * unchecked | *** findObject * unchecked | ||
*** switchCostumeSet | *** 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 | * Flashlight shape | ||
* Gray room palette in flashlight mode | * Gray room palette in flashlight mode | ||
=== Scripts === | |||
* Fix freeze after scrolling Maniac Manion logo | * 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). |
edits