by Nokaubure at 09-23-2018, 07:03 PM
I realized a lot of people have similar problems regarding the usage of SharpOcarina, I will gather all of them in this topic. The only emulator taken into account is project64.

My map doesn't load! / crashes after opening a door! / crashes after exiting a grotto hole!

Go to Tools > Clear scene dma table, and select your ROM. If you're wondering why this isn't done by default, is because it prevents the ROM from being compressed. There's no harm in having an uncompressed ROM, and most common tools will continue working even if you remove it.

I get a blackscreen when launching the ROM!

Go to settings in project64, and change RAM size to 8. Pj64 reverts this option back to 4 everytime the CRC is recalculated.

I get a "permanent loop" error when launching the ROM!

Recalculate the CRC, you can do it with SO, either in the options tab or by clearing the dma table

My object file doesn't load in SO!

Can be various things, the most common is the model is not triangulated, or you used the wrong export settings in blender. Export settings for blender:

[Image: unknown.png?width=146&height=331]

Some of the textures in my scene doesn't appear correctly!

Make sure you follow the texture size standards

[Image: unknown.png]

My textures look glitched / very streched when I use render mode or I test it ingame!

This is an issue that mostly happens with Sketchup, you can use a tool for sm64 named texture fix. Note that you will no longer be able to use polytypes with the UI after using it.

Polytypes are not working!

This feature is kinda tricky to work. It checks for groups that have the same name on both the room and the collision file. Normally if you're getting this issue is because you used texture fix with a sketchup model. Your only way to fix this is by using the Tag system with the latest sharp ocarina version (0.97)

Tag system only works with the collision file. For a list of tags check XML\ModelFlags.xml

Example: a group named Floor#Sand#QuickSand will have the sand sound and the quicksand properties. For sketchup you must use FloorTAG_SandTAG_QuickSand because it doesn't support # character.

My multitextures look really bad!

Currently (and I can't give you a date on when this will be fixed) multitextures work very bad in SO. The best way to make them working is to use only 32x32 textures.

I made a title screen cutscene, but its crashing the game!

To make it working:

- Place epona object in the room
- Go to save file editor, and change the header of the title screen to 0000 (if it has no alternate headers) or FFF0 (to use the first cutscene header)
- Make sure you placed the title screen actor

After reading all of this post, my scene is still crashing!

Try all this stuff:

- Remove all actors and objects
- Remove all transitions
- Check the option "triplicate collision boundaries" in the option tab (I don't suggest leaving this enabled)
- Make sure the scene offset ends with a 0
- Use another scene ID

Hope this helps some lost people.
by Keilrod at 09-19-2018, 09:00 PM
I wanna you to know that this may be really basic for you but i'm kinda new in the oot modding community, i was briefly on maco64 forums back in the days, but i'm really trying to do something "cool" just now.

I think i'm getting allright with SharpOcarina and importing custom maps but Texture Explorer is pure mistery to me.

The texture lists are in "fileList.xml" in the "profiles/XXXX/" directories but even with those tools and informations i can't manage to extract and replace those damn textures (i aim the title screen as a starting point).

Where do you think i missed a step ? Simply opening the rom via Texture Explorer is not enough to gain access to the datas ? Maybe i should use the offset in "fileList.xml" in a smarter way to find desired texture ?

Thanks for reading ! ( but a bit of help would be also welcome Big Grin)

Edit : maybe i should've post it in Z64 section but because Texture Explorer is not limited to Zelda i suppose i didn't do wrong
by Nokaubure at 08-02-2018, 02:06 PM
I'm doing a series of tutorials for SharpOcarina, only 2 parts for now

Part 1: Your first custom map

by Stanleyblade at 06-29-2018, 03:18 AM
Which stage on scene navi is Adult Link's stage after beating the forest temple?

Because its not the enemy one which is stage 1. Would it be stage 2 or perhaps higher?

And also another question not related to the topic. Can you have 2 night time gold skelltulas not take up the same flag? Because a gold skeltulla that hsd variable of 3D04 conflicted with a 3D0C. Since this is Kokiri forest, would 3E04 not work? And how about bean sprout skelltula? I got 2 in the room but 1 sets the other.

And does that enemy count to a permanent flag so for example, actor 1 bronze boulder of 800C, when blown up, will Gold Sketullta 3D0C still be able to be obtainable when I reenter the room after the rock is gone
by Ostrealava02 at 06-14-2018, 01:32 PM
"The dmadata file consists of a table of records for every file in the game (including itself)."

The dmadata need to be updated for compressed ROM to be working correctly.
It contains every files of the game. (Scenes, Rooms, Objects, Actors etc..)
That means every single file you edited need to be updated in the dmadata ONLY if the size of the file is not the same as the original one.


Injecting a custom map (let's say 1 scene and 2 rooms) over Goron City. 

Goron City Scene size: A450
Goron City Room0 size: 127D0
Goron City Room1 size: 4200

New map Scene size: C850
New map Room0 size: 87A0
New map Room1 size: B990

As you can see, sizes are not matching between Goron City and the new map and you need to update the dmadata.
You can see size's file by saving binary and opening them in a hex editor.

How do I find my file in the dmadata?

The following table tells where the dmadata starts for each version of OoT

[Image: 6Qd52ss.png]

Each entry in the dmadata follow this form: XX XX XX XX YY YY YY YY XX XX XX XX 00 00 00 00

X: Start Offset of the file.
Y: End Offset of the file.

Finding the file in the data is pretty simple, for the next example I'll be using a hex editor (XVI32) and the Debug ROM.

Open your ROM.

[Image: rqGdJz1.png]

Use the "Find" tool and search for the Start offset and the End offset of the file you want to edit.

Goron City Scene start offset: 02A8F000
Goron City Scene end offset: 02A99450

That means you have to find the following hex string: 02 A8 F0 00 02 A9 94 50 02 A8 F0 00 00 00 00 00

[Image: G099rV4.png]

Here it is.

[Image: Ztp5GZ4.png]

Now edit the new Start offset and the new End offset.
Since I injected a new map at the same Start offset, I just need to edit the new End offset.

[Image: 1qTitiT.png]


This was only the Goron City scene, repeat for each files you have modified (such as rooms).


File List Debug:
File List 1.0:

dmadata table picture and quote from

Thanks to Nokaubure.
by mendaix at 06-11-2018, 09:54 PM
When it was created: November/18th/2015

This topic's utility is to collect a large amount of documentation about every actor, the main goal is to find what each variable possibility do on all the actors.

You want to help?
Tell me which actor (a description or the Actor number), tell me the variable(s) that you know, I verify if they work like you told me and I will add your knowledge and then I will credit you in the Documentation Variables of Actor list.

Information about...
Switch flag:
In Majora's Mask and Ocarina of Time, the Switch flag is one of the most importants things in the game, how it works?
An actor can check if a Switch flag is on or off and the actor acts depending of that, in almost every actor, we can choose the Switch flag number but there is something to not forget, a Switch flag works within the whole scene, if you have an actor activating the Switch flag 00 in the Room 0 and a door in the Room 4 that is only opened when the Switch flag 00 is on it will works but the vast majority of Zelda games never does that.
Something that may be overlooked, the Switch flag acts differently if you choose its number in a precise way:
Permanent Switch flags, stay on until you turn them off = 00-3F in Majora's Mask (00-1F in Ocarina of Time)
Temporary Switch flags, stay on until you, have a game over, leave the scene, turn them off = 40-5F in Majora's Mask (20-37 in Ocarina of Time)
Local Switch flags, stay on until you, leave the room, turn them off = 60-7F in Majora's Mask (38-3F in Ocarina of Time)

Documentation Variables of Actor list:

Thanks for reading!
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!
Welcome, Guest
You have to register before you can post on our site.


Search Forums

Forum Statistics
Members: 337
Latest member: BigChungus0710
Forum threads: 60
Forum posts: 161
Online Users
There are currently 7 online users.
0 Member(s) | 7 Guest(s)