Skip to content
This repository has been archived by the owner on Aug 11, 2021. It is now read-only.

BashPrime/metroid-prime-randomizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Update (8/11/2021): Support for this application has ceased; please use Randovania instead.

Metroid Prime Randomizer

This application is an item randomizer for the video game Metroid Prime, powered by the randomprime patcher, Angular, TypeScript, Node.js and Electron.

Visit website

How it works

This program takes a disc image of Metroid Prime and shuffles the locations of all 100 items in the game world, allowing for a new and highly replayable gaming experience. Items are placed using a logic system to ensure that every seed is possible to complete, and additional checks can be enabled to minimize the risk of softlocking.

The randomizer is currently option-based, allowing the user to enable or disable restrictions and sequence breaking tricks as they wish.

Install

This section is to build the randomizer application from source. If you just want to use the randomizer and start playing randomized seeds, you can download it from the Releases page.

To build from source, you will need to install the 64-bit version of Node.js to install the application and its dependencies using npm. 32-bit builds of the randomizer are not supported currently.

You will need to install Rust. I recommend installing it via Rustup.

Install node-gyp globally on your system. Follow the instructions to install it on your given operating system.

The RandomPrime patcher requires the powerpc-unknown-linux-gnu target installed to build correctly. Run the following two rustup commands to install them.

rustup toolchain install nightly
rustup target add --toolchain nightly powerpc-unknown-linux-gnu

Once the above prerequisites are installed, run npm install to install the project dependencies and build the randomprime native Node module.

Build for Development

To run a development version of the application that auto-builds and auto-reloads as you make changes, run npm start. (Hot reloading does not work for the base Electron code at this time)

Build for Production

To build the project for production, run one of the following commands depending on your operating system:

  • Windows: npm run electron:windows
  • macOS: npm run electron:mac
  • Linux: npm run electron:linux

The randomizer application will be packaged in the release directory.

Special Thanks

  • Syncathetic, for creating the randomprime patcher that this project uses, and for providing significant contributions to this project.
  • Pwootage, for hosting the randomizer website, and for providing significant contributions to this project.
  • The Randovania development team for their inspiration and support.
  • The URDE development team.
  • Claris, for creating the first Metroid Prime/Metroid Prime 2 randomizer.
  • Interslice, for help with the higher difficulty item logic as well as creating the Metroid Prime Seed Generator (for Claris's randomizer).
  • Rekameohs, for creating the Metroid Prime Randomizer Script.
  • LLCoolDave, whose randomizer filling algorithm was the basis for what is used in this randomizer.
  • The Metroid Prime speedrunning and randomizer communities for their inspiration, support, and testing.
  • The Zelda: A Link to the Past, and Ocarina of Time randomizer communities for their support and design inspiration.