diff --git a/readMii.doc b/readMii.doc new file mode 100644 index 00000000..6ca0891a Binary files /dev/null and b/readMii.doc differ diff --git a/source/language/language.c b/source/language/language.c index e195ac74..9424d3ea 100644 --- a/source/language/language.c +++ b/source/language/language.c @@ -74,6 +74,9 @@ snprintf(LANGUAGE.CoverDownload, sizeof(LANGUAGE.CoverDownload), "Cover Download snprintf(LANGUAGE.CoverPath, sizeof(LANGUAGE.CoverPath), "Cover Path"); snprintf(LANGUAGE.CoverpathChanged, sizeof(LANGUAGE.CoverpathChanged), "Coverpath Changed"); snprintf(LANGUAGE.Coverpathchange, sizeof(LANGUAGE.Coverpathchange), "Coverpath change"); +snprintf(LANGUAGE.DolPath, sizeof(LANGUAGE.DolPath), "Dol Path"); +snprintf(LANGUAGE.DolpathChanged, sizeof(LANGUAGE.DolpathChanged), "Dolpath Changed"); +snprintf(LANGUAGE.Dolpathchange, sizeof(LANGUAGE.Dolpathchange), "Dolpath change"); snprintf(LANGUAGE.Cheatcodespathchanged, sizeof(LANGUAGE.Cheatcodespathchanged), "Cheatcodes Path changed"); snprintf(LANGUAGE.Cheatcodespath, sizeof(LANGUAGE.Cheatcodespath), "Cheatcodes Path"); snprintf(LANGUAGE.count, sizeof(LANGUAGE.count), "Play Count"); @@ -186,7 +189,7 @@ snprintf(LANGUAGE.Partition, sizeof(LANGUAGE.Partition), "Partition"); snprintf(LANGUAGE.Password, sizeof(LANGUAGE.Password), "Password"); snprintf(LANGUAGE.PasswordChanged, sizeof(LANGUAGE.PasswordChanged), "Password Changed"); snprintf(LANGUAGE.Passwordhasbeenchanged, sizeof(LANGUAGE.Passwordhasbeenchanged), "Password has been changed"); -snprintf(LANGUAGE.Passwordchange, sizeof(LANGUAGE.Passwordchange), "Password change"); +snprintf(LANGUAGE.Passwordchange, sizeof(LANGUAGE.Passwordchange), "Password change"); snprintf(LANGUAGE.Plays, sizeof(LANGUAGE.Plays), "Play Count"); snprintf(LANGUAGE.PowerofftheWii, sizeof(LANGUAGE.PowerofftheWii), "Power off the Wii"); snprintf(LANGUAGE.Prev, sizeof(LANGUAGE.Prev), "Prev"); @@ -467,6 +470,18 @@ void language_set(char *name, char *val) strcopy(LANGUAGE.Coverpathchange, val, sizeof(LANGUAGE.Coverpathchange)); return; } + if (strcmp(name, "DolPath") == 0) { + strcopy(LANGUAGE.DolPath, val, sizeof(LANGUAGE.DolPath)); + return; + } + if (strcmp(name, "DolpathChanged") == 0) { + strcopy(LANGUAGE.DolpathChanged, val, sizeof(LANGUAGE.DolpathChanged)); + return; + } + if (strcmp(name, "Dolpathchange") == 0) { + strcopy(LANGUAGE.Dolpathchange, val, sizeof(LANGUAGE.Dolpathchange)); + return; + } if (strcmp(name, "Cheatcodespath") == 0) { strcopy(LANGUAGE.Cheatcodespath, val, sizeof(LANGUAGE.Cheatcodespath)); return; @@ -919,10 +934,10 @@ void language_set(char *name, char *val) strcopy(LANGUAGE.Passwordchange, val, sizeof(LANGUAGE.Passwordchange)); return; } - if (strcmp(name, "Plays") == 0) { - strcopy(LANGUAGE.Plays, val, sizeof(LANGUAGE.Plays)); - return; - } + if (strcmp(name, "Plays") == 0) { + strcopy(LANGUAGE.Plays, val, sizeof(LANGUAGE.Plays)); + return; + } if (strcmp(name, "PowerofftheWii") == 0) { strcopy(LANGUAGE.PowerofftheWii, val, sizeof(LANGUAGE.PowerofftheWii)); return; diff --git a/source/language/language.h b/source/language/language.h index 17cbb6e2..d8a86a1b 100644 --- a/source/language/language.h +++ b/source/language/language.h @@ -70,6 +70,9 @@ struct LANGUAGE char CoverPath[50]; char CoverpathChanged[50]; char Coverpathchange[50]; + char DolPath[50]; + char DolpathChanged[50]; + char Dolpathchange[50]; char Cheatcodespathchanged[80]; char Cheatcodespath[80]; char count[20]; @@ -186,7 +189,7 @@ struct LANGUAGE char PasswordChanged[50]; char Passwordhasbeenchanged[80]; char Passwordchange[50]; - char PowerofftheWii[50]; + char PowerofftheWii[50]; char Plays[20]; char Prev[50]; char PromptsButtons[50]; diff --git a/source/libwiigui/gui_gamegrid.cpp b/source/libwiigui/gui_gamegrid.cpp index 2edd21bd..f48dfaba 100644 --- a/source/libwiigui/gui_gamegrid.cpp +++ b/source/libwiigui/gui_gamegrid.cpp @@ -148,6 +148,7 @@ GuiGameGrid::GuiGameGrid(int w, int h, struct discHdr * l, int count, const char titleTT = new GuiTooltip("test"); titleTT->SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTT->SetPosition(-100,0); + titleTT->SetAlpha(175); // if (Settings.wsprompt == yes) // installBtnTT.SetWidescreen(CFG.widescreen); @@ -1355,6 +1356,7 @@ void GuiGameGrid::Update(GuiTrigger * t) if (selected!=selectedOld){ delete titleTT; titleTT = new GuiTooltip(titlebuffer); + titleTT->SetAlpha(175); wait=0;wait1=0; } selectedOld=selected; diff --git a/source/settings/Settings.cpp b/source/settings/Settings.cpp index 4a165e3d..8ff54c73 100644 --- a/source/settings/Settings.cpp +++ b/source/settings/Settings.cpp @@ -1191,6 +1191,7 @@ int MenuSettings() options2.SetName(3, "%s", LANGUAGE.Titlestxtpath); options2.SetName(4, "%s", LANGUAGE.Updatepath); options2.SetName(5, "%s", LANGUAGE.Cheatcodespath); + options2.SetName(6, "%s", LANGUAGE.DolPath); for(int i = 0; i <= MAXOPTIONS; i++) options2.SetValue(i, NULL); w.Append(&optionBrowser2); optionBrowser2.SetClickable(true); @@ -1212,6 +1213,7 @@ int MenuSettings() options2.SetValue(3, "%s", Settings.titlestxt_path); options2.SetValue(4, "%s", Settings.update_path); options2.SetValue(5, "%s", Settings.Cheatcodespath); + options2.SetValue(6, "%s", Settings.dolpath); if(backBtn.GetState() == STATE_CLICKED) { @@ -1438,6 +1440,33 @@ int MenuSettings() else WindowPrompt(0,LANGUAGE.Consoleshouldbeunlockedtomodifyit,LANGUAGE.ok,0,0,0); break; + case 6: + if ( Settings.godmode == 1) + { + w.Remove(&optionBrowser2); + w.Remove(&backBtn); + char entered[43] = ""; + strncpy(entered, Settings.dolpath, sizeof(entered)); + int result = OnScreenKeyboard(entered,43,0); + w.Append(&optionBrowser2); + w.Append(&backBtn); + if ( result == 1 ) + { + int len = (strlen(entered)-1); + if(entered[len] !='/') + strncat (entered, "/", 1); + strncpy(Settings.dolpath, entered, sizeof(Settings.dolpath)); + WindowPrompt(LANGUAGE.DolpathChanged,0,LANGUAGE.ok,0,0,0); +// if(!isSdInserted()) { + if(!isInserted(bootDevice)) { + WindowPrompt(LANGUAGE.NoSDcardinserted, LANGUAGE.InsertaSDCardtosave, LANGUAGE.ok, 0,0,0); + } + } + } else { + WindowPrompt(LANGUAGE.Dolpathchange,LANGUAGE.Consoleshouldbeunlockedtomodifyit,LANGUAGE.ok,0,0,0); + } + break; + } } /** If not godmode don't let him inside **/ diff --git a/source/settings/cfg.c b/source/settings/cfg.c index ad6576ef..c1a898b9 100644 --- a/source/settings/cfg.c +++ b/source/settings/cfg.c @@ -223,6 +223,7 @@ void CFG_Default(int widescreen) // -1 = non forced Mode snprintf(Settings.oggload_path, sizeof(Settings.oggload_path), "%s/config/backgroundmusic/", bootDevice); snprintf(Settings.update_path, sizeof(Settings.update_path), "%s/apps/usbloader_gx/", bootDevice); snprintf(Settings.Cheatcodespath, sizeof(Settings.Cheatcodespath), "%s/codes/", bootDevice); + snprintf(Settings.dolpath, sizeof(Settings.dolpath), "%s/", bootDevice); sprintf(Settings.ogg_path, "notset"); //all alignments are left top here @@ -490,6 +491,10 @@ void path_set(char *name, char *val) strcopy(Settings.oggload_path, val, sizeof(Settings.oggload_path)); return; } + if (strcmp(name, "dolpath") == 0) { + strcopy(Settings.dolpath, val, sizeof(Settings.dolpath)); + return; + } if (strcmp(name, "ogg_path") == 0) { strcopy(Settings.ogg_path, val, sizeof(Settings.ogg_path)); return; @@ -1212,6 +1217,7 @@ bool cfg_save_global()// save global settings } else { fprintf(f, "godmode = %d\n ", 0); } + fprintf(f, "dolpath = %s\n ", Settings.dolpath); fprintf(f, "ogg_path = %s\n ", Settings.ogg_path); fprintf(f, "wiilight = %d\n ", Settings.wiilight); fprintf(f, "gameDisplay = %d\n ", Settings.gameDisplay); diff --git a/source/settings/cfg.h b/source/settings/cfg.h index 342d2002..ef58b3bf 100644 --- a/source/settings/cfg.h +++ b/source/settings/cfg.h @@ -334,6 +334,7 @@ struct SSettings { char languagefiles_path[100]; char oggload_path[100]; char ogg_path[150]; + char dolpath[150]; char update_path[150]; char Cheatcodespath[100]; int titlesOverride; diff --git a/source/usbloader/apploader.c b/source/usbloader/apploader.c index 73dceaeb..c2f4967f 100644 --- a/source/usbloader/apploader.c +++ b/source/usbloader/apploader.c @@ -9,6 +9,7 @@ #include "wpad.h" #include "disc.h" #include "alternatedol.h" +#include "settings/cfg.h" /*KENOBI! - FISHEARS*/ extern const unsigned char kenobiwii[]; @@ -30,7 +31,7 @@ static u8 *appldr = (u8 *)0x81200000; /* Variables */ static u32 buffer[0x20] ATTRIBUTE_ALIGN(32); - +struct SSettings Settings; static void __noprint(const char *fmt, ...) { @@ -340,7 +341,11 @@ s32 Apploader_Run(entry_point *entry, u8 cheat, u8 videoSelected, u8 vipatch, u8 if(alternatedol == 1) { void *dolbuffer; int dollen; - char * path = "SD:/"; + + char * path = Settings.dolpath; + //snprintf(path, sizeof(path), Settings.dolpath); + + //char * path = "SD:/"; bool dolloaded = Load_Dol(&dolbuffer, &dollen, path); if(dolloaded) { Remove_001_Protection(dolbuffer, dollen); diff --git a/source/xml/xml.h b/source/xml/xml.h index 00e2a345..203000cc 100644 --- a/source/xml/xml.h +++ b/source/xml/xml.h @@ -12,33 +12,33 @@ extern "C" struct gameXMLinfo { - char id[10]; - char version[500]; + char id[8]; + char version[50]; char region[10]; - char title[500]; + char title[100]; char synopsis[2000]; - char title_EN[500]; + char title_EN[100]; char synopsis_EN[2000]; - char locales[100][500]; - char developer[500]; - char publisher[500]; - char publisherfromid[500]; + char locales[15][50]; + char developer[75]; + char publisher[75]; + char publisherfromid[75]; char year[10]; char month[10]; char day[10]; - char genre[500]; - char genresplit[100][500]; - char ratingtype[10]; - char ratingvalue[10]; - char ratingdescriptors[100][500]; - char ratingvalueCERO[10]; - char ratingvalueESRB[10]; - char ratingvaluePEGI[10]; - char wifiplayers[10]; - char wififeatures[100][500]; - char players[10]; - char accessories[100][500]; - char accessories_required[100][500]; + char genre[40]; + char genresplit[10][15]; + char ratingtype[6]; + char ratingvalue[6]; + char ratingdescriptors[20][15]; + char ratingvalueCERO[6]; + char ratingvalueESRB[6]; + char ratingvaluePEGI[6]; + char wifiplayers[4]; + char wififeatures[10][15]; + char players[4]; + char accessories[10][15]; + char accessories_required[10][15]; char iso_crc[10]; char iso_md5[50]; char iso_sha1[50];