121
edits
(mention checked functions) |
m (Clarify on this page about Famicom version not using SCUMM) |
||
(21 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
== General == | |||
The NES version is supported(American, European, Swedish, French, German, Spanish, Italian). | |||
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() | |||
** 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 | * 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