DeathBasket Posted July 6, 2011 Share Posted July 6, 2011 also and Yes so I've been looking at cutscene data a little (pointed to be the 0x17 command in the scene header) and here's what I know: nothing Text: 00000013 0000xxxx xxxx = number of entries text entries (follows one of two formats): FFFF xxxx yyyy FFFF FFFF FFFF x = start frame y = end frame (no text displayed) or zzzz xxxx yyyy 0000 0000 0000 z = message number x = start frame y = end frame (waits for text to finish before continuing cutscene) Camera Positions: 00000001wwwwxxxxyyyyzzzz w = ? x = start frame? y = end frame? z = ? following that: ww00 [????] [????????] [xxxxyyyyzzzz] [????] ww = ? FF on last entry xxxx = x position yyyy = y position zzzz = z position Camera Focus: 00000002wwwwxxxxyyyyzzzz ww = ? xxxx = start frame? yyyy = end frame? zzzz = ? following that: ww00 [????] [????????] [xxxxyyyyzzzz] [????] ww = ? FF on last entry xxxx = x position yyyy = y position zzzz = z position The camera will look towards the coordinates specified. There's still a load of unknowns (and other data I haven't even started looking at) so if anybody wants to contribute anything, go ahead. Link to comment Share on other sites More sharing options...
xdaniel Posted July 6, 2011 Share Posted July 6, 2011 (edited) I wanted to take a break of stuff like this... Oh well. Hope this helps? ...uh, see Twili's post below, much better than mine Animation? -> Navi 0000003E 0000xxxx xxxx = number of entries Animation? -> Link 0000000A 0000xxxx xxxx = number of entries Entry format (ex. Navi, Link's house) aaaa bbbb cccc dddd <--------- eeee ---------> <--------- ffff ---------> <--------- gggg ---------> hhhh iiii 0001 0000 0001 0000 00000000 FFFFFFFE 00000028 FFFFFF49 FFFFFFFE 00000028 FFFFFF49 00000000 00000000 0000 0000 0002 0001 003D 0071 00000000 FFFFFFFE 00000028 FFFFFF49 00000000 0000001E 00000000 3D088889 BE2AAAAB BD08 8889 aaaa = animation bbbb = start frame? cccc = end frame? dddd = ? eeee = X/Y/Z coords 1, 32-bit? ffff = X/Y/Z coords 2, 32-bit? gggg = X/Y/Z coords 3, 32-bit? hhhh = ? iiii = ? Incomplete and probably not all that accurate, but whatever. Try switching Link's and Navi's 0x0000000A and 0x0000003E (0x1080 and 0x1208 in Link's house's scene, I think); you can make Link act like Navi and vice versa in that cutscene. Edited July 6, 2011 by xdaniel Link to comment Share on other sites More sharing options...
Twili Posted July 6, 2011 Share Posted July 6, 2011 0x27E5308 in the debug rom (0xF308 into spot00_scene or 0xD18 into its cutscene at 0xE5F0): 00 00 00 0A 00 00 00 13 00 00 00 0A = Marker. 00 00 00 13 = Number of paths for Link (hex). The entries are immediately after, 0x30 in length each: 00 01 00 00 01 90 94 3A 00 00 00 00 00 00 00 FC 00 00 00 00 00 00 07 3A FF FF FF FE 00 00 00 00 00 00 05 65 BF 22 8F 5C 00 00 00 00 3F 22 8F 5C 00 01 = Current action. Zeth made a list of these that was to be redone. 00 00 = Starting frame for path. 01 90 = Ending frame for path. 94 3A 00 00 00 00 = Unknown. 00 00 00 FC = X coordinate of path start vertex. 00 00 00 00 = Y coordinate of path start vertex. 00 00 07 3A = Z coordinate of path start vertex. FF FF FF FE = X coordinate of path end vertex. 00 00 00 00 = Y coordinate of path end vertex. 00 00 05 65 = Z coordinate of path end vertex. BF 22 8F 5C 00 00 00 00 3F 22 8F 5C = Appears to be a vertex normal for the path, single precision floats. Changing them doesn't have any obvious effect. There is a table for those actions that I discovered at 0xC239B8 in the rom. You can see that the last 4 bytes are always 00 00 00 00, a "virtual offset", or a gameplay_keep pointer to an animation header for Link. I put Zeth's list against these: 00 00 00 00 00 00 00 00 | 00 does nothing FF 00 00 00 80 85 15 A4 | 01 Normal still stance 02 00 00 00 04 00 27 90 | 02 Looks back real quick 00 00 00 00 00 00 00 00 | 03 Runs like hell (Beta and broken) 00 00 00 00 00 00 00 00 | 04 Normal still stance 03 00 00 00 04 00 27 40 | 05 Surprised 00 00 00 00 00 00 00 00 | 06 Froze x.x 00 00 00 00 00 00 00 00 | 07 does nothing FF 00 00 00 80 85 15 A4 | 08 stand still 02 00 00 00 04 00 27 78 | 09 turn around surprised FF 00 00 00 80 85 17 88 | 0A walk into warp 03 00 00 00 04 00 28 60 | 0B preparing to warp FF 00 00 00 80 85 18 DC | 0C beta side stance 07 00 00 00 04 00 23 48 | 0D beta holding something 05 00 00 00 04 00 23 50 | 0E got an item 05 00 00 00 04 00 23 58 | 0F got an item reversed? 05 00 00 00 04 00 23 B0 | 10 Getting up from sitting 07 00 00 00 04 00 23 B8 | 11 sitting on the ground FF 00 00 00 80 85 19 EC | 12 pulling mastersword out 02 00 00 00 04 00 27 28 | 13 getting magic from faries 02 00 00 00 04 00 27 38 | 14 Hold shield? o.o 00 00 00 00 00 00 00 00 | 15 freezes link no crash FF 00 00 00 80 85 1B 90 | 16 legs stuck out 03 00 00 00 04 00 27 A8 | 17 Faries blessing? 09 00 00 00 04 00 2D B0 | 18 Link falls forward And more. Link to comment Share on other sites More sharing options...
xdaniel Posted July 7, 2011 Share Posted July 7, 2011 Cutscene duration: 0000000B 0000xxxx xxxx = length in frames Path/animation for something? 0000003D 0000xxxx xxxx = number of entries, same format as Link, Navi, etc? Link to comment Share on other sites More sharing options...
Twili Posted July 7, 2011 Share Posted July 7, 2011 I believe you are right, xdaniel, about the second and third halfwords in the animation/path entries being the start and end frame. Link to comment Share on other sites More sharing options...
spinout Posted July 8, 2011 Share Posted July 8, 2011 woah Someone get this stuff on the wiki Link to comment Share on other sites More sharing options...
DeathBasket Posted July 30, 2011 Author Share Posted July 30, 2011 Some more stuff I found: Screen transition effects: 0000002D 00000001 xxxx yyyy zzzz zzzz? x = transition (probably the same as entrance/exit transitions) y = start frame z = end frame (seems to be repeated) Exits: 000003E8 00000001 xxxx yyyy zzzz zzzz? x = index for a list of addresses at 8013AF78, the machine code at these addresses sets the exit number to use y = start frame z = end frame (seems to be repeated) End of cutscene data: FFFFFFFF I'll update the wiki page with this too in a bit. Link to comment Share on other sites More sharing options...
john_smith_account Posted March 2, 2012 Share Posted March 2, 2012 Woah, I didn't know this topic was here! I think I can lend a hand. I don't know what method you're using to test this stuff, but I can tell you how I've been doing it. I'll also say mapping out of more cutscene camera data may be a waste of time. But more on that later in the post. First... ₪ DeathBasket'" data-cid="9274" data-time="1309990631">Camera Positions: 00000001wwwwxxxxyyyyzzzz w = ? x = start frame? y = end frame? z = ? following that: ww00 [????] [????????] [xxxxyyyyzzzz] [????] ww = ? FF on last entry xxxx = x position yyyy = y position zzzz = z position Camera Focus: 00000002wwwwxxxxyyyyzzzz ww = ? xxxx = start frame? yyyy = end frame? zzzz = ? following that: ww00 [????] [????????] [xxxxyyyyzzzz] [????] ww = ? FF on last entry xxxx = x position yyyy = y position zzzz = z position The camera will look towards the coordinates specified. First off, I got the wiki version of this posting, and the 01 camera data got me going in the right direction. That said, I think your 00000002 information is incorrect. following that: ww00 [????] [????????] [xxxxyyyyzzzz] [????] ww = ? FF on last entry xxxx = x position yyyy = y position zzzz = z position The camera will look towards the coordinates specified. I don't think X,Y,Z is camera position, I think it's camera rotation. Camera data appears to be paired off into 2 sections, 1 for coordinates(00000001), and 1 for rotation(00000002). It's a lot less obvious in the in game cutscenes, but is more dirrectly observed in cutscenes recorded and saved with the Demo Camera. The pairings get VERY messy in the in game cutscenes though since the data is split up, and the frames for camera position can be completely independent from the frames for camera rotation. That and the rotation data doesn't translate directly, it's something along the lines of +4 for every degree of rotation. Worse yet the number is signed. Here's my method for mapping. Method: Nothing special, but I've been using Demo Camera sequences to test with. I make a sequence, and save it to the memory card plugged into controller 3. I open the memory card file in hex editor, and examine the recorded sequence. If you follow the Debug ROM guide(is it still around?) you can follow all the advanced camera tricks, and map out the values. But like I said, mapping of all cutscene camera data may not even be necessary. For the purposes of Zelda's Birthday 2, I plan on recording my cutscenes in demo camera, and inserting them over the camera data of existing scenes. So I'd be less concerned with the camera, and concentrate more on the other "commands" There may be more to replacing existing camera in cutscene data than just simple cut and paste. Since as I said the camera position, and rotation do not appear as 1-for-1 listing within the in game scenes. Some null or do nothing filler "commands" could make up the difference in inserting different camera data into existing cutscenes. I've found another "command" which I'll post later. Other than that, I don't have much to add yet. Link to comment Share on other sites More sharing options...
DeathBasket Posted March 3, 2012 Author Share Posted March 3, 2012 Thanks for your input. I wasn't too sure if that was for where the camera is looking or for its rotation because usually it would make little or no difference when I changed the values, I assumed the former because I didn't get things like the camera being upside down happening. An interesting point is that in a few completely custom cutscenes I made the camera would simply refuse to move at all. That may have been a problem with the way I was doing it but iirc other things like text would work normally. For now using the debug camera as you say to create the data is most likely the best way to go, I was just trying to figure out how the data is set up so that one day (in the distant future) we might have a cutscene editor. Link to comment Share on other sites More sharing options...
john_smith_account Posted March 10, 2012 Share Posted March 10, 2012 More "commands' as promised. Found it while working on ZB2. End Cutscene (drop back to normal gameplay?) 00 00 00 03 00 00 00 EE 00 0C xxxx yyyy EE:Number of listings xxxx : Ending Frame yyyy: Ending Frame repeated Light source? 00 00 00 04 00 00 00 EE I didn't bring my notes on 04 "actors" with me, but it does seem to create an actor which effects lighting. Which brings me to an important development. Most unknowns fit within the Cutscene actor format of 00 00 00 AA 00 00 00 EE where AA : Actor Number EE: Number of listings So, I've made a tool that pulls cutscenes apart. The working title is Zelda64 Cutscene Discombobulator in honor of the Super Mario Brothers 2 level editing tool. Here's a sample of what it does so far: 'Header Command @ 8DA0 0000001000000BB8 'Actor # 15 @ 8DA8 0000001500000001 000100000BB8000000000000000000000000000FFFFFFFDE000000000000000FFFFFFFDE000000000000000000000000 'Actor # A @ 8DE0 0000000A00000001 000500000BB80000560B000000000B2900000000FFFFFDAE00000B2900000000FFFFFDAE000000000000000000000001 'Cutscene Exit @ 8E18 000003E80000000100010235023F023F 'Camera Position @ 8E28 000000010001000004430000 00000000427000000ADF00DBFE2C00FA 00000000427000000ADF00DBFE2C0000 00000000427000000ADF00DBFE2C0000 00000000427000000ADF00DBFE2C0000 FF000000427000000ADF00DBFE2CF050 'Camera Position @ 8E84 000000010001008205880000 00000000427000000ADF00DBFE2C9748 00000000427000000ADF00DBFE2C2A90 00000000427000000ADF00DBFE2C65F0 00000000427000000A600056FE803FAA 00000000424BFFF70A0D002FFEC70000 000000004237FFF20A0D002FFEC7FFFF 000000004237FFF20A0D002FFEC70000 000000004237FFF20A0D002FFEC73C18 FF0000004237FFF20A0D002FFEC741DC 'Camera Position @ 8F20 000000010001017C09890000 00000000427000000B68003AFD8F9748 00000000427000000B68003AFD8F2A90 00000000427000000B68003AFD8F65F0 00000000427000000B68003AFD8F3FAA FF000000427000000B68003AFD8F0000 'Camera Position @ 8F7C 00000001000101C206D70000 00000000427000000A8F0028FE899748 000000004235998B0A8F0028FE892A90 000000004235998B0A8F0028FE8965F0 000000004235998B0B6E002FFDF43FAA 000000004235998B0D09003EFCE10000 000000004235998B0EDA000AFBAAFFFF 0000000041A4CC7E0EDA000AFBAA0000 FF00000041A4CC7E0EDA000AFBAA3C18 'Camera Rotation @ 9008 000000020001000004600000 0000001E427000000B100081FDEE9748 0000001E427000000B100081FDEE2A90 000003E8427000000B100081FDEE65F0 0000001E427000000B100081FDEE3FAA FF00001E427000000B100081FDEE0000 'Camera Rotation @ 9064 000000020001008205A50000 0000002D427000000B100081FDEE9748 0000002D427000000B100081FDEE2A90 0000002D427000000B0F0081FDEF65F0 0000002D425E66620AB80056FE413FAA 0000002D4237FFF20A66003DFE870000 0000001E4237FFF20A66003CFE87FFFF 000003E84237FFF20A66003CFE870000 0000001E4237FFF20A65003CFE883C18 FF00001E4237FFF20A65003CFE8841DC 'Camera Rotation @ 9100 000000020001017C099C0000 0000001E427000000B09000EFDBB9748 0000001E427000000B09000EFDBB2A90 000003E8427000000B09000EFDBB65F0 000003E8427000000B09000EFDBB3FAA FF000014427000000B09000EFDBB0000 'Camera Rotation @ 915C 00000002000101C206F40000 0000001E4235998B0AEC0035FE489748 0000001E4235998B0AEC0035FE482A90 000000464235998B0AEC0035FE4965F0 00000046420D99810BCB0036FDB63FAA 0000004641DCCC8C0D66003AFCA30000 000003E841A666180F35FFF4FB6EFFFF 0000001E41A4CC7E0F33FFF6FB6F0000 FF00001E41A4CC7E0F32FFF7FB703C18 'Actor # 2E @ 91E8 0000002E00000001 000100000A6C00000000000000000000FFFFFFC00000003500000000FFFFFFC000000035000000000000000000000000 'Actor # 3E @ 9220 0000003E00000003 00010000000300000000000000000B1F0000012CFFFFFDB700000B1F0000012CFFFFFDB7000000000000000000000000 00040003004900000000000000000B1F0000012CFFFFFDB700000B1F0000002DFFFFFDB700000000C069249200000000 000400490BB800000000000000000B1F0000002DFFFFFDB700000B1F0000002DFFFFFDB7000000000000000000000000 'Text Command @ 92B8 0000001300000008 FFFF00000064FFFFFFFFFFFF 1024006400780000FFFFFFFF FFFF00780118FFFFFFFFFFFF 1091011801720000FFFFFFFF FFFF01720186FFFFFFFFFFFF 1092018601B80001FFFF1026 FFFF01B801C7FFFFFFFFFFFF 102701C702210000FFFFFFFF 'Actor # 56 @ 9320 0000005600000001 004C00B400B5000000000000000000000000001D0000009F000000000000001D0000009F000000000000000000000000 'Actor # 57 @ 9358 0000005700000001 004C00000001000000000000FFFFFF990000000000000070FFFFFF990000000000000070000000000000000000000000 'End of Cutscene Marker @ 9390 FFFFFFFF Everything so far works like an actor, or is one of the known commands like camera, text, exit, ect. If we use the debug camera for easy replacement of camera sequences, and someone posts the information actor animations again, total customized cutscenes will be possible. Maybe even simple. Link to comment Share on other sites More sharing options...
Jason777 Posted March 11, 2012 Share Posted March 11, 2012 A program which extracts and labels data held within cutscenes, you say? Now that'll be something to look foward to. Link to comment Share on other sites More sharing options...
john_smith_account Posted March 15, 2012 Share Posted March 15, 2012 A program which extracts and labels data held within cutscenes, you say? Now that'll be something to look foward to. It's a little better than that. Zelda64 Cutscene Discombobulator is done. It can now both dump and label cutscene data, and reinsert modified cutscenes. I plan on releasing it after I finish a demo cutscene. I'll want feed back on how to break down the data for easiest editing. ₪ Twili'" data-cid="9276" data-time="1309996078">BF 22 8F 5C 00 00 00 00 3F 22 8F 5C = Appears to be a vertex normal for the path, single precision floats. Changing them doesn't have any obvious effect. Ok, I know I'm getting lazy(er) but can anyone give me a formula or some pseudocode to calculate this? Link to comment Share on other sites More sharing options...
DeathBasket Posted March 15, 2012 Author Share Posted March 15, 2012 Great! I'm looking forward to seeing what this tool can do. I may not be so busy over the weekend so I might be able to help out with calculating those numbers. It would be really helpful if you could send me some examples since I don't currently have any of the things I need to find the information myself. Link to comment Share on other sites More sharing options...
john_smith_account Posted March 16, 2012 Share Posted March 16, 2012 Here's a simple demo of what this tool can do. If someone would upload a youtube video of the patch below in action, then I I'll release the tool. http://www.mediafire...f8vi401dap7p4m2 1. Apply the .pff patch(yeah, yeah I know we're not suppose to be using .ppf anymore but, I didn't have the time to find the new patching tool) 2. Run Cutscene 01 of Hyrule Field. I could have gotten the cutscene a little more polished, but I didn't see the point. It shows that you can edit existing cutscenes with minimal effort. The tool is nothing fancy. Also, I could use some feedback on how best to break down cutscene listings for the easiest editing. Link to comment Share on other sites More sharing options...
SanguinettiMods Posted March 16, 2012 Share Posted March 16, 2012 I Lol'd Link to comment Share on other sites More sharing options...
john_smith_account Posted March 16, 2012 Share Posted March 16, 2012 I wasn't expecting a response that fast! I'll get it zipped up and posted. Link to comment Share on other sites More sharing options...
SanguinettiMods Posted March 16, 2012 Share Posted March 16, 2012 Expect a fast response with a tool that people want. Link to comment Share on other sites More sharing options...
john_smith_account Posted March 16, 2012 Share Posted March 16, 2012 Thank you Sanguinett. Your expectations might be a little high compared to the current quality of this tool... http://www.mediafire...784ths2f8vqcvld It's a start though. !IMPORTANT! READ BEFORE USING DO NOT REMOVE OR ALTER THE HEADER LINE: 'Header Command @ You can add/remove/alter any commented out line EXCEPT this one. I know it's commented out, but the program currently uses it to identify cutscene files. I'll fix it in a later release. The address supplied in this line is were the cutscene data will be written to. Other than that the tool is very dumb. All it does is check for the address at the start of the .txt file, and write whatever data it finds in the .txt file to the ROM supplied in the romname.ini. Still it's very useful, the .txt files produced by the discombobulator: .Breaks the data down in a much easier to read format than trying to work this stuff up in a Hex editor. .Allows you to add comment lines by proceeding them with ' .Comments aids in directly mapping out cutscene data .It allows for easy cut and paste of lines from other cutscenes .You can use Demo Camera to make all new camera data you can simply cut and paste in Rest is up to you right now. Comments welcome. More later. Link to comment Share on other sites More sharing options...
Jason777 Posted March 16, 2012 Share Posted March 16, 2012 Great stuff here, JSA! For the weekend, I'll be testing out this tool Link to comment Share on other sites More sharing options...
â–²ChriisTiianâ–² Posted March 17, 2012 Share Posted March 17, 2012 Perfect JSA! But i need a little more information about how to use the tool... :-( (where the camera is positioned, and others ..) EDIT: a good information would be a README.txt explaining, which . txt belongs to the corresponding scene, so know which scene i'm editing. Link to comment Share on other sites More sharing options...
spinout Posted March 17, 2012 Share Posted March 17, 2012 Scene numbers can be found here, Katz: http://spinout182.com/mqd/s.html OR http://wiki.spinout182.com/w/Zelda_64_Scene_Listings:_Debug_ROM I'm looking forward to the development of this stuff. Link to comment Share on other sites More sharing options...
â–²ChriisTiianâ–² Posted March 17, 2012 Share Posted March 17, 2012 Scene numbers can be found here, Katz: http://spinout182.com/mqd/s.html OR http://wiki.spinout1...ings:_Debug_ROM I'm looking forward to the development of this stuff. i'm seeing this...Thanks Spinout!! EDIT: 2_Cutscene_00? 3B_Cutscene_00? 3B_Cutscene_01? someone explain to me please... T_T Link to comment Share on other sites More sharing options...
Jason777 Posted March 17, 2012 Share Posted March 17, 2012 2_Cutscene_00 The 2 refers to the scene number and the 00 refers to the cutscene entry. Link to comment Share on other sites More sharing options...
â–²ChriisTiianâ–² Posted March 17, 2012 Share Posted March 17, 2012 The 2 refers to the scene number and the 00 refers to the cutscene entry. Thanks! Link to comment Share on other sites More sharing options...
john_smith_account Posted March 17, 2012 Share Posted March 17, 2012 Perfect JSA! But i need a little more information about how to use the tool... :-( (where the camera is positioned, and others ..) EDIT: a good information would be a README.txt explaining, which . txt belongs to the corresponding scene, so know which scene i'm editing. Well this is an alpha release. Reading further up in this very post will get you all the info you need right now. I'll put together a decent readme later. For now the scene # is in the file name. 51_Cutscene_00.txt Is scene 0x51, hyrule field. Cutscene is 0. Use the scene list from ZLE/ZLE2/ZAP2 or the wiki to find out which scene is which. Link to comment Share on other sites More sharing options...
Recommended Posts