Homebrew Wii U Plugin System

Maschell

Well-Known Member
OP
Member
Joined
Jun 14, 2008
Messages
1,097
Trophies
2
XP
4,743
Country
Germany


Wii U Plugin System
Enhance your Wii U!

WARNING: THIS PROJECT HAS JUST STARTED AND IS FOR DEVS AND PEOPLE WHO WANT TO PLAY AROUND WITH NEW THINGS. IT MAY BE BUGGY, FEATURE COULD BREAK AT ANY TIME, INTERFACES CAN CHANGE, AND MANY BUGS CAN OCCUR. THIS APPLICATION COMES WITH NO WARRANTY-

What is the Wii U Plugin System?


The Wii U Plugin allows you to load multiple plugins on your Wii U which enhance your experience. For example you can mod your games, use USB controller, swap your gamepad and TV screen and much more.

Support


You can find support in this thread or on the official Discord Server

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 inherit kernel access from the loader. The loader will be able to deny it to certain plugins.

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:
Code:
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).


Already created plugins


Currently the following plugins exist. They may have less functionalities then their "original" apps.

  • INFO SDCafiine: (no ntfs support)
  • INFO HID to VPAD: (no configuration, everything is mapped to the Gamepad)
  • INFO WUPSPluginPlayground (Various other demo plugins)
  • INFO Screenshot plugin
  • INFO SwipSwapMe, a SwapDRC clone.
  • INFO DiiBugger a Wii U debugger.

Contributing


Currently I'm working alone on this project.
I try to put as many thoughts and technical details / problem on the github page or on the Discord Server (#current-development)
So if you want to help, it's probably a good start to read the readme and the issues. You can also contact me whereever you like.
Any help will get much love!

Settings


Currently no settings are available, everything is still hardcoded as it's still at an early stage.

Download


Plugin Loader:
Nightlies: Download
Source: Here
Load the file with the homebrew launcher.

Plugin System (for devs):
Source: Here

Credits


A big thanks goes out to Chadderz. The hard part about this is based on brainslug, it was a REALLY good base.

 
Last edited by Maschell,

Maschell

Well-Known Member
OP
Member
Joined
Jun 14, 2008
Messages
1,097
Trophies
2
XP
4,743
Country
Germany
Progess / Changelog:

03 Feb. 2018:
- Start of the Project, brainstorming, writing down issues and ideas.
04 Feb. 2018:
- Using brainslug as a base, porting the relocate code.
- Creating a simple loader and example plugin. Now function loading possible
09 Feb. 2018:
- Calling a functions from a loaded plugin for the first time
10 Feb. 2018:
- Implemented the function patching
- Successfully replacing a system function for the first time
- Added the first hook (Initialize)
- Created the first practical plugin: Padcon.
11 Feb. 2018:
- Rewrote the Makefile of the plugins, linking with stdlib no possible (C only)
- Created a SwipSwapMe plugin
- Ported SDCafiine to C to have a lightweight plugin. No support for libfat (only Smash 4 working)
12 Feb. 2018:
- Fixed C++ support
- Updated the SDCafiine to use it's original C++ code, result is a much cleaner code
- Added a HIDtoVPAD plugin. Not able to read configuration files. Network client is working. Due to the missing configuration, everything maps to the gamepad.
13 Feb. 2018:
- Added readmes to the individual projects
- Refactored the loader a lot. Code is now much cleaner.
14 Feb. 2018:
- Some more refactoring
- Added mocha into the loader.
- Plugins can now inherit the SD/USB access from the loader.
- SDCafiine does now have the full functionalities (except for NTFS)
- HIDtoVPAD can now read and process config files.
16 Feb. 2018:
- Refcatoring. Created an own "library" where the wrapper of the FS functions are stored. This way we don't need the 80 LOC macro anymore
- Updated the Github readme
17 Feb. 2018:
- Added a basic GUI. Support more multiple languages
18 Feb. 2018:
- Refactored the Loader. Much cleaner code now.
- Fixed loading plugins which doesn't replace any function
- POC of an overlay plugin
- Always show the GUI when entering the Mii Maker
20 Feb. 2018:
- Added callback mechanism to open a simple menu while in an application (using OSScreen)
24 Feb 2018:
- Added plugin that logs some information about the used heaps of the running application
- Fixed compiling the loader with -jX (forcing the mocha part to be built without jobserver)
25 Feb 2018:
- Restructured the wups library itself.
- Added more information to the example plugin. Now it should contain everything you need to know.
- Added new hooks (INITIALIZE_PLUGIN, DEINITIALIZE_PLUGIN, ON_VYSNC, ON_APP_STATUS_CHANGED, ON_APPLICATION_ENDING), INITIALZE was renamed to ON_APPLICATION_START and has changed it's arguments
- Added the macros WUPS_FS_ACCESS() and WUPS_ALLOW_OVERLAY() to get FS access in the plugin or be able to use overlays,
04 Mar 2018:
- Added Code::Blocks template to the repository
- Added support wiiload - now you can load a single plugin over the network
- Optimized the travis script to actually cache stuff
07 Mar 2018:
- Added "ON_FUNCTIONS_PATCHED" hook
- DiiBugger got ported as an plugin
08 Mar 2018:
- Plugin with FS_ACCESS can now use mkdir
- Added a screenshot plugin
10 Mar 2018:
- Split up the Makefiles. Now changes can be done in a simplified Makefile (makefile.mk)
11 Mar 2018
- Fixed loading the plugin loader when loaded from the browser version of the homebrew launcher
- Added a bash script for installing/updating the dependencies
13 Mar 2018:
- Added option to set LD flags to the makefile.mk
27 Mar 2018:
- Fixed an issue with the brightness for the screenshot plugin
04 Apr 2018
- Pushed inital code for memory mapping. This allows us to use more memory for the loader and plugins.
- Memory testing on other console is required. Information can be found here: https://github.com/Maschell/WiiUPluginSystem/issues/17
05 Apr 2018
- Logging the default memory mapping.
- Fixed some faulty memory mapping
10 Apr 2018
- The Disccord Server opens
[Reserved]
 
Last edited by Maschell,

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
Incredible work over the past 2 weeks! I've been following this closely and the rate of development is mind-boggling.

Since this project is based on Chadderz brainslug for Wii, do you think it is technically possible to "port" a simplified HID to VPAD for vWii Wii Titles? I know a lot of people have been dreaming about this feature and as the leading expert/developer in WiiU/HID interface you probably have a solid understanding of the limits of both the hardware and Nintendo's software.

Congrats and looking forward to testing this over the next few weeks!
 

Zarklord

Well-Known Member
Member
Joined
May 13, 2016
Messages
194
Trophies
0
Age
25
XP
268
Country
United States
Could this be used for Amiiboo spoofing?
yes, BUT without a way to display custom graphics consistently in all games you would have no way to select what amiibo to spoof and other such things to it, i was actually working on this but abandoned the project due to the afformention issue.
 

Funkymon

Well-Known Member
Newcomer
Joined
Feb 7, 2017
Messages
92
Trophies
0
Age
41
XP
142
Country
Canada
yes, BUT without a way to display custom graphics consistently in all games you would have no way to select what amiibo to spoof and other such things to it, i was actually working on this but abandoned the project due to the afformention issue.
So would it be possible on a per game basis? I'm thinking specifically of games like BotW where there's no storage of data necessary.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • K3Nv2 @ K3Nv2:
    So they buy a pi5 kit for about $150 and say a 28" 4k display probably looking around $400 total
  • K3Nv2 @ K3Nv2:
    They'll be getting in the territory of portable Pcs anyway
    +1
  • BigOnYa @ BigOnYa:
    Again you get what you pay for, its like buying a S series for $300 but its only 1440p native, if you want true 4k, gotta get the X model for $500. But yea you right, when moms buying it anyways, you gotta stay cheap.
  • K3Nv2 @ K3Nv2:
    They could use HD out on their TV no real need for a monitor these days tbh the purists will disagree
  • K3Nv2 @ K3Nv2:
    I'm kind of phasing out on the need for wanting all these consoles cool to have but they just become dust build ups
  • BigOnYa @ BigOnYa:
    I here ya there, I have too many myself, and have hard time letting them go, since most of mine I've modded at some point. Anymore I just play Switch on the go, seriesx at home.
  • Xdqwerty @ Xdqwerty:
    ack my throat
  • K3Nv2 @ K3Nv2:
    I need to invest in some storage totes tbh
  • BigOnYa @ BigOnYa:
    Tots?
  • K3Nv2 @ K3Nv2:
    Tootles
  • BigOnYa @ BigOnYa:
    Tootles? Wtf
  • K3Nv2 @ K3Nv2:
    Oh tootles
  • BigOnYa @ BigOnYa:
    Oh totes , lol, like Tupperware storage, I gotcha
  • BigOnYa @ BigOnYa:
    I'm designing my own entertainment cabinet for my man cave, to store all my systems, then I'm also designing a power supply/HDMI switcher so I can switch to whichever system I want, and power it also. Already picked up the cabinet board, but tinkering with my drawings before start
  • BigOnYa @ BigOnYa:
    But yea, I have frogger arcade cabinet that I gutted and put a Pi4 then Pi5 into, but it never gets played much anymore, should sell it. Even when the kids come over, they don't want to play on it, just the xbox. TMNT and Simpson's arcade is still so fun on it, esp w 2 players.
  • K3Nv2 @ K3Nv2:
    Gonna check out the new Garfield looks like garbage
  • BigOnYa @ BigOnYa:
    Can't wait to see the new "stick" that can actually play Ps3 or 360 games. I know they are getting close.
  • BigOnYa @ BigOnYa:
    @Xdqwerty didn't you see the new garfield?
  • K3Nv2 @ K3Nv2:
    Ah it's all animated I was hoping for some live action
    +1
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, yes i did
  • T @ TheSusKing:
    does anyone know if you can run android apps on a usb
  • K3Nv2 @ K3Nv2:
    You mean use a external usb thumb drive as storage? Yeah it depends on the phone
  • T @ TheSusKing:
    no, i mean if i could store the app on the usb so it doesnt take up my storage
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, why do you ask?
    Xdqwerty @ Xdqwerty: @BigOnYa, why do you ask?