Why is a cIOS necessary?

Discussion in 'Wii - Backup Loaders' started by Mr. Mysterio, May 2, 2015.

?

Which type of storage device do you prefer for backup loading?

  1. SD Card

    0 vote(s)
    0.0%
  2. Micro SD Card

    1 vote(s)
    8.3%
  3. USB Thumb Drive

    1 vote(s)
    8.3%
  4. USB SSD

    0 vote(s)
    0.0%
  5. USB HDD

    10 vote(s)
    83.3%
  1. Mr. Mysterio
    OP

    Mr. Mysterio Super Genius

    Member
    661
    856
    Sep 16, 2014
    United States
    Rosalina's Comet Observatory
    I'm curious why a cIOS is necessary to run Wii game backups from the SD card. I read here that the only reason a cIOS is used is because USB1.1 is too slow to run backups from USB. Is an AHBPROT backup loader that only loads games from an SDHC possible? If not, why?
     
  2. GreyWolf

    GreyWolf GBAtemp Psycho!

    Member
    3,852
    736
    Mar 2, 2015
    United States
    An IOS slot is basically a gateway between the game that's running on the PowerPC and the rest of the system, which is walled behind the ARM core in the GPU. In order for the game to run from a USB drive or SD card the IOS the game is using to access everything has to be patched to redirect IO, etc. to the drive.

    AHBPROT is also part of the hypervisor system that restricts access to the hardware along with MEMPROT for memory access. Disabling those allows you access to everything, but Wii games are written to access the hardware via the IOS mechanism so they need the patch rather than access to the hardware bus.

    Even if a game happened to use IOS58, which has USB2.0, it would still be loading from the DVD because it would have been linked to the standard DVD library when it was compiled.
     
    ploder, N7Kopper and Mr. Mysterio like this.
  3. N7Kopper

    N7Kopper Proud lover of a three-inch girlfriend

    Member
    367
    134
    Aug 24, 2014
    And this also explains why Gamecube loaders Devolution and Nintendont (that run in Wii mode and therefore work on the Wii U) don't need a cIOS to run, as they're coded to access the hardware bus directly by bypassing AHBPROT and MEMPROT, and only use ISO58 for tasks like USB bus access (and, by extension, Bluetooth), deciding between using the system's built-in Wi-Fi antenna and a connected Ethernet cable adapter, and other such things.

    Well, maybe. I'm not an actual coder, I just know a few things and make educated guesses.
     
    Mr. Mysterio likes this.