fkualol Posted February 25, 2013 Share Posted February 25, 2013 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 2 Link to comment Share on other sites More sharing options...
fkualol Posted April 5, 2013 Author Share Posted April 5, 2013 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 More sharing options...
Jason777 Posted April 15, 2013 Share Posted April 15, 2013 This is going to be really useful to Project Antiqua Thanks for the info! Link to comment Share on other sites More sharing options...
fkualol Posted April 20, 2013 Author Share Posted April 20, 2013 0x17 - Cutscenes 17xx0000 yyyyyyyy xx = number of cutscenes yy = offset Entries xxxxxxxx yyyyuuttxx = Offset of cutscene datayy = Exituu = Entrance cutscene activates attt = Event flag Cutscene Headerxxxxxxxx yyyyyyyy xx = Number of markersyy = Length (Frames) Small list of cutscene markers: 0000000A Text0000005A Camera data00000066 Zelda00000070 Epona00000078 Romani00000082 Happy mask man00000096 Sound effects?00000097 ???00000098 Screen Transition00000099 Motion blur?0000009B ???0000009C ???000000C8 Link000000C9 Tatl0000012C Play song0000015E 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 More sharing options...
fkualol Posted May 9, 2013 Author Share Posted May 9, 2013 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 defaultcc = unknown (something to do with the number of frames?)xx = x positionyy = y positionzz = z position xxxx0000 yyyy0000xx = TIME (?) <--- what the camera debug calls ityy = 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 More sharing options...
fkualol Posted May 30, 2013 Author Share Posted May 30, 2013 Cutscene actor markers that I have discovered so far: 00000064 En_Elfgrp00000065 En_Dnp (Deku Princess)00000066 Dm_Zl (Zelda)00000067 Bg_Dy_Yoseizo00000068 Bg_Ctower_Gear00000069 En_Dnq (Deku King)0000006B Dm_Stk (Skullkid)0000006C En_Ge30000006D Dm_Char0500000070 En_Horse (Epona)00000073 Dm_Opstage00000077 En_Gg00000078 En_Ma_Yts, En_Ma4 (Romani)00000079 En_Ge10000007C Bg_Open_Shutter0000007D Bg_Open_Spot0000007E En_Dnk0000007F En_Mk (Professor)00000082 En_Osn (Happy Mask Man)00000083 Dm_Char0200000084 Obj_Tokeidai00000086 Obj_Tokei_Step00000087 Dm_Char0100000088 Dm_Char03000000C8 Player (Link)000000C9 En_Elf (Tatl)000001C9 En_Zoraegg000001CF Dm_Char06000001D5 Bg_Haka_Curtain000001D6 En_Jg000001D7 En_Zog000001D8 En_Dai000001DA Dm_Char08000001DB En_Dno000001DC En_Ge2000001DF En_Gk000001E0 Eff_Kamejima_Wave000001E2 En_Po_Composer000001E3 Obj_Hgdoor000001E4 En_Hg000001E5 En_Pamera000001E6 En_Hgo000001F4 En_Zob000001F5 En_Zos000001F6 Eff_Kamejima_Wave000001F7 Dm_Char09000001F8 En_Zov000001F9 En_Test6000001FA En_Test3000001FF Obj_Boat00000200 Eff_Stk00000201 Dm_Stk (Skullkid)00000202 Dm_Tsg00000203 En_Zod0000020D En_Toto0000020E En_Gm0000020F Eff_Zoraband00000214 En_Bsb00000228 Obj_Usiyane0000022C En_Ma_Yto (Cremia)0000022D En_An, Dm_An, Dm_Gm00000232 Dm_Al, Dm_Ah, Dm_Nb00000235 En_And00000238 Dm_Bal00000239 Door_Warp1000002C8 En_Dns (Deku Palace Scrub) I haven't tested most of them but I'm 90% sure that these are all correct. Link to comment Share on other sites More sharing options...
Three_Pendants Posted May 30, 2013 Share Posted May 30, 2013 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 More sharing options...
fkualol Posted May 30, 2013 Author Share Posted May 30, 2013 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. 1 Link to comment Share on other sites More sharing options...
fkualol Posted June 27, 2013 Author Share Posted June 27, 2013 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 More sharing options...
spinout Posted June 27, 2013 Share Posted June 27, 2013 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 More sharing options...
fkualol Posted June 27, 2013 Author Share Posted June 27, 2013 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 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. 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 More sharing options...
fkualol Posted July 2, 2013 Author Share Posted July 2, 2013 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 zzzzzzzzxx = 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 layerszz = pointer then aabbccddaa = x velocity factorbb = y velocity factorcc = unknown - use 0x20 if unsuredd = unknown - use 0x20 if unsure 1 Link to comment Share on other sites More sharing options...
Jason777 Posted July 2, 2013 Share Posted July 2, 2013 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. Link to comment Share on other sites More sharing options...
fkualol Posted July 2, 2013 Author Share Posted July 2, 2013 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 More sharing options...
xdaniel Posted July 2, 2013 Share Posted July 2, 2013 IIRC there is another table for the "scene configuration" byte as I called it recently, but I don't remember exactly where it was. Posted a tiny bit more info here: https://www.the-gcn.com/topic/2419-interest-check-simple-roomscene-actor-editor/?p=39365 Link to comment Share on other sites More sharing options...
Jason777 Posted July 2, 2013 Share Posted July 2, 2013 This contains some nice information concerning animated textures i.e. such as where the code to animate lies in RAM. https://www.the-gcn.com/topic/600-xdaniels-random-junk/page-4 Link to comment Share on other sites More sharing options...
fkualol Posted August 17, 2013 Author Share Posted August 17, 2013 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 00 NONE01 NORMAL002 NORMAL303 CIRCLE504 HORSE005 ZORA006 PREREND007 PREREND108 DOORC09 DEMO00A FREE00B FUKAN00C NORMAL10D NANAME0E CIRCLE00F FIXED010 SPIRAL11 DUNGEON012 ITEM013 ITEM114 ITEM215 ITEM316 NAVI17 WARP018 DEATH19 REBIRTH1A TREASURE1B TRANSFORM1C ATTENTION1D WARP11E DUNGEON11F FIXED120 FIXED221 MAZE22 REMOTEBOMB23 CIRCLE124 CIRCLE225 CIRCLE326 CIRCLE427 FIXED328 TOWER029 PARALLEL02A NORMALD2B SUBJECTD2C START02D START22E STOP02F JCRUISING30 CLIMEMAZE31 SIDED32 DUNGEON233 BOSS_SHIGE34 KEEPBACK35 CIRCLE636 CIRCLE737 CHUBOSS38 RFIXED139 TRESURE13A BOMBBASKET3B CIRCLE83C FUKAN13D DUNGEON33E TELESCOPE3F ROOM040 RCIRC041 CIRCLE942 ONTHEPOLE43 INBUSH44 BOSS_LAST45 BOSS_INI46 BOSS_HAK47 BOSS_KON48 CONNECT049 MORAY4A NORMAL24B BOMBBOWL4C CIRCLEa4D WHIRLPOOL4E KOKKOGAME4F GIANT50 SCENE051 ROOM152 WATER253 SOKONASI54 FORCEKEEP55 PARALLEL156 START157 ROOM258 NORMAL459 SHELL5A DUNGEON4 OoT Camera Types 00 NONE01 NORMAL002 NORMAL103 DUNGEON004 DUNGEON105 NORMAL306 HORSE007 BOSS_GOMA08 BOSS_DODO09 BOSS_BARI0A BOSS_FGANON0B BOSS_BAL0C BOSS_SHADES0D BOSS_MOF0E BOSS_TWIN00F BOSS_TWIN110 BOSS_GANON111 BOSS_GANON212 TOWER013 TOWER114 FIXED015 FIXED116 CIRCLE017 CIRCLE218 CIRCLE319 PREREND01A PREREND11B PREREND31C DOORC1D RAIL31E START01F START120 FREE021 FREE222 CIRCLE423 CIRCLE524 DEMO025 DEMO126 MORI127 ITEM028 ITEM129 DEMO32A DEMO42B UFOBEAN2C LIFTBEAN2D SCENE02E SCENE12F HIDAN130 HIDAN231 MORI232 MORI333 TAKO34 SPOT05A35 SPOT05B36 HIDAN337 ITEM238 CIRCLE639 NORMAL23A FISHING3B DEMOC3C UO_FIBER3D DUNGEON23E TEPPEN3F CIRCLE740 NORMAL4 MM Scene Table Format xxxxxxxx yyyyyyyy aaaabbbb 00000000 xx = Scene Start yy = Scene End aa = Message Number bb = Scene Configuration (01 if you want to use the 0x1A command. Goes up to 0x0D IIRC) Link to comment Share on other sites More sharing options...
Recommended Posts