Phillip Stephens 9f7d939aba | ||
---|---|---|
.github/workflows | ||
.vscode | ||
assets | ||
buildstrings | ||
config | ||
extern | ||
include | ||
libc | ||
orig | ||
sha1 | ||
src | ||
tools | ||
.clang-format | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
CONTRIBUTING.md | ||
README.md | ||
configure.py | ||
ldscript.lcf |
README.md
Metroid Prime
A work-in-progress decompilation of Metroid Prime.
This repository does not contain any game assets or assembly whatsoever. An existing copy of the game is required.
The following game versions are supported:
GM8E01_00
(USA v1.088)
If you'd like to contribute, see CONTRIBUTING.md.
Dependencies
Windows:
On Windows, it's highly recommended to use native tooling. WSL or msys2 are not required.
When running under WSL, objdiff is unable to get filesystem notifications for automatic rebuilds.
- Install Python and add it to
%PATH%
.- Also available from the Windows Store.
- Download ninja and add it to
%PATH%
.- Quick install via pip:
pip install ninja
- Quick install via pip:
macOS:
- Install ninja:
brew install ninja
- Install wine-crossover:
brew install --cask --no-quarantine gcenx/wine/wine-crossover
After OS upgrades, if macOS complains about Wine Crossover.app
being unverified, you can unquarantine it using:
sudo xattr -rd com.apple.quarantine '/Applications/Wine Crossover.app'
Linux:
- Install ninja.
- For non-x86(_64) platforms: Install wine from your package manager.
- For x86(_64), WiBo, a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used.
Building
- Clone the repository:
git clone https://github.com/PrimeDecomp/prime.git
- Update and Initialize submodules:
git submodule update --init --recursive
- Using Dolphin Emulator, extract your game to
orig/GM8E01_00
(or the appropriate version).
- To save space, the only necessary files are the following. Any others can be deleted.
sys/main.dol
files/NESemuP.rel
- To save space, the only necessary files are the following. Any others can be deleted.
- Configure:
To use a version other thanpython configure.py
GM8E01_00
(USA), specify--version GM8E01_01
or similar. - Build:
ninja
Diffing
Once the initial build succeeds, an objdiff.json
should exist in the project root.
Download the latest release from encounter/objdiff. Under project settings, set Project directory
. The configuration should be loaded automatically.
Select an object from the left sidebar to begin diffing. Changes to the project will rebuild automatically: changes to source files, headers, configure.py
, splits.txt
or symbols.txt
.