Skip to content

OoTRandomizer/OoT-Randomizer

This branch is 6301 commits ahead of AmazingAmpharos/OoT-Randomizer:Dev.

Folders and files

NameName
Last commit message
Last commit date
Oct 28, 2024
Apr 7, 2025
Mar 22, 2025
Feb 25, 2025
Feb 25, 2025
Apr 7, 2025
Sep 30, 2024
Dec 21, 2022
Aug 2, 2022
Feb 10, 2024
Mar 30, 2025
Mar 30, 2025
Feb 24, 2025
May 19, 2023
Jul 21, 2024
Feb 23, 2025
Nov 9, 2024
Nov 1, 2023
Sep 13, 2024
Nov 9, 2024
Jun 25, 2024
May 19, 2023
Jan 27, 2025
Apr 9, 2025
May 19, 2023
Oct 23, 2024
Dec 8, 2024
Feb 3, 2025
May 19, 2023
Feb 16, 2024
May 20, 2024
Dec 8, 2024
Nov 1, 2023
Nov 1, 2023
Feb 3, 2025
Dec 29, 2024
Nov 1, 2023
Sep 30, 2024
Dec 7, 2024
May 19, 2023
Jul 24, 2023
Oct 14, 2023
Feb 11, 2025
Feb 3, 2025
Jun 16, 2024
Mar 23, 2025
Nov 9, 2024
Jan 22, 2025
Aug 12, 2023
Jun 25, 2024
May 19, 2023
Feb 8, 2025
Jun 16, 2024
Jul 17, 2023
Feb 10, 2024
Apr 22, 2024
Sep 30, 2024
Feb 20, 2025
Nov 29, 2023
May 19, 2023
Jun 16, 2023
Dec 14, 2024
Aug 10, 2023
Jan 14, 2025
Aug 26, 2023
Sep 30, 2024
Dec 12, 2024
Feb 3, 2025
May 19, 2023
Dec 25, 2022
May 19, 2023
May 19, 2023
Apr 9, 2025

Repository files navigation

OoTRandomizer

This is a randomizer for The Legend of Zelda: Ocarina of Time for the Nintendo 64.

Installation

It is strongly suggested users use the web generator from here:

https://ootrandomizer.com/

If you wish to run the script raw, clone this repository and either run Gui.py for a graphical interface or OoTRandomizer.py for the command line version. They both require Python 3.8+. To use the GUI, NodeJS (v20 LTS, with npm) will additionally need to be installed. NodeJS v14.14.0 and earlier are no longer supported. The first time Gui.py is run it will need to install necessary components, which could take a few minutes. Subsequent instances will run much quicker. Supported output formats are .z64 (N64/Emulator), .wad (Wii VC, channel IDs NICE/NRKE recommended), Uncompressed ROM (for developmental purposes, offline build only) and .zpf/.zpfz (patch files, for sharing seeds with others).

This randomizer requires The Legend of Zelda: Ocarina of Time version 1.0 NTSC-US. This randomizer includes an in-built decompressor, but if the user wishes a pre-decompressed ROM may be supplied as input. Please be sure your input ROM filename is either a .n64 or .z64 file. For users playing via any means other than on real N64 hardware, the use of the "Compress patched ROM" flag is strongly encouraged as uncompressed ROMs are impossible to inject for the Virtual Console and have random crashing problems on all emulators.

For general use, there are four recommended emulators: Project64 (v3.0+), Bizhawk, RetroArch and Dolphin (latest beta). All are race-legal when configured appropriately. In a nutshell the differences are:

  • Project64 is the lightest emulator and the easiest to setup, however, you will need the 3.0.0 version or later to run OoTR well (and earlier versions are not permitted for use in OoTR races).
  • Bizhawk is the most resource-intensive, but easier to set up than RetroArch and the only race-legal emulator to support Multiworld.
  • RetroArch is less resource-intensive than Bizhawk and the only of the three N64 emulators to work on platforms other than Windows, but it can be frustrating to set up.
  • Dolphin lets you emulate Wii VC, giving you access to faster pauses. It's also lightweight, available on other platforms than Windows, easy to setup (on Windows at least) and offers good native support with most Gamecube Controller Adapters. It does come with more lag, although that can be mitigated through overclocking (this is not permitted for racing).

Please follow the guides on our wiki carefully to ensure a stable game experience and that the settings requirements for races are met. OoTR can also be run on an N64 using an EverDrive, or on Wii Virtual Console. For questions and tech support we kindly refer you to our Discord.

General Description

This program takes The Legend of Zelda: Ocarina of Time and randomizes the locations of the items for a new, more dynamic play experience. Proper logic is used to ensure every seed is possible to complete without the use of glitches and will be safe from the possibility of softlocks with any possible usage of keys in dungeons.

The randomizer will ensure a glitchless path through the seed will exist, but the randomizer will not prevent the use of glitches for those players who enjoy that sort of thing, though we offer no guarantees that all glitches will have identical behavior to the original game. Glitchless can still mean that clever or unintuitive strategies may be required involving the use of things like Hover Boots, the Hookshot, or other items that may not have been as important in the original game.

Each major dungeon will earn you a random Spiritual Stone or Medallion once completed. The particular dungeons where these can be found, as well as other relevant dungeon information can be viewed in the pause menu by holding the D-Pad buttons on the C-Item Menu. Note, however, that the unlock conditions for dungeon information are settings-dependent.

As a service to the player in this very long game, many cutscenes have been greatly shortened or removed, and text is as often as possible either omitted or sped up. It is likely that someone somewhere will miss the owl's interjections; to that person, I'm sorry I guess?

Getting Stuck

With a game the size of Ocarina of Time, it's quite easy for new Randomizer players to get stuck in certain situations with no apparent path to progressing. Before reporting an issue, please make sure to check out our Logic wiki page. We also have many community members who can help out in our Discord.

Settings

The OoT Randomizer offers many different settings to customize your play experience. A comprehensive list can be found here.

Plandomizer

"Plan"-domizer is a feature that gives some additional control over the seed generation using a separate distribution file. In such a file you can:

  • Place items at specific locations or restrict items from being placed at specific locations.
  • Add or remove items from the item pool.
  • Select items to start with.
  • Set specific dungeons to be vanilla vs Master Quest.
  • Set which trials are required.
  • Set any regular settings.

Caveat: Plandomizer settings will override most settings in the main OoTR generator settings, particularly list-based settings like enabled tricks or starting inventory. For example, if the Plandomizer distribution file contains an empty list of starting items, and the generator settings include additional starting equipment, the player will start with none of them instead. You will have to edit the Plandomizer file to change such settings, or delete completely the line in the Plandomizer file with the given setting to allow the main generator to alter the setting.

See the Plandomizer wiki page for full details.

Custom Models

Save the .ZOBJ file of the desired model in data/Models/Adult or data/Models/Child. The file must be in .ZOBJ format (the compressed .PAK files are not compatible), but most Modloader64 models will work. Exceptions are models which are larger than the base Link models (the randomizer will give an error message) and those created on the new pipeline (technically load but the textures get wonky). Please see notes regarding known model files that are floating around in this spreadsheet before asking why a model doesn't work.

Once the models are saved, the program may be opened and the model(s) selected under the Cosmetics tab.

If the model's skeleton is similar enough to Link, the randomizer will use Link's skeleton. If it is substantially different, then a note will be placed on the pause screen to make it clear that the skeleton was changed.

Known issues

Unfortunately, a few known issues exist. These will hopefully be addressed in future versions.

  • The fishing minigame sometimes refuses to allow you to catch fish when playing specifically on Bizhawk. Save and Hard Reset (NOT savestate) and return to fix the issue. You should always Hard Reset to avoid this issue entirely.
  • Versions older than 3.0 of Project64 have known compatablity issues with OoTR. To avoid this either update to v3.0 and follow the rest of our Project64 guide or change to one of our other two supported emulators.
  • Executing the collection delay glitch on various NPCs may have unpredictable and undesirable consequences.
  • This randomizer is based on the 1.0 version of Ocarina of Time, so some of its specific bugs remain.

Changelog

The changelog has moved to CHANGELOG.md.

For an overview of settings additions by release, see the wiki.

About

A randomizer for Ocarina of Time.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 61.4%
  • C 18.6%
  • Assembly 8.9%
  • TypeScript 4.3%
  • SCSS 3.2%
  • HTML 1.5%
  • Other 2.1%