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

Dark the Eagle

Member
OP
Newcomer
Joined
Aug 5, 2016
Messages
17
Trophies
0
Age
26
XP
141
Country
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).
 

sj33

Well-Known Member
Member
Joined
Oct 22, 2013
Messages
4,072
Trophies
2
XP
4,726
Country
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.
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,648
Country
France
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.
 

7Robins

Bob is watching you.
Member
Joined
Jun 20, 2016
Messages
561
Trophies
0
Location
Tennessee
XP
372
Country
United States
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.
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,648
Country
France
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.
 

7Robins

Bob is watching you.
Member
Joined
Jun 20, 2016
Messages
561
Trophies
0
Location
Tennessee
XP
372
Country
United States
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..
 

geheim

Well-Known Member
Member
Joined
Jan 4, 2013
Messages
272
Trophies
0
XP
1,256
Country
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 ;)
 

AmandaRose

Do what I do. Hold tight and pretend it’s a plan
Member
Joined
Aug 19, 2015
Messages
10,189
Trophies
1
Location
Glasgow
Website
www.rockstarnorth.com
XP
16,145
Country
United Kingdom
Honestly, you need to stop making threads about controllers. I've seen about 4 of them.
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.
 

Dark the Eagle

Member
OP
Newcomer
Joined
Aug 5, 2016
Messages
17
Trophies
0
Age
26
XP
141
Country
United States
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.
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.
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,648
Country
France
what's about some cIOS with support and "live" remapping?
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.
 

smf

Well-Known Member
Member
Joined
Feb 23, 2009
Messages
6,640
Trophies
2
XP
5,854
Country
United Kingdom

zekepliskin

Well-Known Member
Member
Joined
Oct 13, 2015
Messages
251
Trophies
0
Age
40
Location
Hampshire UK
XP
155
Country
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.

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.
 
  • Like
Reactions: geoGolem

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Purple_Heart @ Purple_Heart: i almost destoryed my friends tv playing it on his wii lmao