Git Product home page Git Product logo

nsmasr-v2's Introduction

Newer Super Mario All-Stars Revived

Newer Super Mario All-Stars Revived is a New Super Mario Bros. Wii mod which aims to be a Super Mario All-Stars remaster, featuring a modern take on gameplay and extra additions to the game.

Building Source Code

Premises

  • The guides below assume a certain level of savviness. Don't know how to do something? Look it up.
  • Don't like how the folder structure is laid out? Change it.

Requirements

Installation - Windows

  • Clone the GitHub repo to a folder of choice;
  • Install .NET 5.0 or higher if not already present, as it is required by Kamek;
  • Add Kamek to your PATH variable (restarting your device may be necessary in order for the change to be detected);
    • If this isn't possible, then edit the build scripts to match Kamek's path.
  • Run the CodeWarrior installer;
    • Only the Command Line Tools component is needed for compilation; you can set this in the custom install configuration.
  • Go to the cloned GitHub repo and make a folder named cw;
  • Go to the CodeWarrior installation directory and copy the contents of the PowerPC_EABI_Tools\Command_Line_Tools folder to the cw folder;
  • Copy license.dat and lmgr11.dll to the cw folder as well;
  • Run build.py to build the mod's code or loader. Make sure to check the notes section.

Installation - Mac

I'm not covering this. Figure it out yourself.

Installation - Linux

  • Clone the GitHub repo to a folder of choice;
  • CodeWarrior is a Windows application, therefore wine needs to be installed in order to run it;
  • Kamek requires dotnet to be installed, so get that as well;
  • Add Kamek to your PATH variable (sourcing may be necessary in order for the change to be detected);
  • Do NOT run the CodeWarrior installer in WINE, as the installer will fail;
  • Due to the above, you'll need to extract the needed files manually. To do so, first make sure the cabextract package is installed;
  • Place the CodeWarrior installer in the same folder as extractCW.sh, then run the script;
  • Run build.py to build the mod's code or loader.

Notes

  • The scripts automatically place the compiled binaries into the assets/game folder. Change them if you don't like it;
  • The game build script accepts a list of regions to compile the code to. If no regions are given, the code will be compiled for every region. The list is as follows:
    • P1 = EU v1;
    • P2 = EU v2;
    • E1 = US v1;
    • E2 = US v2;
    • J1 = JP v1;
    • J2 = JP v2;
    • K = KR;
    • W = TW;

Codebase

  • The codebase uses C++ and PowerPC Assembly. C++ is preferred for full function replacements and for any kind of complex logic;
  • No assumption about the use of registers by C++ code is made other than the ABI. If necessary, assembly wrappers are employed to restore/backup registers;
  • The headers attempt to keep a consistent naming scheme and respect the original game's names, definitions and structures. However, all class members are marked as public for ease of use;
  • As code is progressively added/updated, bugs may accidentally be introduced due to incompetence.

Resources

NOTE: Do not use this repository to ask modding questions! They will be left unanswered.

Generic Modding

Coding

Programming Documentation

nsmasr-v2's People

Contributors

clf78 avatar

Stargazers

NintenHero avatar wakanameko avatar B_squo avatar Autumn avatar Lami avatar Randonlyh avatar

Watchers

 avatar Lami avatar

Forkers

luigi-phys

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.