Notes:Mini-Cutscenes

From CloudModding MM Wiki
Jump to: navigation, search

Playtendo's notes on mini-cutscenes. Feel free to add-on information and properly organize the content currently displayed.

Below is a demonstration of the 0x1B comand in action

Formats

cutscene entries
xxxxxxxx yyyyuutt

xx = location of cutscene
yy = Entrance of next scene 
uu = Entrance cutscene activates at
tt = Event flag

cutscene headers
aaaaaaaa bbbbbbbb cccccccc dddddddd

aa = number of chunks
bb = number of frames
cc = unknown (always 0000005A?)
dd = pointer to actor animation/movement/misc effects (add 0xC)

CAMERA CHUNK HEADER
uuuussss llllllll

uu = unknown (number of entries?)
ss = size
ll = length (frames)

CAMERA CHUNK ENTRIES
0xC bytes? (first half of data appears to be focus, second half position)

bbaauuuu xxxxyyyy zzzz0000

bb = camera behaviour (use 05 if you don't know what to use)
aa = factor (?)
uu = unknown
xx = x position
yy = y position
zz = z position

values after camera chunk entries deal with the angle of view for each entry

xxxx0000 yyyy0000

xx = time (?)
yy = angle of view

0xc in the cutscene data is a pointer to actor animation/movement/misc effects
-always starts with FFFF0004?

-CHUNK HEADER

0000xxxx 000000yy

xx = chunk type
yy = number of entries
801EF672 current scene value

02E8A590 intro cutscene (MM US ROM)
change exit to 6403 or d202 for unused cutscenes

Japanese rom only here down



801EF462 current scene value

803FFE6C Link's Rotation in RAM

8038290C Link's Coordinates in RAM (breakpoint for cutscene values - register F18, F6, F10)

801f4d80 cutscene camera info

800ED084 00000096 marker breakpoint
801DD750 96-9f marker asm

803E8C64 Cutscene entries pointer (J)

0x2d291e8 link animation
0x2D28c14 start of cutscene data

clocktown inn scene (J)

0x0D10 Cutscene 1
0x2430 cutscene 2
0xAC14 Cutscene 3


Clocktown South Scene (J)

0x0B4C Going back in time for the first time
0x20ec Seeing clocktown for the first time
0x5678 intro cutscene last part
0x727C intro cutscene first part

MM (J) addresses: Camera assembly stuff

80755CC0 asm to write bow/arrow camera value
80761568 asm to set bowarrowz camera
803E7050 current camera types
800E0C1C asm to load camera data variable table
801B2264 camera data variable table

Camera type values:

00 NORMAL
01 JUMP
02 GORONDASH
03 NUTSSHOT
04 BOWARROWZ
05 NUTSFLY
06 SUBJECT
07 BOOKEEPON
08 ZORAFIN
09 KEEPON
0A PARALLEL
0B TALK
0C PACHINCO
0D BOWARROW
0E BATTLE
0F NUTSHIDE
10 STILL
11 CHARGE
12 CLIMB
13 CLIMBZ
14 FOOKSHOT
15 FREEFALL
16 HANG
17 HANGZ
18 PUSHPULL
19 NUTSFLYZ
1A GORONJUMP
1B BOOMERANG
1C CHARGEZ
1D ZORAFINZ
80247250 custom cutscene fov info (debug)
80246F50 custom cutscene camera focus info (debug)
802470D0 custom cutscene camera position info (debug)


0x2d291e8 link animation (J)
0x2D28c14 start of cutscene data (J)
 
 
006FD720
 
001b9cb0
 
001bd8b0
 
001d0d60
 
3ff2bc
006FD6e0

0x1B Command - Mini-cutscene

Used by actors to decide what camera to use/cutscene to play.

 

803E7000 current mini cutscene playing
803E71D0 (J)
80448BE0 debug rom

803FF2B0 something to do with the second unknown
803FF460 (J)
80460E90 (debug)
 
801BD8B1 current entry
801B8740 (J)
802067C0 (Debug)

uuuutttt bbbbcccc nnnnssuu uuuuddee
 
tt = length (FFFF = constantly playing)
bb = camera to use
        FFF0 = Entering warp after defeating boss
        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 = opening a small chest
        FFFF = null
        0000+= additional cameras (see 0x02 command)
cc = cutscene to play
        FFFF = null
nn = next entry?
ss = puzzle sound effect to play after
dd = camera position after
        00 = keep current position
        01 = place behind link
        02 = rotate until behind link
ee = size of black bars
        80 = max
uu = unknown
 
Default Order:
FFFD
FFFE
FFFC
FFFB
FFF9
FFF5
FFF8
FFF7
FFFA

0x02

0x02 - Cameras used for the 0x1B command.

02xx0000 yyyyyyyy

xx = number of entries
yy = offset

xxxxyyyy zzzzzzzz

xx = camera type
yy = unknown
zz = offset (see below)

xxxxyyyy zzzzpppp qqqqrrrr FFFFFFFF FFFF

xx = x position
yy = y position
zz = z position
pp = x rotation
qq = y rotation
rr = z rotation

Camera type values:
00 NONE
01 NORMAL0
02 NORMAL3
03 CIRCLE5
04 HORSE0
05 ZORA0
06 PREREND0
07 PREREND1
08 DOORC
09 DEMO0
0A FREE0
0B FUKAN0
0C NORMAL1
0D NANAME
0E CIRCLE0
0F FIXED0
10 SPIRAL
11 DUNGEON0
12 ITEM0
13 ITEM1
14 ITEM2
15 ITEM3
16 NAVI
17 WARP0
18 DEATH
19 REBIRTH
1A TREASURE
1B TRANSFORM
1C ATTENTION
1D WARP1
1E DUNGEON1
1F FIXED1
20 FIXED2
21 MAZE
22 REMOTEBOMB
23 CIRCLE1
24 CIRCLE2
25 CIRCLE3
26 CIRCLE4
27 FIXED3
28 TOWER0
29 PARALLEL0
2A NORMALD
2B SUBJECTD
2C START0
2D START2
2E STOP0
2F JCRUISING
30 CLIMEMAZE
31 SIDED
32 DUNGEON2
33 BOSS_SHIGE
34 KEEPBACK
35 CIRCLE6
36 CIRCLE7
37 CHUBOSS
38 RFIXED1
39 TRESURE1
3A BOMBBASKET
3B CIRCLE8
3C FUKAN1
3D DUNGEON3
3E TELESCOPE
3F ROOM0
40 RCIRC0
41 CIRCLE9
42 ONTHEPOLE
43 INBUSH
44 BOSS_LAST
45 BOSS_INI
46 BOSS_HAK
47 BOSS_KON
48 CONNECT0
49 MORAY
4A NORMAL2
4B BOMBBOWL
4C CIRCLEa
4D WHIRLPOOL
4E KOKKOGAME
4F GIANT
50 SCENE0
51 ROOM1
52 WATER2
53 SOKONASI
54 FORCEKEEP
55 PARALLEL1
56 START1
57 ROOM2
58 NORMAL4
59 SHELL
5A DUNGEON4

Actor's Marker

HOW TO FIND ACTOR'S MARKER

ctrl+f 8010B11C or 8010B080 in the src file
li              a1,xx

data_80B36518 giants

00000064 En_Elfgrp (Broken Great Fairy)
00000065 En_Dnp (Deku Princess)
00000066 Dm_Zl (Zelda)
00000067 Bg_Dy_Yoseizo
00000068 Bg_Ctower_Gear
00000069 En_Dnq (Deku King)
0000006B Dm_Stk (Skullkid)
0000006C En_Ge3
0000006D Dm_Char05
00000070 En_Horse (Epona)
00000071 Dm_Char00 (var 0000, Tatl)
00000072 Dm_Char00 (var 0001, Tael)
00000073 Dm_Opstage
00000077 En_Gg
00000078 En_Ma_Yts, En_Ma4 (Romani)
00000079 En_Ge1
0000007C Bg_Open_Shutter
0000007D Bg_Open_Spot
0000007E En_Dnk
0000007F En_Mk (Professor)
00000082 En_Osn (Happy Mask Man)
00000083 Dm_Char02
00000084 Obj_Tokeidai
00000086 Obj_Tokei_Step
00000087 Dm_Char01
00000088 Dm_Char03 (Happy Mask Man)
000000C8 Player (Link)
000000C9 En_Elf (Tatl)
000001C5 En_Giant
000001C6 En_Giant
000001C7 En_Giant
000001C8 En_Giant
000001C9 En_Zoraegg
000001CF Dm_Char06
000001D5 Bg_Haka_Curtain
000001D6 En_Jg
000001D7 En_Zog
000001D8 En_Dai
000001D9 Dm_Char05
000001DA Dm_Char08
000001DB En_Dno
000001DC En_Ge2
000001DF En_Gk
000001E0 Eff_Kamejima_Wave
000001E2 En_Po_Composer
000001E3 Obj_Hgdoor
000001E4 En_Hg
000001E5 En_Pamera
000001E6 En_Hgo
000001F4 En_Zob
000001F5 En_Zos
000001F6 Eff_Kamejima_Wave
000001F7 Dm_Char09
000001F8 En_Zov
000001F9 En_Test6
000001FA En_Test3 (Kafei)
000001FF Obj_Boat
00000200 Eff_Stk
00000201 Dm_Stk (Skullkid)
00000202 Dm_Tsg
00000203 En_Zod
00000206 Dm_Char05
0000020D En_Toto
0000020E En_Gm
0000020F Eff_Zoraband
00000214 En_Bsb
00000228 Obj_Usiyane
0000022C En_Ma_Yto (Cremia)
0000022D En_An, Dm_An, Dm_Gm
0000022F Dm_Char05 (var 0003, Majora's Mask)
00000232 Dm_Al, Dm_Ah, Dm_Nb
00000235 En_And 
00000238 Dm_Bal
00000239 Door_Warp1
000002C8 En_Dns (Deku Palace Scrub)


00000085 En_Fall - unsure
00000146 Demo_Getitem - unsure
000001C2 En_Fall - unsure
000001C3 En_Fall - unsure
00000205 En_Fall - unsure
00000237 En_Weather_Tag - unsure
0000024A En_Giant - unsure

-ENTRY TYPE 1 <--used for actors (Link, Tatl, etc.) (0x30 bytes long)
aaaabbbb eeeeqqqq rrrrssss ffffffff gggggggg hhhhhhhh iiiiiiii jjjjjjjj kkkkkkkk uuuuuuuu uuuuuuuu uuuuuuuu
 
aa = animation number
bb = animation start (frame)
ee = animation end (frame)
qq = direction link is looking (up and down)
rr = rotation
ss = unknown
ff = starting point (x axis)
gg = starting point (y axis)
hh = starting point (z axis)
ii = ending point (x axis)
jj = ending point (y axis)
kk = ending point (Z axis)
 
* give link a walking animation (0x01 or 0x02) if you want him to walk from one point to the next
 
-ENTRY TYPE 2 <--- used for text
aaaabbbb ccccdddd FFFFFFFF
 
aa = message ID
bb = message start (frame)
cc = message end (frame)
dd = unknown