void prep_exit() { dbg_printf("Services_Close\n"); Services_Close(); dbg_printf("Subsystem_Close\n"); Subsystem_Close(); dbg_printf("Video_Close\n"); extern void Video_Close(); Video_Close(); }
s32 Disc_BootPartition(LoaderConfig loaderConfig , u64 offset) { entry_point p_entry; s32 ret; /* Open specified partition */ ret = WDVD_OpenPartition(offset); if (ret < 0) return ret; /* Run apploader */ ret = Apploader_Run(loaderConfig, &p_entry); if (ret < 0) return ret; /* Setup low memory */ __Disc_SetLowMem(); /* Set an appropiate video mode */ __Disc_SetVMode(); /* Set time */ __Disc_SetTime(); /* OCARINA STUFF - FISHEARS*/ if (loaderConfig.ocarinaSelection) //(ocarinaChoice) { if (loaderConfig.verboseLog) printf("Doing sd codes\n"); memset(gameid, 0, 8); memcpy(gameid, (char*)0x80000000, 6); do_sd_code(loaderConfig.verboseLog, gameid); } /* Close subsystems */ Subsystem_Close(); /* Shutdown IOS subsystems */ SYS_ResetSystem(SYS_SHUTDOWN, 0, 0); /* Jump to entry point */ p_entry(); /* Epic failure */ while (1); return 0; }