Giter Club home page Giter Club logo

nsmbw-decomp's Introduction

NSMBW-Decomp

Progress badge DOL Progress badge d_profileNP Progress badge d_basesNP Progress badge d_en_bossNP

A decompilation project of New Super Mario Bros. Wii, based on the PALv1 binaries.

Quick links

Overview

The build essentially consists of 3 steps:

1. Compilation

All source files get compiled and the corresponding object files placed in bin/compiled/.

2. Slicing

Since most of the binary does not have a corresponding decompiled source file, in order to produce a 1:1 match for the generated binaries, these parts must be extracted from the original files. The slices generates object files in bin/sliced/ from the slice information files in slices/.

3. Linking and rebuilding

All compiled object files and the remaining sliced object files are linked together to form the final object file, which is then converted into .dol or .rel.

Other relevant files

alias_db.txt: Contains relocation helpers for rebuilding the .rel files.

syms.txt: Contains known symbol names for main.dol. Will eventually be replaced by a proper symbol map.

Setup

  1. Obtain main.dol and the four .rel.LZ files from a dumped PALv1 disc of NSMBW.
  2. Use tools/uncompress_lz.py to decompress the .rel.LZ files to .rel.
  3. Rename main.dol to wiimj2d.dol, then place it and the four .rel files in original/.
  4. Ensure that the checksums match:
$ md5sum original/*
17096d0ed441d44a0c31039138a8d7f8  original/d_basesNP.rel
f8cffd634edbec6c1bc210dab02c1e32  original/d_en_bossNP.rel
458f1aa94706dde1a8f2f9d97ff1f35c  original/d_enemiesNP.rel
393bf12ef4254dd1ea1366d5b06fbebb  original/d_profileNP.rel
ddab9e5dca53d8c18bf4051b927e822e  original/wiimj2d.dol
  1. Obtain the CodeWarrior for Embedded PowerPC binaries from here and place them in compilers/.
  2. Run ./build.py to compile the sources and generate the output binaries.

nsmbw-decomp's People

Contributors

rootcubed avatar clf78 avatar luminyx1 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.