Jump to content

Wind Waker's Alpha Forest


Twili
 Share

Recommended Posts

I contacted JayTheHam some time last month to ask him where the files for it were, and this was his reply:

 

res/stage/A_R00 I think. the collision is either the .dzb or .dzr file. I don't recall what the program used to view them was and don't seem to have it any longer.

 

Jay

If you've read the Zelda Chaos page, you would know that the map file for it is missing. Well, I now know that it is. That page claimed that it was "not properly compiled(or in a different format)." I tried to load the map that was in the directory in BMDview2, and nothing showed up. So I opened it in a hex editor and saw lots of text. Then I opened it as a text document and it was clear that this was a Maya file:

 

<HeaderInfo>

map test_R00_siroroom

project projectMapTool

generator Maya

user DummyUser

version 1.31

date 2002/07/19

time 15:20

num_define 2

define_tag GroupDefine

define_tag PolygonDefine

</HeaderInfo>

 

The spacing of the above text is unfortunately not preserved in this post. I converted the polygons by hand (making a few mistakes here and there) and loaded part of this in UoT:

 

Posted Image

 

Then the rest of it:

 

Posted Image

 

At this moment I realized that the map for the forest no longer exists. I took a peek at the .dzb and .dzr files JayTheHam mentioned, and the .dzb file was the collision. I know this because I figured out enough of the format for it to get the triangles converted (with a program!). The vertex coordinates were single precision floats, so I had to write a function that converted them to decimal (like the IEEE-754 calculator online). This was the result:

 

Posted Image

 

See the triangles that form squares under those mushrooms? Those are for their shadows. This is proof that the collision file is one hundred percent identical to the map file (geometry-wise), because nothing is optimized.

Link to comment
Share on other sites

I wonder what caused them to remove the .bdl/.bmd for the forest? I mean, they still have beta versions of the last two rooms in the Tower of the Gods, for crying out loud! (Which, by the way, looked pretty nice. It's a shame they decided to change the aesthetics for the Tower.)

 

Hmm... Would it be possible to create a map file to replace the missing one?

Link to comment
Share on other sites

I wonder what caused them to remove the .bdl/.bmd for the forest? I mean, they still have beta versions of the last two rooms in the Tower of the Gods, for crying out loud! (Which, by the way, looked pretty nice. It's a shame they decided to change the aesthetics for the Tower.)

 

Hmm... Would it be possible to create a map file to replace the missing one?

 

You may see it loaded in the future.
Link to comment
Share on other sites

Very interesting, nice to see someone continuing where JTH left off. What makes you so sure there isn't any model data, and that it is all collision? Are there collision normals of any sort?

 

Also:

The vertex coordinates were single precision floats, so I had to write a function that converted them to decimal (like the IEEE-754 calculator online).

You do realize you can just do (int)float_var to get an integer from a float, right? There are other tricky things you can do, such as union { uint32_t i; float f; } value;, then value.i = U32(data); (int)value.f;. In n64tool, I made a macro which directly gets floats from data, using a union -

 

union {uint32_t u; float f;} ____u32_f32_union____; /* This variable is ONLY for the F32 macro ! */

#define U32(x) ((uint32_t)( (((uint8_t*)(x))[0]<<24)|(((uint8_t*)(x))[1]<<16)|(((uint8_t*)(x))[2]<<8)|((uint8_t*)(x))[3] ))

#define F32(x) ( ( (____u32_f32_union____.u = U32(x)) & 0) + ____u32_f32_union____.f)

 

Note to admins/management: [tt] tags and/or

 tags with better CSS that don't screw shit up, please and thanks!
Link to comment
Share on other sites

Note to admins/management: [tt] tags and/or
 tags with better CSS that don't screw shit up, please and thanks!

Sending a notice to Shadow Fire. He's been rather busy as I understand it and probably hasn't looked at the Feedback section.

 

On-topic: It's good to see some of the beta from Wind Waker being dug up en masse now. As far as loading the map in UoT, how is that possible? Did you rip and re-export the map in a compatible format, or is Wind Waker's map format natively compatible (enough)?

Link to comment
Share on other sites

What makes you so sure there isn't any model data, and that it is all collision? Are there collision normals of any sort?

 

There is model data, but not for the forest, and not in BMD format. Explained in the topic post. The only notes I have on the collision (.dzb file) are (with the alpha forest's as an example):

 

0x0: 00 00 0D 31 : Collision vertex count.

0x4: 00 00 00 34 : Offset to vertices.

0x8: 00 00 15 3D : Collision triangle count.

0xC: 00 00 9E 80 : offset to triangle definitions.

 

Collision vertices (0x34): C4 EE 56 BB C4 1F 3C A7 45 11 FE EB

 

Each vertex is 0xC bytes in length, three single precision floats.

 

Collision triangle definitions (0x9E80): 01 CD 00 C2 01 CE 00 00 00 02

 

Each definition is 0xA bytes in length, first three shorts represent three indexed vertices for the triangle. I don't know what the last four bytes are.

 

The header is 0x34 bytes in length (last four are a null terminator), and I only covered the first 0x10. Only what I needed to get the collision mesh.

 

As far as loading the map in UoT, how is that possible? Did you rip and re-export the map in a compatible format, or is Wind Waker's map format natively compatible (enough)?

 

I converted the collision vertices to a bare bones F3DZEX model file to view them in UoT.

Link to comment
Share on other sites

Posted Image

 

Nice!

 

NOw, how about converting to OBJ or maybe raw polygons? I'm not a programmer, but I would really like to import this into something more readable so that I can actually make out the general structure of the map, because it's pretty hard to do that with randomly colored polygons.

 

I'm beginning to wonder if this was the first version of the Outset Island forest... The Alpha Outset (as I call it) minimap suggests that it was radically different at that point.

 

Posted Image

Alpha Outset minimap

 

Note the drastically different forest map

 

Posted Image

Beta Outset minimap

 

The Beta map shows the final design of the forest

Link to comment
Share on other sites

  • 7 months later...

Well we still have to learn how to build BMDs with multiple textures, and other effects like vertex shading and raster operations (basically shaders before shaders even existed).And even then, we still need to know how to make DZB and DZR files reliably, though particularly DZB files because they will be CRITICAL to making custom maps, and all we can do is read them. We have a bit more experience with DZRs which may be just as critical.

Link to comment
Share on other sites

Somebody built upon my work further. :)

It took me some time to figure out how the hell to get the model converted but eventually I figured it out with help from Kargarok and others. Looking back at the process it took to convert the model to a bdl format, it wasn't too difficult to do but it certainly wasn't straight forward to be a simple procedure. But how the hell you were able to convert a dzb file to a google sketchup file in the first place is beyond me. It would be interesting if we could restore the old model by applying different textures(aka not all green...) to the bdl but I have no idea how to do that or where to even begin with it.
Link to comment
Share on other sites

It took me some time to figure out how the hell to get the model converted but eventually I figured it out with help from Kargarok and others. Looking back at the process it took to convert the model to a bdl format, it wasn't too difficult to do but it certainly wasn't straight forward to be a simple procedure. But how the hell you were able to convert a dzb file to a google sketchup file in the first place is beyond me. It would be interesting if we could restore the old model by applying different textures(aka not all green...) to the bdl but I have no idea how to do that or where to even begin with it.

I figured out the DZB format, enough of it at least to get the data for the collision triangles, and wrote a program to convert them to polygon data that the Nintendo 64 recognizes, then a friend of mine used a converter he wrote to convert the N64 model file to an OBJ file. He imported the OBJ file in Blender, and exported it as a 3ds file. He imported the 3ds file in SketchUp and saved a SKP file. :)Posted Image
Link to comment
Share on other sites

  • 8 months later...
 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.