Homebrew Need help with vWii gc adapter for project M

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
It would also enable gamepad for other Wii game mods (like CTGP? testing required).
I swear when WiiVC first came out I tried to pull off CTGP because of the the same theory that "disk emulation" could potentially let us bypass the real disc restriction. Ultimately it would depend on if you can hold an ISO in the "drive" while booting to the CTGP launcher. If you can figure that out, you may also be able to use the brainslug w/ the WUP-028 module to enable GCA in all compatible disc games other than Brawl. I swear I spent hours attempting all that, but it may have been too early in the WiiVC development process that it wasn't possible at the time. I recall multi disc games are possible for WiiVC, so why cant we have one disc & one DOL?Ultimately, if the ethernet adapter isn't supported then CTGP is pointless over any MKWii custom track pack other than for GCA controller compatibility.

In the injector script, I think there is an option to change the forwarder dol, so I suppose we could put anything there. The problem is that the software prevents a Wii ISO from being injected if GC mode is enabled. I wonder if trying to bypass that is possible, and if it would work.

I think it prevents you from doing it because the technique didn't work outside the mode that Gamecube operates in. I recall Nintendont needed some serious refacotoring to get it working as WiiVC. If you look through the commit history on github the restructure starts on Sept 15, 2017 through Oct 27, 2017 across dozens of commits by fix94 and gerbilsoft. The amount of rework in order to not only get Nintendont compatible with WiiVC but make it seamless and invisible was impressive to say the least. It wasn't anywhere close to just injecting two files and letting the WiiU do the rest. The feature in the injector script likely wasn't blocked for an arbitrary reason.

Major Commit 1: https://github.com/FIX94/Nintendont/commit/5a95477aac068a370ffabc0165f087c3d6f23667
Major Commit 2: https://github.com/FIX94/Nintendont/commit/02446e53b9e0dde5468f64a3005c7a695eaee0e3
Major Commit 3: https://github.com/FIX94/Nintendont/commit/6e464cd703d0a21d6c4737783dde3c1a7344b486
Major Commit 4:
https://github.com/FIX94/Nintendont/commit/afcfa4b6539ca4db50f38889eacd8924391d84f1
Major Commit 5:
https://github.com/FIX94/Nintendont/commit/fa65bb6c883cfc38b8cef75561a6b4a52ce0635e



I have a USB ethernet adapter compatible with Wii U, I can test with that.

Sweet! Let me know what you learn! Just a heads up that even though 3rd party compatible adapters work with official games, Wii/WIiU homebrew is notorious for behaving completely differently between official and 3rd party controllers, GCA adapters, and possibly even LAN adapters.
 
Last edited by JacobM,
  • Like
Reactions: Famus484

Famus484

Member
Newcomer
Joined
Oct 9, 2019
Messages
22
Trophies
0
Age
29
XP
108
Country
Canada
Sweet! Let me know what you learn! Just a heads up that even though 3rd party compatible adapters work with official games, Wii/WIiU homebrew is notorious for behaving completely differently between official and 3rd party controllers, GCA adapters, and possibly even LAN adapters.
So, I have done some testing. I did the pinging from my laptop instead of my (ISP provided) router, I don't know if it skews the test results. I did it using terminal command "ping [local ip of ethernet adapter]", and looking at whether it returns or not. I made sure any traffic from the wii u must go through the adapter. Here are my results

Returns:
Wii U menu, vWii homebrew channel, vWii CTGP menu, vWii Nintendont (only when trying to make a download), vWii Brawl (from disk, only when trying to connect online, which will obviously fail after a while because no official servers)

Doesn't return:
-vWii when not trying to connect online (vWii System menu, nintendont main menu, Brawl when not trying to connect)
-WiiVC homebrew channel, WiiVC CTGP menu (loaded from WiiVC homebrew channel, fails to initialize network), WiiVC Nintendont (loaded from injected title with disabled autoboot, fails to initialize network), WiiVC Brawl (Brawl does not even attempt connection, says "Confirm the Internet settings of Wii consle").

It does seem all Wii software I've tried can connect through my adapter when they try in vWii mode (including Brawl), but all of them fail to do so when in WiiVC. Do those results definitely conclude impossibility of GCA?

Ultimately, if the ethernet adapter isn't supported then CTGP is pointless over any MKWii custom track pack other than for GCA controller compatibility.

Of note, it seems that if the internet interface is wifi, then internet is accessible in WiiVC (for example, Brawl attempts online and CTGP can confirm it is updated). I can't do the ping test in wifi, as Wii U is not allowed in my main network (if necessary, I could use my phone to create a temporary network for wiiu and laptop). That would mean CTGP online wouldn't be pointless, assuming the wifi connection is very good.

I swear when WiiVC first came out I tried to pull off CTGP because of the the same theory that "disk emulation" could potentially let us bypass the real disc restriction. Ultimately it would depend on if you can hold an ISO in the "drive" while booting to the CTGP launcher. If you can figure that out, you may also be able to use the brainslug w/ the WUP-028 module to enable GCA in all compatible disc games other than Brawl. I swear I spent hours attempting all that, but it may have been too early in the WiiVC development process that it wasn't possible at the time. I recall multi disc games are possible for WiiVC, so why cant we have one disc & one DOL?
Another interesting avenue could be trying to boot WiiVC homebrew channel while disk in virtual drive. That way, we wouldn't have to redo all the work for each dol we would want to load (or I suppose USBloaderGX, since it can also load dols). It's good to know someone else got the same ideas. Yea, I was also wondering whether GCA would work in this case, you answered that question.

I think it prevents you from doing it because the technique didn't work outside the mode that Gamecube operates in. I recall Nintendont needed some serious refacotoring to get it working as WiiVC. If you look through the commit history on github the restructure starts on Sept 15, 2017 through Oct 27, 2017 across dozens of commits by fix94 and gerbilsoft. The amount of rework in order to not only get Nintendont compatible with WiiVC but make it seamless and invisible was impressive to say the least. It wasn't anywhere close to just injecting two files and letting the WiiU do the rest. The feature in the injector script likely wasn't blocked for an arbitrary reason.
I guess that avoids me working with things I don't understand yet and risking bricking my wii u! I can appreciate the work that was put to make GC injection work better now. So if I did, hypothetically, replace forwarder dol by USB loader GX (and leave some gamecube ISO), would it load that homebrew, and allow booting the game through Nintendont (still present in my SD)?
 

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
It does seem all Wii software I've tried can connect through my adapter when they try in vWii mode (including Brawl), but all of them fail to do so when in WiiVC. Do those results definitely conclude impossibility of GCA?
The WiiVC Nintendont download attempt failing was probably your best evidence that something about IOS255 is quite different related to the USB interface. Not necessarily impossible but highly unlikely. A keyboard/BBA test failing would be even closer to concluding impossibility of GCA. Both the keyboard and BBA code were added in Sept/Oct 2019 ~2 years after WiiVC compatibility was added so those two features would be the best ways to determine if IOS255 had any known interface. The BBA code is pretty much exclusively for Phantasy Star Online and Mario Kart Double Dash LAN play. I would be very surprised if the BBA code behaves any differently than the loader, but it could be worth a shot!

That would mean CTGP online wouldn't be pointless, assuming the wifi connection is very good.
You are absolutely correct. It slipped my mind with my focus on USB interfaces, ahaha.

Another interesting avenue could be trying to boot WiiVC homebrew channel while disk in virtual drive.
Yeah that would be a great first step and huge discovery. Success still wouldn't mean USB access / GCA support is possible but it gives another method to poke around.

So if I did, hypothetically, replace forwarder dol by USB loader GX (and leave some gamecube ISO), would it load that homebrew, and allow booting the game through Nintendont (still present in my SD)?

If you use the "Specify a custom Nintendont Forwarder" feature and link a gamecube game into the WiiVC installer, you could add a USBLoaderGX forwarder instead of the Nintendont forwarder and attempt to mount a Gamecube disc from the USBLoaderGX interface. WiiU can't technically read GC discs, but I doubt the loader knows any better. It should also be able to see games stored on your SD card.

I had an idea to test IOS255 with and without the gamepad support to see if the gamepad enabled causes the USB problems, but it turns out I was testing that back in 2017, lol. Here is the post where something weird happened when WiiVC gamepad was enabled vs. disabled (Wii Remote Mode).


You will likely need to go outside of the injector script and learn how to manually inject the old way we use to do it. Below is the thread and post where everything was discovered along with information and tutorials on how to manually configure a WiiVC installation. https://gbatemp.net/threads/semi-wo...fs-to-iso-and-back.455812/page-9#post-7554210, https://gbatemp.net/threads/wii-on-wii-u-virtual-console-injecting-games.483007/
 
  • Like
Reactions: Famus484

Famus484

Member
Newcomer
Joined
Oct 9, 2019
Messages
22
Trophies
0
Age
29
XP
108
Country
Canada
You will likely need to go outside of the injector script and learn how to manually inject the old way we use to do it. Below is the thread and post where everything was discovered along with information and tutorials on how to manually configure a WiiVC installation. https://gbatemp.net/threads/semi-wo...fs-to-iso-and-back.455812/page-9#post-7554210, https://gbatemp.net/threads/wii-on-wii-u-virtual-console-injecting-games.483007/
Oh, I was looking exactly for these information and tutorial posts, thank you! I'll see if I can load USBloaderGX or the homebrew channel (maybe starting from a game injection or a homebrew injection). If possible, I'll try to do it in Virtual Machine so as to not mess around too much with my PC systems.

The WiiVC Nintendont download attempt failing was probably your best evidence that something about IOS255 is quite different related to the USB interface. Not necessarily impossible but highly unlikely. A keyboard/BBA test failing would be even closer to concluding impossibility of GCA. Both the keyboard and BBA code were added in Sept/Oct 2019 ~2 years after WiiVC compatibility was added so those two features would be the best ways to determine if IOS255 had any known interface. The BBA code is pretty much exclusively for Phantasy Star Online and Mario Kart Double Dash LAN play. I would be very surprised if the BBA code behaves any differently than the loader, but it could be worth a shot!
On a silver lining, one thing that may beworth pointing out. In WiiVC mode, CTGP homebrew (not patched MKWii), the GCA works just fine, and I would be quite surprised if any effort was put towards making that happen. So something with the USB adapter must be working on IOS255 exactly like it should in usual IOS (if I understand correctly, I still haven't done my homework on IOSes).

Just to confirm as I didn't quite understand (I'm noticing my confusion), the gpf (of the GCA inject project) works in Wii/vWii needing to hijack Brawl's protocol for communicating with USB ethernet LAN? Like, that's why USB ethernet not working whatsoever in WiiVC is evidence that GCA won't work (while there is still hope for CTGP if Homebrew+vdisk possible)? Or am I completely off (lol, more likely I suppose)?
 

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
Ok I got sucked down a rabbit hole this evening and figured I would document highlight comments from the WIiVC saga… enjoy

First some context on names you will see throughout this post:
JaGoTu10 I believe made one of the early breakthroughs leading to WiiVC
Cyan extensive accurate documentation and historical knowledge of developments
Leseratte has numerous groundbreaking projects including Wiimmfi, LE-Code and some degree of cIOS development
Pedro702: Worked closely with fix94 to help in the development of nintendont support
Fix94: Primary developer who rewrote nintendont to work within the confines of IOS255/WiiVC in addition to the developer who brought us haxchi / CBHC
shinyquagsire23: well known member for technical knowledge
GaryOderNichts: one of the newer names in the scene completing complex and often previously abandoned projects



NFS2ISO2NFS
———————-

#452 - JaGoTu10: IOS Reload Blocked, HID, IOS
#460 - last sentence seemed interesting
#476 - Cyan: Forcing IOS255 from vWii, suspected Nintendont rework, theory of multiple Wii games in one WiiVC, insight on emuliine prior to project abandonment
#531 - Skylanders USB portal not recognized in early WiiVC




WiiVC Tutorial
————————

#985 - Leseratte: IOS255 modified USB module unlike Wii/vWii. Doesn’t work with LAN, Portal, suspecting similar results with Microphone and WFS.
#1,031 - Pedro702: USB and HID USB devices don’t work correctly. Suspected because WiiVC is already loading from usb/nand and requires “hijacking” of usb code.
#1,044 - Fix94: Aspiration for WiiVC to read embedded discs to be loaded with Nintendont
#1,054 - Leseratte: explanation of some of the patches needed to be made to the official WiiVC IOS in addition to the changes to Nintendont so the two can interface and be full featured
#1,217 - Pedro702: Gaining control of USB in nintendont was challenging
#1,492 - shinyquagsire23: gamepad is technically operating as a USB interface through DRH chip communication which may also contribute to the unusual USB behavior
#1,514 - Fix94: special homebrew patches needed in order for nintendont to work in IOS255 and get GCA support



Fwpatcher
——————


https://gbatemp.net/threads/fwpatcher-fw-img-patcher-for-wiiu-wiivc-firmware-image.484166/
List of all known WiiVC IOS255 patches to unlock additional hardware, enable and configure features

#6 - Cyan: explanation of IOS255, how it works, patching f
#1,756 - Cyan: impressively thorough history of WiiVC which gives you a lot of context on topics that will help you
#53 / #1,846- another user noting no power to skylanders portal in WiiVC



WiiVC
———


#981 - Leseratte: troubleshooting steps requested to help in developing USB Loader support in WiiVC. #1 & part of #2 (microphone) were never answered by others.
#1,004 - Fix94: first nintendont build & explanation of the complexity of getting nintendont to work in WiiVC
#1,039 - Fix94: nintendont is full custom code requiring something simple like turning off the console to need a lot of work to integrate
#1,565 - Fix94: instructions on how to manually create a nintendont forwarder dol ISO with a gamecube iso embedded inside of it as game.iso so nintendont knows where to look to load the “mounted disk”. This unfortunately looks like a home grown solution that should not be able to be replicated for Wii games.
#1,590 - FIx94: the ISO inside an ISO technique (nested ISO) outlined above was designed that way for simplicity within the limitations of WiiVC
#1,599 - Fix94: additional development on nintendont forwarders, autobooting to a nested game.ISO
#1,617 - Fix94: official release of the autoboot forwarder for nested game.ISO
#1,704 - Cyan: instructions on how to semi-automatically nest a gamecube ISO inside the forwarder ISO
#1,706 - Cyan: on first read this sounds like you can do a similar nesting with wii games, but on re-reads I think he is just referring to booting straight into a Wii game using WiiVC
#1,735 - a question about gecko codes for WiiVC that remained unanswered
#1,751 - Cyan: Using USB Loader GX to select between Wii games in WiiVC would require a cIOS of IOS255 which nobody has the skill set to do.
#1,759 - another user asking about cheats unanswered
#1,781 - a technique on using gamepad + wiimotes concurrently (I was not aware this was possible…)

#895 - Leseratte: more information on how gamepad + wiimote works concurrently using some fake calls or passthrough.


Nintendont
—————-
#7 - GaryOderNichts: a possible nintendont patch that fixes the GCA adapter bug you and I are experiencing when booting from WiiVC


GCT
____
#2 - Leseratte: how to “decompile” a GCT back to cheat file which may be helpful for one of the two GCA adapter codes linked to earlier today



cIOS
——

The bigest discovery for my self this evening was that there has been recent cIOS development… from 4 people! I had no clue anybody had touched a cIOS for over 5 years. Below are the 4 projects that have been active since 2020

Leseratte (https://github.com/Leseratte10/d2xl-cios): #3,299, Wii Mini with ultimate goal to have a one tool for Wii, Wii Mini, Wii U

XFlak (https://github.com/davebaol/d2x-cios/): #3,310, with ultimate goal to release v10-final with ustealth/emunand support

Cyberstudio (https://github.com/cyberstudio10/d2xl-cios/): #22 improving HDD compatibility

wells2002 (https://github.com/mjwells2002/d2xb-cios): updating the code to the latest devkitARM compatibility allowing for more accessibility in future development

#3,344 - a user inquiring if a new cIOS can regain USB features for WiiVC
#5 - Cyan: another incredibly detailed explanation for just about anything IOS related (must read!)
Post automatically merged:

I'll see if I can load USBloaderGX or the homebrew channel (maybe starting from a game injection or a homebrew injection).

Based on what I read, it seems impossible to boot to homebrew channel. itll trigger the installation message because WiiVC will not be able to switch IOS modules and wont let the homebrew channel see any other installed IOS modules in your true vWii. I also don't believe there is any way to exit a Wii game other than smash stack. The method nintendont uses to nest a game ISO inside WiiVC is a custom homegrown trick that cannot be replicated for Wii titles.

In WiiVC mode, CTGP homebrew (not patched MKWii), the GCA works just fine

You mean the GCA works in the CTGP-R Channel? I recall GCA support being added to it, but I can't remember if I ever tested it. If I am understanding what you are saying correctly, it means the brainslug 028 module code is functional in this weird USB implementation of IOS255. However, it would have to be patched directly into a main.dol of a Wii game for it to be usable. What IOS255 patches were activated (gamepad support, homebrew flag, etc)

Just to confirm as I didn't quite understand (I'm noticing my confusion), the gpf (of the GCA inject project) works in Wii/vWii needing to hijack Brawl's protocol for communicating with USB ethernet LAN? Like, that's why USB ethernet not working whatsoever in WiiVC is evidence that GCA won't work (while there is still hope for CTGP if Homebrew+vdisk possible)? Or am I completely off (lol, more likely I suppose)?
Ignore everything about the USB LAN adapter, it was just to figure out what can and can't communicate in WiiVC and isn't directly required for GCA communication. Any USB device not functioning as expected indicates the USB module is atypical. My previous post highlights some of the theories as to why the USB module is not functioning as expected. We have no access to USB storage mediums, no access to USB LAN Adapters, no access to Skylander Portal. Unknown functionality of music game USB peripherals (microphone, etc), USB Keyboard, etc. The purpose of checking Nintendonts BBA code is to see if a homegrown solution (like that built for nintendont) can tap into the USB network interface. Our only indication of USB communication is Nintendonts GCA code which required a fully custom implementation on top of an official IOS and now the CTGP-R Channel which is based on the CTGP code, two very different implementations. Promising!
 
Last edited by JacobM,
  • Like
Reactions: Brawl345

Famus484

Member
Newcomer
Joined
Oct 9, 2019
Messages
22
Trophies
0
Age
29
XP
108
Country
Canada
Thanks for all that documentation, that must have been a lot of work going through all that! I may be repeating myself, but I feel like I understand better than before. Notably, I fully read Cyan's post about IOSes.

Based on what I read, it seems impossible to boot to homebrew channel. itll trigger the installation message because WiiVC will not be able to switch IOS modules and wont let the homebrew channel see any other installed IOS modules in your true vWii. I also don't believe there is any way to exit a Wii game other than smash stack. The method nintendont uses to nest a game ISO inside WiiVC is a custom homegrown trick that cannot be replicated for Wii titles.
If I sum all that up. Homebrew loading in WiiVC is done by injecting a custom Wii ''game'' that is in fact just the .dol executable. And GC injection is done by homebrew injection of the forwarder dol, with the added files of the GC game (which are, in themselves, just useless files not linked to the forwarder dol). It only works because Nintendon't was explicitely taught, for this very purpose, to detect when it is loaded in WiiVC and read the added files like a GC disk. And thank the stars (thank FIX94) that everything Nintendont needs is present in IOS255, and that it doesn't switch IOS when loading game.

Replicating this with Wii game is non-trivial, since if we patched the wii game files along with any other homebrew dol (or channel forwader), they would just be useless files, not even detected unless taught to. Any homebrew that boots a disk would just boot itself back. Worse, IOS switching(/reloading?) is impossible in WiiVC, so we can't inject 1 game+1dol(or channel forwarder). Nor can USBloaderGX be taught to do what Nintendont does, because fundamentally it swithes/reloads an IOS/cIOS each time it boots anything. The only ways forward I can see would be:

-One of these new loaders in development that would work like Nintendont, but for Wii games.
-Exploits within games, like Smash Stack. I guess exploits could be patched into other games (but at this point, I suppose just patch the cheats in ISO?).
-Or maybe a nested game with forwader dol to GeckoOS, forwarder dol that can instead point to the game if loaded with the right cheat, which GeckoOS will do.
-All of these solutions would be incompatible with CTGP-R. For CTGP, an exploit would have to be found within MKWii, but there may not be any (does it even use the SD card at any point?), and nobody will seriously look for it.
-Finding an exploit within WiiVC itself, that allows for hijacking the startup chain and loading an actual homebrew file instead of injected game (what I thought was happening before, lol).

Edit: Added/modified some ideas

Did I get all that right?

You mean the GCA works in the CTGP-R Channel? I recall GCA support being added to it, but I can't remember if I ever tested it. If I am understanding what you are saying correctly, it means the brainslug 028 module code is functional in this weird USB implementation of IOS255. However, it would have to be patched directly into a main.dol of a Wii game for it to be usable. What IOS255 patches were activated (gamepad support, homebrew flag, etc)
Yesterday, I had tested CTGP-R homebrew app loaded from WiiVC Homebrew Channel, where GCA worked. If memory serves right, it also worked in CTGP-R channel (injected forwarder, which I unfortunately deleted since). But yea, if I understand that would mean exactly that.

So basically, is that evidence that GCA is accessible in IOS255 (more or less) the same way that it is in IOS57 (contrary to other USB devices like ethernet adapter)? But differently in IOS36, hence why brainslug doesn't work in physical disk Brawl, and also why GCA-inject doesn't work in WiiVC Brawl (which is stuck in IOS255)?

If that is right, would that mean that brainslug could surprisingly work in WiiVC Brawl (assuming brainsug can be loaded from smash stack or something like that)?
 
Last edited by Famus484,

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
If I sum all that up. Homebrew loading in WiiVC is done by injecting a custom Wii ''game'' that is in fact just the .dol executable. And GC injection is done by homebrew injection of the forwarder dol, with the added files of the GC game (which are, in themselves, just useless files not linked to the forwarder dol). It only works because Nintendon't was explicitely taught, for this very purpose, to detect when it is loaded in WiiVC and read the added files like a GC disk. And thank the stars (thank FIX94) that everything Nintendont needs is present in IOS255, and that it doesn't switch IOS when loading game.
Exactly!

Replicating this with Wii game is non-trivial, since if we patched the wii game files along with any other homebrew dol (or channel forwader), they would just be useless files, not even detected unless taught to.
Yup!

Any homebrew that boots a disk would just boot itself back. Worse, IOS switching(/reloading?) is impossible in WiiVC, so we can't inject 1 game+1dol(or channel forwarder). Nor can USBloaderGX be taught to do what Nintendont does, because fundamentally it swithes/reloads an IOS/cIOS each time it boots anything. The only ways forward would be:
Correct. It MAY be possible to create a modified version of USB Loader GX to look inside the nested ISO, but
1. further development of USB Loader GX is already very complicated with blackb0x being the only current maintainer
2. even with the ability to look inside, ultimately the lack of IOS reload will most likely end up with the inability to boot whatever image is nested anyways.
3. even if there was some IOS compatibility this would be a highly niche use case for the amount of work required to retool USBLoaderGX

-One of these new loaders in development that would work like Nintendont, but for Wii games.
Correct. RVLoader would need GCT support and vWii support. Aurelio has no interest in vWii compatibility, but we should see GCT and less likely GPF at some point.

-Exploits within games, like Smash Stack. I guess exploits could be patched into other games, but it won't be easy.
-Both of these solutions would be incompatible with CTGP-R. For CTGP, an exploit would have to be found within MKWii, but there may not be any (does it even use the SD card at any point?), and nobody will seriously look for it.
Correct!

So basically, is that evidence that GCA is accessible in IOS255 (more or less) the same way that it is in IOS57 (contrary to other USB devices like ethernet adapter)?
Yes.

But differently in IOS36, hence why brainslug doesn't work in physical disk Brawl, and also why GCA-inject doesn't work in WiiVC Brawl (which is stuck in IOS255)?
Brainslug does not reload IOS to the games requested IOS unlike riivolution, it just fakes it (Source 1, Source 2). Which may play to your advantage.

Since the CTGP channel works, the brainslug module may just work as-is through smash stack. Or it might still need to be modified as Wilm suspected by switching use to /dev/usb/oh0 instead of /dev/usb/hid. However, this method would only give you access in vanilla versions of the game.

Both Chadderz (the developer of brainslug and the patch) and Lesserate have commented that brainslug isn't dependent on a disc and can actually be programed to patch in USB Loaders (Source 3, Source 4). But I do not believe brainslug modules can be patched permanently into game ISOs.

Lastly, here is another lovely write-up i found last night related to WiiVC. Enjoy! http://vztekoverflow.com/2016/12/27/regarding-wii-vc-osv1-hai-etc/


Edit:
Lesserate once said it could be possible to integrate GCA support directly in LE-CODE so that all MKWii CT packs other than CTGP would have native support.
 
Last edited by JacobM,

Famus484

Member
Newcomer
Joined
Oct 9, 2019
Messages
22
Trophies
0
Age
29
XP
108
Country
Canada
Thank you for confirming all that!

I'm still wondering about the idea to patch a forwader.dol that by defaults load geckoOS from SD card, but that can load full game (possibly with cheats) if a patch or cheat enables it to. I never coded homebrew, I don't know the possibilities or limitations, but I would think renaming main.dol maingame.dol, leaving all the rest untouched, and adding the forwarder can work for any game (although cheats would have to be modified?). Or perhaps every time, the games main.dol has to modified so that it loads Gecko unless some boolean variable is set to true (in which case it proceeds with rest of the game).

Since the CTGP channel works, the brainslug module may just work as-is through smash stack. Or it might still need to be modified as Wilm suspected by switching use to /dev/usb/oh0 instead of /dev/usb/hid. However, this method would only give you access in vanilla versions of the game.
Is it because brainslug modules can't use GCT files? In which case, the problem would be that even if I patched a PM ISO, I also disable smash stack exploit?

I wonder though, if the gpf file (of GCA inject) could be modifed to work in IOS255. Would one encounter the same problem as when trying to make the GCT for USBloaderGX in Wii/vWii?

Lastly, here is another lovely write-up i found last night related to WiiVC. Enjoy! http://vztekoverflow.com/2016/12/27/regarding-wii-vc-osv1-hai-etc/
Enjoyed! I suppose modifying ''Hai'' fw.img so that it behaves like some other IOS when it comes to USB interface is impossible, since it would already have been done?
 
Last edited by Famus484,

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
Last batch of documented discussions. turns out USB microphones sporadically work!

#1,393 cyan claiming no usb devices due to ios255 usb module

#1,839 - guitar and microphones not working

#5,276 through 5286 - lan adapter not working, further speculation on microphone/keyboard

#5,754 - USB port position compatibility variance in wii vc

#5,831 - microphone and USB dongle did not work in rockband

#6,608 - logitech microphone worked with sing 4

#6,621 - microphone did not work in karaoke revolution

#6,622 - same person who got the logitech microphone to work in sing 4 got it to work in karaoke revolution glee volume 2, front top port?

#6,627 another user confirming glee volume 2 working, but karaoke revolution not working

#7,283 - another user confirming guitar/drum dongles dont work

#7,284 - piratesphiroth claiming any usb devices wont work

I'm still wondering about the idea to patch a forwader.dol that by defaults load geckoOS from SD card, but that can load full game (possibly with cheats) if a patch or cheat enables it to.

based on my understanding it would reboot to the ISO containing the fowarder.dol and loop back into geckoOS otherwise a cIOS would be needed to load and redirect instructions.

Is it because brainslug modules can't use GCT files? In which case, the problem would be that even if I patched a PM ISO, I also disable smash stack exploit?
TBH I don't know anything about smash stack, I started with the Wii after letterbomb and never saw any use for smash stack so I haven't gone through the process ever. I would assume, if you can use smash stack to boot to whatever homebrew you want, once you run the brainslug module, it will return to the mounted disc and apply the patches to the original game. My guess is you would have to have a custom ISO of the mod you want to run.

I wonder though, if the gpf file (of GCA inject) could be modifed to work in IOS255. Would one encounter the same problem as when trying to make the GCT for USBloaderGX in Wii/vWii?
There is barely any homebrew that can understand GPF so I have no clue

Enjoyed! I suppose modifying ''Hai'' fw.img so that it behaves like some other IOS when it comes to USB interface is impossible, since it would already have been done?
Progress on modifications stopped almost as soon as they started. See here for a comprehensive list: https://gbatemp.net/threads/fwpatcher-fw-img-patcher-for-wiiu-wiivc-firmware-image.484166/. These translate to the checkbox options in teconmoons injector script.

I think I have exhausted my knowledge and ability to help any further outside of testing if some progress is made. Hopefully one day we will see some form of GCA support!
 
Last edited by JacobM,

Famus484

Member
Newcomer
Joined
Oct 9, 2019
Messages
22
Trophies
0
Age
29
XP
108
Country
Canada
Last batch of documented discussions. turns out USB microphones sporadically work!

#1,393 cyan claiming no usb devices due to ios255 usb module

#1,839 - guitar and microphones not working

#5,276 through 5286 - lan adapter not working, further speculation on microphone/keyboard

#5,754 - USB port position compatibility variance in wii vc

#5,831 - microphone and USB dongle did not work in rockband

#6,608 - logitech microphone worked with sing 4

#6,621 - microphone did not work in karaoke revolution

#6,622 - same person who got the logitech microphone to work in sing 4 got it to work in karaoke revolution glee volume 2, front top port?

#6,627 another user confirming glee volume 2 working, but karaoke revolution not working

#7,283 - another user confirming guitar/drum dongles dont work

#7,284 - piratesphiroth claiming any usb devices wont work
Yea, the USB situation is really weird, I don't know what to make of it. It's almost as if (although there is evidence against this) USB was just meant to not work in IOS 255, except for reading game off of WiiU-formatted drive, but the possible compatibility with GCA was added, just in case Nintendo'd need it for something (like a rerelease of Melee or Brawl), which they didn't. That's just my imagination going.

based on my understanding it would reboot to the ISO containing the fowarder.dol and loop back into geckoOS otherwise a cIOS would be needed to load and redirect instructions.
Oh I suppose I just don't understand cheat codes at all. I was thinking they could at least change variables during runtime (without anything to do with (c)IOS), therefore when disk boots back to itself, it would do so with ''loadsgame'' variable set to ''true'' by cheat (instead of ''false'' the first time without cheats), and because of that proceed with the rest of the game instead of loading GeckoOS. But really that idea doesn't mean anything until someone (or I) can write at least a PoC.

I would suppose I need to look at the code of Nintendont forwarder dol, and see if I can add a line to load some other dol within the game (like, are the game files clearly accessible during runtime?).

TBH I don't know anything about smash stack, I started with the Wii after letterbomb and never saw any use for smash stack so I haven't gone through the process ever. I would assume, if you can use smash stack to boot to whatever homebrew you want, once you run the brainslug module, it will return to the mounted disc and apply the patches to the original game. My guess is you would have to have a custom ISO of the mod you want to run.
Smash stack was very useful in the early-mid Wii U days to hack vWii (since system menu exploits were patched and WiiU side homebrew would come only later). AFAIK, in its current form from the exploit one can only load .elf files (typically hackmii installer, or projectm loader for ''hackless'' mode). Since GeckoOS is also a .elf file, I can also load that. I think that there's a .elf version of CTGP-R homebrew, but I didn't bother yet. But since most Wii homebrew are .dol files, I can't load them through smash stack. I couldn't run smash stack again from Project+, so I assume it was just patched in the mod (perhaps its possible to unpatch it in PM).

I think I have exhausted my knowledge and ability to help any further outside of testing if some progress is made. Hopefully one day we will see some form of GCA support!
Yes, I'm starting to feel the same way. I started posting here because I thought that what we wished for was doable with existing tools/code. That does not appear to be the case, sorry about that. It would seem at least one (and more) of these would be needed in order to progress further:

1. Ability to load homebrew instead of injected disk (in contrast with homebrew injected in disk), ideally with untouched injected disk, but still progress otherwise.
2. Run any homebrew in Smash Stack (could be brainslug is already possible? with cheats?)
3. GCA-inject gpf file rewritten for use in IOS255
4. Brainslug rebrogrammed with USB loading (?)
5. Project M/+ loader added with brainslug functionality (like CTGP-R channel)
6. MKWii exploit found (lol)

At least, now I suppose we now we can run some homebrew with injected vanilla Brawl (although smash stack doesn't always work in WiiVC IME, and each fail requires unplugging wii u), maybe that can help.

Thank you very much for all your time and effort, it helped me wrap my mind though all of this!
 
Last edited by Famus484,

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
but the possible compatibility with GCA was added, just in case Nintendo'd need it for something (like a rerelease of Melee or Brawl), which they didn't

I don't think nintendo ever released the WIiU with the plan to release WiiVC. I think some engineers had to hack together a way to do it and this was the best they could do. Perhaps if the console was more successful the WiiVC IOS255 would be more fleshed out just like how the WiiU N64 VC emulator has a lot of room for improvement. I agree, I dont think the developers intentionally blocked USB features like the LAN adapter, it was just a side effect. Perhaps they were in the middle of prioritizing usb peripheral support in case it was ever needed in a future WiiVC when development was cut.

Oh I suppose I just don't understand cheat codes at all. I was thinking they could at least change variables during runtime (without anything to do with (c)IOS), therefore when disk boots back to itself, it would do so with ''loadsgame'' variable set to ''true'' by cheat (instead of ''false'' the first time without cheats), and because of that proceed with the rest of the game instead of loading GeckoOS. But really that idea doesn't mean anything until someone (or I) can write at least a PoC.

All good ideas, but all these approaches being brainstormed likely require developments on multiple fronts (GCT, flags, forwarder embedded ISO, some IOS patching) all happening to be compatible with each other in a limited sandbox. Trying to get all those components talking to eachother will probably end up with hundreds of hard resets of the WiiU. In the end, it just seems far more simple to boot from vWIi and use discs or improve on Wilm or Chadderz code base.

Smash stack was very useful in the early-mid Wii U days to hack vWii (since system menu exploits were patched and WiiU side homebrew would come only later).
Ah! I had only owned a Wii prior to 2016. I never thought I would own a WiiU.... I bought the official gamecube adapter to use with dolphin and next thing I knew, I owned a WiiU. For me wuphax seemed like the only method fathomable! Interesting to think about!

1. Ability to load homebrew instead of injected disk (in contrast with homebrew injected in disk), ideally with untouched injected disk, but still progress otherwise.
2. Run any homebrew in Smash Stack (could be brainslug is already possible? with cheats?)
3. GCA-inject gpf file rewritten for use in IOS255
4. Brainslug rebrogrammed with USB loading (?)
5. Project M/+ loader added with brainslug functionality (like CTGP-R channel)
6. MKWii exploit found (lol)
All good ideas, I would also consider these....
7. Patching of game ISOs with GCA support which directly works in IOS255
8. Modifying RVLoader to be compatible with WiiU and booting with IOS255
9. Invest in gamecube wii remote adapters to be used in IOS255

Thank you very much for all your time and effort, it helped me wrap my mind though all of this!
Sure thing! Going through everything was interesting enough and helpful to document! I was hoping for some nuggets of information since my last deep dive prior to 2020.
 

Famus484

Member
Newcomer
Joined
Oct 9, 2019
Messages
22
Trophies
0
Age
29
XP
108
Country
Canada
I don't think nintendo ever released the WIiU with the plan to release WiiVC. I think some engineers had to hack together a way to do it and this was the best they could do. Perhaps if the console was more successful the WiiVC IOS255 would be more fleshed out just like how the WiiU N64 VC emulator has a lot of room for improvement. I agree, I dont think the developers intentionally blocked USB features like the LAN adapter, it was just a side effect. Perhaps they were in the middle of prioritizing usb peripheral support in case it was ever needed in a future WiiVC when development was cut.
I'd add that I do think that releasing the GCA for only one game (at least until they made it work with switch) is very sus. It's like they gave a gift to the homebrew/emulation scene (full gamecube experience in both dolphin and wiiu). I don't see how they could not have had other plans for the adapter, like releasing Gamecube games (imagine they secretly use nintendont to sell GC games on store). It could explain why GCA is the most reliable USB device in WiiVC.

All good ideas, but all these approaches being brainstormed likely require developments on multiple fronts (GCT, flags, forwarder embedded ISO, some IOS patching) all happening to be compatible with each other in a limited sandbox. Trying to get all those components talking to eachother will probably end up with hundreds of hard resets of the WiiU. In the end, it just seems far more simple to boot from vWIi and use discs or improve on Wilm or Chadderz code base.
Yea you're right. The reason I'm interested in this a lot these days is that I'd like to have a semi-portable Melee/P+ setup. I would rather not use my CDs each time (most notably Project+, I don't mind all that much for CTGP), as I want to preserve them long term. I guess I could just dust off my Wii and use that, but CRTs are becoming rarer and rarer, and Wii on HDTVs (component cables) seems to have a lot more latency than WiiU on the same TVs (HDMI). I can also emulate, but only my desktop PC is strong enough for enjoyable, reliable P+, and if I do use Moonlight for all else (even other fighting games feel sufficiently good), for Smash the latency is just a bit too high when I'm not home.

The WiiU is almost the one perfect device for this, as it even has the gamepad for when there are no available TVs, and Moonlight when we want to play non-nintendo games/do PC stuff. Except for the CD, 2GB SD and wiimote requirement for P+, which is why I'm motivated with seeing this through :rofl:. I am really grateful for the ability to even do this at all though!

7. Patching of game ISOs with GCA support which directly works in IOS255
Would that be the one that's the most promising avenue for immediate efforts? Like, say I put in the effort, and look wilm's code, then convert it for use in IOS255, this would be the avenue with highest expected success for the effort?
 

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
Would that be the one that's the most promising avenue for immediate efforts? Like, say I put in the effort, and look wilm's code, then convert it for use in IOS255, this would be the avenue with highest expected success for the effort?

At one point, I think Wilm had it working on dolphin as an ISO patch. The latest commits have never been generated into a GCT. It might be worth reaching out for more details on where the development ended if the codebase is something that looks to be in your skillset.

If it were me, I would try to make a POC of Wilm's code as a homebrew button test app running in IOS255. If it doesn't work, then the implementation needs to adapt something from Chadderz brainslug code. Once working, build an ISO patch using dolphin. Then running the ISO in IOS255 should work since there is no dependency on cIOS.
 
  • Like
Reactions: Famus484

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Mondooooo @ Mondooooo: archive of our own should be banned by the CIA