Line 1:
Line 1:
−
Mini Is Not IOS
+
Mini Is Not IOS -- but it is a limited replacement that can fulfill many low-level tasks that IOS might interfere with.
+
+
= Features =
+
* Light-weight -- binary is approximately 50kbytes, 12,000 lines of code as of first release
+
* Mostly IRQ driven :)
+
* Supports debug output over the GPIO pins and USBGecko
+
* Supports loading both ARM and PPC-side binaries over USBGecko (ala Wiiload)
+
* Allows any memory address to be peeked or poked from the PPC (via IPC)
+
* Contains drivers for the following hardware:
+
** OTP, SEEPROM
+
** AES engine
+
** SDHC (at the sector level, or can load a file from a FAT FS on SD)
+
** NAND (read/write at the physical level)
+
** PowerPC (can read a PPC ELF file from SD into memory, and kickstart execution on the PPC)
+
* Not dependent on IOS in any way -- as long as you can run it, it can do whatever it wants, regardless of what security features Nintendo patches into newer versions of IOS.
+
+
= Limitations =
+
* No real kernel architecture; no threading model, but most calls are asynchronous
+
* No USB support (including Bluetooth for Wiimotes)
+
* No WiFi support
+
* No NAND FS support
+
* No audio/visual capability (hardware limitation)
+
+
All registers are exposed over IPC, so some or all of the missing driver functionality could conceivably be implemented on the PPC side.
+
Note that this cannot execute at the same time as IOS; you can only have one or the other executing at any point in time. Switching back and forth between the two is left as an exercise for the developer.