-fixed wad installation and missing fonts in the default theme when using older cIOS versions

-hide automatic mios installation
-updated german.ini
This commit is contained in:
fix94.1 2013-08-22 16:39:38 +00:00
parent ffd6e6745a
commit e5336404f4
6 changed files with 42 additions and 23 deletions

View File

@ -43,16 +43,19 @@ static const u8 hash_patch[] = { 0x20, 0x00, 0x23, 0xA2 };
static const u8 new_hash_old[] = { 0x20, 0x07, 0x4B, 0x0B };
static const u8 new_hash_patch[] = { 0x20, 0x00, 0x4B, 0x0B };
void PatchIOS(void)
void PatchIOS(bool patch_all)
{
__ES_Close();
write16(MEM_PROT, 0);
/* Do Patching */
apply_patch("isfs_permissions", isfs_perm_old, isfs_perm_patch, sizeof(isfs_perm_patch));
if(patch_all)
{
apply_patch("es_setuid", setuid_old, setuid_patch, sizeof(setuid_patch));
apply_patch("es_identify", es_identify_old, es_identify_patch, sizeof(es_identify_patch));
apply_patch("hash_check", hash_old, hash_patch, sizeof(hash_patch));
apply_patch("new_hash_check", new_hash_old, new_hash_patch, sizeof(new_hash_patch));
}
/* Reinit */
write16(MEM_PROT, 1);
__ES_Init();

View File

@ -6,7 +6,7 @@ extern "C"
#ifndef _PATCHER_H_
#define _PATCHER_H_
void PatchIOS(void);
void PatchIOS(bool patch_all);
#endif

View File

@ -1023,8 +1023,7 @@ void Nand::Init_ISFS()
{
if(isfs_inited)
return;
if(IOS_GetVersion() < 222)
PatchIOS();
PatchIOS(IOS_GetVersion() < 222);
usleep(1000);
gprintf("Init ISFS\n");
ISFS_Initialize();

View File

@ -816,9 +816,9 @@ void CMenu::_launch(const dir_discHdr *hdr)
#define QFIDN 6
static const char *qfid[QFIDN] = {
"GGPE01", //Mario Kart Arcade GP
"GGPE02", //Mario Kart Arcade GP
"GGPE02", //Mario Kart Arcade GP 2
"GFZJ8P", //F-Zero AX
"GVSJ8P", // VirtuaStriker4
"GVSJ8P", // Virtua Striker 4
"GVS46E", // Virtua Striker 4 Ver.2006
"GVS46J", // Virtua Striker 4 Ver.2006
};
@ -871,6 +871,8 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
if(loader == 0) //auto selected
{
gprintf("Auto installing MIOS\n");
_showWaitMessage();
for(u8 i = 0; i < QFIDN; i++)
{
if(strncmp(id, qfid[i], strlen(qfid[i])) == 0)
@ -1223,7 +1225,7 @@ void CMenu::_launchChannel(dir_discHdr *hdr)
setLanguage(language);
ocarina_load_code(cheatFile, cheatSize);
NandHandle.Patch_AHB(); /* Identify may takes it */
PatchIOS(); /* Patch for everything */
PatchIOS(true); /* Patch for everything */
Identify(gameTitle);
ExternalBooter_ChannelSetup(gameTitle, use_dol);
WiiFlow_ExternalBooter(videoMode, vipatch, countryPatch, patchVidMode, aspectRatio, 0, TYPE_CHANNEL, use_led);

View File

@ -53,11 +53,12 @@ void skip_align(FILE *f, u32 size)
int isfs_WriteFile(const char *app_name, const void *content, u32 size)
{
s32 fd = -1;
memset(&ISFS_Path, 0, ISFS_MAXPATH);
strcpy(ISFS_Path, app_name);
ISFS_Delete(ISFS_Path);
ISFS_CreateFile(ISFS_Path, 0, 3, 3, 3);
s32 fd = ISFS_Open(ISFS_Path, ISFS_OPEN_WRITE);
if(ISFS_CreateFile(ISFS_Path, 0, ISFS_OPEN_RW, ISFS_OPEN_RW, ISFS_OPEN_RW) == 0)
fd = ISFS_Open(ISFS_Path, ISFS_OPEN_RW);
if(fd < 0)
return fd;
s32 ret = ISFS_Write(fd, content, size);
@ -188,8 +189,8 @@ int installWad(const char *path)
(u32)(tid>>32), (u32)tid&0xFFFFFFFF, content->cid);
strcpy(ISFS_Path, app_name);
ISFS_Delete(ISFS_Path);
ISFS_CreateFile(ISFS_Path, 0, 3, 3, 3);
fd = ISFS_Open(ISFS_Path, ISFS_OPEN_WRITE);
if(ISFS_CreateFile(ISFS_Path, 0, ISFS_OPEN_RW, ISFS_OPEN_RW, ISFS_OPEN_RW) == 0)
fd = ISFS_Open(ISFS_Path, ISFS_OPEN_RW);
if(fd >= 0)
gprintf("Writing Real NAND File %s\n", ISFS_Path);
}
@ -437,6 +438,13 @@ void CMenu::_Wad(const char *wad_path, bool autoInstall)
return;
}
}
if(autoInstall)
{
if(mios == true)
installWad(wad_path);
MIOSisDML();
return;
}
u8 part = currentPartition;
m_btnMgr.setText(m_wadLblDialog, wfmt(_fmt("wad3", L"Selected %s, after the installation you return to the explorer."), (strrchr(wad_path, '/')+1)));
@ -448,9 +456,9 @@ void CMenu::_Wad(const char *wad_path, bool autoInstall)
_mainLoopCommon();
if(BTN_HOME_PRESSED || BTN_B_PRESSED)
break;
else if(BTN_A_PRESSED || autoInstall)
else if(BTN_A_PRESSED)
{
if(m_btnMgr.selected(m_wadBtnInstall) || autoInstall)
if(m_btnMgr.selected(m_wadBtnInstall))
{
_hideWad(true);
m_btnMgr.setProgress(m_wbfsPBar, 0.f);
@ -473,11 +481,7 @@ void CMenu::_Wad(const char *wad_path, bool autoInstall)
if(result < 0)
m_btnMgr.setText(m_wbfsLblDialog, wfmt(_fmt("wad5", L"Installation error %i!"), result));
else
{
m_btnMgr.setText(m_wbfsLblDialog, wfmt(_fmt("wad6", L"Installation finished with %i hash fails."), result));
if(autoInstall)
break;
}
}
else if((m_btnMgr.selected(m_configBtnPartitionP) || m_btnMgr.selected(m_configBtnPartitionM)))
{

View File

@ -44,10 +44,11 @@ cfga3=Installieren
cfga6=Sprache
cfga7=Thema
cfgb1=Ocarina
cfgb2=Standard GC Loader
cfgb3=Standard Videomodus
cfgb4=Standard Sprache für Spiele
cfgb5=Standard DML Videomodus
cfgb6=Standard DML Sprache
cfgb5=Standard GC Videomodus
cfgb6=Standard GC Sprache
cfgbnr1=Cover herunterladen
cfgbnr2=Cover löschen
cfgbnr3=Erstellte Banner herunterladen
@ -58,6 +59,7 @@ cfgbt1=Starteinstellungen
cfgbt2=Erzwinge Laden vom cIOS
cfgbt3=Erzwinge cIOS Version
cfgbt4=USB Anschluss
cfgbt5=Zeige Quellenmenu beim Start
cfgc1=Zurück zu...
cfgc2=TV-Breite anpassen
cfgc3=TV-Höhe anpassen
@ -67,6 +69,7 @@ cfgc6=Horizontaler Bildversatz
cfgc7=Vertikaler Bildversatz
cfgc8=Starteinstellungen
cfgc9=Verwalte Sprachen
cfgd4=Verzeichnisse Verwalten
cfgd5=Favoritenmodus merken
cfgd7=Kategorien beim Start anzeigen
cfgg1=Einstellungen
@ -145,7 +148,14 @@ cfgne34=Setzen
cfgne35=Zurück
cfgne36=Pfad =
cfgp1=Spielpartition
cfgp2=2D Cover
cfgp3=Netzwerk beim Start initialisieren
cfgp4=Banner Cache
cfgp5=Wii Spiele
cfgp6=GC Spiele
cfgp7=Musik
cfgp8=3D Cover
cfgp9=Erstellte Banner
cfgpl1=Plugins auswählen
cfgs1=Lautstärke Hintergrundmusik
cfgs2=Lautstärke Tasten
@ -241,6 +251,7 @@ gametdb_code=DE
GC_Def=Standard
GC_DM=DIOS-MIOS
GC_Devo=Devolution
GC_Auto=AUTO
genesis=Sega Genesis
gm1=Spielen
gm2=Zurück