*** Release version 2.1 ***

Changelog for R1076:
*Fixed case sensitivity issue on game id compare
*Convert all game ids to upper case when reading from files/folders
*Reverted ntfs ignore case sensitivity setting
*Fixed wiimote2.png not being shown on game info
*Fixed titles being reloaded to game titles when setting titles from wiitdb to off
*Recut the credits music for better loop timing (thanks to Black.Pearl for doing that)
This commit is contained in:
dimok321 2011-03-20 16:24:32 +00:00
parent 052c6d4591
commit 6cf397fb70
13 changed files with 34 additions and 26 deletions

View File

@ -2,8 +2,8 @@
<app version="1"> <app version="1">
<name> USB Loader GX</name> <name> USB Loader GX</name>
<coder>USB Loader GX Team</coder> <coder>USB Loader GX Team</coder>
<version>2.0 r1075</version> <version>2.0 r1076</version>
<release_date>201102251818</release_date> <release_date>201103142120</release_date>
<no_ios_reload/> <no_ios_reload/>
<short_description>Loads games from USB-devices</short_description> <short_description>Loads games from USB-devices</short_description>
<long_description>USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times. <long_description>USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times.

View File

@ -1,5 +1,5 @@
# USB Loader GX language source file. # USB Loader GX language source file.
# French.lang for r1065 # French.lang for r1076 (2.1)
# don't delete/change this line (é). # don't delete/change this line (é).
msgid "" msgid ""
msgstr "" msgstr ""
@ -166,7 +166,7 @@ msgid "AutoInit Network"
msgstr "AutoInit réseau" msgstr "AutoInit réseau"
msgid "Automatic port switching is done on the fly. You need to change all custom paths to SD-Card first for this option or else it could damage a filesystem." msgid "Automatic port switching is done on the fly. You need to change all custom paths to SD-Card first for this option or else it could damage a filesystem."
msgstr "" msgstr "Vous devez placer tous les dossiers personnalisés sur la carte SD avant d'utiliser cette option, sinon vous risquez d'endommager les données de vos disques USB."
msgid "BCA Codes Path" msgid "BCA Codes Path"
msgstr "Dossier codes BCA" msgstr "Dossier codes BCA"
@ -244,10 +244,10 @@ msgid "Both"
msgstr "Les deux" msgstr "Les deux"
msgid "Both Ports" msgid "Both Ports"
msgstr "" msgstr "Les deux ports"
msgid "Cache Titles" msgid "Cache Titles"
msgstr "" msgstr "Titres en cache"
msgid "Can't be formatted" msgid "Can't be formatted"
msgstr "Formatage impossible" msgstr "Formatage impossible"
@ -406,7 +406,7 @@ msgid "Design:"
msgstr "Graphisme:" msgstr "Graphisme:"
msgid "Details" msgid "Details"
msgstr "" msgstr "Détails"
msgid "Developed by" msgid "Developed by"
msgstr "Développé par" msgstr "Développé par"
@ -607,7 +607,7 @@ msgid "Flip-X"
msgstr "Inversion-X" msgstr "Inversion-X"
msgid "Font Scale Factor" msgid "Font Scale Factor"
msgstr "" msgstr "Échelle police"
msgid "Force NTSC" msgid "Force NTSC"
msgstr "Forcer NTSC" msgstr "Forcer NTSC"
@ -1325,10 +1325,10 @@ msgid "USB Loader GX is protected"
msgstr "USB Loader GX est verrouillé" msgstr "USB Loader GX est verrouillé"
msgid "USB Port" msgid "USB Port"
msgstr "" msgstr "Port USB"
msgid "USB Port changing is only supported on Hermes cIOS." msgid "USB Port changing is only supported on Hermes cIOS."
msgstr "" msgstr "Le changement de port USB n'est supporté qu'avec les cIOS d'Hermes."
msgid "Uninstall Game" msgid "Uninstall Game"
msgstr "Désinstaller le jeu" msgstr "Désinstaller le jeu"
@ -1419,7 +1419,7 @@ msgid "WiFi Features"
msgstr "Connexion WiFi" msgstr "Connexion WiFi"
msgid "Widescreen Factor" msgid "Widescreen Factor"
msgstr "" msgstr "Échelle interface 16:9"
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "16:9" msgstr "16:9"

View File

@ -194,7 +194,7 @@ void BoxCover::Update(GuiTrigger * t)
void BoxCover::Draw() void BoxCover::Draw()
{ {
u8 BoxAlpha = (int) (alpha+angleDyn) & 0xFF; u8 BoxAlpha = (int) (alpha+alphaDyn) & 0xFF;
GX_LoadProjectionMtx(projection, GX_PERSPECTIVE); GX_LoadProjectionMtx(projection, GX_PERSPECTIVE);

View File

@ -162,7 +162,7 @@ bool PartitionHandle::Mount(int pos, const char * name, bool forceFAT)
if(strncmp(GetFSName(pos), "NTFS", 4) == 0 || strcmp(GetFSName(pos), "GUID-Entry") == 0) if(strncmp(GetFSName(pos), "NTFS", 4) == 0 || strcmp(GetFSName(pos), "GUID-Entry") == 0)
{ {
if(ntfsMount(MountNameList[pos].c_str(), interface, GetLBAStart(pos), CACHE, SECTORS, NTFS_SHOW_HIDDEN_FILES | NTFS_IGNORE_CASE | NTFS_RECOVER)) if(ntfsMount(MountNameList[pos].c_str(), interface, GetLBAStart(pos), CACHE, SECTORS, NTFS_SHOW_HIDDEN_FILES | NTFS_RECOVER))
{ {
PartitionList[pos].FSName = "NTFS"; PartitionList[pos].FSName = "NTFS";
return true; return true;

View File

@ -225,7 +225,7 @@ void app_loadgameconfig(char *discid)
gameidmatch = 0; gameidmatch = 0;
goto idmatch; goto idmatch;
} }
if (strncmp(discid, parsebuffer, strlen(parsebuffer)) == 0) if (strncasecmp(discid, parsebuffer, strlen(parsebuffer)) == 0)
{ {
gameidmatch += strlen(parsebuffer); gameidmatch += strlen(parsebuffer);
idmatch: if (gameidmatch > maxgameidmatch2) idmatch: if (gameidmatch > maxgameidmatch2)

View File

@ -242,9 +242,9 @@ void WindowCredits()
char SvnRev[30]; char SvnRev[30];
#ifdef FULLCHANNEL #ifdef FULLCHANNEL
snprintf(SvnRev, sizeof(SvnRev), "v2.1c RC1 IOS%u (Rev %u)", IOS_GetVersion(), IOS_GetRevision()); snprintf(SvnRev, sizeof(SvnRev), "v2.1c IOS%u (Rev %u)", IOS_GetVersion(), IOS_GetRevision());
#else #else
snprintf(SvnRev, sizeof(SvnRev), "v2.1 RC1 IOS%u (Rev %u)", IOS_GetVersion(), IOS_GetRevision()); snprintf(SvnRev, sizeof(SvnRev), "v2.1 IOS%u (Rev %u)", IOS_GetVersion(), IOS_GetRevision());
#endif #endif
txt[i] = new GuiText(SvnRev, 16, ( GXColor ) {255, 255, 255, 255}); txt[i] = new GuiText(SvnRev, 16, ( GXColor ) {255, 255, 255, 255});

View File

@ -50,7 +50,7 @@ GameCFG * CGameSettings::GetGameCFG(const char * id)
for(u32 i = 0; i < GameList.size(); ++i) for(u32 i = 0; i < GameList.size(); ++i)
{ {
if(strncmp(id, GameList[i].id, 6) == 0) if(strncasecmp(id, GameList[i].id, 6) == 0)
{ {
return &GameList[i]; return &GameList[i];
} }
@ -66,7 +66,7 @@ bool CGameSettings::AddGame(const GameCFG & NewGame)
{ {
for(u32 i = 0; i < GameList.size(); ++i) for(u32 i = 0; i < GameList.size(); ++i)
{ {
if(strncmp(NewGame.id, GameList[i].id, 6) == 0) if(strncasecmp(NewGame.id, GameList[i].id, 6) == 0)
{ {
memcpy(&GameList[i], &NewGame, sizeof(GameCFG)); memcpy(&GameList[i], &NewGame, sizeof(GameCFG));
return true; return true;
@ -93,7 +93,7 @@ bool CGameSettings::Remove(const char * id)
for(u32 i = 0; i < GameList.size(); ++i) for(u32 i = 0; i < GameList.size(); ++i)
{ {
if(strncmp(id, GameList[i].id, 6) == 0) if(strncasecmp(id, GameList[i].id, 6) == 0)
{ {
GameList.erase(GameList.begin()+i); GameList.erase(GameList.begin()+i);
break; break;

View File

@ -27,7 +27,7 @@ GameStatus * CGameStatistics::GetGameStatus(const char * id) const
for(u32 i = 0; i < GameList.size(); ++i) for(u32 i = 0; i < GameList.size(); ++i)
{ {
if(strncmp(id, GameList[i].id, 6) == 0) if(strncasecmp(id, GameList[i].id, 6) == 0)
{ {
return (GameStatus *) &GameList[i]; return (GameStatus *) &GameList[i];
} }
@ -40,7 +40,7 @@ bool CGameStatistics::AddGame(const GameStatus & NewGame)
{ {
for(u32 i = 0; i < GameList.size(); ++i) for(u32 i = 0; i < GameList.size(); ++i)
{ {
if(strncmp(NewGame.id, GameList[i].id, 6) == 0) if(strncasecmp(NewGame.id, GameList[i].id, 6) == 0)
{ {
memcpy(&GameList[i], &NewGame, sizeof(GameStatus)); memcpy(&GameList[i], &NewGame, sizeof(GameStatus));
return true; return true;
@ -67,7 +67,7 @@ bool CGameStatistics::Remove(const char * id)
for(u32 i = 0; i < GameList.size(); ++i) for(u32 i = 0; i < GameList.size(); ++i)
{ {
if(strncmp(id, GameList[i].id, 6) == 0) if(strncasecmp(id, GameList[i].id, 6) == 0)
{ {
GameList.erase(GameList.begin()+i); GameList.erase(GameList.begin()+i);
break; break;

View File

@ -176,7 +176,7 @@ void CGameTitles::RemoveUnusedCache(std::vector<std::string> &MissingTitles)
for(u32 n = 0; n < TitleList.size(); ++n) for(u32 n = 0; n < TitleList.size(); ++n)
{ {
if(strncmp(TitleList[n].GameID, (const char *) gameList[i]->id, 6) == 0) if(strncasecmp(TitleList[n].GameID, (const char *) gameList[i]->id, 6) == 0)
{ {
UsedCachedList[n] = true; UsedCachedList[n] = true;
isCached = true; isCached = true;

View File

@ -30,6 +30,7 @@
#include "settings/SettingsPrompts.h" #include "settings/SettingsPrompts.h"
#include "settings/GameTitles.h" #include "settings/GameTitles.h"
#include "xml/xml.h" #include "xml/xml.h"
#include "usbloader/GameList.h"
#include "usbloader/wbfs.h" #include "usbloader/wbfs.h"
#include "utils/tools.h" #include "utils/tools.h"
@ -134,7 +135,11 @@ GuiSettingsMenu::GuiSettingsMenu()
GuiSettingsMenu::~GuiSettingsMenu() GuiSettingsMenu::~GuiSettingsMenu()
{ {
if (Settings.titlesOverride != OldTitlesOverride) if (Settings.titlesOverride != OldTitlesOverride)
{
GameTitles.LoadTitlesFromWiiTDB(Settings.titlestxt_path, true); GameTitles.LoadTitlesFromWiiTDB(Settings.titlestxt_path, true);
if(!Settings.titlesOverride)
gameList.ReadGameList();
}
} }
void GuiSettingsMenu::SetOptionValues() void GuiSettingsMenu::SetOptionValues()

Binary file not shown.

View File

@ -111,7 +111,7 @@ RecourceFile Resources::RecourceFiles[] =
{"settings_title_over.png", settings_title_over_png, settings_title_over_png_size, NULL, 0}, {"settings_title_over.png", settings_title_over_png, settings_title_over_png_size, NULL, 0},
{"pageindicator.png", pageindicator_png, pageindicator_png_size, NULL, 0}, {"pageindicator.png", pageindicator_png, pageindicator_png_size, NULL, 0},
{"Wiimote1.png", Wiimote1_png, Wiimote1_png_size, NULL, 0}, {"Wiimote1.png", Wiimote1_png, Wiimote1_png_size, NULL, 0},
{"Wiimote2.png", Wiimote2_png, Wiimote1_png_size, NULL, 0}, {"Wiimote2.png", Wiimote2_png, Wiimote2_png_size, NULL, 0},
{"Wiimote4.png", Wiimote4_png, Wiimote4_png_size, NULL, 0}, {"Wiimote4.png", Wiimote4_png, Wiimote4_png_size, NULL, 0},
{"wifi1.png", wifi1_png, wifi1_png_size, NULL, 0}, {"wifi1.png", wifi1_png, wifi1_png_size, NULL, 0},
{"wifi2.png", wifi2_png, wifi2_png_size, NULL, 0}, {"wifi2.png", wifi2_png, wifi2_png_size, NULL, 0},

View File

@ -208,7 +208,7 @@ s32 Wbfs_Fat::RemoveGame(u8 *discid)
snprintf(name, sizeof(name), dirent->d_name); snprintf(name, sizeof(name), dirent->d_name);
if (name[0] == '.') continue; if (name[0] == '.') continue;
if (name[6] != '_') continue; if (name[6] != '_') continue;
if (strncmp(name, (char*) discid, 6) != 0) continue; if (strncasecmp(name, (char*) discid, 6) != 0) continue;
p = strrchr(name, '.'); p = strrchr(name, '.');
if (!p) continue; if (!p) continue;
if (strcasecmp(p, ".txt") != 0) continue; if (strcasecmp(p, ".txt") != 0) continue;
@ -549,6 +549,9 @@ s32 Wbfs_Fat::GetHeadersCount()
if(!tmpList) if(!tmpList)
break; //out of memory, keep the list until now and stop break; //out of memory, keep the list until now and stop
for(int j = 0; j < 6; ++j)
tmpHdr.id[j] = toupper((int) tmpHdr.id[j]);
fat_hdr_list = tmpList; fat_hdr_list = tmpList;
memcpy(&fat_hdr_list[fat_hdr_count - 1], &tmpHdr, sizeof(struct discHdr)); memcpy(&fat_hdr_list[fat_hdr_count - 1], &tmpHdr, sizeof(struct discHdr));
} }
@ -602,7 +605,7 @@ int Wbfs_Fat::FindFilename(u8 *id, char *fname, int len)
u8 fn_id[8]; u8 fn_id[8];
int n = fileext - dirent->d_name; // length withouth .wbfs int n = fileext - dirent->d_name; // length withouth .wbfs
if (!CheckLayoutB(dirent->d_name, n, fn_id, fn_title)) continue; if (!CheckLayoutB(dirent->d_name, n, fn_id, fn_title)) continue;
if (strncmp((char*) fn_id, gameID, 6) != 0) continue; if (strncasecmp((char*) fn_id, gameID, 6) != 0) continue;
snprintf(fname, len, "%s/%s", path, dirent->d_name); snprintf(fname, len, "%s/%s", path, dirent->d_name);
if (stat(fname, &st) == 0) break; if (stat(fname, &st) == 0) break;
} }