What's new

Question RVLoader installer and custom IOS

WuaZ

.
Joined
Mar 7, 2025
Messages
6
Likes
0
Hi,

I am more used to non-trimmed Wii and I joined this forum because I have several questions about RVLoader. To be more precise, I would like to understand how the modifications done by RVLoader allow the Wii to boot without WiFi or bluetooth card (to protect non-trimmed Wii of a brick when these modules die). I would also like to be able to use RVLoader without going through a full installation (just start it though HBC for instance).

I choose to create a dedicated topic to not pollute the general RVLoader one, but please let me know if I should post these questions differently.

1) Booting without a bluetooth card
I understand from Wiibrew (page Brick/WiFi brick) that the WiFi module check is done by the System Menu (via a call to IOS80 which will not answer if WiFi card is missing). So from my understanding a Wii without a WiFi module should be able to boot homebrew as long as it has BootMii boot2 or Priiloader installed (since the System Menu is not yet started at this stage and it is possible to go directly to HBC or to another homebrew from Priiloader). But does someone know by which component the check for the presence of the bluetooth card is done and at what stage? Is it also the System Menu doing the check or is it done earlier by the IOS80 directly?

2) No-WiFi patch: purpose and operation
Since the WiFi check is done by System Menu and RVLoader is booted directly via Priiloader, what is the point of the no-WiFi patch? Is this WiFi initialisation call done again at other stage than start-up, for instance when changing IOS to boot a game?
Since WiFi can still be activated, what exactly is patched? Is it just forcing the IOS to respond that the WiFi card is there even if it is not? Is this patch also patching the need for bluetooth? It seems to touch only WD and WL modules from IOS, but I cannot find which IOS module control the bluetooth.

3) Custom IOS built by RVLoader installer
I looked at the source code of RVLoader installer and my understanding is that it installs:
  • Stock IOS 36, 58 and 80 on their respective slots if no-WiFi is disabled and custom no-WiFi IOS 36, 58 and 80 is no-WiFi is activated
  • Patched IOS36 (Trucha-bug restored) with no-WiFi on slot 236
  • No-WiFi IOS58 and no-WiFi IOS80 (but without other patchs) on slot 240 and 241
Is it correct or is there any patch applied to the IOS on slots 36, 58 and 80 is no-WiFi is disabled? If so, what is the point to reinstall stock IOS on stock IOS? Isn't it a brick risk to touch IOS80 if the version installed is already clean? Because if anything goes wrong with IOS80 installation even Priiloader might be broken (since boot2 will start IOS80, which will launch Priiloader believing it is System Menu)

4) Launching RVLoader without installation
I looked at the installer and my understanding is that it perform the following actions:
  • Install stock and patched IOS (as described above)
  • Install Priiloader via IOS236 (why not AHBPROT like in the latest Priiloader build?)
  • Extract font data to external support if the MX chip is still present (for Nintendon't and RVLoader)
  • Setup Priiloader to autoboot RVLoader
Is it possible to boot RVLoader from HomeBrew Channel (HBC) without going through the installer and without modifying the NAND of the Wii? If some cIOS are mandatory, which ones?

5) Using custom WD and WL modules from RVLoader outside of RVLoader installer
Is it possible to build the custom IOS using the WD and WL modules of RVLoader with for instance d2x-cIOS-installer with a custom CIOSMAPS.xml file? Or is there a dedicated installer or already patched WAD available?
 
Last edited:

Aurelio

ᕕ( ᐛ )ᕗ
Staff member
.
.
.
.
.
Joined
Mar 3, 2016
Messages
2,255
Likes
3,042
Portables
2
Sorry for the late reply. I'll try to sum it up:
1-2) WiFi must be patched on a system wide level because any game would need to be patched, same for homebrews since even initializing the SD freezes the system when WiFi isn't present (or patched out).
When re-enabling WiFi for a specific game, Hiidra loads stock WD and WL instead of the custom dummy ones.
Bluetooth is handled by the OH1 module (which takes care of the OHCI implementation of the internal USB bus to which the bluetooth module is connected to). Homebrews don't need it to be patched because the Bluetooth initialization thread just stops working and no further actions are taken. Wii titles instead check that Bluetooth initialization is completed, otherwise they just get stuck. Hiidra implements a custom OH1 module to take care of this and also implement GC2Wiimote.

3) The installer builds the IOS on the fly from the different modules already found on the system, so it's fairly fail-proof.

4) Yes, RVLoader can boot without being installed. No cIOSes are really needed. The installer uses IOS236 simply because it was based off priiloader 0.9.2 iirc

5) Yes, you can use my WD module (WL is just nulled) in d2x, I tested it in the past already. I also believe others used it for the Wii mini, but I might be wrong
 

WuaZ

.
Joined
Mar 7, 2025
Messages
6
Likes
0
Thanks a lot for your answer!

Your explanation about the difference between WiFi and bluetooth behaviour is very clear and now I understand why you only need to patch WiFi to boot the Wii without both cards. So if I want my Wii to still be able to boot homebrews when these cards died I also only need to patch WiFi in the System Menu IOS (or in the IOS used by Priiloader and by the homebrew I will chain afterwards).

I was not aware that Hiidra was able to reload some IOS modules on the fly without installing them, but I guess it was the meaning of "Fully on-the-fly kernel injection and loading" when you announced it. That explain why I cannot find any patch related to bluetooth and GC2Wiimote in the installer.

About using your WD module in d2x, do you still have by any chance the CIOSMAPS.xml file you used to inject it (if you use any, maybe you did it by modifying directly d2x sources since both seem to use the same cIOS library)? Is your wd module "wd.bin"? Is it in a different format that the .app IOS modules in d2x or can I just rename wd.bin into wd.app? I tried to look in the sources but I cannot find the wd_bin.h file that is included on the part where you replace the stock WD module by just your WD module. Since I will need a lot of time to increase my knowledge on cIOS building before being able to generate by myself a patched IOS I think I will start by running RVLoader installer and extracting your custom IOS directly from the NAND of my Wii :blush:
 

Aurelio

ᕕ( ᐛ )ᕗ
Staff member
.
.
.
.
.
Joined
Mar 3, 2016
Messages
2,255
Likes
3,042
Portables
2
I don't have the CIOSMAPS, I modified the IOS WAD directly by removing the stock WD module and injecting mine.
The custom WD module is indeed wd.bin and is the same format as the .app module, they are ELF files. The wd_bin.h file is generated on compilation but is only useful to reference to it in the installer code.
 

WuaZ

.
Joined
Mar 7, 2025
Messages
6
Likes
0
Thanks for the details, I will try to build it myself. It will be a nice project to start to understand cIOS building (using existing modules) and cios-lib!
 

NLG

.
Joined
Jan 7, 2018
Messages
27
Likes
5
I don't have the CIOSMAPS, I modified the IOS WAD directly by removing the stock WD module and injecting mine.
The custom WD module is indeed wd.bin and is the same format as the .app module, they are ELF files. The wd_bin.h file is generated on compilation but is only useful to reference to it in the installer code.
Does an RVLoader WAD exist? I would like to be able to launch RVLoader from the system menu. I managed to make a WAD (using ModMii + CustomizeMii), and it does load RVLoader, but it loads it really slowly (like 30 seconds), and then when I select a game it hangs on the Hiidra loading screen. I tried having my startup IOS as both 35 (default) and 249. 249 did not work at all.

EDIT: I tried IOS 61 (the same IOS as in my homebrew channel) as the startup IOS and now it is able to load games, but it's excruciatingly slow. Once pressing A it took like 3 minutes to launch Wii Sports when it normally takes like 5 seconds. It working, albeit slowly, is very bizarre to me. I wonder if it is forcing the USB drive to operate at USB 1.0 speeds or something.
 
Last edited:

WuaZ

.
Joined
Mar 7, 2025
Messages
6
Likes
0
From the stock IOS, only IOS 58 is supporting USB 2.0. Your HBC should be using IOS58 as well. Which version of the System Menu are you using? Do you have IOS 58 installed? If not, you can install it (using for instance ModMii) and then reinstall your HBC, either by running HackMii installer again or by installing the Open HBC WAD suggested by ModMii. RVLoader installer is also installing it, so you can just run it for simplicity (but you will need to deactivate the autoboot in Priiloader after the installation if you want the start on the System Menu)

Your forwarder WAD should also be using IOS 58 : RVLoader is asking (via the meta.xml file) the HBC to keep the same IOS than HBC (so IOS 58 if your softmod is "recent") and to deactivate AHBPROT
 

NLG

.
Joined
Jan 7, 2018
Messages
27
Likes
5
From the stock IOS, only IOS 58 is supporting USB 2.0. Your HBC should be using IOS58 as well. Which version of the System Menu are you using? Do you have IOS 58 installed? If not, you can install it (using for instance ModMii) and then reinstall your HBC, either by running HackMii installer again or by installing the Open HBC WAD suggested by ModMii. RVLoader installer is also installing it, so you can just run it for simplicity (but you will need to deactivate the autoboot in Priiloader after the installation if you want the start on the System Menu)

Your forwarder WAD should also be using IOS 58 : RVLoader is asking (via the meta.xml file) the HBC to keep the same IOS than HBC (so IOS 58 if your softmod is "recent") and to deactivate AHBPROT
Thanks for the insight! Will try to get things working around IOS 58. I assume I have it installed since RVLoader works flawlessly and fast most of the time. Will report back
 
Joined
Nov 14, 2020
Messages
14
Likes
57
Thanks for the insight! Will try to get things working around IOS 58. I assume I have it installed since RVLoader works flawlessly and fast most of the time. Will report back
For me, what I needed to do to get my forwarder working is to Right Click the WAD, open with ModMii, and go through the menu that lets you change WAD properties. I needed to ensure IOS58 was the IOS and to also enable full AHB and DVD rights access on the WAD.
 
Top