Difference between revisions of "SCUMM/NES"

Jump to navigation Jump to search
685 bytes added ,  04:02, 4 December 2009
m
Clarify on this page about Famicom version not using SCUMM
m (Clarify on this page about Famicom version not using SCUMM)
(13 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 ==
=== Inventory ===
* Make inventory work
=== Engine Verification ===
=== Engine Verification ===
* Verify functions:
* Verify functions:
Line 40: 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
Line 96: Line 98:
*** getDist * unchecked
*** getDist * unchecked
*** getClosestObjActor * unchecked
*** getClosestObjActor * unchecked
*** getRandomNr * unchecked
*** getRandomNr
*** getActorMoving * unchecked
*** getActorMoving
*** isSoundRunning * unchecked
*** isSoundRunning
*** isScriptRunning * unchecked
*** isScriptRunning
*** delayVariable * unchecked
*** delayVariable
*** stopSound * unchecked
*** stopSound
*** startMusic/startSound * unchecked
*** startMusic/startSound
*** walkActorToActor * unchecked
*** walkActorToActor * unchecked
*** putActorInRoom * unchecked
*** putActorInRoom * unchecked
*** actorFollowCamera * unchecked
*** actorFollowCamera * unchecked
*** getActorCostume * unchecked
*** getActorCostume
*** getActorRoom * unchecked
*** getActorRoom
*** getActorFacing * unchecked
*** getActorFacing
*** faceActor * unchecked
*** faceActor * unchecked
*** lights * unchecked
*** saveLoadGame
*** stopMusic * unchecked
*** stopMusic * different - only stops music track


=== Graphics ===
=== Graphics ===
Line 121: Line 123:
* Somehow add static MM logo and LucasArts logo (needs to be done before engine initializes)
* Somehow add static MM logo and LucasArts logo (needs to be done before engine initializes)


=== Sound ===
== Known Issues ==
* Sound
* 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)
Sound Format:
* 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.
uint16 length (added by extract util)
* Clicking in the top 16 pixels of the screen (above the subtitle bar) crashes the program.
uint8 slot - specifies which slot the sound plays in - 2 for music, 0/1/4 for sound effects
* Walkboxes have some bugs - in some cases, you can walk through corners. This appears to be a bug with all V1-V2 games.
- slot 4 sound effects appear to play in slot 0, but only if no music is playing?
* 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()
uint8 type - 10 (0x0A) for sound effects, 100 (0x64) for music
* 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).
uint8 data[]
 
Type 10 data:
[03/07/0B/0F] - next 4 bytes is data for sound channel 0/1/2/3 (square1, square2, triangle, noise)
[10] - next byte is a number of frames to wait before processing the next update
[FF] - terminate sound
[FE] - loop back to beginning
 
Type 100 data:
uint8 auxLen - specifies length of some sort of auxiliary data
uint8 auxdata[auxLen] - a long sequence of small numbers, slowly incrementing
uint8 unknown[] - haven't decoded yet

Navigation menu