Code Monkey home page Code Monkey logo

ssrando's Introduction

The Legend of Zelda - Skyward Sword Randomizer

This is a randomizer for the game The Legend of Zelda: Skyward Sword.

You can access most resources on the Skyward Sword Randomizer website; you can also come discuss or ask for help on the Skyward Sword Randomizer Discord.

Requirements

  • A computer (to run the randomizer)

  • A clean NTSC-U 1.00 ISO (MD5 hash: e7c39bb46cf938a5a030a01a677ef7d1)

  • The randomizer (see below for installation)

  • Something to run the randomized game:

    • An emulator (Dolphin is the most widely used one)
    • A homebrewed Wii that can launch games from an external medium, such as a SD card, a USB drive or an external hard drive. Visit https://wii.guide for homebrewing information

Installation

You can either run from a compiled binary (recommended for Windows, required for tournaments) or directly from source (jump here, recommended for Linux). Currently, only the command-line interface works for OSX; it needs an installation from source.

Installing from a compiled binary

  1. Choose the version of the randomizer on the website and download it
  2. Extract the ZIP file where you want to install the randomizer
    • if you already have another version installed, you can use the same folder for multiple instances and rename the executables to avoid conflicts
  3. Run the extracted executable (ssrando.exe)

Running the randomizer

  1. As indicated, select a clean NTSC-U 1.00 ISO. The randomizer will then check its integrity, which may take a few minutes
  2. Choose the folder where the randomized file will be created; by default, it is the randomizer installation folder
  3. Customize the settings to your liking. You can use permalinks to store and share selected settings
  4. Hit randomize; this may also take a few minutes

Playing the randomized game

The randomized game will only work if the game language is set to English, other languages will not work.

Do not use the game's hero-mode files, it will not work.
If you only want it to skip cutscenes, they are made skippable even in normal mode.
If you really wish to play on hero mode, select the "hero mode" option in the randomizer. When this option is selected, even if they don't appear as such in the menu, all files will be set to hero mode.

If you didn't follow these rules, your progress cannot be restored; delete the save from the Wii menu / Dolphin's toolbar and correct the settings to play the game.

For Dolphin

  1. Just open the generated SOUE01.wbfs in Dolphin

For console

  1. Move the generated SOUE01.wbfs to your external medium in this folder (the folder name may change depending on the game loader you are using):

    /wbfs/The Legend of Zelda Skyward Sword [SOUE01]/

  2. Launch the USB loader, you should see the game as "The Legend of Zelda Skyward Sword"

Installing from source

You will need Python (version 3.8 for Windows) and pip (which should come with Python)

  1. In a terminal, navigate to the directory where you want to install the randomizer (using cd)

  2. Clone the repository with git and enter the directory

     git clone https://github.com/ssrando/ssrando
     cd ssrando
    
  3. Choose the branch you want to run (gui-redesign is the most up-to-date), or the version you want to run (v1.x.x for stable releases, async-[month]-[yy] for async races; you can check the releases in Github):

     git checkout [BRANCH OR VERSION]
    

    Replace [BRANCH OR VERSION] with the desired branch or version in the command

  4. Install the dependencies:

     pip install -r requirements.txt
    

    If your system uses old versions of Python, you may need to replace pip with python3 -mpip

  5. Run the randomizer:

     python randoscript.py
    

    If your system uses old versions of Python, you may need to replace python with python3

The command-line interface

If you installed from source, you can run the randomizer without using the GUI by using --noui when running randoscript.py.

You will need to select the settings using the command-line options, use --help to list them.

For now, you have to run the GUI once so the ISO can be extracted (ask for a workaround in Discord if needed)

You can also pass options when launching the GUI, they will be pre-entered (this can be useful when creating a script to run the randomizer)

Model Customization

After running the randomizer once, a folder oarc will be created, which contains Link's model (Alink.arc) and his bird's (Bird_Link.arc)

To modify them, you need an external program. Then save the modified arcs (the name must stay the same) in the arc-replacements folder of the randomizer installation directory.

Tests

Tests need a source installation and an extracted ISO:

python -mpytest test

If your system uses old versions of Python, you may need to replace python with python3

Contributing

Contributions are always welcome! Discussion happens on Discord.

We are using black to format code; you can run black . to format all files.

To install developing dependencies (including black):

pip install -r requirements_dev.txt

If your system uses old versions of Python, you may need to replace pip with python3 -mpip

Executable

To build the executable, you need PyInstaller installed:

pip install -r requirements_build.txt

Then, build the executable using

pyinstaller ssrando.spec

Contributors

  • lepelog: Main developer
  • Peppernicus2000: Logic, fixes
  • Azer67: Logic
  • MrCheeze: Reverse engineering file formats
  • LagoLunatic: For implementing the logic for TWWR, which is also used here
  • DGod63: title screen logo
  • cjs07: GUI

ssrando's People

Contributors

peppernicus2000 avatar lepelog avatar cjs8487 avatar azer67 avatar yannl35133 avatar floha258 avatar marooncoffee avatar patrickmacarthur 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.