MCMLXVI :
there is a lot to write, but I'll only tell this for the moment:
CJB answer is fine, but not totally correct
specially point 1 and 2 will need better cover.
I'll try to explain quickly the first one :
Explanation
The Wii and vWii has limited size, which nintendo count in "bloc".
After a lot of Wiiware release, nintendo added a way to backup or install the channels directly to SD card, but running a game located on the SD card is only faked.
The Wii is not launching the game directly from the SD card, but transfering the game back to the console before launching it. It require enough internal free block to do the transfer.
The reason is that the files located on SD card are encrypted (for security reason, to prevent users sharing the backup'd wiiware or VC title with friends/family/internet, etc.). The encrypted channel is tied to the console and can only be decrypted on the same console it was used to put it on SD card.
For the same reason (encrypted files) USBLoaderGX can't run a game located on the "official SD card menu", you need to put the game back to the internal memory in order to launch it.
The console still has the information that the game is installed and present (the Wii/vWii keep a "ticket" of all the available titles), so USBLoaderGX can list the ticket even if there's no game to launch.
Though, it shouldn't list a channel on NAND if only the ticket is present. I tried to hide such channel, but I got bug report, so maybe I messed something.
You need to move the channel to internal memory before launching the game.
The problem here is that the System is checking the signature of the game before decrypting and installing a game to the console's internal memory.
When you use a wad manager, the signature check function is patched inside the IOS used by the homebrew (IOS58 or cIOS), allowing the homebrew to install the pirated channel.
When you use the official SD card menu, you are using the "System menu". The system menu is using IOS80 for all its functions, and the signature check is part of it.
It means that transferring the game from SD to internal NAND memory can't be done without patching the IOS80 signature check function.
Annnnd : There is a program to patch that function !
it's considered relatively dangerous to install, as any issue while editing the IOS80 will result in a full brick (as system menu can't run anymore), but I never seen any brick report using that program.
http://gbatemp.net/threads/patched-ios80-installer-for-vwii-allows-sd-menu-custom-channels.344882/
After patching your IOS80, you will be able to move back to NAND the channels you installed using a WAD manager.
Note that you won't have any issue transferring officially bought games on eshop back to internal NAND memory without a patched IOS80 as the game signature will be valid.
What you can do:
There is a way to launch channels without installing them to your console's memory.
It's called "emuNAND" but it's not really emulating a NAND, it's only redirecting all access to the NAND to another device.
you copy your full console memory's file and folder to SD or USB, and USBLoaderGX will redirect all NAND access to the "copy of your NAND". The console will not know that it's not currently loading data from the internal memory.
Using EmuNAND let you install as many game as you have free space on your device. (unlimited bloc !)
To setup and use EmuNAND it's very easy, but compatibility is not 100% (more like 80-90%).
unfortunately, N64 VC games are part of the games with issues using EmuNAND, but don't worry there are two different emuNAND mode, a second one has 99% compatibility but is a little harder to setup.
So, there are two different EmuNAND method :
- EmuNAND 1 : cIOS redirection method . This method is the easiest to setup, it's managed by the USBLoader and the IOS which is taking care of redirecting all file access.
- EmuNAND 2 : Neek method . This method doesn't use a custom IOS nor USBLoader to redirect file access, instead it reboots the console entirely into a "fully emulated state". ALL the system is actually loaded from the copy of the NAND memory. The system menu is running from SD or USB, and everything you see or do on your console is actually NEVER done to the internal memory. Everything is done on the copy. The advantage is that the console doesn't even know that it's not accessing the real memory, and if you every do something wrong (like a banner brick) it will happen on the copy, not on your console !
I will only explain how to setup and use the cIOS redirection method today.
cIOS EmuNAND setup
requirement :
- d2x cIOS r52 (Though, r53 could work, but has HDD compatibility issues). There is a modified d2x r52 version which allows emuNAND with UStealth drive.
- MBR FAT32 device (SD or USB). I don't remember if emuNAND works with GPT.
Setup:
- launch USBLoaderGX
- go to settings>user path>EmuNAND Channel folder
- Select the folder where you want to place the copy of your NAND memory. One of the common place is either "sd:/nand" or "usb:/nand", but if you want to make different NAND backup (for whatever reason), you can use subfolders :
sd:/nand/nand1/
sd:/nand/nand2/
etc.
- to prevent more steps, set the "emuNAND save folder" to the same path too !
- Go to settings>features>Dump NAND> Full
- once complete, you can "mount" the copy of your NAND.
- Go to the main USBLoaderGX menu
- Select the 4th icon in the top menu
- Enable "channels on emuNAND" and disable "channels on NAND" to be sure to see only the channels installed on your EmuNAND.
You can try to launch a channel if you want, the data will not be loaded from the internal memory but from the redirected NAND path.
it's probably not very clear because the copy is exactly the same as your real memory, so you don't see any difference.
So, now, we will add channels to the copy of your NAND.
Adding channels to EmuNAND
- put a wad to SD or USB
- launch USBLoaderGX
- go to settings>features>EmuNAND wad manager
- Select "file mode" then "install" (or install first, then file mode)
- Browser your SD or USB to find the wad and click on it
- Select "install".
Once done, you see a message telling it's succesfully installed, you can exit back to the main USBLoaderGX menu.
The new installed channel will be there ! if you want you can exit USBLoaderGX to verify that the channel is not on your console, it's only on the "redirected NAND" (emuNAND)
You can try to launch it and you'll have more proof that the channel is actually loaded from the redirected path instead of the internal memory.
So, like you see it's VERY easy to setup :
"dump NAND" .... done
"add wad" ... done
that's all.
Like I said, some games doesn't work with this method (castlevania, bonzai barber, lot of N64 VC games, etc.)
I will not detail the NEEK install here, this post is already very long.
and It was supposed to be a "quick explanation" haha