Roman971 / OoT-Randomizer

A randomizer for Ocarina of Time.
Other
96 stars 21 forks source link

OoTRandomizer

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

WARNING: This branch is a modified version of the randomizer. It is not officially supported and may be very unstable. Please refrain from asking questions and from reporting issues in the main Randomizer Discord when using this branch. Instead, you can open an issue on this fork here or contact me directly on discord (Roman#7295) for any help, report or request.

Differences between this branch and the main Dev branch (on Testrunner's Fork):

Index

Installation

To run this program, 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:

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:

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.

Changelog

Dev

New Features

Bug Fixes

New Speedups

Other Changes

8.1

New Features

Bug Fixes

Other Changes

8.0

New Features

Bug Fixes

Other Changes

New Speedups

Plandomizer

7.1

Bug Fixes

GUI

Other Changes

Plandomizer

7.0

New Features

Bug fixes

Other changes

6.2

Bug fixes

Other changes

6.1

New Features

Bug Fixes

Other Changes

6.0

New Features

Gameplay
'ROM Options' settings
New 'Main Rules' settings and options
'Other' settings
Cosmetics/SFX

Updated Settings/Tricks

Bug Fixes

Other Changes

5.2

New Features

Updated Settings

Other Changes

Bug Fixes

5.1

New Features

Updated Settings

Bug Fixes

5.0

New Features

Major Changes

Updated Settings

Bug Fixes

4.0

New Features

New Options

Updated Features

Updated Options

Bug Fixes

Multiworld Changes

Development Version Changes