Decompilation of Paper Mario - Mirror of https://github.com/pmret/papermario
Go to file
2020-08-16 04:22:21 +01:00
.vscode add vscode editor settings and build tasks 2020-08-15 17:27:08 +01:00
asm add newline at eof 2020-08-16 02:54:04 +01:00
include remove duplicate StaticNpcSettings declaration 2020-08-16 04:22:21 +01:00
src rename types (#20) 2020-08-16 04:19:00 +01:00
tools name and match resolve_npc 2020-08-15 05:25:36 +01:00
.clang-format Refactoring stuff 2020-08-12 21:56:23 -04:00
.clang-tidy Refactoring stuff 2020-08-12 21:56:23 -04:00
.editorconfig add editorconfig 2020-08-15 17:27:08 +01:00
.gitignore add vscode editor settings and build tasks 2020-08-15 17:27:08 +01:00
.gitmodules generate common_structs.h from star rod database 2020-08-14 21:10:34 +01:00
checksum.sha1 Refactoring stuff 2020-08-12 21:56:23 -04:00
diff_settings.py meow 2020-08-12 22:56:47 -04:00
diff.py Refactoring stuff 2020-08-12 21:56:23 -04:00
docker-compose.yml gud changes 2020-04-24 00:26:17 -04:00
docker-sync.yml gud changes 2020-04-24 00:26:17 -04:00
Dockerfile Update Dockerfile 2020-05-12 00:45:15 -04:00
format.sh Refactoring stuff 2020-08-12 21:56:23 -04:00
Jenkinsfile Jenkins test 3 2020-08-15 00:20:15 -04:00
Makefile support make -B flag 2020-08-15 03:52:44 +01:00
papermario.ld actually fix assembler bug, make sure it compiles. 2020-08-14 22:24:08 -04:00
Readme.md make: require PM_HEADER_REBUILD=1 to watch header files 2020-08-15 00:12:41 +01:00
undefined_syms.txt Match CloseChoice, CancelMessage, CancelMessageAndBlock. Added gCurrentPrintContext and D_802DB268 (related) 2020-08-15 14:51:44 -07:00

Paper Mario Decompilation

Setup

Requirements

You'll need Linux or Windows 10 (WSL) to work on this project.

Dependencies

  • *mips-linux-gnu binutils: You may be able to just download this via your package manager (sudo apt install binutils-mips-linux-gnu), or you'll have to build it yourself. (guide todo)

Ubuntu and co (easy mode):

For a quick and easy way to install all relevant decomp-related tools on Ubuntu and other similar distros,

sudo apt install -y binutils-mips-linux-gnu build-essential pkg-config python3 python3-pip wget git clang-tidy clang-format nano vbindiff zlib1g-dev libyaml-dev libcapstone-dev

Building mips-linux-gnu

todo

Fork and clone the repo

Click the "fork" button in the top right corner of the main repo's webpage (https://github.com/ethteck/papermario) to fork this repo to your own GitHub account. After this, clone the repo to your computer via the command below:

git clone https://github.com/YOUR_GITHUB_USERNAME/papermario.git

The Rom

You'll need a US Paper Mario rom to work on this project. Copy it into the root directory of the repository with the name baserom.z64.

Make setup

run make setup to set up tools and extract the rom

Make

run make to rebuild the rom. Get OK? If so, you're all set! Otherwise, please feel free to reach out to us in the discord. Use PM_HEADER_REBUILD=1 make to rebuild C sources when any header files change.

FAQ

  • If you received the following error when running make setup:
/bin/bash: mips-linux-gnu-as: command not found
Makefile:92: recipe for target 'build/asm/boot.o' failed
make: *** [build/asm/boot.o] Error 127

💡 Solution

One of the packages from the Ubuntu and co (easy mode) script did not install correctly. Elevate your user permissions using sudo su, run the script again and append --fix-missing to it.



  • If you received the following error when running make:
sha1sum -c checksum.sha1
sha1sum: 'papermario.z64'$'\r': No such file or directory
: FAILED open or read
sha1sum: WARNING: 1 listed file could not be read
Makefile:118: recipe for target 'verify' failed
make: *** [verify] Error 1

💡 Solution

This is a Windows line ending issue run git checkout checksum.sha1 to fix it.