Jump to content

Dance Dance Revolution Wii .zmb files


Recommended Posts

Posted

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

  • 1 month later...
Posted

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.

image.png.74ba9dbca171a764e850c80ce611d6f4.png

This one controls the materials/textures and when i changed C0 to C1 this happened in the game:

SURPA4_2024-09-11_20-44-35.thumb.png.f229c44150ae544601652a9b3154a7ee.png

 

 

image.png.ee6cad13dd9f523ffdb7f9b9cd865571.png

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:

SURPA4_2024-09-11_20-41-54.thumb.png.ee4532e17872859cc76d0b6fb0515ba5.png

  • 2 months later...
  • 4 months later...
  • 2 weeks later...
  • Engineers
Posted (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 by shak-otay
Posted (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:

image.png.9cf07145737540f5e8989c04dc119353.png

 

The file in a hex editor:

image.png.86f3979bf2e91762b0170749528b4e4a.png

 

And if I change the byte in the address 0x91795603 the head mesh dissapears:

image.png.7676d63e41ac2ba3e5dfef33aa110df1.png

Edited by SheikP
  • Engineers
Posted
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)?

Posted
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...)

 

mesh_viewer_SZRsR9XQxY.png

I guess they did something weird in this format?

  • Engineers
Posted
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).

Posted
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?

Posted (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 by SheikP

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...