Daniel Posted August 10 Share Posted August 10 I need Full análisis of looney tunes dash https://looney-tunes-dash.en.uptodown.com/android/download Link to comment Share on other sites More sharing options...
Engineer shak-otay Posted August 10 Engineer Share Posted August 10 (edited) 2 hours ago, Daniel said: I need Full análisis of looney tunes dash High expectations you have. It needs more than just providing a link to attract attention, imho. Anyways, here's the blocks auf Forest_level2 <RunList name="" fusion="Forest_Level2" player="hi_BugsBunny" chaser="hi_elmerfud" mode="run" speed="66"> <blocks> <block name="hi_For_Start"/> <block name="hi_For_Straight_500"/> <block name="hi_For_Straight_500"/> <block name="hi_For_Straight_500"/> <block name="hi_Forest_Temp1"/> <block name="hi_For_Cap"/> <block name="hi_For_Straight_250"/> <block name="hi_Forest_Chasm"/> <block name="hi_For_Cap"/> <block name="hi_For_Alt_Long"/> <block name="hi_For_Straight_500"/> <block name="hi_For_Gap_Start"/> <block name="hi_For_Gap_Mid_Quarter"/> <block name="hi_For_Gap_End"/> <block name="hi_Forest_Meadow1"/> <block name="hi_Forest_Chasm"/> <block name="hi_For_Line"/> <block name="hi_For_Cap"/> <block name="hi_For_PreFinish"/> <block name="hi_For_Finish"/> </blocks> </RunList> The model format is fmlb. I guess there was a solution on former Xentax, Search in the xentax archives given by id-daemon or in a wayback machine. carrot runner, uncomplete Edited August 10 by shak-otay Link to comment Share on other sites More sharing options...
Engineer Rabatini Posted August 10 Engineer Share Posted August 10 2 hours ago, Daniel said: I need Full análisis of looney tunes dash https://looney-tunes-dash.en.uptodown.com/android/download none analizys from me. not even click in your link. Link to comment Share on other sites More sharing options...
Engineer Durik256 Posted August 10 Engineer Share Posted August 10 (edited) 7 hours ago, shak-otay said: The model format is fmlb. I guess there was a solution on former Xentax, Search in the xentax archives given by id-daemon or in a wayback machine. and can also use my backup xentax themes (locally or online), there is a primitive search that returns 4 topics🙂 Spoiler topic 1 topic 2 topic 3 topic 4 Of course, all these topics were created by the same person. and of course, Shak-otay answered there, and my plugin is also there which is also added to github fmt_fmlb.py. *(in fact, if you search by the author’s name, then it’s 8 + 1 (from another account)) Spoiler Edited August 10 by Durik256 1 Link to comment Share on other sites More sharing options...
Engineer shak-otay Posted August 10 Engineer Share Posted August 10 Haha, I see: the never-ending-story. How fast that year to pass and I found no memories of carrot runner on my harddisk (maybe on the old one, who knows?). 1 Link to comment Share on other sites More sharing options...
Engineer Durik256 Posted August 11 Engineer Share Posted August 11 I re-researched the structure of the fmlb archive. but also there is also an interesting observation that in the game itself there are raw fml files (in text form). some correspond to their fmlb binary versions. This will be very useful for those who want to tinker with this. 1 Link to comment Share on other sites More sharing options...
Engineer Durik256 Posted August 15 Engineer Share Posted August 15 (edited) full research (pseudocode structure): Spoiler #FMLB: 4 bytes magic (_FML) uint unk (0) uint unk (8) uint unk (3) uint numFiles uint dataOfs uint dataSize(+4) 4 bytes ender (END>) 16 bytes zeros for x in range(numFiles): uint type (0) uint zero (0) uint zero (0) 64 bytes name (wiyh trash) uint data_ofs uint size ushort index ushort ender (>>) #types indside FMLB: 102 - hier 103 - txload 104 - material 107 - geo 108 - prim 113 - clip 114 - aniplug 123 - colorset ... - other #### all 16 byte alignment # hier 64 bytes, nameHier uint numNodes vec3(float) bscenter float bsrad 140 bytes, unkLabel (trash?) for x in range(numNodes): uint node_type 64 bytes, nameNode vec4(float) unk 28 bytes, unk (trash?) vec4(float) rgba uint zero ushort index ushort dep ushort strLen ushort strLen2 uint unk if node_type == 1: mat4(float) trfm vec4(float) scl? bytes[strLen] label elif node_type == 2: mat4(float) trfm vec4(float) scl? 64 bytes, zeros elif node_type == 3: 64 bytes, prim_name 144 bytes, trash bytes[strLen] label elif node_type == 4: bytes[strLen] label elif node_type == 5: float unk float numCurve for x in range(numCurve): vec4(float) curv elif node_type == 6: 64 bytes, label bytes[strLen2] label2 elif node_type == 7: bytes[strLen] label elif node_type == 8: bytes[strLen] label mat4(float) trfm vec4(float) scl? 64 bytes, zeros elif node_type == 9: vec4(float) unk 24 bytes, trash elif node_type == 10: mat4(float) trfm vec4(float) scl? mat4(float) unk0 mat4(float) unk1 16 bytes, trash elif node_type == 12: bytes[strLen] label elif node_type == 13: 64 bytes, label 64 bytes, zeros uint unk0 uint unk1 elif node_type == 14: bytes[strLen] label mat4(float) trfm vec4(float) scl? # prim [860 bytes] 64 bytes, name 64 bytes, geo_name [~geo] 64 bytes, mat_name [~mat] 640 bytes, colorSet_name [~set] 32 bytes # txload [193 bytes] 64 bytes, name 128 bytes, nameFile [~map] uint ~allowcompression # material [332 bytes] 64 bytes, name 64 bytes, ~texa 64 bytes, ~texb 64 bytes, ~texnm 64 bytes, ~texdiffuseramp 3 uint, 3 param ~basis (default,vertex,particle) #geo 70 bytes, name (64+6) uint ~icount uint ~vcount uint ~unk(1) 64 bytes trash(?) 11 ushort (0-Vert; 1-Norm; 2-?; 3-?; 4-?; 5-uvs1; 6-?; 7-wi; 8-weight; 9-?; 10-trash) 11 uint (0-iofs; 1-vofs; 2-nofs; 3-?,4-?,5-?; 6-uv1ofs; 7-?; 8-wi; 9-weight; 10-?) DATA[...] buf>(vert-vec3(float);norm-vec3(halffloat);uv1-vec2(halffloat);wi-vec4(ubyte);weight-vec3(halffloat); # sound 64 bytes, name 64 bytes, path [~file] 64 bytes, banks_name [~banks] 3 uint, 3 param unk0 = 1 ~pan = 0 ~gain = 0.75 # soundbank 64 bytes, name uint, ~channels # clip 64 bytes, BankName 64 bytes, AnimName 64 bytes, HierName ushort, frame ushort, numBones 16 bytes, unk (trash IfII) for range(numBones): 68 bytes, BoneName uint, numElem uint, trash for range(numElem): uint, fmt (1000-pos; 1002-rot; 1003-scl; 1010-uv1; 1011-color) uint, type (41-uint; 37-vec2(float); 38-vec3(float); 40-quat(float)) ushort, numKeys ushort, unk (trash) array[keys] and bonus, plugin as unpacker arc_fmlb.py Edited August 15 by Durik256 Link to comment Share on other sites More sharing options...
Arfanu Posted September 12 Share Posted September 12 Hi @Durik256i researched some things comparing fml and fmlb files and i used to complete structure: #FMLB: 4 bytes magic (_FML) uint trash (0) uint version (8) uint trash (3) uint numFiles uint dataOfs uint dataSize(+4) 4 bytes ender (END>) 16 bytes trash (0) for x in range(numFiles): uint type (0) ushort istxload (1 true) (0 false) uint padding (0) ushort isref (1 true) (0 false) 64 bytes name (wiyh trash) uint data_ofs uint size ushort index ushort ender (>>) #types indside FMLB: 102 - hier 103 - txload 104 - material 107 - geo 108 - prim 113 - clip 114 - aniplug 116 - collis 123 - colorset seek dataOfs + data_ofs + index if type = 102 - hier # hier 64 bytes, nameHier (wiyh trash) uint numNodes vec3(float) bscenter float bsrad 140 bytes, trash for x in range(numNodes): uint node_type 64 bytes, nameNode (wiyh trash) 44 bytes, trash vec4(float) rgba uint padd ushort index ushort dep ushort strLen ushort strLen2 uint padd if node_type == 1: mat4(float) trfm vec4(float) sc bytes[strLen] label elif node_type == 2: mat4(float) trfm vec4(float) sc 64 bytes, trash elif node_type == 3: 64 bytes, prim_name (wiyh) 144 bytes, trash bytes[strLen] label elif node_type == 4: bytes[strLen] label elif node_type == 5: float run (1829.6) float numCurve for x in range(numCurve): vec4(float) curv elif node_type == 6: 64 bytes, label (wiyh trash) bytes[strLen2] label2 elif node_type == 7: bytes[strLen] label elif node_type == 8: bytes[strLen] label mat4(float) trfm vec4(float) sc 64 bytes, trash elif node_type == 9: vec4(float) ~hi ~hifade ~med ~medfade 24 bytes, trash elif node_type == 10: mat4(float) trfm vec4(float) sc 64 bytes, trash float visible 16 bytes, trash float sc x 16 bytes, trash float sc y 16 bytes, trash float sc z 16 bytes, trash elif node_type == 12: bytes[strLen] label elif node_type == 13: 64 bytes, label (wiyh trash) 136 bytes, trash elif node_type == 14: bytes[strLen] label mat4(float) trfm vec4(float) sc if type = 103 - txload # txload [193 bytes] 64 bytes, name (wiyh trash) 128 bytes, nameFile [~map] (wiyh trash) uint ~allowcompression # material [332 bytes] 64 bytes, name (wiyh trash) 64 bytes, ~texa (wiyh trash) 64 bytes, ~texb (wiyh trash) 64 bytes, ~texnm (wiyh trash) 64 bytes, ~texdiffuseramp (wiyh trash) 3 uint, 3 param ~basis (default,vertex,particle) #geo 70 bytes, name (64+6) uint ~icount uint ~vcount uint ~unk(1) 64 bytes, trash 11 ushort (0-Vert; 1-Norm; 2-?; 3-?; 4-?; 5-uvs1; 6-?; 7-wi; 8-weight; 9-?; 10-trash) 11 uint (0-iofs; 1-vofs; 2-nofs; 3-?,4-?,5-?; 6-uv1ofs; 7-?; 8-wi; 9-weight; 10-?) DATA[...] buf>(ushort;indices-vert-vec3(float);norm-vec3(halffloat);uv1-vec2(halffloat);wi-vec4(ubyte);weight-vec3(halffloat); # sound 64 bytes, name (wiyh trash) 64 bytes, path [~file] (wiyh trash) 64 bytes, banks_name [~banks] (wiyh trash) 3 uint, 3 param unk0 = 1 ~pan = 0 ~gain = 0.75 # soundbank 64 bytes, name (wiyh trash) uint, ~channels # clip 64 bytes, BankName (wiyh trash) 64 bytes, AnimName (wiyh trash) 64 bytes, HierName (wiyh trash) ushort, frame ushort, numBones 16 bytes, (trash) for range(numBones): 68 bytes, BoneName (wiyh trash) uint, numElem uint, trash for range(numElem): uint, fmt (1000-pos; 1002-rot; 1003-scl; 1010-uv1; 1011-color) uint, type (41-uint; 37-vec2(float); 38-vec3(float); 40-quat(float)) ushort, numKeys ushort, (trash) array[keys] But i am not 100% sure if is correct i need help to complete structure,if you want i can change unknow values and send screnshot of game and help to reserach Whats is exatly Link to comment Share on other sites More sharing options...
Arfanu Posted September 12 Share Posted September 12 To start i finded 116 - collis file type and in 107 - geo are related to collision in some files i can change values and test in game and you look for context Link to comment Share on other sites More sharing options...
Engineer Durik256 Posted September 12 Engineer Share Posted September 12 (edited) omg, just copied the structure from my message. I already regret that I once answered your message on xentax. Edited September 12 by Durik256 Link to comment Share on other sites More sharing options...
Arfanu Posted September 12 Share Posted September 12 Is the Same structure but with unk parts completed by me and i need to confirm if is real context Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now