s32 Wpad_Init(void) { WUPC_Init(); s32 ret; /* Initialize Wiimote subsystem */ ret = WPAD_Init(); if (ret < 0) return ret; /* Set POWER button callback */ WPAD_SetPowerButtonCallback(__Wpad_PowerCallback); return ret; }
void KeepAccessRightsAndReload(s32 ios, bool verbose) { s32 ret; if (AHBPROT_DISABLED) { /* There should be nothing to worry about if this fails, as long as the new IOS is patched */ if (verbose) printf("\t- Patching IOS%ld to keep hardware access rights... ", IOS_GetVersion()); ret = IosPatch_AHBPROT(false); if (verbose) printf("%s.\n", (ret < 0 ? "FAILED" : "OK")); } if (verbose) printf("\t- Reloading to IOS%ld... ", ios); WUPC_Shutdown(); WPAD_Shutdown(); IOS_ReloadIOS(ios); //sleep(2); PAD_Init(); WUPC_Init(); WPAD_Init(); WPAD_SetDataFormat(WPAD_CHAN_0, WPAD_FMT_BTNS_ACC_IR); if (verbose) printf("done."); if (AHBPROT_DISABLED) { if (verbose) printf("\n\t- Applying runtime patches to IOS%ld... ", IOS_GetVersion()); ret = IosPatch_RUNTIME(true, false, vwii, false); if (verbose) printf("%s.\n", (ret < 0 ? "FAILED" : "OK")); } if (IsHermesIOS(ios)) { mload_Init(); if (verbose) printf("\n\t- Hermes cIOS detected! ehcmodule loaded through mload."); } }