Jump to content

Majora's Mask Scene Commands


fkualol
 Share

Recommended Posts

Pasting more unfinished notes.

 

0x02 - Cameras used for the 0x1B command.02xx0000 yyyyyyyyxx = number of entriesyy = offsetxxxxyyyy zzzzzzzzxx = camera type?yy = unknownzz = offsetxxxxyyyy zzzzpppp qqqqrrrr FFFFFFFF FFFFxx = x positionyy = y positionzz = z positionpp = x rotationqq = y rotationrr = z rotation

 

I'm gonna have to look into pqr some more as I may be wrong about it.

 

0x1B - Used by actors to decide what camera to use/cutscene to play.uuuutttt bbbbcccc nnnnssuu uuuuddeett = length (FFFF = constantly playing)bb = camera to use  FFF5 = Mask Transformation  FFF6 = opening a large chest  FFF7 = ???  FFF8 = ???  FFF9 = ???  FFFA = Song of Soaring  FFFB = using event item  FFFC = drinking bottle  FFFD = playing ocarina  FFFE = receiving item from small chest  FFFF = null  0000+ = additional cameras (see 0x02 command)cc = cutscene to play  FFFF = nullnn = next entry?ss = puzzle sound effect to play afterdd = camera position after  00 = keep current position  01 = place behind link  02 = rotate until behind linkee = size of black bars  80 = maxuu = unknown

 

-change actor's y rotation to link with 0x1B entry

  • Like 2
Link to comment
Share on other sites

  • 1 month later...

Pasting what I had on the 0x1C command:

 

xxxxxxxx yyyyzzzzxx = pointer to datayy = zoomzz = unknownaaaaxxxx yyyyzzzz bbbbaa = mini mapxx = x positionyy = y positionzz = z positionbb = unknown

 

Values for the mini map are 0100-0164 iirc.

Link to comment
Share on other sites

  • 2 weeks later...

0x17 - Cutscenes

 

17xx0000 yyyyyyyy

 

xx = number of cutscenes

yy = offset

 

Entries

xxxxxxxx yyyyuutt

xx = Offset of cutscene data
yy = Exit
uu = Entrance cutscene activates at
tt = Event flag

 

Cutscene Header
xxxxxxxx yyyyyyyy

xx = Number of markers
yy = Length (Frames)

 

Small list of cutscene markers:

0000000A Text
0000005A Camera data
00000066 Zelda
00000070 Epona
00000078 Romani
00000082 Happy mask man
00000096 Sound effects?
00000097 ???
00000098 Screen Transition
00000099 Motion blur?
0000009B ???
0000009C ???
000000C8 Link
000000C9 Tatl
0000012C Play song
0000015E End Cutscene

 

The formats for these markers should be the same as they are in OoT, except for the camera data.

 

I'll add more info hopefully some time next week.

Link to comment
Share on other sites

  • 3 weeks later...

Writing this up really quick. Hopefully next time I won't procrastinate as much.

 

Camera Data Marker

 

0000005A xxxxxxxx

 

xx = size of data

 

xxxxyyyy zzzzzzzz

 

xx = number of camera points

yy = size

zz = length (frames)

 

Camera Points

 

The first part of the data is for the camera focus, the second part is for the camera positions. The last part is for the angle of view.

 

aabbcccc xxxxyyyy zzzz0000

 

aa = camera behaviour (use 05 if you don't know what to use)

bb = FACTOR (?) <--- What the camera debug calls it. 0x64 seems to be the default
cc = unknown (something to do with the number of frames?)
xx = x position
yy = y position
zz = z position

 

xxxx0000 yyyy0000

xx = TIME (?) <--- what the camera debug calls it
yy = angle of view

 

 

 

 

I'll either work on a bigger list of all the markers or look into the 0x1A command next.

Link to comment
Share on other sites

  • 3 weeks later...

Cutscene actor markers that I have discovered so far:

 

 

  Reveal hidden contents

 

 

I haven't tested most of them but I'm 90% sure that these are all correct.

Link to comment
Share on other sites

Haha, it's rather neat to see that a lot of the files names are still exactly the same or similar to their OoT Counterparts. Romani and Cremia still being called Ma (as in Malon) is rather interesting.

 

Now how did you find these? Is there similar data like this in OoT with Cutscene Markers?

Link to comment
Share on other sites

Actors are programmed to check for a specific value.

 

In each actor's source file (http://spinout182.com/mmde/a.html) I searched for:

	jal             external_func_8010B11C

if there was a match then usually before or after that instruction there would be:

	li              a1,x

Where x is the decimal value of the marker

 

This doesn't work all of the time as there are some actors like En_Giant which have a lhu instruction instead.

 

You could try doing something similar with Ocarina of Time's actors, but I'm not sure what you would have to search.

 

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

Exit Values

 

xxyz

 

xx = Exit number - Divide by two to get its entry in the exit table (list)

xy = Entrance Number

z = Variable?

 

Examples:

 

D800 will take you to exit 0x6C (South Clock Town) at entrance 0x00

 

1500 will take you to exit 0x0A (Grottos) at entrance 0x10

 

4650 will take you to exit 0x23 (Fairy Fountain) at entrance 0x05

Link to comment
Share on other sites

  On 6/27/2013 at 7:31 AM, fkualol said:

Exit Values

 

xxyz

 

xx = Exit number - Divide by two to get it's entry in the exit table (list)

xy = Entrance Number

z = Variable?

 

Examples:

 

D800 will take you to exit 0x6C (South Clock Town) at entrance 0x00

 

1500 will take you to exit 0x0A (Grottos) at entrance 0x10

 

4650 will take you to exit 0x23 (Fairy Fountain) at entrance 0x05

These are the entries in the exit list within the scene? As opposed to being indexes within a list in code, like OoT.

And wouldn't it be more like:

SSSSSSSS SSSSSSSE EEEEEEEE zzzzzzzz

In a bitwise manner, that is:

scene = exit_val>>17

entrance = (exit_val >>8) & 0x1F

?

 

Nevertheless, this thread is full of win. Would there be opposition to me putting the data on the wiki?

Link to comment
Share on other sites

  On 6/27/2013 at 7:55 AM, spinout said:

These are the entries in the exit list within the scene? As opposed to being indexes within a list in code, like OoT.

There's an entrance table at 0x00C5BC60 in a decompressed MM (U) ROM and the format goes:

 

xx000000 yyyyyyyy zzzzzzzz

 

xx = Number of Entrances

yy = RAM Offset

zz = Scene Name RAM Offset

 

To get the data for an individual entrance you would go to

 

RAM Offset + (Entrance Number * 4)

 

take the address written there and add (Variable * 4)

 

The data here seems to be in the same format as OoT

 

aabbccdd

 

aa = Scene Number (Signed Byte)

bb = Entrance Number

cc = Variable

dd = Fade 

  Quote

And wouldn't it be more like:

SSSSSSSS SSSSSSSE EEEEEEEE zzzzzzzz

In a bitwise manner, that is:

scene = exit_val>>17

entrance = (exit_val >>8) & 0x1F

?

 

Yes, that seems to be about right.

 

  Quote
Nevertheless, this thread is full of win. Would there be opposition to me putting the data on the wiki?

Feel free to do so. I would have added it myself but I can't seem to log in with OpenID. 

Link to comment
Share on other sites

0x1A command- used to animate textures

 

Maps with mesh that use animated textures will use the DE000000 aa000000 display list command where aa = 08+.

 

Format

 

1A000000 xxxxxxxx

 

xx = offset

 

then it's

 

xx00yyyy zzzzzzzz

xx = animated mesh entry (take aa value in DE command and subtract 07 (last entry needs to be negative)
yy = type
  00 = one layer
  01 = two layers
zz = pointer

 

then

 

aabbccdd

aa = x velocity factor
bb = y velocity factor
cc = unknown - use 0x20 if unsure
dd = unknown - use 0x20 if unsure


 

  • Like 1
Link to comment
Share on other sites

  On 7/2/2013 at 7:14 AM, Jason777 said:

Awesome! Now if only we could figure out how exactly OoT animates its textures in maps. That way we don't have to use engine hacks to do it and can use what the game already provides.

I found a table at 0xBA0BB0 in the OoT Debug ROM that goes

 

aaaaaaaa bbbbbbbb cccccccc dddddddd eeffgghh

 

aa = scene start address

bb = scene end address

cc = scene name start address

dd = scene name end address

ee = unknown

ff = something to do with the scene's animated textures

gg = unknown

hh = unknown

 

If you set ff to 00 then the scene won't animate any of the map's textures. There's probably another table that needs to be found, or it might be hard-coded. I'm not sure.

 

 

EDIT: Er... just realised this is the scene table and that this information is already available.

Link to comment
Share on other sites

  • 1 month later...

I haven't really been doing anything related to MM lately but i might as well mention a few things

 

The first 0x12 scenes or so in http://spinout182.com/mmde/s.html are using the wrong names.

 

The 0x02 command seems to use the same format as http://wiki.spinout182.com/w/Zelda_64:_Collision_Format#Camera_Data

 

MM Camera Types

 

  Reveal hidden contents

 

 

OoT Camera Types

 

  Reveal hidden contents

 

 

MM Scene Table Format

 

  Reveal hidden contents

 

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.