/WiiUPluginLoader

The loader for the Wii U Plugin System

Primary LanguageCGNU General Public License v3.0GPL-3.0

This project is outdated, new version is at: https://github.com/wiiu-env/WiiUPluginLoaderBackend

Nightly builds | Issue Tracker | Discussion | Discord | Wiki

Wii U Plugin Loader Build Status

This is the plugin loader for the WiiUPluginSystem.

Features

The project is still in it's very early days, but it already has basic functions to play with.

  • The plugins will be loaded, even when you swap the running game.
  • Support for up to 32 plugins at the same time.
  • Each plugin can override up to 100 different existing system functions.
  • Multiple plugins can override the same system functions.
  • Plugins can register for certain hook (for example whenever an application was started)
  • Plugins inherit the SD/USB access from the loader. All plugins have global SD and USB (FAT32 only) access.
  • Plugins can be configured at run-time. Press L, DPAD down, and minus on the gamepad at the same time to open the configuration menu.

Usage

Use the "Wii U Plugin Loader" to load plugins from the sd card. It is built to be loaded through the homebrew launcher, which can be either loaded with the browser exploit or haxchi. Plugins needs to be placed into the following folder:

sd:/wiiu/plugins

You need to start this Application every time you reboot your console. When you re-enter the homebrew launcher, the plugins will get unloaded. This means it's not possible to combine this with other homebrews (yet).

Create plugins

Information on how to create plugin can be found in the wiki.

Building

Make sure the toolchain is uptodate pacman -Syu devkitPPC devkitARM vim general-tools

For building you need:

Install them (in this order) according to their README's. Don't forget the dependencies of the libs itself.

A detailed instruction can be found in the Wiki:

Building using the Dockerfile

It's possible to use a docker image for building. This way you don't need anything installed on your host system.

# Build docker image (only needed once
docker build . -t wups-loader-builder

# make 
docker run -it --rm -v ${PWD}:/project wups-loader-builder make

# make clean
docker run -it --rm -v ${PWD}:/project wups-loader-builder make clean

Load a plugin via network

While the loader is running, it's possible to load a single plugin via wiiload.
When using this feature, this and all plugins in sd:/wiiu/plugins/temp will be loaded. The plugin will copied to the SDCard, this mean a SDCard is required. A windows executable can be found in tools/wiiload.exe
More information about wiiload and alternatives can be found here: http://wiibrew.org/wiki/Wiiload

Credits

Some files are based on brainslug by Chadderz:
https://github.com/Chadderz121/brainslug-wii
Much stuff also wouldn't be possible without dimok789. He made many great tools and homebrew this stuff in based on (Makefiles, Mocha, homebrew channel, udp logger, dynamic_libs etc.)
Also thanks to everyone who made actual exploits.