Jump to content

N64/Zelda hacking tools (DList conversion etc)


xdaniel
 Share

Recommended Posts

WARNING: Outdated, unfinished and outright broken tools below.

 

SorataVSE: Never finished, try SceneNavi for map editing instead. For viewing actors... don't ask me. ZSaten exists, but it's pretty crap.

 

Model2N64: Broken, do NOT use if you care about running your mods/hacks on an Everdrive 64, 64drive, etc. or accurate emulators, if they ever exist. Side note: Custom imports done using Flotonic's Hylian Toolbox are also broken, because it uses a modified version of Model2N64 for conversion.

 

Original post in spoiler...

 

 

I guess having a thread for my N64 stuff alone is a good idea... makes it more visible, compared to the actual random junk in that thread.

 


SorataVSE - "Visual Scene Editor" for OoT/MM:

 

Latest WIP demo build: http://magicstone.de/dzd/random/SorataVSE_test2-14022013-0246.rar

Build notes: http://www.the-gcn.com/topic/1815-n64zelda-hacking-tools-dlist-conversion-etc/?p=30717

 

2vXhzql.png

 

My latest take on a level editor viewer thingy, meant to reach at least feature parity with UoT R10. It's still an early work-in-progress, so the above demo build(s) might not feature things like editing and saving yet, or might be unstable, etc.

 


Model2N64 - Model to N64 F3DEX2 display list converter:

 

Website: http://magicstone.de/dzd/?page=programs

GCN logo model (as .obj & MapInfdev): http://magicstone.de/dzd/random/model2n64/gcn-test_2.rar

 

dGU8I.jpg

 

Old and supposedly temporary (*cough*) controls rundown:

 

Q/E/W/A/S/D is camera control, default mode is rotation. Hold Shift to change to camera translation, hold Space to speed movement up. Numpad 7/9/8/4/2/6 is light source movement. Lighting preview is NOT accurate. Right-click the 3D view for a menu where you can reset camera and light position, as well as dis-/enable the lightbulb marker. Numpad 5 also resets the light position.

 

Currently supported for opening are Wavefront .obj models and "MapInfdev intermediate" models (= what this program, or rather the model handling library I'm writing, converts everything into internally; gotta rename them tho), supported for saving are F3DEX2 binary files and, again, MapInfdev intermediate. F3DEX2 saving asks for RAM segment and base offset, then converts model and materials, saves them, and gives you a rundown of texture and display list addresses in the resulting file.

 

Right-clicking a group in the treeview allows you to change some flags, currently backface culling, lighting and texture coord generation (the reflection stuff I mentioned a while ago). Right-click a material allows you to change its color, horizontal and vertical texture wrap, and the combiner mux it uses after conversion (nearly untested, leave on auto-detect unless you want to test it :P).

 

The preview is, as usual, not necessarily indicative of how the converted model will look like in-game (lighting, texgen especially). Also note that this specific tool is meant for object models, not maps or somesuch, which is why it only creates textures and display lists - no collision, no headers, nothing of the sort. And finally note that I haven't yet tried to view anything this program converted in an actual game/emulator, only the old libbadRDP-based DLViewer. It's reasonably accurate but obviously not 100%, so you might encounter glitches I haven't seen during my "offline" or "dry" testing or whatever you wanna call it.

 

Edited by xdaniel
  • Like 11
Link to comment
Share on other sites

SanguinettiMods: Video might be a good idea, will see about making one. As for collision triangles, for one I don't really know how collision works on objects (format etc), and this was technically just intended to be a Display List converter. But if there's documentation on the wiki, or if you could point me to some otherwise, I guess I'll at least take a look.

Link to comment
Share on other sites

Collision really works no different then Scenes, except the collision can be stored inside the same object file, or its stored in the actor itself. However, the actor of course has to have reference to it. There was something else, I just don't remember what when spinout and I changed the entire graveyard sets with the one with MM's and added its correct collision as well, something about a float pointer?

  • Like 1
Link to comment
Share on other sites

Collision really works no different then Scenes, except the collision can be stored inside the same object file, or its stored in the actor itself. However, the actor of course has to have reference to it. There was something else, I just don't remember what when spinout and I changed the entire graveyard sets with the one with MM's and added its correct collision as well, something about a float pointer?

 

i figured collision worked the same, that means someone can hack all the actor collision flags so you can climb on top of people ahaha
  • Like 1
Link to comment
Share on other sites

Guess I will into collision data next week or so...

 

Also, xDan, I was curious how I am to achieve the "Shiny" effect on my own models?

 

In the program itself, all you have to do is right-click a group and then select TextureGen from the Flags submenu. You'll need to have some kind of texture on your surfaces, tho, which is what'll be "reflected" by the surface - I just used a small 16x16 greyscale gradient for the GCN logo.
Link to comment
Share on other sites

I get an "ArrayIndexOutOfBoundsException" when I open a Wavefront OBJ file... is there any reason for this? I made the geometry as simple as possible..

 

-image

 

I'm using Windows 7 64-bit OS, maybe that has something to do with it?

 

Airikita, I am on a W7 32-Bit OS and I get a similar error with SharpOcarina whenever I use an OBJ straight out of Google SketchUp. I usually have to run it through Blender or 3DS Max for it to work. While I'm unsure what actually causes the error, perhaps that is something to try--Running it through another program. Assuming Google SketchUp is what you used.

Link to comment
Share on other sites

Well, it's fine now... I just have a problem that needs to be solved.

 

The model renders fine in UoT, but doesn't show up in OoT... The head of the Gibdo is invisible. I think I might have an incorrect offset entered from its head, so I don't really know what to point to?

 

Here's the obj file for reference: http://www.tempfiles.net/download/201211/273410/alienhead2.html

 

Mind putting up one of Blender's .obj files somewhere? I'd like to take a look and see how messy or whatever they are, and if I can get them to load properly as-is.

 

Here's what it looks like coming from Blender: http://www.tempfiles...lender_obj.html

 

Although it doesn't matter... blender is a pain in the rump to get textures applied to a model either way.

Link to comment
Share on other sites

Sanguinetti, Airikita, could I get the .mtl files as well? At least Sanguinetti's .obj doesn't look like there's anything out of the ordinary, at least at the first glance, haven't looked at Airikita's yet. On second glance, one thing that bothers me is that "usemtl (null)"... the .mtl could be useful, yeah.

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

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