mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2024-11-27 13:44:15 +01:00
- fixed a minor issue with wiiware/vc banners and gamesound.
- minor change to path manager.
This commit is contained in:
parent
a05d0b3e25
commit
d7e552fd44
BIN
out/boot.dol
BIN
out/boot.dol
Binary file not shown.
Before Width: | Height: | Size: 4.4 MiB After Width: | Height: | Size: 4.4 MiB |
@ -81,10 +81,16 @@ void Banner::SetBanner(u8 *bnr, u32 bnr_size, bool custom, bool alloc)
|
|||||||
if(memcmp(imetmd5, md5, 16) == 0 || custom)
|
if(memcmp(imetmd5, md5, 16) == 0 || custom)
|
||||||
this->imet = imet;
|
this->imet = imet;
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
imet = NULL;
|
||||||
gprintf("Invalid md5, banner not valid\n");
|
gprintf("Invalid md5, banner not valid\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
imet = NULL;
|
||||||
gprintf("Invalid signature found, banner not valid\n");
|
gprintf("Invalid signature found, banner not valid\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Banner::ClearBanner()
|
void Banner::ClearBanner()
|
||||||
|
@ -1145,14 +1145,9 @@ void * CMenu::_gameSoundThread(void *obj)
|
|||||||
if(cached_bnr_file == NULL && custom_bnr_file == NULL)
|
if(cached_bnr_file == NULL && custom_bnr_file == NULL)
|
||||||
fsop_WriteFile(cached_banner, CurrentBanner.GetBannerFile(), CurrentBanner.GetBannerFileSize());
|
fsop_WriteFile(cached_banner, CurrentBanner.GetBannerFile(), CurrentBanner.GetBannerFileSize());
|
||||||
|
|
||||||
//load and init banner
|
|
||||||
m_banner.LoadBanner(m->m_wbf1_font, m->m_wbf2_font);
|
|
||||||
|
|
||||||
//get sound from wii, channel, or custom banner and load it to play with the banner
|
//get sound from wii, channel, or custom banner and load it to play with the banner
|
||||||
u32 sndSize = 0;
|
u32 sndSize = 0;
|
||||||
u8 *soundBin = CurrentBanner.GetFile("sound.bin", &sndSize);
|
u8 *soundBin = CurrentBanner.GetFile("sound.bin", &sndSize);
|
||||||
CurrentBanner.ClearBanner();// got sound.bin and banner for displaying is loaded so no longer need current banner.
|
|
||||||
|
|
||||||
if(soundBin != NULL && (GameHdr->type != TYPE_GC_GAME || m->m_gc_play_banner_sound))
|
if(soundBin != NULL && (GameHdr->type != TYPE_GC_GAME || m->m_gc_play_banner_sound))
|
||||||
{
|
{
|
||||||
if(memcmp(&((IMD5Header *)soundBin)->fcc, "IMD5", 4) == 0)
|
if(memcmp(&((IMD5Header *)soundBin)->fcc, "IMD5", 4) == 0)
|
||||||
@ -1160,13 +1155,10 @@ void * CMenu::_gameSoundThread(void *obj)
|
|||||||
u32 newSize = 0;
|
u32 newSize = 0;
|
||||||
u8 *newSound = DecompressCopy(soundBin, sndSize, &newSize);
|
u8 *newSound = DecompressCopy(soundBin, sndSize, &newSize);
|
||||||
free(soundBin);// no longer needed, now using decompressed newSound
|
free(soundBin);// no longer needed, now using decompressed newSound
|
||||||
if(newSound == NULL || newSize == 0 || !m->m_gameSound.Load(newSound, newSize))
|
if(newSound != NULL && newSize != 0)
|
||||||
{
|
m->m_gameSound.Load(newSound, newSize);
|
||||||
|
else
|
||||||
m->m_gameSound.FreeMemory();// frees newSound
|
m->m_gameSound.FreeMemory();// frees newSound
|
||||||
m_banner.DeleteBanner();// the same as UnloadBanner
|
|
||||||
m->m_soundThrdBusy = false;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
m->m_gameSound.Load(soundBin, sndSize);
|
m->m_gameSound.Load(soundBin, sndSize);
|
||||||
@ -1174,19 +1166,18 @@ void * CMenu::_gameSoundThread(void *obj)
|
|||||||
if(m->m_gameSound.IsLoaded())
|
if(m->m_gameSound.IsLoaded())
|
||||||
m->m_gamesound_changed = true;
|
m->m_gamesound_changed = true;
|
||||||
else
|
else
|
||||||
{
|
|
||||||
m->m_gameSound.FreeMemory();// frees soundBin
|
m->m_gameSound.FreeMemory();// frees soundBin
|
||||||
m_banner.DeleteBanner();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else // no sound.bin or gc banner sound disabled
|
||||||
{
|
{
|
||||||
if(soundBin != NULL)
|
if(soundBin != NULL)
|
||||||
free(soundBin);
|
free(soundBin);
|
||||||
//gprintf("WARNING: No sound found in banner!\n");
|
|
||||||
m->m_gamesound_changed = true;
|
m->m_gamesound_changed = true;
|
||||||
m->m_gameSound.FreeMemory();// frees previous game sound
|
m->m_gameSound.FreeMemory();// frees previous game sound
|
||||||
}
|
}
|
||||||
|
//load and init banner here after getting game sound so that DecompressCopy() doesn't conflict with the DecompressCopy() in AnimatedBanner.cpp
|
||||||
|
m_banner.LoadBanner(m->m_wbf1_font, m->m_wbf2_font);
|
||||||
|
CurrentBanner.ClearBanner();
|
||||||
m->m_soundThrdBusy = false;
|
m->m_soundThrdBusy = false;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -175,9 +175,8 @@ void CMenu::_Paths(void)
|
|||||||
{
|
{
|
||||||
_hidePaths();
|
_hidePaths();
|
||||||
currentPartition = m_cfg.getInt(WII_DOMAIN, "partition", USB1);
|
currentPartition = m_cfg.getInt(WII_DOMAIN, "partition", USB1);
|
||||||
string gameDir(fmt(wii_games_dir, DeviceName[currentPartition]));
|
path = _FolderExplorer(fmt(wii_games_dir, DeviceName[currentPartition]));
|
||||||
path = _FolderExplorer(gameDir.c_str());
|
if(strlen(path) > 6)// "usb1:/"
|
||||||
if(strlen(path) > 0)
|
|
||||||
{
|
{
|
||||||
if(strncmp(path, "sd:/", 4) == 0)
|
if(strncmp(path, "sd:/", 4) == 0)
|
||||||
m_cfg.setInt(WII_DOMAIN, "partition", 0);
|
m_cfg.setInt(WII_DOMAIN, "partition", 0);
|
||||||
@ -186,12 +185,9 @@ void CMenu::_Paths(void)
|
|||||||
const char *partval = &path[3];
|
const char *partval = &path[3];
|
||||||
m_cfg.setInt(WII_DOMAIN, "partition", atoi(partval));
|
m_cfg.setInt(WII_DOMAIN, "partition", atoi(partval));
|
||||||
}
|
}
|
||||||
char tmpPath[64];
|
string tmpPath = "%s" + string(strchr(path, ':'));
|
||||||
strcpy(tmpPath, "%s");
|
|
||||||
strcat(tmpPath, strchr(path, ':'));
|
|
||||||
tmpPath[63] = '\0';
|
|
||||||
m_cfg.setString(WII_DOMAIN, "wii_games_dir", tmpPath);
|
m_cfg.setString(WII_DOMAIN, "wii_games_dir", tmpPath);
|
||||||
strcpy(wii_games_dir, tmpPath);
|
strcpy(wii_games_dir, tmpPath.c_str());
|
||||||
m_cfg.setBool(WII_DOMAIN, "update_cache", true);
|
m_cfg.setBool(WII_DOMAIN, "update_cache", true);
|
||||||
if(m_current_view & COVERFLOW_WII)
|
if(m_current_view & COVERFLOW_WII)
|
||||||
m_refreshGameList = true;
|
m_refreshGameList = true;
|
||||||
@ -202,9 +198,8 @@ void CMenu::_Paths(void)
|
|||||||
{
|
{
|
||||||
_hidePaths();
|
_hidePaths();
|
||||||
currentPartition = m_cfg.getInt(GC_DOMAIN, "partition", USB1);
|
currentPartition = m_cfg.getInt(GC_DOMAIN, "partition", USB1);
|
||||||
string gameDir(fmt(gc_games_dir, DeviceName[currentPartition]));
|
path = _FolderExplorer(fmt(gc_games_dir, DeviceName[currentPartition]));
|
||||||
path = _FolderExplorer(gameDir.c_str());
|
if(strlen(path) > 6)// "usb1:/"
|
||||||
if(strlen(path) > 0)
|
|
||||||
{
|
{
|
||||||
if(strncmp(path, "sd:/", 4) == 0)
|
if(strncmp(path, "sd:/", 4) == 0)
|
||||||
m_cfg.setInt(GC_DOMAIN, "partition", 0);
|
m_cfg.setInt(GC_DOMAIN, "partition", 0);
|
||||||
@ -214,12 +209,9 @@ void CMenu::_Paths(void)
|
|||||||
const char *partval = &path[3];
|
const char *partval = &path[3];
|
||||||
m_cfg.setInt(GC_DOMAIN, "partition", atoi(partval));
|
m_cfg.setInt(GC_DOMAIN, "partition", atoi(partval));
|
||||||
}
|
}
|
||||||
char tmpPath[64];
|
string tmpPath = "%s" + string(strchr(path, ':'));
|
||||||
strcpy(tmpPath, "%s");
|
|
||||||
strcat(tmpPath, strchr(path, ':'));
|
|
||||||
tmpPath[63] = '\0';
|
|
||||||
m_cfg.setString(GC_DOMAIN, "gc_games_dir", tmpPath);
|
m_cfg.setString(GC_DOMAIN, "gc_games_dir", tmpPath);
|
||||||
strcpy(gc_games_dir, tmpPath);
|
strcpy(gc_games_dir, tmpPath.c_str());
|
||||||
m_cfg.setBool(GC_DOMAIN, "update_cache", true);
|
m_cfg.setBool(GC_DOMAIN, "update_cache", true);
|
||||||
if(m_current_view & COVERFLOW_GAMECUBE)
|
if(m_current_view & COVERFLOW_GAMECUBE)
|
||||||
m_refreshGameList = true;
|
m_refreshGameList = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user