Coder Social home page Coder Social logo

oos-randomizer's Introduction

Oracle of Seasons randomizer

This program reads a Zelda: Oracle of Seasons ROM (probably JP version only; I haven't tested on EN/EU), shuffles the locations of key items, and writes the modified ROM to a new file. It also bypasses essence checks for overworld events that are necessary for progress, so the dungeons can be done in any order that the randomized items facilitate. However, you do have to collect all 8 essences to get the Maku Seed and finish the game.

The randomizer is relatively new, so consider it "beta" for now. See the issue tracker for known problems.

Usage

The randomizer uses a command-line interface, and I currently have no plans to implement a graphical one. It's a simple program (from the user's perspective), and command lines are not very hard.

The normal usage is ./oos-randomizer oos_original.gbc oos_randomized.gbc (or whatever filenames you want), but there are additional flags you can pass before the filename arguments to fine-tune the randomization, as displayed in the usage (./oos-randomizer -h) message:

Usage of ./oos-randomizer:
  -devcmd string
    	if given, run developer command
  -dryrun
    	don't write an output file for any operation
  -forbid string
    	comma-separated list of nodes that must not be reachable
  -goal string
    	comma-separated list of nodes that must be reachable (default "done")
  -maxlen int
    	if >= 0, maximum number of slotted items in the route (default -1)

Note that some combinations of these flags can result in impossible conditions, like -goal 'd1 essence' -forbid 'ember seeds'. See further below for an abbreviated list of possible -goal and -forbid nodes.

Regardless of the value of -maxlen, the randomizer will place items in all available slots. The flag just limits the number of slotted items that are necessary in order to reach the goal(s).

Download

You can download executables for Windows, MacOS, and Linux from the releases page.

Randomization notes

Most inventory items (equippable and non-equippable) that are necessary to complete a casual playthrough are shuffled, with some exceptions:

  • Purchasable items (bombs, shield, and strange flute) are not shuffled.
  • The rod of seasons is always in the temple.
  • The L-2 sword is always in the lost woods.
  • The ribbon and pirate's bell are not shuffled.
  • Maybe other stuff I'm forgetting

Items are only placed in locations where you would normally obtain another key item.

Sometimes useful rings (primarily the fist/expert's rings) are placed in slots instead of normal items.

Speedrunners should note that the Subrosian dancing prize could be important.

Potentially useful goal/forbid nodes

  • done, meaning defeating Onox
  • dX essence, where X is a number from 1-8
  • sword L-1
  • really just look at the files in the "prenode" folder if you want more

Remember that you can specify multiple nodes as goals/forbids by separating them with commas. Also remember to quote the strings lol

oos-randomizer's People

Contributors

jangler avatar stewmath avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.