Skip to content

HackMii Installer

HackMii Installer 1.2 runs on Broadway and uses IOS services. It prepares the SD files used by BootMii. Function addresses on this page are Broadway effective addresses.

SD files

Preparing the SD card writes these files:

Path Contents
sd:/bootmii/armboot.bin MINI firmware for Starlet
sd:/bootmii/ppcboot.elf BootMii's Broadway payload
sd:/bootmii/bootmii.ini BootMii configuration

Mounting the SD card

mount_sd (0x80020F8C) calls mount_fat (0x80024010) then changes the current directory to sd:/.

Result Meaning
-1 FAT mounting failed.
-2 FAT mounting succeeded but changing directory failed.

The FAT mount routine initializes the SD interface and checks whether a card is inserted before reading a volume. It accepts a FAT boot sector directly at sector zero, so an MBR is not required for that layout.

Log flushing across IOS reload

prepare_installer_ios (0x80010770) flushes the log before and after reloading IOS. flush_log (0x800224B4) mounts the SD card then calls write_sd_file (0x80021058). If the file write fails, it returns -2 without calling unmount_sd (0x80020F50). The SD initialization flag and handle remain set on this error path.

After the IOS reload, that retained initialization state can skip opening a fresh SD handle. get_sd_status (0x80043EF4) then queries the stale handle. sd_is_inserted (0x80043F48) tests bit 0 of the returned value:

Bit Use
0 A set bit reports an inserted card. A clear bit reports no card.

An IOS result of -4 has bit 0 clear. The insertion check therefore fails and the next mount returns -1 before reading sectors. IOS SD write protection can reject the earlier log write even when reads from the card succeed.