mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-26 21:24:16 +01:00
Fixed the alt dol from disc loading the wrong file. Made the discbrowse() function not show files that don't end in ".dol". There still is a bug limiting the display of the dol name after it is loaded to 3 chars but it loads fine even if the name isn't displayed right.
This commit is contained in:
parent
928020b32f
commit
4a49894fc9
@ -1970,7 +1970,7 @@ int MainMenu(int menu)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = Disc_WiiBoot(videoselected, cheat, vipatch, countrystrings, errorfixer002, alternatedol, alternatedoloffset+1);
|
ret = Disc_WiiBoot(videoselected, cheat, vipatch, countrystrings, errorfixer002, alternatedol, alternatedoloffset);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
Sys_LoadMenu();
|
Sys_LoadMenu();
|
||||||
}
|
}
|
||||||
|
@ -40,25 +40,25 @@ int DiscBrowse(struct discHdr * header)
|
|||||||
WindowPrompt(tr("ERROR:"), tr("Could not set USB."), tr("OK"));
|
WindowPrompt(tr("ERROR:"), tr("Could not set USB."), tr("OK"));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
WindowPrompt(tr("ERROR:"), tr("Could not set USB."), tr("OK"));
|
||||||
ret = Disc_Open();
|
ret = Disc_Open();
|
||||||
if(ret < 0) {
|
if(ret < 0) {
|
||||||
WindowPrompt(tr("ERROR:"), tr("Could not open disc."), tr("OK"));
|
WindowPrompt(tr("ERROR:"), tr("Could not open disc."), tr("OK"));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
WindowPrompt(tr("ERROR:"), tr("Could not open disc."), tr("OK"));
|
||||||
ret = __Disc_FindPartition(&offset);
|
ret = __Disc_FindPartition(&offset);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
WindowPrompt(tr("ERROR:"), tr("Could not find a WBFS partition."), tr("OK"));
|
WindowPrompt(tr("ERROR:"), tr("Could not find a WBFS partition."), tr("OK"));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
WindowPrompt(tr("ERROR:"), tr("Could not find a WBFS partition."), tr("OK"));
|
||||||
ret = WDVD_OpenPartition(offset);
|
ret = WDVD_OpenPartition(offset);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
WindowPrompt(tr("ERROR:"), tr("Could not open WBFS partition"), tr("OK"));
|
WindowPrompt(tr("ERROR:"), tr("Could not open WBFS partition"), tr("OK"));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
WindowPrompt(tr("ERROR:"), tr("Could not open WBFS partition"), tr("OK"));
|
||||||
int *buffer = (int*)memalign(32, 0x20);
|
int *buffer = (int*)memalign(32, 0x20);
|
||||||
|
|
||||||
if (buffer == NULL)
|
if (buffer == NULL)
|
||||||
@ -66,12 +66,13 @@ int DiscBrowse(struct discHdr * header)
|
|||||||
WindowPrompt(tr("ERROR:"), tr("Not enough free memory."), tr("OK"));
|
WindowPrompt(tr("ERROR:"), tr("Not enough free memory."), tr("OK"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
WindowPrompt(tr("ERROR:"), tr("Not enough free memory."), tr("OK"));
|
||||||
ret = WDVD_Read(buffer, 0x20, 0x420);
|
ret = WDVD_Read(buffer, 0x20, 0x420);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
WindowPrompt(tr("ERROR:"), tr("Could not read the disc."), tr("OK"));
|
WindowPrompt(tr("ERROR:"), tr("Could not read the disc."), tr("OK"));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
WindowPrompt(tr("ERROR:"), tr("Could not read the disc."), tr("OK"));
|
||||||
void *fstbuffer = memalign(32, buffer[2]*4);
|
void *fstbuffer = memalign(32, buffer[2]*4);
|
||||||
FST_ENTRY *fst = (FST_ENTRY *)fstbuffer;
|
FST_ENTRY *fst = (FST_ENTRY *)fstbuffer;
|
||||||
|
|
||||||
@ -81,7 +82,7 @@ int DiscBrowse(struct discHdr * header)
|
|||||||
free(buffer);
|
free(buffer);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
WindowPrompt(tr("ERROR:"), tr("Not enough free memory."), tr("OK"));
|
||||||
ret = WDVD_Read(fstbuffer, buffer[2]*4, buffer[1]*4);
|
ret = WDVD_Read(fstbuffer, buffer[2]*4, buffer[1]*4);
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
@ -90,7 +91,7 @@ int DiscBrowse(struct discHdr * header)
|
|||||||
free(fstbuffer);
|
free(fstbuffer);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
WindowPrompt(tr("ERROR:"), tr("Could not read the disc."), tr("OK"));
|
||||||
free(buffer);
|
free(buffer);
|
||||||
|
|
||||||
WDVD_Reset();
|
WDVD_Reset();
|
||||||
@ -104,8 +105,17 @@ int DiscBrowse(struct discHdr * header)
|
|||||||
customOptionList options3(discfilecount);
|
customOptionList options3(discfilecount);
|
||||||
|
|
||||||
for (u32 i = 0; i < discfilecount; i++) {
|
for (u32 i = 0; i < discfilecount; i++) {
|
||||||
|
|
||||||
|
int len = (strlen(fstfiles(fst, i)));
|
||||||
|
|
||||||
|
if (fstfiles(fst, i)[len-4] =='.' &&
|
||||||
|
fstfiles(fst, i)[len-3] =='d' &&
|
||||||
|
fstfiles(fst, i)[len-2] =='o' &&
|
||||||
|
fstfiles(fst, i)[len-1] =='l')
|
||||||
|
{
|
||||||
options3.SetName(i, "%i", i);
|
options3.SetName(i, "%i", i);
|
||||||
options3.SetValue(i, fstfiles(fst, i));
|
options3.SetValue(i, fstfiles(fst, i));
|
||||||
|
}
|
||||||
dolfilecount++;
|
dolfilecount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user