Jump to content

N64/Zelda hacking tools (DList conversion etc)


xdaniel
 Share

Recommended Posts

Something I'm trying to improve with SorataVSE is something that's been a problem with many of our tools, and is something that's been brought up by sakura and others before: they are too complicated. I mean, they're great tools for sure, but they're either too complicated for casual users to use, ex. SharpOcarina I guess, or missing vital features, ex. SayakaGL, I'd say. cooliscool was on the right track with UoT regarding all the things you can do with it, all wrapped up in a (relatively) simple GUI.

 

Now I very likely won't be able to single-handedly turn everything around, create a program that's both really, really simple to use but also powerful in what it can do, as well as spread the word around enough to make people switch from the antiquated UoT R10 (or older!). I am going to try my best tho, trying to look at the bigger picture from the casual end user's perspective, to make sure that it'll be easy to do things that, when done with existing tools or manually, would normally involve looking up lists on the wiki and/or busting out the calculator.

 

That's where I got the inspiration for the actor editing UI being described by XML files from, which allow the program to build the GUI around the actor, as opposed to squeezing the actor into a number, position, rotation and a variable. Another - albeit much less significant thing - is actually finding the area you want to edit. Assume you're a "newbie" who wants to edit the Forest Temple. Where do you find the main hall? I know that temple's files are prefixed Bmori1, and the hall is room file Bmori1_room_2. They likely don't know. So here's my solution to that problem - a really simple one at that: XML files that "translate" the scene and room filenames into human-readable names in the program.

 

Thus this...

 

 

 

<?xml version="1.0" encoding="utf-8" ?><SceneTable>  <Entry StartAddress="0x01FC2000" EndAddress="0x01FCFA20" Description="Inside the Deku Tree"></Entry>  <Entry StartAddress="0x0203A000" EndAddress="0x0204F140" Description="Dondogo's Cavern"></Entry>  <Entry StartAddress="0x020E0000" EndAddress="0x020F57E0" Description="Inside Jabu-Jabu's Belly"></Entry>  <Entry StartAddress="0x02149000" EndAddress="0x0215EF90" Description="Forest Temple"></Entry>  <Entry StartAddress="0x02213000" EndAddress="0x0222D7D0" Description="Fire Temple"></Entry>  <Entry StartAddress="0x0230B000" EndAddress="0x02320C30" Description="Water Temple"></Entry>  <Entry StartAddress="0x023DC000" EndAddress="0x023F5B20" Description="Spirit Temple"></Entry>  <Entry StartAddress="0x024EA000" EndAddress="0x025023C0" Description="Shadow Temple"></Entry>  <Entry StartAddress="0x0258E000" EndAddress="0x0259A590" Description="Bottom of the Well"></Entry>  <Entry StartAddress="0x025CC000" EndAddress="0x025DD6C0" Description="Ice Cavern"></Entry>[... ...]

 

...becomes this...

 

 

Posted Image

 

 

The room names aren't covered yet, but the code for that should be easy enough. The other thing is actually writing those human-readable descriptions, tho... Scenes are easy, there's plenty of lists already, plus most locales in the game have a descriptive name. Rooms on the other hand... well, some are easy like the aforementioned main hall in the Forest Temple - hands up if you don't know what room I mean - but nondescript corridors...? Well, that part's something for another day, I guess.

 

  • Like 1
Link to comment
Share on other sites

I really like the idea of a "Translated" file list. It even looks pretty clean. The room names; I can't really think of a way that you could title them to really let the user know what the room is, however, perhaps you could implement a hidden window containing a map like on the Map Subscreen in OoT? That's the only thing I could really think of; Floor and then a highlighted room.

Link to comment
Share on other sites

Well, I'm a noob at the hacking thing and your program SayakaGL was pretty cool. I tryed switching actor numbers around but it did'ent work out as I thought it would :P

but it was cool, I could move waypoints and actors as I pleased. your new one here looks awesome too. your right about that name part tho Idk what "Bmori1" means. I would just randomly click on the seance and try to figer it out as I go. so your programs seem user friendly to me. :)  but now I have a question, on your other programs SharpOcarina and Model2N64 to use these I need to first extract my OoT rom into parts, what program would I need to do this.

Link to comment
Share on other sites

I really like the idea of a "Translated" file list. It even looks pretty clean. The room names; I can't really think of a way that you could title them to really let the user know what the room is, however, perhaps you could implement a hidden window containing a map like on the Map Subscreen in OoT? That's the only thing I could really think of; Floor and then a highlighted room.

 

Hrm, do we know how the in-game map system works? Then I could try and make it find, read and use that data... Visualizing it would be something else still, but having access to that data would be helpful anyway.

 

Well, I'm a noob at the hacking thing and your program SayakaGL was pretty cool. I tryed switching actor numbers around but it did'ent work out as I thought it would :P

but it was cool, I could move waypoints and actors as I pleased. your new one here looks awesome too. your right about that name part tho Idk what "Bmori1" means. I would just randomly click on the seance and try to figer it out as I go. so your programs seem user friendly to me. :)  but now I have a question, on your other programs SharpOcarina and Model2N64 to use these I need to first extract my OoT rom into parts, what program would I need to do this.

 

Thanks for the comments :)  As for SharpOcarina and Model2N64, you don't need to extract anything from your OoT ROM, as both of them are supposed to create entirely new content - they don't even load anything from the ROMs in the first place. You need 3D models saved as .obj files, which you can load into the programs, which will in the end create N64- and/or OoT-compatible data.

Link to comment
Share on other sites

Hrm, do we know how the in-game map system works? Then I could try and make it find, read and use that data... Visualizing it would be something else still, but having access to that data would be helpful anyway.

 

I don't think there is any documentation on the map system at all; I was visualizing the map textures being loaded into the program and being placed on a grid. Depending on the room being viewed would decide which map part is highlighted. Then again, now that I think about it, it might be too much work to be worth it.

Link to comment
Share on other sites

What is it with no one reading the Readme file? You need to export your model from SketchUp into an .obj file, which the Pro version can do by itself I think, while for the normal one there's plugins; SharpOcarina doesn't support any other formats. Plus, you don't open them from the menu, but add them in the appropriate places on the "Scene (General)" and "Rooms" tabs.

 

Please don't take this the wrong way, it's just that I've had many questions before that can be answered simply by looking into the Readme file. SorataVSE will be easier to use (but will not be an importer, mind you), but for SO you... just have to get used to it, I guess.

  • Like 1
Link to comment
Share on other sites

What is it with no one reading the Readme file? 

 

I seriously laughed out loud. Anyone that deals in development or support knows that no one reads the ReadMe files before diving head first  :P

 

I see it all the time. dont take it personally xDan. People just apparently dont have the patience for it.

Link to comment
Share on other sites

I seriously laughed out loud. Anyone that deals in development or support knows that no one reads the ReadMe files before diving head first  :P

 

I see it all the time. dont take it personally xDan. People just apparently dont have the patience for it.

 

Yeah, in fact I guess I'm kinda like that, too... only difference being, I keep looking around and trying before I settle on "It doesn't work! Who's responsible for this?"

 

Being on the subject of usability, human-readable room names might not be that big of a problem. I just added room selection by right-clicking a room in the 3D view. So someone who wants to find a room can just let the program render them all (which is the default for scenes with more than one room anyway), then fly around the scene and right-click the room. It'll get selected, so only this room will be rendered, actors will be displayed, etc. Edit: Oh, right, and you deselect the room by simply right-clicking outside of it.

  • Like 1
Link to comment
Share on other sites

Is the tutorial for how to import custom dlists still up somewhere? It's been so long, I honestly don't remember how. 

 

 

EDIT: Also, Xdan, I wanted to let you (And the other developers on here) know, I've been kinda promoting this site some. There is a huge group of Zelda fans out here, and one of the managers at gamestop has been telling people about the URA expansion, and these modding tools and forums. Just thought you should know. 

Link to comment
Share on other sites

Is the tutorial for how to import custom dlists still up somewhere? It's been so long, I honestly don't remember how. 

 

 

EDIT: Also, Xdan, I wanted to let you (And the other developers on here) know, I've been kinda promoting this site some. There is a huge group of Zelda fans out here, and one of the managers at gamestop has been telling people about the URA expansion, and these modding tools and forums. Just thought you should know. 

 

I know there's no tutorials for my Model2N64 tool, and I'm not sure about the whereabouts of those for other importers like spinout's... If no one else knows, you could try looking around either here on the forums or on the wiki, although I'm not sure if there's any on either.

 

Promoting the site and Zelda 64 hacking in general sounds pretty cool - IMO it's about time the Ura project becomes more well-known outside our circles :P

 


As for Sorata...

 

Posted Image

Posted Image

 

...aaaaaand I just noticed a problem with unnecessary texture loads that fill up the cache... well, still a whole lot to fix and improve and implement...

 

Edit: Turns out the cache had a problem with textures at invalid addresses (meaning ex. the missing facial textures), and kept adding more and more yellow dummy textures to the cache instead of reusing the existing one. Changed it so the dummy doesn't get cached anymore, forgoing the cache in the first place - makes more sense anyway :P

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

just a question xdan, regarding  SharpOcarina, after hours of searching for a free export plugin and making a room with sketchup. I put it on SharpOcarina but it just stayed as a black background, no model. I read the "readme"  and it had nothing to say about a black screen. so I tryed the "demo Scene" but I got a error like the one I posted the other day could this be because I have a poor graphics card.

Link to comment
Share on other sites

SorataVSE new build: http://magicstone.de/dzd/random/SorataVSE_test1-09022013-0342.rar

No support for Link right now, many actors don't load or don't load correctly (particularly static ones, and everything using "non-standard" hierarchies/animations), some actors don't render correctly (ex. missing or errornous texture mapping, some have display lists that load but don't render for some reason, like the Zoras), some actors are simply out of view by default and you need to move the camera to find them ( :P; check "Display lists active" in the bottom left corner if something's supposed to render or not), etc., etc.

Also note the aforementioned improvements regarding room selection; right-click a room in a scene to select it, right-click outside of it to deselect it.

 


 

just a question xdan, regarding  SharpOcarina, after hours of searching for a free export plugin and making a room with sketchup. I put it on SharpOcarina but it just stayed as a black background, no model. I read the "readme"  and it had nothing to say about a black screen. so I tryed the "demo Scene" but I got a error like the one I posted the other day could this be because I have a poor graphics card.

 

You tried loading the demo scene via "File" -> "Open Scene", right? If the error's the same one you posted before, you should get a long log of the error if you press "Details". Mind if you post that here, preferably in spoiler tags as it's likely quite long? As for loading your own exported .obj files, you did create a new scene ("File" -> "New Scene"), then went to the "Rooms" tab, then clicked "Add Room", and then you still had a black screen after selecting and loading your model? That might be because it's too small. Try increasing the "Scale" option on the "General" tab; if that makes the model show up, you should scale it up in SketchUp. There's a guide by Flotonic that lists the correct sizes for things like doors and such, that should help you make everything the correct size.

Edited by xdaniel
Link to comment
Share on other sites

 

: SanguinettiMods, Posted Today, 08:50 PM

 

Sairugoth, did you Add a room under the rooms tab? Or did you only add the collision model?

The collision model isn't rendered by default.

yes, for the .obj file  I whent to New scene and add room, but nothing.

 

: xdan, Posted Today, 08:59 PM

 
 You tried loading the demo scene via "File" -> "Open Scene", right?If the error's the same one you posted before, you should get a long logof the error if you press "Details". Mind if you post that here,preferably in spoiler tags as it's likely quite long? As for loadingyour own exported .obj files, you did create a new scene ("File" ->"New Scene"), then went to the "Rooms" tab, then clicked "Add Room", andthen you still had a black screen after selecting and loading yourmodel? That might be because it's too small. Try increasing the "Scale"option on the "General" tab; if that makes the model show up, you shouldscale it up in SketchUp. There's a guide by Flotonic that lists thecorrect sizes for things like doors and such, that should help you makeeverything the correct size.

Here, but I warn you I'v never tryed spoiler, I'm just winging it. ^_^  it seams Idk how to quote properly either :P

 

 

See the end of this message for details on invokingjust-in-time (JIT) debugging instead of this dialog box.************** Exception Text **************System.IO.FileNotFoundException: Could not find file 'C:UsersSairugothDocumentsNEW COMPUTER REBRITHHack&CrackLOZooT editorsSharpOcarina-v06collision.obj'.File name: 'C:UsersSairugothDocumentsNEW COMPUTER REBRITHHack&CrackLOZooT editorsSharpOcarina-v06collision.obj'at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)at System.IO.StreamReader..ctor(String path)at System.IO.File.OpenText(String path)at SharpOcarina.ObjFile.ParseObj(String Filename) in C:Dokumente und EinstellungenDanielEigene DateienVisual Studio 2010ProjectsMapDevMapDevObjFile.cs:line 275at SharpOcarina.ObjFile..ctor(String Filename, Boolean IgnoreMats) in C:Dokumente und EinstellungenDanielEigene DateienVisual Studio 2010ProjectsMapDevMapDevObjFile.cs:line 41at SharpOcarina.MainForm.openSceneToolStripMenuItem_Click(Object sender, EventArgs e) in C:Dokumente und EinstellungenDanielEigene DateienVisual Studio 2010ProjectsMapDevMapDevMainForm.cs:line 914at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)at System.Windows.Forms.Control.WndProc(Message& m)at System.Windows.Forms.ScrollableControl.WndProc(Message& m)at System.Windows.Forms.ToolStrip.WndProc(Message& m)at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)************** Loaded Assemblies **************mscorlibAssembly Version: 4.0.0.0Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll----------------------------------------MapDevAssembly Version: 1.0.0.0Win32 Version: 1.0.0.0CodeBase: file:///C:/Users/Sairugoth/Documents/NEW%20COMPUTER%20REBRITH/Hack%26Crack/LOZooT%20editors/SharpOcarina-v06/MapDev.exe----------------------------------------System.Windows.FormsAssembly Version: 4.0.0.0Win32 Version: 4.0.30319.1 built by: RTMRelCodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll----------------------------------------System.DrawingAssembly Version: 4.0.0.0Win32 Version: 4.0.30319.1 built by: RTMRelCodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll----------------------------------------SystemAssembly Version: 4.0.0.0Win32 Version: 4.0.30319.1 built by: RTMRelCodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll----------------------------------------OpenTKAssembly Version: 1.0.0.0Win32 Version: 1.0.278.44921CodeBase: file:///C:/Users/Sairugoth/Documents/NEW%20COMPUTER%20REBRITH/Hack%26Crack/LOZooT%20editors/SharpOcarina-v06/OpenTK.DLL----------------------------------------OpenTK.GLControlAssembly Version: 1.0.0.0Win32 Version: 1.0.278.44921CodeBase: file:///C:/Users/Sairugoth/Documents/NEW%20COMPUTER%20REBRITH/Hack%26Crack/LOZooT%20editors/SharpOcarina-v06/OpenTK.GLControl.DLL----------------------------------------System.XmlAssembly Version: 4.0.0.0Win32 Version: 4.0.30319.1 built by: RTMRelCodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll----------------------------------------System.ConfigurationAssembly Version: 4.0.0.0Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll----------------------------------------hofid2swAssembly Version: 1.0.0.0Win32 Version: 4.0.30319.1 built by: RTMRelCodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll----------------------------------------************** JIT Debugging **************To enable just-in-time (JIT) debugging, the .config file for thisapplication or computer (machine.config) must have thejitDebugging value set in the system.windows.forms section.The application must also be compiled with debuggingenabled.For example:When JIT debugging is enabled, any unhandled exceptionwill be sent to the JIT debugger registered on the computerrather than be handled by this dialog box.

 

Link to comment
Share on other sites

yes, for the .obj file  I whent to New scene and add room, but nothing.

Here, but I warn you I'v never tryed spoiler, I'm just winging it. ^_^  it seams Idk how to quote properly either :P

 

[...]

 

************** Exception Text **************

System.IO.FileNotFoundException: Could not find file 'C:UsersSairugothDocumentsNEW COMPUTER REBRITHHack&CrackLOZooT editorsSharpOcarina-v06collision.obj'.

File name: 'C:UsersSairugothDocumentsNEW COMPUTER REBRITHHack&CrackLOZooT editorsSharpOcarina-v06collision.obj'

 

[...]

 

Ahh, yeah, a known bug in SharpOcarina regarding file locations...

 

Open up the "Demo Scene.xml" file in Notepad and look for the line "<CollisionFilename>collision.obj</CollisionFilename>". Add the full path to where that file is on your computer to that line. I'm guessing from the error message that it's at "C:UsersSairugothDocumentsNEW COMPUTER REBRITHHack&CrackLOZooT editorsSharpOcarina-v06democollision.obj". If that's correct, edit the line to read "<CollisionFilename>C:UsersSairugothDocumentsNEW COMPUTER REBRITHHack&CrackLOZooT editorsSharpOcarina-v06democollision.obj</CollisionFilename>". You'll probably have the same problem with each of the rooms' .obj files, so you need to fix their paths as well. That should hopefully fix it.

 

Also, let's continue the talk about SharpOcarina in its thread :P  http://www.the-gcn.com/topic/675-sharpocarina-zelda-oot-scene-development-system/

Link to comment
Share on other sites

Wow, this tool is shaping up to be amazing! So far what I've seen of it looks great, though just a few thoughts...

 

For the Zora Actor (En_Zo) it's actual model does not appear but its limbs and all of those dealings do. Is that just not implemented yet or is that a glitch?

 

Looking forward to this being usable though! Looks like it has great potential.

Link to comment
Share on other sites

 

No support for Link right now, many actors don't load or don't load correctly (particularly static ones, and everything using "non-standard" hierarchies/animations), some actors don't render correctly (ex. missing or errornous texture mapping, some have display lists that load but don't render for some reason, like the Zoras), some actors are simply out of view by default and you need to move the camera to find them (  :P; check "Display lists active" in the bottom left corner if something's supposed to render or not), etc., etc.

 

Also note the aforementioned improvements regarding room selection; right-click a room in a scene to select it, right-click outside of it to deselect it.

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

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