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; }
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; }