Wii U Plugin System

Discussion in 'Wii U - Homebrew' started by Maschell, Feb 14, 2018 at 10:36 PM.

  1. Maschell
    OP

    Maschell GBAtemp Advanced Fan

    Member
    919
    1,371
    Jun 14, 2008
    Gambia, The


    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.

    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.

    Usage

    The "Wii U Plugin Loader" is built to be loaded through the homebrew launcher, which can be either loaded through the browser exploit or haxchi.
    Plugins needs to be placed into the folder:
    Code:
    sd:/wiiu/plugins
    Note:
    Currently the loaded plugins are hardcoded into the loader, you need to recompile it load other 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 Padcon
    • INFO SwipSwapMe, a SwapDRC clone.

    Contributing

    Currently I'm working alone on this project.
    I try to put as many thoughs and techical details / problem on the github page.
    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 avaiable, everything is still hardcoded as it's still at an early stage.

    Download

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

    Credits

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

    Support

    Keep in mind that developing homebrew is very time consuming and ALL devs are doing for free in their personal free time.
    I'm pretty sure every dev out there appreciates it when they receive a simple "thanks". So go out and thank the cool devs you like.

    If you even want to make a small donation you can use one of the following options:


    [​IMG]


    [​IMG]

    Donate to my Litecoin address:
    LYTh1jYTh9iiF2PvKd5FagxAn3YZcuehRT

     
    Last edited by Maschell, Feb 14, 2018 at 10:53 PM
  2. Maschell
    OP

    Maschell GBAtemp Advanced Fan

    Member
    919
    1,371
    Jun 14, 2008
    Gambia, The
    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.
    - Added readmes to the individual projects
    - Refactored the loader a lot. Code is now much cleaner.
    14 Feb.
    - 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.
    - 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.
    - Added a basic GUI. Support more multiple languages
    18 Feb.
    - Refactored the Loader. Much cleaner code now.
    [Reserved]
     
    Last edited by Maschell, Feb 18, 2018 at 3:38 PM
    DarthDub, adilucky3, Brawl345 and 3 others like this.
  3. depaul

    depaul GBAtemp Fan

    Member
    348
    181
    May 21, 2014
    France
    Thank you for your excellent work as always :)
     
    Maschell likes this.
  4. TotalInsanity4

    TotalInsanity4 GBAtemp Supreme Overlord

    Member
    8,341
    8,419
    Dec 1, 2014
    United States
    Under a rock
    Dude that's awesome, props to you!
     
  5. kfrfansub

    kfrfansub Advanced Member

    Newcomer
    82
    12
    Jun 13, 2016
    Belgium
    Thanks dude
     
    adilucky3 likes this.
  6. Lyrin

    Lyrin Annoying Weeaboo Girl

    Member
    362
    165
    Jun 4, 2017
    United States
    The progress on this is absolutely incredible and I hope that it continues!
     
  7. JacobM

    JacobM Advanced Member

    Newcomer
    55
    15
    Jun 16, 2017
    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!
     
  8. Diego788

    Diego788 GBAtemp Fan

    Member
    361
    130
    Jun 27, 2014
    Chile
    Santiago, Chile
    whoa!
    this is awesome, i'll use it very often when I get a Wii U
     
  9. Kafluke

    Kafluke GBAtemp Psycho!

    Member
    4,265
    2,098
    May 6, 2006
    United States
    Fantastic work!
     
  10. Osakasan

    Osakasan GBAtemp Advanced Fan

    Member
    869
    477
    Sep 19, 2015
    This looks really interesting and may finally solve my pet peeve with Homebrew.
    Thanks for your work, dude.
     
  11. lordelan

    lordelan GBAtemp Advanced Maniac

    Member
    1,928
    607
    Jan 4, 2015
    Gambia, The
    This will be massive!

    @Maschell: Will I be able to use HID to VPAD in Loadiine somehow?
     
  12. cucholix

    cucholix Banners guy

    Member
    1,392
    771
    Jan 17, 2017
    Chile
    CFW patches + SwipSwapMe + HIDtoVpad = XCX perfect setup
     
  13. Masana

    Masana Newbie

    Newcomer
    3
    0
    Aug 12, 2016
    France
    Thank you very much for your applications, it's really great
     
  14. kfrfansub

    kfrfansub Advanced Member

    Newcomer
    82
    12
    Jun 13, 2016
    Belgium
    There is an option to enable HID controller in loadiine, no ?
     
  15. pwsincd

    pwsincd Garage Flower

    Member
    GBAtemp Patron
    pwsincd is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    3,431
    1,870
    Dec 4, 2011
    Manchester UK
    Can't use it with other homebrew yet . Stated in the op
     
  16. Funkymon

    Funkymon Advanced Member

    Newcomer
    92
    63
    Feb 7, 2017
    Canada
    Could this be used for Amiiboo spoofing?
     
  17. wolf-snake

    wolf-snake GBAtemp Maniac

    Member
    1,050
    627
    Feb 5, 2009
    Mexico
    I don't think that's easily doable outside of CEMU.
     
  18. Funkymon

    Funkymon Advanced Member

    Newcomer
    92
    63
    Feb 7, 2017
    Canada
    I know it's done for 3DS, and if we can spoof the entire gamepad doesn't that mean we can spoof functions of it? Or is that just wishful thinking?
     
  19. Zarklord

    Zarklord GBAtemp Regular

    Member
    193
    67
    May 13, 2016
    United States
    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.
     
  20. Funkymon

    Funkymon Advanced Member

    Newcomer
    92
    63
    Feb 7, 2017
    Canada
    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.