Difference between revisions of "SCUMM/NES"

Jump to navigation Jump to search
2,491 bytes added ,  04:02, 4 December 2009
m
Clarify on this page about Famicom version not using SCUMM
(list all v2 SCUMM opcodes and checked status)
m (Clarify on this page about Famicom version not using SCUMM)
(20 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 ===
* Make inventory work<br>Checked functions:
* Verify functions:
** ScummEngine::runInputScript()
** ScummEngine::runInputScript()
** V2 opcodes:
** V2 opcodes:
Line 38: Line 42:
*** clearState01
*** clearState01
*** drawObject
*** drawObject
*** pickupObject * checking
*** pickupObject * partially checked
*** loadRoomWithEgo * unchecked
*** loadRoomWithEgo * unchecked
*** setBitVar * unchecked
*** setBitVar * unchecked
*** getBitVar * unchecked
*** getBitVar * unchecked
*** setOwnerOf * unchecked
*** setOwnerOf * unchecked
*** delay * unchecked
*** delay
*** walkActorToObject * unchecked
*** walkActorToObject * unchecked
*** putActorAtObject * unchecked
*** putActorAtObject * unchecked
*** walkActorTo * unchecked
*** walkActorTo * unchecked
*** setActorElevation * unchecked
*** setActorElevation * different - does not multiply elevation by 2, takes it as-is
*** putActor * unchecked
*** putActor * unchecked
*** setObjPreposition * unchecked
*** setObjPreposition * different - does nothing at all
*** getObjPreposition * unchecked
*** getObjPreposition
*** doSentence * unchecked
*** doSentence * partially checked
*** drawSentence * unchecked
*** drawSentence * unchecked
*** cutscene * unchecked
*** cutscene * difference - also saves _currentScript and clears some click-related vars
*** endCutscene * unchecked
*** endCutscene * difference - clears the _currentScript var saved in cutscene
*** setCameraAt * unchecked
*** setCameraAt * difference - sets camera to Panning mode, not Normal mode
*** panCameraTo * unchecked
*** panCameraTo * difference - no mention of camera._movingToActor
*** cursorCommand * unchecked
*** cursorCommand
*** getActorX * unchecked
*** getActorX
*** getActorY * unchecked
*** getActorY
*** getActorElevation * unchecked
*** getActorElevation * different - does not divide elevation by 2, returns it as-is
*** getActorWalkBox * unchecked
*** getActorWalkBox
*** animateActor * unchecked
*** animateActor * unchecked
*** lights * partially checked
*** setObjectName * unchecked
*** setObjectName * unchecked
*** saveLoadGame * unchecked
*** resourceRoutines * different - does nothing at all
*** resourceRoutines * unchecked
*** restart * unchecked
*** restart * unchecked
*** setBoxFlags * unchecked
*** setBoxFlags
*** verbOps * unchecked
*** verbOps * different - no case for 0xFF (verb on/off), sets fewer vars
*** roomOps * unchecked
*** roomOps * different - lacks case 2 (room color)
*** actorOps * unchecked
*** 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 ===
* Embed extract tool into File class, i.e. use technique similiar to Mac bundles
* 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
* Add static MM logo and LucasArts logo
* Somehow add static MM logo and LucasArts logo (needs to be done before engine initializes)
* Sound
 
== 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).

Navigation menu