Example #1
0
bool languageLoad()
{
	char fbuff[255];
	
	if (strcmp(settings.localLanguage, "default") == 0) {
		languageDefault();
		return true;
		}
	if (strcmp(settings.localLanguage, "ca-CAT") == 0) {
		return parseMemFile( (char*)catalan_lang, catalan_lang_size, &languageSet);
		}
	if (strcmp(settings.localLanguage, "da-DAN") == 0) {
		return parseMemFile( (char*)danish_lang, danish_lang_size, &languageSet);
		}
	if (strcmp(settings.localLanguage, "tr-TUR") == 0) {
		return parseMemFile( (char*)turkish_lang, turkish_lang_size, &languageSet);
		}
	if (strcmp(settings.localLanguage, "de-GER") == 0) {
		return parseMemFile( (char*)german_lang, german_lang_size, &languageSet);
		}
	if (strcmp(settings.localLanguage, "es-SPA") == 0) {
		return parseMemFile( (char*)spanish_lang, spanish_lang_size, &languageSet);
		}
	if (strcmp(settings.localLanguage, "fi-FIN") == 0) {
		return parseMemFile( (char*)finnish_lang, finnish_lang_size, &languageSet);
		}
	if (strcmp(settings.localLanguage, "fr-FRE") == 0) {
		return parseMemFile( (char*)french_lang, french_lang_size, &languageSet);
		}
	if (strcmp(settings.localLanguage, "it-ITA") == 0) {
		return parseMemFile( (char*)italian_lang, italian_lang_size, &languageSet);
		}
	if (strcmp(settings.localLanguage, "nl-DUT") == 0) {
		return parseMemFile( (char*)dutch_lang, dutch_lang_size, &languageSet);
		}
	if (strcmp(settings.localLanguage, "pt-BR") == 0) {
		return parseMemFile( (char*)portuguesebr_lang, portuguesebr_lang_size, &languageSet);
		}
	if (strcmp(settings.localLanguage, "hu-HUN") == 0) {
		return parseMemFile( (char*)hungarian_lang, hungarian_lang_size, &languageSet);
		}
	if (strcmp(settings.localLanguage, "myLANG") == 0) {
		sprintf(fbuff,"%s/MyLanguage.lang", dynPath.dir_usb_loader);
		//if (!cfg_parsefile(USBLOADER_PATH "/MyLanguage.lang", &languageSet)) 
		if (!cfg_parsefile(fbuff, &languageSet)) 
			{
			sprintf( settings.localLanguage, "default");
			languageDefault();
			return false;
			}
		else 
		    {
			return true;
			}
		}

    languageDefault();
	return false;
}
Example #2
0
int main(int argc, char **argv)
{
	u32 cookie;
	FILE *exeFile = NULL;
	void *exeBuffer = (void *)EXECUTABLE_MEM_ADDR;
	u32 exeSize = 0;
	u32 exeEntryPointAddress = 0;
	entrypoint exeEntryPoint;
	__exception_setreload(0);

	IOS_ReloadIOS(58);

	/* int videomod */
	InitVideo();
	/* get imagedata */
	u8 * imgdata = GetImageData();
	fadein(imgdata);
	/* check devices */
	SDCard_Init();
	USBDevice_Init();

	char cfgpath[256];
	bool result = false;

	sprintf(cfgpath, "sd:/config/SaveGame_Manager_GX/SaveGame_Manager_GX.cfg");
	result = cfg_parsefile(cfgpath, &cfg_set);
	if(!result) //no cfg-File on SD: try USB:
	{
		sprintf(cfgpath, "usb:config/SaveGame_Manager_GX/SaveGame_Manager_GX.cfg");
		result = cfg_parsefile(cfgpath, &cfg_set);
	}

    if(result)
    {
        sprintf(cfgpath, "%sboot.dol", update_path);
		/* Open dol File and check exist */
        exeFile = fopen (cfgpath, "rb");
        if (exeFile==NULL)
        {
            sprintf(cfgpath, "%sboot.elf", update_path);
            exeFile = fopen (cfgpath,"rb");
        }
        if (exeFile==NULL)
			result = false;
        else
        result = true;
    }

	if(!result) // non cfg-File loaded or update_path not set
	{
		/* Open dol File and check exist */
		sprintf(cfgpath, "sd:/apps/SaveGame_Manager_GX/boot.dol");
		exeFile = fopen (cfgpath ,"rb");
		if (exeFile==NULL)
		{
			sprintf(cfgpath, "sd:/apps/SaveGame_Manager_GX/boot.elf");
			exeFile = fopen (cfgpath ,"rb");
		}
		if (exeFile==NULL)
		{
			sprintf(cfgpath, "usb:/apps/SaveGame_Manager_GX/boot.dol");
			exeFile = fopen (cfgpath ,"rb");
		}
		if (exeFile==NULL)
		{
			sprintf(cfgpath, "usb:/apps/SaveGame_Manager_GX/boot.elf");
			exeFile = fopen (cfgpath ,"rb");
		}
		if (exeFile==NULL)
		{
			sprintf(cfgpath, "sd:/apps/SaveGameManagerGX/boot.dol");
			exeFile = fopen (cfgpath ,"rb");
		}
		if (exeFile==NULL)
		{
			sprintf(cfgpath, "sd:/apps/SaveGameManagerGX/boot.elf");
			exeFile = fopen (cfgpath ,"rb");
		}
		if (exeFile==NULL)
		{
			sprintf(cfgpath, "usb:/apps/SaveGameManagerGX/boot.dol");
			exeFile = fopen (cfgpath ,"rb");
		}
		if (exeFile==NULL)
		{
			sprintf(cfgpath, "usb:/apps/SaveGameManagerGX/boot.elf");
			exeFile = fopen (cfgpath ,"rb");
		}
		// if nothing found exiting
		if (exeFile==NULL)
		{
            fadeout(imgdata);
            fclose (exeFile);
            SDCard_deInit();
            USBDevice_deInit();
            StopGX();
            free(imgdata);
			SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0);
		}
	}

	fseek (exeFile, 0, SEEK_END);
	exeSize = ftell(exeFile);
	rewind (exeFile);

	if(fread (exeBuffer, 1, exeSize, exeFile) != exeSize)
	{
		fadeout(imgdata);
        fclose (exeFile);
        SDCard_deInit();
        USBDevice_deInit();
        StopGX();
        free(imgdata);
		SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0);
	}
	fclose (exeFile);

	/* load entry point */
	struct __argv args;
	bzero(&args, sizeof(args));
	args.argvMagic = ARGV_MAGIC;
	args.length = strlen(cfgpath) + 2;
	args.commandLine = (char*)malloc(args.length);
	if (!args.commandLine) SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0);
	strcpy(args.commandLine, cfgpath);
	args.commandLine[args.length - 1] = '\0';
	args.argc = 1;
	args.argv = &args.commandLine;
	args.endARGV = args.argv + 1;

	u8 * appboot_buff = (u8 *) malloc(app_booter_dol_size);
	if(!appboot_buff)
	{
		fadeout(imgdata);
        SDCard_deInit();
        USBDevice_deInit();
        StopGX();
        free(imgdata);
		SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0);
	}

    memcpy(appboot_buff, app_booter_dol, app_booter_dol_size);

	exeEntryPointAddress = load_dol_image(appboot_buff, &args);

    if(appboot_buff)
        free(appboot_buff);

	fadeout(imgdata);
	SDCard_deInit();
	USBDevice_deInit();
	StopGX();
	free(imgdata);

	if (exeEntryPointAddress == 0)
	{
		SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0);
	}

	exeEntryPoint = (entrypoint) exeEntryPointAddress;
	/* cleaning up and load dol */
	SYS_ResetSystem(SYS_SHUTDOWN, 0, 0);
	_CPU_ISR_Disable (cookie);
	__exception_closeall ();
	exeEntryPoint ();
	_CPU_ISR_Restore (cookie);
	return 0;
}