Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

Wii Menu Decompilation brought to you by a fan.

License

Notifications You must be signed in to change notification settings

koopthekoopa/wii-ipl

Repository files navigation


Wii Menu
Build Status Discord Badge

A work-in-progress decompilation of the Wii Menu (4.3)

This repository does not contain any assets or assembly of the executable whatsoever. An existing WAD of the Wii Menu is required.

Supported versions:

  • 43U - Version 4.3U (USA)
  • 43E - Version 4.3E (Europe)
  • 43J - Version 4.3J (Japan)
  • 43K - Version 4.3K (Korean)

Progress

Version Progress
Wii Menu 4.3U FuncBadgeV43U DecompBadgeV43U LinkBadgeV43U
Wii Menu 4.3E FuncBadgeV43E DecompBadgeV43E LinkBadgeV43E
Wii Menu 4.3J FuncBadgeV43J DecompBadgeV43J LinkBadgeV43J
Wii Menu 4.3K FuncBadgeV43K DecompBadgeV43K LinkBadgeV43K

You can see the full progress and its history by clicking on one of the versions in the table.

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%.
  • Download ninja and add it to %PATH%.
    • Quick install via pip: pip install ninja

macOS

  • Install ninja:

    brew install ninja

wibo, a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used.

Linux

wibo, a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used.

Building

  • Clone the repository:

    git clone https://github.com/koopthekoopa/wii-ipl.git
  • Copy your WAD to orig/[Wii Menu Version].

  • Configure:

    python configure.py

    To use a version other than the default one, 4.3U, use the --version argument.

  • Build:

    ninja

Note

This does not produce a WAD file, only the executable file, main.dol.

Warning

Due to the SEL file not being generated on build, the code is not 100% shiftable.
Most of it works aside from a couple of things, such as Wii Settings and a couple of Channel Banners like the Forecast Channel.

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.

About

Wii Menu Decompilation brought to you by a fan.

Topics

Resources

License

Stars

Watchers

Forks