Is there any way to add GCN Controller Adapter support to USB Loader GX?

Discussion in 'Wii U - Hacking & Backup Loaders' started by Dark the Eagle, Aug 16, 2016.

  1. Dark the Eagle
    OP

    Dark the Eagle Member

    Newcomer
    15
    1
    Aug 5, 2016
    United States
    I want to play some Wii games using my Gamecube Controller, but it seems like there's been no interest in adding support to USB Loader GX or in vWii period (not counting Nintendont).
     
  2. sj33

    sj33 GBAtemp Addict

    Member
    2,805
    1,782
    Oct 22, 2013
    Japan
    I believe there is interest, but we seem to be hitting memory limitations with USB Loader GX as it is. We had support for other controllers added in previous builds (Dual Shock 3, Wii U Pro Controller etc.) and they have always had to be removed due to resulting in hitting memory issues.
     
  3. Cyan

    Cyan GBATemp's lurking knight

    Global Moderator
    18,726
    9,022
    Oct 27, 2002
    France
    Engine room, learning
    what you want is not possible.

    Adding it to (as INSIDE) USBLoaderGX interface is possible.
    Adding it while playing is not, because the Wii (and vWii) doesn't have any supervisor with programs run in background. When USBLoaderGX launch a game, it unloads itself from memory first, then the game is launched and only the loaded IOS and the game are in memory. Nothing else is there to communicate with another device or do anything in the background.
    The only "background" (more parallel than background) function which can be added is the code handler, which is inserted into memory and run each cycle. It allows cheatcode and USBGecko debugging.

    The controllers are read by using the SDK, which are released in different version for developers, and some games are not even using SDK main functions and developers are accessing them directly with their own code.
    If we would like to patch the controller function, it wouldn't be possible to make a global patch as each game are doing it differently.

    It's possible, but on a game by game basis.
    For example, Crediar already did it with Kirby, adding/redirecting buttons to another controller type, but all this was done in ASM using the code handler and cheatcodes to rewrite game and memory addressed in realtime.


    There were an attempt at adding Classic Pro controller support and button remapping as a global and generic cheatcode. It worked only for the games sharing the same SDK version that the cheat was created for. It was released on another forum but I don't remember if I kept a copy of that page and cheatcode nor if the forum/thread is still online, sorry. I already talked about it in the past on gbatemp, and it can be find again using the forum search engine or google.
    But It will NOT work with the gamecube adapter, as it's a HID interface, and the cheatcode was developed to redirect controllers between internal SDK functions, not adding new and unknown devices.

    What's responsible for additional devices is the IOS, reading USB and allowing HID. but even if all IOS should be compatible with HID, there is no function inside the game to initiate the HID from IOS, read all the button state and redirect calls to existing SDK functions. it would be too hard to do it and each game are managing the memory differently, some games wouldn't even allow adding new functions. we would need a residual program running at the same time than the game which reads the HID interface and patch the game's controller data in real time. but it's not possible with Wii games, they run alone on the console. the console can run only one dol at a time.
    the vWii tri-core access could maybe do something, but the hacking project was abandoned and nothing was done except running linux (project Tri-nux).



    This is different with Nintendont, because the Wii or WiiU is not running the game and reading the ISO, nintendont is doing the work. it's reading everything and is the actual homebrew (main.dol) loaded in memory, not the game's dol. Nintendont is like a layer between the game and the hardware, allowing lot of things such as emulating controller input, remapping button, etc.
    there is an option to use the original controller function instead of nintendont's own controller interface, it makes all the HID interface and button remapping impossible to use, but as it's using the official GameCube controller's function it allows GBA link that the game is managing through the official ports.
     
  4. 7Robins

    7Robins Bob is watching you.

    Member
    558
    256
    Jun 20, 2016
    United States
    Tennessee
    Would it be possible to create another Loader or a second option inside USB GX to run games as an application rather than an actual game? Kinda like how you explain Nintendont does it.
     
  5. Cyan

    Cyan GBATemp's lurking knight

    Global Moderator
    18,726
    9,022
    Oct 27, 2002
    France
    Engine room, learning
    it would require a layer between the game and the console.
    a nintendont program for Wii games. I don't know how much possible it is. it will probably be slower as nintendont benefit from the Wii power and CPU speed to interact before the gamecube game, while wii games are supposed to run at native speed and adding a layer of emulation would be like emulating DS games on a DS.
    you can see how 3DESmuMe is emulation and redirecting DS functions on the native NDS hardware on 3DS.

    it would be nice to see it as a proof of concept, but nobody will be willing to develop it anymore, there are not a lot of remaining active Wii/wiiu developers and they are all busy to something else.
     
  6. 7Robins

    7Robins Bob is watching you.

    Member
    558
    256
    Jun 20, 2016
    United States
    Tennessee
    Aww, that's disappointing, considering that the majority of Wii games actually work with GC controllers, because of the original Wii's hardware. But I guess used Wii's are cheap..
     
  7. geheim

    geheim GBAtemp Regular

    Member
    258
    76
    Jan 4, 2013
    Germany
    I'd like to see GCN Adapter support in the INTERFACE of USBLoader GX!
    Would make it easier to load another Gamecube game, now it is necessary to turn the Wiimote back on and start games using that. Not a big thing of course, but on the original Wii I exited Nintendont to the loader (USBGX) and could boot another game using the GC controller. As I said this is really not a big "problem", but would be a nice little thing to have ;)
     
    lordelan and 7Robins like this.
  8. Derverd

    Derverd GBAtemp Regular

    Member
    172
    32
    Dec 22, 2014
    Mars?
    I feel like the vWii will become extremely interesting if IOSU is released.
     
  9. 7Robins

    7Robins Bob is watching you.

    Member
    558
    256
    Jun 20, 2016
    United States
    Tennessee
    Well, everything WiiU will, some things even for the worse.

    I wonder how much more of vWii we'd be able to modify.
     
  10. ThatNintendoNerd

    ThatNintendoNerd GBAtemp Regular

    Member
    269
    41
    Feb 13, 2016
    United States
    A Cartridge
    Honestly, you need to stop making threads about controllers. I've seen about 4 of them.
     
    Marko76 likes this.
  11. Marko76

    Marko76 GBAtemp Psycho!

    Member
    3,723
    2,101
    Aug 19, 2015
    United Kingdom
    Clydebank
    Exactly the op has posted a few threads asking for gamecube controller support for various wii homebrew they should just go buy a wii that has the gamecube ports built in heck I see them in shops here in Scotland for like 10 pounds.
     
  12. Dark the Eagle
    OP

    Dark the Eagle Member

    Newcomer
    15
    1
    Aug 5, 2016
    United States
    I have a Wii with the GC ports, but I haven't used it in ages. Not to mention, I like to have everything usable on one machine if possible. Plus, it hasn't just been Wii homebrew, it's been Wii U homebrew as well.
     
  13. greenlanternx

    greenlanternx Advanced Member

    Newcomer
    57
    12
    Sep 16, 2012
    Chile
    what's about some cIOS with support and "live" remapping?
     
  14. The Real Jdbye

    The Real Jdbye Always Remember 30/07/08

    Member
    GBAtemp Patron
    The Real Jdbye is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    12,512
    5,473
    Mar 17, 2010
    Norway
    Alola
    You can do the next best thing, which is buying a GC to Classic Controller adapter and using that.
     
  15. Cyan

    Cyan GBATemp's lurking knight

    Global Moderator
    18,726
    9,022
    Oct 27, 2002
    France
    Engine room, learning
    the live remapping is usually for file path, not controllers input (which are mapped using PPC and not ARM like the IOS).
    the IOS is responsible for the bluetooth interface for the wiimote, but the buttons are controllers by the SDK.
     
  16. smf

    smf GBAtemp Maniac

    Member
    1,179
    256
    Feb 23, 2009
    What about using one of these?

    http://www.ebay.co.uk/itm/Hot-MayFl...ew-/252497458034?_trksid=p2141725.m3641.l6368

    "Compatible with all games supported for Wii Classic Controller, for Wii Classic Controller Pro and for Wii U Pro Controller"
     
  17. zekepliskin

    zekepliskin GBAtemp Regular

    Member
    247
    68
    Oct 13, 2015
    Hampshire UK
    Oh, that sounds horribly complicated. I can't imagine any developer having the time, patience and sanity required to do that for individual games, way too much effort.

    To the original poster, just go and buy a MayFlash adapter. You can then use a GameCube controller to run the whole console as it works through the Wiimote in Wii U, vWii and Nintendont. Basically any part of the console that supports Wii Classic Controllers will work, Virtual Console (DS emu is an exception) as well. I still haven't got over the novelty of being able to play Mario Kart 8 with a GameCube controller, in fact online I wouldn't want anything else - I'm starting to see why hardcore Smash players insist official GC controllers are the only choice.

    So to recap on the MayFlash adapter :-
    • Downsides: no WaveBird support (believe me, I tried; it works so intermittently it ruins games), no rumble support.
    • Upside: Use a GameCube controller pretty much everywhere.