mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-12-23 18:31:56 +01:00
little fixes
This commit is contained in:
parent
aa936a5c43
commit
a65c8f88ba
@ -338,14 +338,6 @@ int MenuDiscList() {
|
|||||||
dvdheader = new struct discHdr;
|
dvdheader = new struct discHdr;
|
||||||
u8 mountMethodOLD =0;
|
u8 mountMethodOLD =0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///WII_Initialize();
|
|
||||||
///WII_LaunchTitle(TITLE_ID(0x00010001,0xJODI));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WDVD_GetCoverStatus(&covert);
|
WDVD_GetCoverStatus(&covert);
|
||||||
u32 covertOld=covert;
|
u32 covertOld=covert;
|
||||||
|
|
||||||
@ -1290,7 +1282,7 @@ int MenuDiscList() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (dvdBtn.GetState() == STATE_CLICKED) {
|
else if (dvdBtn.GetState() == STATE_CLICKED) {
|
||||||
mountMethodOLD = (mountMethod==0||mountMethod==3?mountMethod:0);
|
mountMethodOLD = (mountMethod==3?mountMethod:0);
|
||||||
|
|
||||||
mountMethod=DiscMount(dvdID);
|
mountMethod=DiscMount(dvdID);
|
||||||
dvdheader->id[0]=dvdID[0];
|
dvdheader->id[0]=dvdID[0];
|
||||||
@ -1301,7 +1293,10 @@ int MenuDiscList() {
|
|||||||
dvdheader->id[5]=dvdID[5];
|
dvdheader->id[5]=dvdID[5];
|
||||||
|
|
||||||
dvdBtn.ResetState();
|
dvdBtn.ResetState();
|
||||||
rockout(1);
|
char ass[20];
|
||||||
|
sprintf(ass,"%i",mountMethod);
|
||||||
|
WindowPrompt(ass,0,"ok");
|
||||||
|
rockout();
|
||||||
//break;
|
//break;
|
||||||
}
|
}
|
||||||
if (Settings.gameDisplay==grid) {
|
if (Settings.gameDisplay==grid) {
|
||||||
@ -1432,7 +1427,9 @@ int MenuDiscList() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((gameSelected >= 0) && (gameSelected < (s32)gameCnt)) || mountMethod==1 || mountMethod==2) {
|
if (((gameSelected >= 0) && (gameSelected < (s32)gameCnt))
|
||||||
|
|| mountMethod==1
|
||||||
|
|| mountMethod==2) {
|
||||||
if(searchBar)
|
if(searchBar)
|
||||||
{
|
{
|
||||||
HaltGui();
|
HaltGui();
|
||||||
|
@ -46,186 +46,6 @@ extern u8 reset;
|
|||||||
extern u32 infilesize;
|
extern u32 infilesize;
|
||||||
extern wchar_t *gameFilter;
|
extern wchar_t *gameFilter;
|
||||||
|
|
||||||
inline int wcsnicmp(const wchar_t *s1, const wchar_t *s2, int len)
|
|
||||||
{
|
|
||||||
if (len <= 0)
|
|
||||||
return (0);
|
|
||||||
do
|
|
||||||
{
|
|
||||||
int r = towupper(*s1) - towupper(*s2++);
|
|
||||||
if (r) return r;
|
|
||||||
if (*s1++ == 0)
|
|
||||||
break;
|
|
||||||
} while (--len != 0);
|
|
||||||
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/********************************************************************************
|
|
||||||
* put istalled titles into a struct so it can be handled by all the other
|
|
||||||
* shitloads of functions we have easily
|
|
||||||
*
|
|
||||||
*********************************************************************************/
|
|
||||||
int buildTitleList1(int t, wchar_t* gameFilter, discHdr ** PgameList, u32 *PgameCnt){
|
|
||||||
|
|
||||||
struct discHdr *buffer = NULL;
|
|
||||||
u32 i = 0;
|
|
||||||
u32 cnt, cnt2=0, len;
|
|
||||||
u32 num_titles;
|
|
||||||
u32 titles[100] ATTRIBUTE_ALIGN(32);
|
|
||||||
u32 num_sys_titles;
|
|
||||||
u32 sys_titles[10] ATTRIBUTE_ALIGN(32);
|
|
||||||
s32 ret = -1;
|
|
||||||
FILE *f;
|
|
||||||
char path[100];
|
|
||||||
|
|
||||||
ISFS_Initialize();
|
|
||||||
|
|
||||||
sprintf(path,"%s/config/database.txt",bootDevice);
|
|
||||||
f = fopen(path, "r");
|
|
||||||
|
|
||||||
ret = getTitles_TypeCount(typei, &num_titles);
|
|
||||||
if (ret < 0) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = getTitles_Type(typei, titles, num_titles);
|
|
||||||
if (ret < 0) {
|
|
||||||
return -2;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = getTitles_TypeCount(0x00010002, &num_sys_titles);
|
|
||||||
if (ret < 0) {
|
|
||||||
return -3;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = getTitles_Type(0x00010002, sys_titles, num_sys_titles);
|
|
||||||
if (ret < 0) {
|
|
||||||
return -4;
|
|
||||||
}
|
|
||||||
|
|
||||||
cnt = (num_titles+num_sys_titles);
|
|
||||||
len = sizeof(struct discHdr) * cnt;
|
|
||||||
buffer = (struct discHdr *)memalign(32, len);
|
|
||||||
if (!buffer)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
memset(buffer, 0, len);
|
|
||||||
|
|
||||||
char name[64];
|
|
||||||
while (i < (num_titles+num_sys_titles)) {
|
|
||||||
//start from the beginning of the file each loop
|
|
||||||
if (f)rewind(f);
|
|
||||||
char text[15];
|
|
||||||
strcpy(name,"");//make sure name is empty
|
|
||||||
u8 found=0;
|
|
||||||
|
|
||||||
sprintf(text, "%s", titleText(i<num_titles?typei:0x00010002, i<num_titles?titles[i]:sys_titles[i-num_titles]));
|
|
||||||
|
|
||||||
|
|
||||||
char line[200];
|
|
||||||
char tmp[50];
|
|
||||||
snprintf(tmp,50," ");
|
|
||||||
|
|
||||||
//check if the content.bin is on the SD card for that game
|
|
||||||
//if there is content.bin,then the game is on the SDmenu and not the wii
|
|
||||||
sprintf(line,"SD:/private/wii/title/%s/content.bin",text);
|
|
||||||
if (!checkfile(line))
|
|
||||||
{
|
|
||||||
|
|
||||||
struct discHdr *header = &buffer[i];
|
|
||||||
if (f) {
|
|
||||||
while (fgets(line, sizeof(line), f)) {
|
|
||||||
if (line[0]== text[0]&&
|
|
||||||
line[1]== text[1]&&
|
|
||||||
line[2]== text[2]) {
|
|
||||||
int j=0;
|
|
||||||
found=1;
|
|
||||||
for (j=0;(line[j+4]!='\0' || j<51);j++)
|
|
||||||
|
|
||||||
tmp[j]=line[j+4];
|
|
||||||
snprintf(header->title,sizeof(header->title),"%s",tmp);
|
|
||||||
//break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!found) {
|
|
||||||
if (getName00(header->title, TITLE_ID(i<num_titles?typei:0x00010002, i<num_titles?titles[i]:sys_titles[i-num_titles]),CONF_GetLanguage()*2)>=0)
|
|
||||||
found=2;
|
|
||||||
|
|
||||||
if (!found) {
|
|
||||||
if (getNameBN(header->title, TITLE_ID(i<num_titles?typei:0x00010002, i<num_titles?titles[i]:sys_titles[i-num_titles]))>=0)
|
|
||||||
found=3;
|
|
||||||
|
|
||||||
if (!found)
|
|
||||||
snprintf(header->title,sizeof(header->title),"%s (%08x)",text,i<num_titles?titles[i]:sys_titles[i-num_titles]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
header->id[0]=text[0];
|
|
||||||
header->id[1]=text[1];
|
|
||||||
header->id[2]=text[2];
|
|
||||||
header->id[3]=text[3];
|
|
||||||
header->id[4]='G';
|
|
||||||
header->id[5]='P';
|
|
||||||
|
|
||||||
//not using these filters right now, but i left them in just in case
|
|
||||||
// Filters
|
|
||||||
/*if (Settings.fave) {
|
|
||||||
struct Game_NUM* game_num = CFG_get_game_num(header->id);
|
|
||||||
if (!game_num || game_num->favorite==0)
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Settings.parentalcontrol && !Settings.godmode ) {
|
|
||||||
if (get_block(header) >= Settings.parentalcontrol)
|
|
||||||
continue;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
if(gameFilter && *gameFilter) {
|
|
||||||
u32 filter_len = wcslen(gameFilter);
|
|
||||||
wchar_t *gameName = FreeTypeGX::charToWideChar(get_title(header));
|
|
||||||
if (!gameName || wcsnicmp(gameName, gameFilter, filter_len)) {
|
|
||||||
delete [] gameName;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(i != cnt2)
|
|
||||||
buffer[cnt2] = buffer[i];
|
|
||||||
cnt2++;
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
fclose(f);
|
|
||||||
|
|
||||||
Uninstall_FromTitle(TITLE_ID(1, 0));
|
|
||||||
ISFS_Deinitialize();
|
|
||||||
|
|
||||||
if(cnt > cnt2)
|
|
||||||
{
|
|
||||||
cnt = cnt2;
|
|
||||||
buffer = (struct discHdr *)realloc(buffer, sizeof(struct discHdr) * cnt);
|
|
||||||
}
|
|
||||||
if (!buffer)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
if (Settings.sort==pcount) {
|
|
||||||
qsort(buffer, cnt, sizeof(struct discHdr), __Menu_EntryCmpCount);
|
|
||||||
} else {
|
|
||||||
qsort(buffer, cnt, sizeof(struct discHdr), __Menu_EntryCmp);
|
|
||||||
}
|
|
||||||
/*PgameList = buffer;
|
|
||||||
buffer = NULL;
|
|
||||||
PgameCnt = cnt;*/
|
|
||||||
|
|
||||||
if(PgameList) *PgameList = buffer; else free(buffer);
|
|
||||||
if(PgameCnt) *PgameCnt = cnt;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return cnt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/********************************************************************************
|
/********************************************************************************
|
||||||
* TitleBrowser- opens a browser with a list of installed Titles
|
* TitleBrowser- opens a browser with a list of installed Titles
|
||||||
|
@ -510,9 +510,15 @@ int __Menu_GetEntries(int t, const wchar_t* Filter) {
|
|||||||
if(new_gameFilter == NULL) return -1;
|
if(new_gameFilter == NULL) return -1;
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
if(buildTitleList(t, new_gameFilter, &new_gameList, &new_gameCnt) < 0)
|
if (mountMethod==3)
|
||||||
//if(__Menu_GetGameList(t, new_gameFilter, &new_gameList, &new_gameCnt) < 0)
|
{if(buildTitleList(t, new_gameFilter, &new_gameList, &new_gameCnt) < 0)
|
||||||
return -1;
|
return -1;}
|
||||||
|
|
||||||
|
else
|
||||||
|
{if(__Menu_GetGameList(t, new_gameFilter, &new_gameList, &new_gameCnt) < 0)
|
||||||
|
return -1;}
|
||||||
|
|
||||||
|
|
||||||
if(new_gameCnt > 0 || new_gameFilter[0] == 0)
|
if(new_gameCnt > 0 || new_gameFilter[0] == 0)
|
||||||
break;
|
break;
|
||||||
new_gameFilter[wcslen(new_gameFilter)-1] = 0;
|
new_gameFilter[wcslen(new_gameFilter)-1] = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user