Fast64 Ocarina of Time OoT Tutorial

Fast64 Ocarina of Time OoT Tutorial

How to Make Custom Zelda OOT Maps with Fast64 & Blender

Create your own custom map for The Legend of Zelda: Ocarina of Time has never been easier thanks to tools like Fast64 and Blender.

Whether you’re a ROM hacking enthusiast or a game modding beginner, this tutorial will guide you through the full process—from designing your 3D environment to exporting it into an OoT decomp project and populating it with interactive actors.

Get ready to bring your dream Hyrule dungeon, town, or battlefield to life with modern tools and step-by-step instructions.

This is the second tutorial in our Zelda Decomp Modding series. If you haven’t seen our first tutorial, “How to Install the Zelda Ocarina of Time (OoT) Decomp Project,” be sure to check it out.

Fast64 Blender Plugin Settings Documentation

Download & Install Fast64 Blender Plugin

First, make sure you have Blender installed on your computer and have downloaded the Fast64 add-on.

Your Blender version must be 3.2 or higher, but for the most stable experience, we recommend using version 4.0 or 4.1.

To install Fast64, open Blender and go to Edit > Preferences > Add-ons. In the top-right corner, click the down arrow and select Install from Disk. Locate and select the Fast64 ZIP file you downloaded.

Once installed, make sure to enable the checkbox next to the add-on name. In the Preferences window, you can also manually update Fast64 when a new version becomes available.

⚠️ Click Check now for fast64 update. Then click Install main / old version. Then select main and click Ok. This version has some bug fixes.

Install Fast 64 Blender Add On

Setup Fast64 For Zelda OoT Modding

After installation, return to Blender’s main window and press (N) on your keyboard to open the Fast64 side panel.

In Fast 64 Global Settings we need to change Game from SM64 (Super Mario 64) to OoT (Zelda Ocarina Of Time). Fast 64 is also compatible with Mario Kart 64.

Now, switch over to the new OOT panel that just appeared after switching the game setting.

Fast64 Side Menu Zelda OoT Settings

Fast 64 OoT File Settings

As Ocarina of Time has multiple versions, for this tutorial we are using the debug version: gc-eu-mq-dbg. This version is required for compatibility with Fast64 and the OoT decomp project.

Before we can start building, we need to specify the Decomp Path in Fast64. This path must point to the root folder of your decompilation repository.

For example:
\\wsl.localhost\Ubuntu\home\your-name\oot

Make sure to replace this path with the actual location of your own project folder.

Zelda Decomp Fast64 File Settings

Fast 64 Scene Setup

Now, click on the second tab in the Fast64 sidebar labeled “OOT Tools”—you’ll be using this tab frequently when working on your custom map.

Before we begin creating the level, it’s important to understand how the scene structure works in Blender with Fast64:

Blender uses a parenting system, and your map must follow a specific hierarchy to be compatible with the game. At the top of each map is a Scene object, which contains one or more Rooms. Each room is often separated by doors, and most maps have at least one Entrance, usually parented to the first room.

Objects such as entrances, actors, level geometry, doors, and water boxes must be parented to the correct room they appear in.

Select everything in blender (A) and Delete everything in the scene (X)

Create a Scene Object: OOT Tools >> Add Scene

SCENE

    • Room 1
      • Entrance
      • Level Geometry
      • Water Box
      • Actors (Enemy, NPC, Pot, Chest, etc.)
      • Door to Room 2
    • Room 2
Fast64 add a scene

Parenting In Blender

I usually like to parent the entrance to the room instead of the Level Geometry. To do this we can (shift click & drag) the entrance to the Room. You can also select the entrance or the (children) first then select the (Parent) last the room. Click (Ctrl+p) to bring up the parent menu. Then select Object (Keep transforms). To unparent an object you can use (Alt + p). A good way to remember this is as a parent you always put your children first.

Fast64 Scene Settings

Select the scene object in the outliner:

⚠️ (Make sure you’re in Object Mode—these settings won’t appear if you’re in Edit Mode.)

Open Object Properties Menu:
Click on the orange square icon in the bottom-right panel.
This is where you’ll find all the scene-related settings.

Fast64 organizes scene settings into five main tabs:

🛠️ 1) General Tab:

This is where you define core parameters like:

Global Object:
>> Dungeon (Add objects like switches)
>> Overworld (Add objects like cuttable Grass)

Draw Config: The Draw Config section allows you to control how certain visual effects are rendered in your scene—including animated textures like water.

Skybox Settings: The Skybox section lets you choose a background sky, from a standard blue sky to indoor settings like shops.

Music Sequence:

Map Location: (Pause menu map location)

Camera Mode: Lets you choose how the camera behaves in-game—whether it follows Link from behind (default), is fixed in place like in shops, or positioned overhead like in some Kokiri houses.

Fast 64 Scene Settings

💡2) Lighting Tab

These settings help replicate different moods or areas—like eerie dungeons or bright overworlds. Control the scene lighting for dawn, day, dusk and night. Fog color, density and draw distance.

🎬 3) Cutscenes Tab

Define cutscene triggers. Set camera paths. Control dialog and event timing. This is especially useful for intros or puzzle sequences.

🚪 4) Exit Tab

Used to set: Scene transitions linking between scenes.

🔄 5) Alternate Tab

This tab helps manage the scene headers, which control different states of the game. Child Link – Day, Child Link – Night, Adult Link – Day, Adult Link – Night. You can customize each header independently. For example, use a blue sky during the day for Child Link and a dark, stormy sky during the day for Adult Link. You can also add extra headers for cutscene-specific setups.

Fast 64 Scene Exit Tab

Fast64 Room Settings

Select the room object in the outliner:

⚠️ (Make sure you’re in Object Mode—these settings won’t appear if you’re in Edit Mode.)

Once you’ve selected the room, you’ll see three main tabs: General, Objects, and Alternate.

🛠️1) General Tab

This tab allows you to configure core room behavior:

Room Index: Each room must have a unique index, starting from 0. Since this is your first room, set it to 0. Always start with 0, then 1, then 2, and so on…

Room Behaviour: Control in-room limitations—e.g., disabling the Sun’s Song in dungeons.

Link Idle Mode: Sets idle animations for Link, like shivering in the Royal Tomb.

Disable Skybox / Sun & Moon: Useful for caves or indoor scenes where you want a completely black background.

Time Settings:

Leave Time Unchanged: Uncheck to set a custom time.

Time Speed: Set to 0 to freeze time completely.

All General Tab Options

Show Invisible Actors: Enable this if your map uses actors that toggle visibility in-game.

Room Shape: Choose between a normal 3D room or a background-only room (like in shops).

Echo: Echo controls the reverb effect on sounds and music in the room. Higher echo values simulate large or empty areas like caves or temples.

Wind: Wind is used in certain areas (like the Haunted Wasteland) to push Link in a direction. It’s rarely used but can add environmental challenge.

Fast64 Room Settings

🎭 2)  Objects Tab

Some actors require additional resources called objects. If you place an actor in your room, you may need to load its associated objects here for it to appear or behave correctly. This resource can be helpful to determine what objects you need to add for certain actors. So if you add an actor and its not working properly this is a good place to start to resolve the issue. The next is to open up the overlay code file. You can find the name of the code file from this resource as well. For example Kokiri Children have very specific requirements to load so might need look at or edit z_en_ko.c file to get them working correctly.

🔄 3) Alternate Tab

Works the same way as in the scene’s settings, allowing you to customize parameters for each game state (Child Day, Child Night, etc.) on a per-room basis.

Fast64 Room Settings Alternate Tab

Entrance Settings

Select the entrance object in the outliner:

⚠️ (Make sure you’re in Object Mode—these settings won’t appear if you’re in Edit Mode.)

Room: Specify the exact name of the room object in Blender that this entrance belongs to.

Spawn Index: Each entrance must have a unique index starting from 0, then 1, 2, 3, etc. For example, in a city map, you’ll need separate entrance points for each entry point.

Type: Controls how Link spawns into the room.
You can choose from different animations such as:

Walking in slowly

Falling (e.g., dropping into a cell)

Popping out of a grotto

Appearing from a blue warp

Use these settings to match the entrance style to the environment and narrative of your custom map.

Fast64 Entrance Tab

Geometry Settings

For your level geometry, it’s best practice to parent all meshes to one main object—you can name it something like “Floor”, “Level”, or “Geometry” for clarity.

Each mesh can be configured individually to:

  • Render visually in-game

  • Have collision properties (so Link can walk or interact with it)

This separation is important because the collision mesh is shared across all rooms in the scene. To optimize performance—especially for large maps—only include geometry that Link can physically touch in the collision mesh.

On the other hand an exit pad (a plane that teleports Link to another scene when touched) requires collision, but doesn’t need to render. You can create a simple invisible plane with collision enabled and then assign an exit id to the material to it to handle the transition.

Using this method helps keep your maps clean, efficient, and more stable during gameplay.

Fast64 Entrance Tab

Adding an Actor

To do this you need to add an “Empty”:
Click on Shift + A > Empty > (Plan Axis / Cube etc.)

We are going to rename it to “Breakable Pot” (or anything you prefer) and parent it to the Room, as actors need to be parented to the room they are in.

Object Type: Actor
We are going to replace the Object Type from None to Actor.

Then, click on “Select Actor ID” and type Breakable Pot.

Select drop collectable from the drop down.

List of Zelda OoT Actors – Includes photos & explanations of what each actor does.

Fast64 Actor Settings

You’ll notice that the Plain Axes have the letters X, Y, Z. The letter Y represents the back of the actor.

Fast64 Material Settings

To apply materials in Fast64 that are compatible with Ocarina of Time, follow these steps:

Select your mesh.

Open Material Menu:
In the side menu, click the Materials tab (red ball icon with a checkerboard texture).

Click “Create Fast3D Material” to generate an N64-compatible shader. 

⚠️ Important: All shaders used in your scene MUST be Fast64 shaders—regular Blender materials will cause error on export.

Recreate F3D Shader Nodes:
If your material appears black or glitched, click this button to regenerate the Fast3D shader node network. This often fixes visual bugs caused by Blender changes or corrupted nodes.

OoT Dynamic Material Properties (OPA)

In Ocarina of Time, Dynamic Material Properties—also referred to as OPA (opaque) material segments—are used to control animated or context-sensitive visuals in a scene, like moving water, shimmering effects, or changing textures. These are not static materials. Instead, they are updated every frame using code that runs during scene rendering.

Defined in z_scene_table.c
Each scene in the game’s scene table (SceneTable) can include a Draw Config Index, which determines which material update function is called.

Common Draw Config Segments (OPA)

Segment 8:
Segment A:
Segment B:
Segment C:
Segment D:
Custom Call (1):
Custom Call (2):

Fast64 Material Settings

Preset: Different Shader Types

OoT Shaded Solid: A flat color with no texture.

OoT Shaded Texture: A single texture mapped onto the mesh.

OoT Shaded Texture Cutout: A texture with alpha transparency, great for things like grass, webs, or fences.

[Type] Transparent: Full Transparent Textures

OoT Vertexed Colored [Type]: Supports vertex painting—useful for baked lighting or mood effects.

Multitexture Lerp: Allows two textures to be layered and blended.

Environment Mapped: Used for reflective effects, like the Mirror Shield.

OoT Unit Texture: Typically used for textures that shouldn’t be affected by lighting (flat and consistent in-game).

Fast 3D Material Presets for Zelda Oot

Texture Properties:

Note: The maximum size for a texture is 32×64. You cannot use a texture larger than this.

Texture Options: (Advanced / Optional)

Large Texture Mode: Large Texture Mode in Fast64 allows a material to use higher-resolution textures than the default N64 limits by splitting the texture into multiple tiles.

Use Texture Reference: Tells Blender and the exporter to reuse an existing texture reference instead of creating a duplicate entry for that texture during export. Prevents duplicate textures in your export when multiple materials use the same image.

Clamp S / Clamp T:  Prevents the texture from repeating horizontally (S = X axis) vertically (T = Y axis). Instead of tiling, the texture’s edge pixels are stretched.

Mirror S / Mirror T: Repeats the texture, but flips it every cycle (like a mirror reflection). Good for creating seamless patterns or decorative edges without obvious repetition.

Auto Set Other Properties: Automatically fills in other texture fields (like mask, shift, etc.) based on your texture and UV settings. Recommended for most users—helps prevent broken textures or invalid values. Leave this enabled unless you need very specific manual control.

Mask S / Mask T: Controls how much of the texture coordinate is used (powers of 2: 1, 2, 4, 8, 16, etc.). This essentially sets the repeat size of the texture.

Shift S / Shift T: Shifts the texture coordinates bitwise, which can be used for: Texture panning/scrolling, Controlling precision, Rarely adjusted manually—used in animated textures like water.

S/T Low & S/T High: Set the range of UV coordinates used for the texture. These can affect: Which part of the texture image is mapped. Animation blending or repeating offsets. Typically auto-managed unless doing manual UV tricks.

Prim LOD Fraction: Sets the level of detail blending between primitive color and texture. Higher values = more blend from the primitive color. Used in foggy areas or stylized lighting (e.g., a tinted floor with texture fade).

Min LOD Ratio: Controls when a lower LOD mipmap is used. Values range from 0–255. Helps with performance and blurring distant textures, but rarely adjusted unless optimizing heavily or customizing LOD fades.

OOT Collison Properties:

Fast64 also lets you set collision behavior per material. This controls how Link interacts with the surface:

Exit ID: Triggers a scene change when Link touches it. Start with 1 as 0 means no exit trigger. Then you can select what scene is loaded in scene settings > exit tab.

Sound: The Sound option in Fast64’s OoT Collision Properties sets the footstep sound effect Link hears when walking on the surface. You can choose from various presets like grass, stone, wood, metal, or sand to match the material type and enhance immersion.

All Collison Properties:

Camera ID: Determines which camera behavior is applied to Link when he walks on that surface. These camera behaviors are defined in the game’s camera table, and each one is identified by a unique Camera ID. Leaving the Camera ID at 0 will default to the standard following camera.

Blocks Epona: Determines whether Epona (Link’s horse) can walk on or pass through that surface. When enabled, it prevents Epona from entering or moving across that area.

Is Wall Damage: Makes the surface hurt Link when he touches it from the side, like spiked walls or flame barriers in the original game. It only applies when Link collides with the wall, not when walking on top of the surface.

Hookshotable: Determines whether Link can hookshot onto the surface. Enable this for objects like wooden targets, grappling surfaces that you want Link to be able to grab with the Hookshot.

Lighting:

0 – Lighting enabled (default; reacts to light)

1 – Lighting disabled (surface appears fully lit regardless of light sources)

Walkable: The Terrain setting in Fast64 controls how Link interacts with a surface—whether it’s walkable, slippery, or used for scene transitions. Options like Walkable, Steep, and Walkable (Preserves Exit Flags) define movement behavior and whether exit triggers are retained when Link crosses the surface.

Ignore Camera Collision: The surface is ignored by the camera system, allowing the camera to pass through it. Useful for tight spaces or invisible geometry that would otherwise block the view.

Ignore Actor Collision: Non-player actors (enemies, NPCs, etc.) can pass through this surface. Ideal for invisible triggers or when you don’t want certain actors to be blocked.

Ignore Projectile Collision: Projectiles (arrows, Deku seeds, etc.) will pass through this surface. Useful for effects, background objects, or invisible detection areas.

Floor Setting:

Determines how Link behaves when interacting with the surface from below or when standing on it.

All Floor Setting Options:

Default: Normal floor behavior—Link can walk and jump normally.

Void (Small): Instantly kills Link if he touches it—used for small pits or trap holes.

Grab Wall: Allows Link to grab onto the edge of the surface and climb up.

Stop Air Momentum: Stops Link’s falling momentum when he hits the surface (soft landing).

Fall Instead Of Jump: Forces Link to fall down instead of jumping—used for holes or trap doors.

Dive: Lets Link dive into water if he walks onto this surface.

Void (Large): Like Small Void, but for larger death zones (e.g., bottomless pits).

Custom: Reserved for custom behavior—usually requires coded support in your decomp.

Wall Setting:

The Wall Setting controls how Link interacts with the sides of surfaces—especially walls. This determines actions like grabbing, climbing, crawling, or pushing. 

All Wall Setting Options:

No Ledge Grab: Prevents Link from grabbing the ledge of this wall.

Ladder: Makes the wall climbable like a ladder—Link can move up/down freely.

Ladder Top: Marks the top of a ladder—needed for proper transition from climbing to standing.

Vines: Functions like a ladder but visually intended for climbable vines or nets. Link can also move side to side.

Crawl Space: Allows Link to enter a crawlspace when he approaches the wall (used in child-only areas).

Void (Large): Like Small Void, but for larger death zones (e.g., bottomless pits).

Push Block: Allows blocks to be pushed or pulled when touching this wall (like block puzzles).

Floor Property:

The Floor Property defines special behaviors for the surface when Link stands on or interacts with it from above. These settings influence gameplay effects like damage, movement changes, or camera behavior.

All Floor Property Options:

None: Default behavior—no special effects.

Haunted Wasteland Camera: Triggers special camera mode used in the Haunted Wasteland (fixed/foggy view).

Hurt Floor (Spikes): Damages Link over time when standing on it (used for spike traps).

Hurt Floor (Lava): Damages and knocks back Link—used for lava surfaces.

Shallow Sand: Causes Link to slide—used for ice or slick surfaces.

Slippery: Like Small Void, but for larger death zones (e.g., bottomless pits).

No Fall Damage: Prevents Link from taking damage when landing after a long fall.

Quicksand Crossing (Epona Uncrossable): Slows Link and prevents Epona from crossing (used for desert crossings).

Quicksand Crossing (Epona Crossable): Allows Epona to cross slow terrain like sand—used in modified sand zones.

Jabu Jabu’s Belly: Applies special bounce/movement effects used inside Lord Jabu-Jabu.

Link Looks Up: Forces Link to look upward (used to direct attention to events above).

Fast64 Texture Properties
Fast64 Material Collision Properties

Conveyor Option:

You can configure the conveyor direction and speed in the actor or collision setup, typically through vertex direction or parameters.

All Conveyor Options:

None: Default—no conveyor effect.

Land: Simulates a conveyor belt on land, pushing Link and objects in a set direction

Water: Simulates water current, pushing Link as if he’s swimming in moving water.

Adding a Door

In OOT Tools panel click add door
This will create a rectangle which is the collision object and an empty where you can change the door settings.

First we need to parent the door to the room.

When placing the actor make sure the Y-axis points towards the first room and the x directional axis is level with the floor.

Door Settings

Select Actor ID:
Choose the correct door actor type.

Type: Sets the behavior of the door. 

All Floor Property Options:

Loads Room: Basic loading of the next room (standard room transition).

Small Key Locked Door: Requires a dungeon key to open.

Scene Transition: This is good when you want link to go inside a house and transport to a new scene file right away. You will have an exit pad on the other side with a exit ID then set the location in scene settings exit tab.

Displays Textbox: Shows a message when approached (useful for storytelling).

Ajar (Slams on Approach): Appears slightly open and slams shut as you approach.

Time Locked (18:00–21:00): Only opens between in-game 6PM and 9PM.

Double Door:
If checked, enables double-door behavior.

Is Room Transition:
If check it will transfer link to a new room when he goes though it.

Room to Transition From:
Select the room facing Y direction.

Room to Transition To:
Select the next room this door transitions to.

Exporting Your Custom Map To Zelda OOT Decomp Project

Exporting Your Custom Map

Once your map is ready and everything is configured correctly, it’s time to export your custom scene into the game.

Save Your Blender File

Before exporting, make sure to save your .blend file. I recommend saving it to:

\\wsl.localhost\Ubuntu\home\your-name\oot\assets\Blender

⚠️ Do not place textures directly into your decomp folders:
Fast64 handles texture export automatically, and manually adding them can cause errors.

Using the OOT Scene Exporter

In the Fast64 side panel, go to the OOT tab, then open the “OOT Scene Exporter” section.

⚠️ Important Export Warning
Do NOT overwrite an existing vanilla scene from the game. Many scenes are hardcoded, and replacing them can cause hard-to-fix issues—especially for beginners.

Instead, we’ll create a new custom scene:

Scene Name: Choose a unique lowercase name (e.g., test_scene)

Enable:
✅ Export as Single File
✅ Custom Export Path

Export Path – choose the path based on your scene type:

oot\extracted\gc-eu-mq-dbg\assets\scenes\overworld\
oot\extracted\gc-eu-mq-dbg\assets\scenes\dungeons\
oot\extracted\gc-eu-mq-dbg\assets\scenes\shops\

Click Export Scene
If everything is configured properly, you’ll see a “Success” message in Blender.

Fast 64 Scene Exporter

❌ If you get an error, it likely means something is misconfigured—check your scene setup, room parenting, material settings, or texture assignments.

Common Problems: Something was locked in outliner and script cant export it. Using unsupported texture or shader. Having more than 1 exit with same ID. Not using proper parenting structure etc

Build the Game with Your Map

Now open your Ubuntu terminal.
Change directory to your decomp folder.
cd oot

Compile your decomp project:
make -j

Edit Spec File

Next, we’ll edit some C code files to load your new scene in-game—starting with the spec file.

Open the file located in:
oot/spec/spec

Scroll to the end of the file and add the following code.

//--------------- TEST_SCENE
beginseg
name "test_scene_scene"
compress
romalign 0x1000
include "$(BUILD_DIR)/assets/scenes/overworld/test_scene/test_scene_scene.o"
number 2 // ALL SCENES USE #2
endseg

beginseg
name "test_scene_room_0"
compress
romalign 0x1000
include "$(BUILD_DIR)/assets/scenes/overworld/test_scene/test_scene_room_0.o"
number 3 // ALL ROOMS USE #3
endseg

⚠️ You should always assign the number 2 to any custom scene and 3 to every room, regardless of how many rooms your scene contains.

Edit Scene Table

Open this file in your code editor:
oot/include/tables/scene_table.h
Scroll to the bottom of the file, and just before the line that says #if OOT_DEBUG, add your new custom scene entry like this:

DEFINE_SCENE(test_scene_scene, none, SCENE_TEST_SCENE, SDC_DEFAULT, 0, 0)

Edit Entrance Table

Open this file in your code editor:
oot\includes\tables\entrance_table.h


Scroll to the bottom of the file, add your new entrances. Add these 4 lines of code for each entrance you have in your scene. There are 4 headers per scene (Child Link Day, Child Link Night, Adult Link Day, Adult Link Night).

DEFINE_ENTRANCE(ENTR_TEST_SCENE_0, SCENE_TEST_SCENE, 0, false, false, TRANS_TYPE_FADE_WHITE, TRANS_TYPE_FADE_WHITE)

DEFINE_ENTRANCE(ENTR_TEST_SCENE_1, SCENE_TEST_SCENE, 0, false, false, TRANS_TYPE_FADE_WHITE, TRANS_TYPE_FADE_WHITE)

DEFINE_ENTRANCE(ENTR_TEST_SCENE_2, SCENE_TEST_SCENE, 0, false, false, TRANS_TYPE_FADE_WHITE, TRANS_TYPE_FADE_WHITE)

DEFINE_ENTRANCE(ENTR_TEST_SCENE_3, SCENE_TEST_SCENE, 0, false, false, TRANS_TYPE_FADE_WHITE, TRANS_TYPE_FADE_WHITE)

Explaining The Arguments

DEFINE_ENTRANCE()

Defines a new entrance point for Ocarina of Time. Each entrance tells the game where Link will spawn, what scene it belongs to, and how the transition should behave visually and audibly.

ENTR_TEST_SCENE_0

The spawn name for the entrance. This matches the name you defined for your entrance actor and determines where Link will appear.

SCENE_TEST_SCENE

The name of your custom scene, defined in  the spec file.

0

The spawn index, referring to which entrance point to use (e.g., 0, 1, 2, etc.).

false

Controls whether music continues playing during the transition. false fades out the music; true lets it continue.

false

Determines whether a title card (scene name) appears when entering. Set to true to show it; false to hide it.

TRANS_TYPE_FADE_WHITE

The fade-in color (screen transition after loading).

TRANS_TYPE_FADE_WHITE

The fade-out color (screen transition when exiting the previous scene).

Edit Map Select File

Open this file in your code editor:
oot\src\overlays\gamestates\ovl_select\z_select.c

Scroll down till you see
static MapSelectEntry sMapSelectEntries[]

Add this line of code at the top. It will allow you to select your scene.

{ "XXX: " GFXP_KATAKANA "TEST SCENE", MapSelect_LoadGame, ENTR_TEST_SCENE_0 },

Compile Your Decomp Project:

make -j

Test Game

Open rom in Project 64.
\oot\build\gc-eu-mq-dbg\oot-gc-eu-mq-dbg.z64

Potential Error: macros.h: No such file or directory.

If you get this error. Comment out the #include “macros.h” line in this file.
oot\assets\scenes\overworld\test_scene\test_scene_scene.h

⚠️ fatal error: macros.h: No such file or directory. compilation terminated.

You can fix this error permanently by installing the ‘main version’. When 2.4 version comes out this will also be fixed.

#include "ultra64.h"
// #include "macros.h"
#include "z64.h"
Custom Map Zelda OoT Decomp Fast64 In Game
Custom Map Zelda OoT Decomp Fast64 In Game

Animating Water Effects In Fast 64

Settings for Calm Water:

Oot shaded texture transparent with water texture

OOT Dynamic Material Properties (XLU)
✅ Segment 8 (XLU)

Scene Settings General:
Drag Config:
Calm Water

Geometry settings on water plane:
✅ Ignore Collision

Add Water Box
OOT Tools >> Add Water Box
Parent to room
Water box mesh material – Give it same water texture as geo

In scene_table.h
Change SDC_DEFAULT to SDC_CALM_WATER

Fast64 Animating Calm Water

You can discover the settings in z_scene_table.c for all draw configs if you can understand the C code.

OPA = Opaque Texture
XLU = Translucent Texture

Settings for Making a River:

Oot shaded Multitexture Lerp Transparent with water texture

OOT Dynamic Material Properties (XLU)
Check one of these options
✅ Segment 8 (XLU) = SUPER FAST
✅ Segment 9 (XLU) = MEDIUM SPEED
✅ Segment A (XLU) = SLOW SPEED

Scene Settings General:
Drag Config:
Zora’s River (Spot03)

Geometry settings on water plane:
✅ Ignore Collision

Add Water Box
OOT Tools >> Add Water Box
Parent to room
Water box mesh material – Give it same water texture as geo

In scene_table.h
Change SDC_DEFAULT to SDC_ZORAS_RIVER

Fast Moving Water River Effect Animation - Zelda Decomp & Fast64

Set Up Conveyor Collision Object
(This will make the water push link in a direction while swimming to simulate a current)

Duplicate the floor of the water.
– In Edit Mode select faces and duplicate with (shift +D)
– Right click >> Separate
– Move slightly above the waters floor

Parent new geometry the the room empty
Set it to ignore render
* Must have collision properties
Add Oot Shader Solid
Conveyor Option: Water
Conveyor Rotation: (Sets direction based off your preference)
Conveyor Speed: Fast | Slow | Medium (Based off your preference)

This tutorial is a work in progress there’s a lot to cover, and we’ll continue adding more detailed information over time. Be sure to check back later as we update this guide with new sections, tips, and walkthroughs. In the meantime, here are some additional tutorials to help you dive deeper into the Zelda Ocarina of Time Decomp Project.