SheikP Posted August 7, 2024 Posted August 7, 2024 Hi, i'm trying to extract the model from these games. I actually almost figured out how the .bin files (with a WII header) work but i'm having no much luck with the .zmb 3D models that are stored in them in the "character" folder, i hope someone can help me EMI_DDRHP5.zip
Engineers shak-otay Posted August 7, 2024 Engineers Posted August 7, 2024 Looks a little bit strange - so not sure about the face indices: EMI body zmb
SheikP Posted August 11, 2024 Author Posted August 11, 2024 Well i tried to make a noesis plugin following a tutorial and still i didnt have luck with this😔
SheikP Posted September 11, 2024 Author Posted September 11, 2024 So i was again looking to the files and i found some offsets that controls the materials/textures and the mesh. I'm using the head mesh as a example. This one controls the materials/textures and when i changed C0 to C1 this happened in the game: And this one controls the entire mesh (i believe) and if i change 50 to another byte like 51, the head mesh dissapeared in the game:
SheikP Posted November 17, 2024 Author Posted November 17, 2024 Did someone made some progress with this? 😭
Engineers shak-otay Posted April 13 Engineers Posted April 13 I did a search for zmb and found this. So seems you're a little bit on your own. Or you could tell where you got stuck with your Noesis script?
SheikP Posted April 28 Author Posted April 28 This is the script, like I said, I tried following some tutorials and using other scripts to know what i'm doing, but still, I don't know why is it failing.😭 fmt_ddrwii_zmb.py
Engineers shak-otay Posted April 28 Engineers Posted April 28 (edited) Well, I see you're using the old scripting style with msh = NoeMesh([], [], "mesh0", "mat0") and msh.set... It makes sense if you're a maxscript coder but rapi... is the "new" Noesis style with rapi.rpgBindPositionBufferOfs(...) for example. (MrAdults himself wrote about that on former Xentax in April 2020 afair.) But feel free to code as you prefer. Why do you think the vertex count can be found at offset 0x22 of a zmb file? (I found the start of vertices address (00011CC0) at 0x1E04 and the start address of the face index block (00004820) at 0x2024 but that might be pure coincidence. ) More research has to be done. edit: guess, we won't get far without a debugger. (Numbers < 65536 are logged decimal which could lead to some more confusion, sorry.) address 0x1e04: 00011cc0 00016004 0003c960 000414f0 00043d70 0 0 1 1 4 16 16 4 8 1 17864 00015a64 0001891c 000412e0 00043b50 00043d74 0 0 1 1 4 16 16 4 8 1 17944 00015b24 0001899c 00041310 00043b90 00043d78 0 0 1 1 2 8 8 2 4 1 18024 00015be4 00018a1c 00041340 00043bd0 00043d7c 0 0 1 1 2 8 8 2 4 1 18064 00015c44 00018a5c 00041358 00043bf0 00043d80 0 0 1 1 2 8 8 2 4 1 18104 00015ca4 00018a9c 00041370 00043c10 00043d84 0 0 1 1 4 16 16 2 8 1 18144 00015d04 00018adc 00041388 00043c30 00043d88 0 0 1 1 4 16 16 2 16 1 18224 00015dc4 00018b5c 000413a0 00043c70 00043d8c 0 0 1 1 8 32 32 26 16 1 18304 address 0x2024: 18464 32072 45680 59288 01000012 18576 32184 45792 59400 01000010 18648 32256 45864 59472 01000008 18712 32320 45928 59536 01000008 18744 32352 45960 59568 01000007 18776 32384 45992 59600 01000004 18804 32412 46020 59628 01000003 18820 32428 46036 59644 01000003 18832 32440 46048 59656 01000003 18844 32452 46060 59668 0001001f 18856 32464 46072 59680 00010017 18980 32588 46196 59804 00010015 19072 32680 46288 59896 00010013 19156 32764 46372 59980 0001000f 19232 32840 46448 60056 0001000f 19292 32900 46508 60116 0001000f address 0x2164: 19352 32960 46568 60176 0001000d 19412 33020 46628 60236 0001000b 19464 33072 46680 60288 0001000b 19508 33116 46724 60332 0001000a 19552 33160 46768 60376 00010008 19592 33200 46808 60416 00010008 19624 33232 46840 60448 00010007 19656 33264 46872 60480 00010007 19684 33292 46900 60508 00010007 19712 33320 46928 60536 00010007 19740 33348 46956 60564 00010007 19768 33376 46984 60592 00010007 19796 33404 47012 60620 00010007 19824 33432 47040 60648 00010006 19852 33460 47068 60676 00010005 19876 33484 47092 60700 00010005 Edited April 28 by shak-otay
SheikP Posted April 29 Author Posted April 29 (edited) I loaded the game and used Dolphin Memory Engine tool to see the file in the memory, and somehow the start of the file has some bytes changed. The file in the memory viewer: The file in a hex editor: And if I change the byte in the address 0x91795603 the head mesh dissapears: Edited April 29 by SheikP
Engineers shak-otay Posted April 29 Engineers Posted April 29 2 hours ago, SheikP said: I loaded the game and used Dolphin Memory Engine tool to see the file in the memory, and somehow the start of the file has some bytes changed. Is it possible to log the file in memory from "ZMB" up to the end of the block (around 280000 bytes at least)?
SheikP Posted April 29 Author Posted April 29 23 minutes ago, shak-otay said: Is it possible to log the file in memory from "ZMB" up to the end of the block (around 280000 bytes at least)? You mean like this? EMI_HEAD_MemoryDump.zip 1
Engineers shak-otay Posted April 29 Engineers Posted April 29 Yep. The mesh could be something, but when I use more than 113 vertices it looks uncommon. 113 verts (face indices don't rock...)
SheikP Posted April 29 Author Posted April 29 12 minutes ago, shak-otay said: Yep. The mesh could be something, but when I use more than 113 vertices it looks uncommon. 113 verts (face indices don't rock...) I guess they did something weird in this format?
Engineers shak-otay Posted April 29 Engineers Posted April 29 15 minutes ago, SheikP said: I guess they did something weird in this format? I wouldn't say so. From here it looks ok, except for the "tri strips building" problem that's often present for console games (something like a skip flag is needed).
SheikP Posted April 29 Author Posted April 29 11 minutes ago, shak-otay said: I wouldn't say so. From here it looks ok, except for the "tri strips building" problem that's often present for console games (something like a skip flag is needed). well i'm still a "noob" with scripts and researching 3d models😅 so i guess that is something not hard to do?
Engineers shak-otay Posted April 29 Engineers Posted April 29 Depends on the insight into the structs. You'll need experience or a debugger (or both).
SheikP Posted Tuesday at 08:18 PM Author Posted Tuesday at 08:18 PM (edited) Okay i just found that from offset 10432 to 14043 are the vertices stored, from 14044 to 16095 are the material parameters and from 16096 to 17699 is the uv mapping Edited Tuesday at 09:48 PM by SheikP
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