GithubHelp home page GithubHelp logo

marsolk / randomprime Goto Github PK

View Code? Open in Web Editor NEW

This project forked from randovania/randomprime

0.0 0.0 0.0 13.53 MB

Prime1 patcher for Randovania and a few other things.

License: MIT License

Shell 0.02% JavaScript 4.13% Rust 84.14% CSS 0.03% HTML 11.68% Batchfile 0.01%

randomprime's Introduction

randomprime

This repository implements a "patcher" for the subset of Metroid Prime versions released for the Nintendo Gamecube. In the simplest sense, it takes a game ISO as input, makes modifications defined by a JSON layout description, and then outputs a new ISO. The output ISO is officially compatible with Dolphin, Nintendont and GC Loader.

This repository contains no intellectual property for Metroid Prime. The only game-specific data present is information regarding the offsets/names of data known to exist on an unmodified copy of the game and custom-made assets. As such, users are required to provide their own legally obtained copy of Metroid Prime to use this patcher.

Features

To give you a taste of what's implemented, here are some highlighted features which are available via this program:

  • Relocate upgrades (a.k.a randomizer, the namesake of this repository)
  • Quality of life changes such as softlock fixes, crash fixes, hud changes, etc...
  • Modify scripting objects and scripting connections
  • Modify door colors, blast shields, room connections etc...
  • Place simple objects such as blocks, platforms, triggers, timers etc...

Usage

  • The application which best makes use of this program is randovania. It's a full-GUI application centered around randomizing the game with various settings, even supporting co-operative multiworld. It's implemented via the py-randomprime wrapper (described below)
  • Some "fanhacks" have been made utilizing the features exposed by this program more directly. They can be found in the metroid-prime-fanhacks repository. Be sure to check out the Creator's Guide for an in-depth dive into the patcher API and how to use it.
  • py-randomprime implements Python bindings for this project's feature set making it much more portable. The py-randomprime repository also builds standalone windows executable files (.exe) and attaches them to each release.

Documentation

The API is documented thoroughly at randovania.org/randomprime. Though a bit dated, some auxillary documents which may be useful can be found in the /doc/ folder.

Changelog

Updates to this program are documented as part of the py-randomprime Release Process. The versioning for py-randomprime follows Semantic Versioning. The version number exposed in the standalone application can be ignored.

Compiling

  1. Install a Rust compiler. It is recommended to use rustup.
  2. Add powerpc-unknown-linux-gnu as a target, like so: rustup target add --toolchain stable powerpc-unknown-linux-gnu
  3. Clone the repo and all its submodules: git clone https://github.com/randovania/randomprime --recursive
  4. Run cargo build

That should create a standalone executable in ./randomprime/target/debug/randomprime_patcher.exe.

Occasionally run rustup update to keep your toolchain version up-to-date.

Contributing

In order to pass this project's Pull Request requirements, your proposed change must pass the following checks:

cargo fmt --check
cargo clippy -- -D warnings

You can use these commands to fix most issues automatically:

cargo fmt
cargo clippy --fix --allow-dirty

Resources

Some helpful resources for those starting out with modding Metroid Prime can be found in the Metroid Prime Fanhacks repository. Furthermore there's:

randomprime's People

Contributors

toasterparty avatar aprilwade avatar ultinaruto avatar mrmiguel211 avatar gollop avatar henriquegemignani avatar bashprime avatar justindms avatar marsolk avatar miepee avatar ethanarmbrust avatar testpersonal avatar duncathan 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.