by Cado96 at 05-07-2018, 03:27 AM
This is meant to be a comprehensive guide on the usage of xdaniel's Sharp Ocarina, more recently updated by Nokabure.

First we're going to need to create a map to import of course.

[Image: Capture.png]

Once we have our map created, we're going to need to make everything one group. (Or object as Blender refers to them as), this should reduce lag in game.

In Blender it will look something like this.
[Image: Capture.png]

Now that that is done we are going to have to make groups for things that only actually need to be grouped. In Sharp Ocarina we will be able to make the water in this map transparent and animated, so that needs to be a separate group.

[Image: Capture.png]

Now that we have separated anything that strictly needs to be grouped, we need create a collision model. Basically the way OoT works is that there is one model that is loaded that is what the player actually sees, and another that is what the player can walk on and interact with, which is called the collision model. In this case if we were to import the same collision model and the same visual model Link would walk on top of the water, so this needs to be removed for our collision model.

Now that you have the two models you will need to export both as a Wavefront OBJ.

Make sure to triangulate all faces when exporting, if you're using Blender your settings should look like this.
[Image: Capture.png]

Also if you're using Sketchup they should look like this.

[Image: Capture.png]

Now that that is all done we're ready to import.


Open Sharp Ocarina and go to File > New Scene

It should look something like this.

[Image: Capture.png]

First name the scene if you would like, then set the special object to Dungeon if you're creating a dungeon, or overworld if this is an overworld map.

Then import your collision model.

If you intend to have animated textures like water set the scene function to use animated textures.

Now go over to the room tab.

Rooms ---------------------

Now go over to the room tab.

Go over here to where it says "Add Room" and load the visual model.

[Image: Capture.png]

Now that you have imported your model you should see all the groups you created earlier.

[Image: Capture.png]

For our water group we can enable transparency by lowering the alpha value, and we can also make it animate by checking the "Animated" box.

Waterboxes ---------------------

Currently if we were to import our map into the game Link wouldn't actually swim in the water, so to fix this we need to go back to the general tab.

Here we can add a waterbox to our map.

[Image: Capture.png]

As you can probably tell, the waterbox is too large and is not in the correct place, so we need to adjust the X and Z size, while also changing the X, Y, and Z positions.

Once you have configured the waterbox how you like, set the "Room:" value to 00.

And there we go!
[Image: Capture.png]

Scene Environment---------------------

Now that we're done with that we can head over to the Scene Environment tab. Everything here is pretty self explanatory, set everything to be how you like.

[Image: Capture.png]

Here is what I ended up with.

Room Environment---------------------

Now let's take a lot at the Room Environment tab. Everything here also kind of explains itself. If you want time to be frozen in your map set "Time Speed:" to 00.

[Image: Capture.png]

And there we go.

Objects and Actors---------------------

Now time for the fun part, adding actors. Actors are going to be the enemies, NPCs, cuccos, Trees, you name it that will be in our map.

[Image: Capture.png]
To add an actor simply hit the "Add" button in the Actor section.

Now that our actor is added into the map we need to define what the actor actually is. To do so hit this button that kind of looks like a Mario pipe.

[Image: Capture.png]

This will open up a window where you can choose which actor you would like. Once you are done with that you can move the actor around by changing it's X, Y, and Z positions.


Once you have finished adding actors in to your map you are finally ready to see your model in game! Go to File > Inject to ROM, and choose your OoT Debug ROM that you want to inject to. Sharp Ocarina will automatically add the objects that the actors need and inject your map into the ROM.

By default Sharp Ocarina will inject to Room 117 on the Map Select Screen.

[Image: Capture.png]
And here we are!
[Image: Capture.png]

[Image: Capture.png]

Hopefully this guide was useful, if you have any suggestions please let me know!
by mzxrules at 04-16-2018, 12:27 AM
Presenting Atom for Windows 10:

Atom is intended to be the ultimate all in one tool for creating custom overlays for the Zelda64 engine. While it's not quite there yet, I'd like to release what I have right now.

Atom is capable of generating a complete disassembly of NTSC 1.0 and the Debug Rom, and a partial disassembly of Majora's Mask J 1.0. Overlay disassemblies generated by this program are compatible with gcc, unless you specify the more readable option.

More importantly, Atom is capable of converting an elf object file (.o) into an overlay. From my testing, a binary generated from converting an overlay -> assembly -> .o -> overlay is functionally identical to the original, with only small parts of relocation data shifted around.

In order to disassemble a rom, or disassemble a single overlay from a rom, you must use the path command to set up the location of the rom you want to disassemble. This will create/modify a file called rom_path.xml. Once that's done, you can re-run the program and simply provide the gameid and versionid parameters to reference the rom of your choice when using the other commands.

for the gameid parameter, use "oot" or "mm" to represent Ocarina of Time or Majora's Mask. 

for the versionid parameter, the following ids are supported for Ocarina of Time:

N0, //NTSC 1.0
N1, //NTSC 1.1
N2, //NTSC 1.2

P0, //PAL 1.0 
P1, //PAL 1.1




For Majora's Mask, the following ids are supported:


For converting elf object files into overlays, there are two commands: ovl and script.

ovl is pretty straightforward, but with the additional hidden feature in that if the symbol "initVars" appears in the object file, it will report back the address that the symbol was relocated to. 

script allows for the automatic conversion of an elf file and injection the resultant overlay file into a rom. There are no safety checks performed to make sure that you injection addresses are accurate, so backing up your rom before injection is highly recommended.

the script format itself is actually a very simple xml format. the newscript command will generate "dummy.xml" which contains an example of all the parameters needed for the injection process.

One feature of the elf -> ovl conversion is that in theory, you can define your own custom sections provided that they begin with .text, .data, .rodata, and possibly .bss
by Cember at 03-26-2018, 12:07 AM
Let's be real, game design has been a hot topic among games over the past couple years and the Legend of Zelda has been a big part of the discussion through it all. It's a series full of interesting puzzles and design quirks that's spanned, like, 30 years or something, so naturally it's gonna spark some opinions. 

So, what are your opinions? On the design of Zelda/Ocarina of Time?  Are there any things you like, or dislike, or are there certain aspects of the game/s where you think things could have been improved? 

Maybe you've even got a couple puzzle and design ideas of your own rolling around in your head? C'mon! I know you do! Even if OOT is a game we don't fully understand how to modify yet, it's still fun to just discuss and talk about these things and what we could possibly do with this ~20 year old game. Feel free to share!
by Rinku at 03-21-2018, 07:48 AM
Hey there,

Just wanted to ask, are there still people into mapping (as in, actively creating 3D maps/dungeons and importing them into the game)?
I used to make some maps back then when I was into Z64 hacking a few years ago. They weren't meant for a game though, I used them to test and document things to contribute to the wiki.

Now, I would like to try out that neat new SharpOcarina version. The thing is, I can't manage to import my map. Back then I was using the old SharpOcarina by xdaniel, and probably an old version of Sketchup, too, and some .obj exporter plugin.

Now, I have Sketchup 2015 and I tried a few free .obj plugins, but everytime I import it into SharpOcarina, nothing happens (checked for collision, too, but nothing's there, and when I add rooms with textures nothing happens either, the only visible thing is Link's spawnpoint).
I also tried to export .dae from Sketchup and import and convert it to .obj with blender (I can't use blender except for that conversion thing), which works wonder for Banjo-Kazooie hacking but here it's without results.
I don't want to buy Sketchup Pro to get that official .obj exporter, either.

Recently, I've seen some guy named JeddyDee on Youtube who seems to be quite active in mapping. So, I wanted to ask, if there's anyone around who's still into creating maps:

Which 3D modeling tool are you using?
If you are using Sketchup, which version are you using?
And do you recommend (and maybe mind to share) any good free .obj plugin that produces nice results compatible with the new SharpOcarina?

Thank you so much!
by Nokaubure at 03-11-2018, 01:07 PM
Just a reupload because I can't find it anywere on the internet!fchzzLiC!BJ0MuiE98s2jt4bmXnuD7_00LcbfcJB8_6hXJQriOeQ

Added an example of usage in launch.bat

This tool was made by Spinout
by Copen-08 at 02-23-2018, 12:24 AM
Hey, all. What are you guys working on outside of the Zelda Modding scene?

I'm working on a few cool projects myself. One of which is a free input library that hopes to make Unity3D not have bad Input systems. Here's a link if you guys want to check it out:

How about you guys? Working on anything cool?
by FantymSyreuth at 02-22-2018, 09:35 PM

I've always wanted to get into Zelda modding, and eventually game programming and design. I started a project named "War of The Triforce" back in early 2014 and all I really could do was just make the 3D assets and graphics. Game design was not a hobby or a job I was built to do and I have found that out real quick after getting a little too ahead of myself. I've uploaded a majority of what I made onto a zip file.
Anyone can have it, its up for grabs. I hope that some of you here can use what I made in your mods. Thank you Smile.

by Copen-08 at 02-22-2018, 08:01 PM

So this place seems like a great place to get the Zelda Modding community back on track, but I think it'd be a good idea to make this place about both Zelda Modding, and the community.

I've been taking peeks at the Zelda Hacking Community since ZSO, and I'd like to know what the big players are doing these days. I'd also like to know if any members of Hylian Modding are doing anything cool outside Zelda.

I have projects I'd like to post about myself, like ZeroInput -

I think having a "Other Projects" board would make these forums more interesting for people with development/modding knowhow so they stick around longer, and can be around to help people having trouble with modding, and/or other things.

I would like to hear what y'all's thoughts on the subject are as well.
by AriaHiro64 at 02-17-2018, 04:07 AM

oot debug ini (use sin and punishment)
#Debug ROM
RetraceByVsync = 1
UseTimer = 1
RSPMultiCore = 0

NeedPreParse = 1
DoubleFillCheck = 1
CopyAlphaForceOne = 1
NeedTileSizeCheck = 1
ZClip = 0

mm debug (use majoras mask)
;Majora US
RetraceByVsync = 0
TicksPerFrame = 783250
UseTimer = 1

RIntAfterGTask = 0

BufFull = 0x3800

BlockSize = 0x3000

CopyDepthBuffer = 1
UseColorDither = 0; To fix NOA BTS No.515
NeedTileSizeCheck = 1
TileSizeCheckSpecial = 1
PreparseTMEMBlock = 1
ZClip = 0
ClipLeft = 5
by mendaix at 01-31-2018, 12:05 AM
When it was created: April/2nd/2016

The Actor Rotation is very straight-forward, you adjust the rotation of a actor how you want, in this topic there's documentation for the most important rotations,
The Actor Time Schedule is a lot more complicated, you can choose when you want a actor to be existing.
When a actor is in the game, the actor's Time Schedule determines if the actor needs to appear depending what day it is and if it is daytime or nighttime.

Three bits of Time Schedule:
- During the daytime of the first day (1st-Daytime).
- During the nighttime of the day before the first day (0th-Nighttime).
- During the daytime of the day before the first day (0th-Daytime).
Seven bits of Time Schedule:
- During the nighttime of the day after the third day (4th-Nighttime).
- During the daytime of the day after the third day (4th-Daytime).
- During the nighttime of the third day (3rd-Nighttime).
- During the daytime of the third day (3rd-Daytime).

- During the nighttime of the second day (2nd-Nighttime).
- During the daytime of the second day (2nd-Daytime).
- During the nighttime of the first day (1st-Nighttime).

X Rotation-Three bits of Time Schedule: XXTT
XX [X Rotation]
TT [Three bits of Time Schedule]
Y Rotation-Unrelated: YY~~
YY [Y Rotation]
Z Rotation-Seven bits of Time Schedule: ZZSS
ZZ [Z Rotation]
~S [~0-~F of the Seven bits of Time Schedule]
S~ [0~-7~ of the Seven bits of Time Schedule]

Actor Rotation, 12 examples:
X Rotation
Y Rotation
Z Rotation

Actor Time Schedule example:
In this video, I edit 3 actors that by default does not disappear during nighttime:

It was really time consuming doing this topic,
I hope it is useful.
Welcome, Guest
You have to register before you can post on our site.


Search Forums

Forum Statistics
Members: 140
Latest member: linkiwi
Forum threads: 43
Forum posts: 107
Online Users
There are currently 5 online users.
0 Member(s) | 5 Guest(s)