Exemple #1
0
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();
}
Exemple #2
0
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;
}