This work in progress repository aims to a full 1:1 decompilation of version 4.3 of the Wii Menu.
Currenty supported versions:
- 4.3U (USA)
This repository requires a WAD of the Wii Menu.
TODO: Build for Mac OS
The following dependencies are required to build the decompilation:
- Git (optional)
- Python 3
- GCC
Below is how to install the dependencies that is depending on your Operating System.
If you are using WSL, you should follow the Linux section instead.
With MSYS2, this is how you install the dependencies
pacman -S git make mingw-w64-x86_64-gcc mingw-w64-x86_64-python mingw-w64-i686-gcc mingw-w64-i686-python
If you wish to not use either MSYS2 nor WSL then make sure that GCC and Make are in PATH environment variable.
You will also need to install Python 3 yourself here (make sure that python.exe
is in your PATH
variable).
For Ubuntu/Debian:
sudo apt install build-essential git python3
For Arch Linux:
sudo pacman -S base-devel python git
Here are a list of tools that get downloaded when you run make prepare
:
- wibo (when using linux)
- gc-wii-binutils
- decomp-toolkit
NOTE: This will not compile a working Wii Menu yet!
-
If you have git, clone the decompilation repository by inputting this to your terminal:
git clone https://github.com/koopthekoopa/wii-ipl.git
- Otherwise download the repository by clicking on Code then Download ZIP then extract the .zip contents
-
As stated above, you will need a WAD of the Wii Menu to grab its executable.
- Use your preferred WAD Extractor (I recommend ShowMiiWADs as it also works fine on Linux, if you have Wine) and use it to extract the Wii Menu WAD file.
- Then copy the executable file
00000008.app
to the decompilation directory and rename it tobase.<version>.app
- Make sure the version on the filename does not include the decimal at the middle (for example
4.3U
should be43U
) - Check to make sure the file matches with the SHA-1 Sums!
- Make sure the version on the filename does not include the decimal at the middle (for example
-
You will need to prepare for build. To do that you need to type in:
make prepare VERSION=<version>
where
<version>
is the chosen version to compile. (If you do not defineVERSION
, it will compile 4.3U by default) -
You are now ready to build! To build you need to type in:
make VERSION=<version>
- The output should be
ipl.<version>.app
in the build folder.
- The output should be
If you want to compile another version, you will have run
make prepare
again to do so.
File | SHA-1 |
---|---|
ipl.43J.app (Wii Menu 4.3J) |
c94c8e671854d56fa2abd4c4c886e6c62a2c7f0e |
ipl.43U.app (Wii Menu 4.3U) |
26116613f624061ba99c8d1a299aaa6efa85670d |
ipl.43E.app (Wii Menu 4.3E) |
2ebea6ed22473857ed64b12daa71ae2d1ed61708 |
decomp-toolkit - A tool that can do a lot and will make decompiling GameCube/Wii games easier and better.
objdiff - Used to check whenever if the compiled object is matching or not.
Ghidra - Used to load executables and output a rough decompilaton of a function.
Thanks to everyone who contributed to those tools.