mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2025-02-21 14:27:09 +01:00
- added using platform ini to get the proper coverflow from the current coverflow ini. requires the updated platform ini and an updated coverflow ini.
- removed the hard coded sideflow and shortflow. - fixed using custom backgrounds whenever returning back to the game selected screen. - added custom background cleanup to free the memory used by them.
This commit is contained in:
parent
521438e786
commit
f581b3f193
Binary file not shown.
BIN
out/boot.dol
BIN
out/boot.dol
Binary file not shown.
Before Width: | Height: | Size: 3.3 MiB After Width: | Height: | Size: 3.3 MiB |
@ -98,7 +98,7 @@ bool Config::hasDomain(const string &domain) const
|
|||||||
|
|
||||||
void Config::copyDomain(const string &dst, const string &src)
|
void Config::copyDomain(const string &dst, const string &src)
|
||||||
{
|
{
|
||||||
m_domains[dst] = m_domains[src];
|
m_domains[upperCase(dst)] = m_domains[upperCase(src)];
|
||||||
}
|
}
|
||||||
|
|
||||||
const string &Config::firstDomain(void)
|
const string &Config::firstDomain(void)
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
#else
|
#else
|
||||||
#define APP_NAME "WiiFlow Lite"
|
#define APP_NAME "WiiFlow Lite"
|
||||||
#endif
|
#endif
|
||||||
#define APP_VERSION "5.3.0 beta 1"
|
#define APP_VERSION "5.3.0 beta 2"
|
||||||
|
|
||||||
#define APP_DATA_DIR "wiiflow"
|
#define APP_DATA_DIR "wiiflow"
|
||||||
#ifdef APP_WIIFLOW
|
#ifdef APP_WIIFLOW
|
||||||
|
@ -475,6 +475,8 @@ void CMenu::_Theme_Cleanup(void)
|
|||||||
m_nextBg = NULL;
|
m_nextBg = NULL;
|
||||||
TexHandle.Cleanup(m_curBg);
|
TexHandle.Cleanup(m_curBg);
|
||||||
m_lqBg = NULL;
|
m_lqBg = NULL;
|
||||||
|
TexHandle.Cleanup(sfbgimg);
|
||||||
|
TexHandle.Cleanup(m_mainAltBg);
|
||||||
/* Buttons */
|
/* Buttons */
|
||||||
TexHandle.Cleanup(theme.btnTexL);
|
TexHandle.Cleanup(theme.btnTexL);
|
||||||
TexHandle.Cleanup(theme.btnTexR);
|
TexHandle.Cleanup(theme.btnTexR);
|
||||||
@ -664,9 +666,7 @@ void CMenu::_loadCFLayout(int version, bool forceAA, bool otherScrnFmt)
|
|||||||
{
|
{
|
||||||
string domain = fmt("%s_%i", cf_domain, version);
|
string domain = fmt("%s_%i", cf_domain, version);
|
||||||
string domainSel = fmt("%s_%i_S", cf_domain, version);
|
string domainSel = fmt("%s_%i_S", cf_domain, version);
|
||||||
bool smallflow = (strcmp(cf_domain, "_SMALLFLOW") == 0);
|
bool smallflow = strcasecmp(cf_domain, "_SMALLFLOW") == 0;
|
||||||
bool shortflow = (strcmp(cf_domain, "_SHORTFLOW") == 0);
|
|
||||||
bool sideflow = (strcmp(cf_domain, "_SIDEFLOW") == 0);
|
|
||||||
bool sf = otherScrnFmt;
|
bool sf = otherScrnFmt;
|
||||||
|
|
||||||
int max_fsaa = m_coverflow.getInt(domain, "max_fsaa", 3);
|
int max_fsaa = m_coverflow.getInt(domain, "max_fsaa", 3);
|
||||||
@ -696,11 +696,10 @@ void CMenu::_loadCFLayout(int version, bool forceAA, bool otherScrnFmt)
|
|||||||
|
|
||||||
float def_cvr_posX = smallflow ? 1.f : 1.6f;
|
float def_cvr_posX = smallflow ? 1.f : 1.6f;
|
||||||
float def_cvr_posY = smallflow ? -0.8f : -1.f;
|
float def_cvr_posY = smallflow ? -0.8f : -1.f;
|
||||||
float def_cvr_posX1 = sideflow ? .10f : 0.f;
|
|
||||||
CoverFlow.setCoverPos(false,
|
CoverFlow.setCoverPos(false,
|
||||||
_getCFV3D(domain, "left_pos", Vector3D(-def_cvr_posX, def_cvr_posY, 0.f), sf),
|
_getCFV3D(domain, "left_pos", Vector3D(-def_cvr_posX, def_cvr_posY, 0.f), sf),
|
||||||
_getCFV3D(domain, "right_pos", Vector3D(def_cvr_posX, def_cvr_posY, 0.f), sf),
|
_getCFV3D(domain, "right_pos", Vector3D(def_cvr_posX, def_cvr_posY, 0.f), sf),
|
||||||
_getCFV3D(domain, "center_pos", Vector3D(def_cvr_posX1, def_cvr_posY, 1.f), sf),
|
_getCFV3D(domain, "center_pos", Vector3D(def_cvr_posX, def_cvr_posY, 1.f), sf),
|
||||||
_getCFV3D(domain, "row_center_pos", Vector3D(0.f, def_cvr_posY, 0.f), sf));
|
_getCFV3D(domain, "row_center_pos", Vector3D(0.f, def_cvr_posY, 0.f), sf));
|
||||||
|
|
||||||
if(smallflow)
|
if(smallflow)
|
||||||
@ -750,11 +749,10 @@ void CMenu::_loadCFLayout(int version, bool forceAA, bool otherScrnFmt)
|
|||||||
m_coverflow.getVector3D(domainSel, "right_delta_angle"));
|
m_coverflow.getVector3D(domainSel, "right_delta_angle"));
|
||||||
|
|
||||||
float angleY = smallflow ? 0.f : 70.f;
|
float angleY = smallflow ? 0.f : 70.f;
|
||||||
float angleZ = sideflow ? 90.f : 0.f;
|
|
||||||
CoverFlow.setAngles(false,
|
CoverFlow.setAngles(false,
|
||||||
m_coverflow.getVector3D(domain, "left_angle", Vector3D(0.f, angleY, 0.f)),
|
m_coverflow.getVector3D(domain, "left_angle", Vector3D(0.f, angleY, 0.f)),
|
||||||
m_coverflow.getVector3D(domain, "right_angle", Vector3D(0.f, -angleY, 0.f)),
|
m_coverflow.getVector3D(domain, "right_angle", Vector3D(0.f, -angleY, 0.f)),
|
||||||
m_coverflow.getVector3D(domain, "center_angle", Vector3D(0.f, 0.f, angleZ)),
|
m_coverflow.getVector3D(domain, "center_angle", Vector3D(0.f, 0.f, 0.f)),
|
||||||
m_coverflow.getVector3D(domain, "row_center_angle"));
|
m_coverflow.getVector3D(domain, "row_center_angle"));
|
||||||
|
|
||||||
angleY = smallflow ? 0.f : 90.f;
|
angleY = smallflow ? 0.f : 90.f;
|
||||||
@ -763,7 +761,7 @@ void CMenu::_loadCFLayout(int version, bool forceAA, bool otherScrnFmt)
|
|||||||
CoverFlow.setAngles(true,
|
CoverFlow.setAngles(true,
|
||||||
m_coverflow.getVector3D(domainSel, "left_angle", Vector3D(angleX, angleY, 0.f)),
|
m_coverflow.getVector3D(domainSel, "left_angle", Vector3D(angleX, angleY, 0.f)),
|
||||||
m_coverflow.getVector3D(domainSel, "right_angle", Vector3D(angleX, -angleY, 0.f)),
|
m_coverflow.getVector3D(domainSel, "right_angle", Vector3D(angleX, -angleY, 0.f)),
|
||||||
m_coverflow.getVector3D(domainSel, "center_angle", Vector3D(0.f, angleY1, angleZ)),
|
m_coverflow.getVector3D(domainSel, "center_angle", Vector3D(0.f, angleY1, 0.f)),
|
||||||
m_coverflow.getVector3D(domainSel, "row_center_angle"));
|
m_coverflow.getVector3D(domainSel, "row_center_angle"));
|
||||||
|
|
||||||
angleX = smallflow ? 0.f : 20.f;
|
angleX = smallflow ? 0.f : 20.f;
|
||||||
@ -860,9 +858,7 @@ void CMenu::_loadCFLayout(int version, bool forceAA, bool otherScrnFmt)
|
|||||||
m_coverflow.getVector3D(domainSel, "top_angle"),
|
m_coverflow.getVector3D(domainSel, "top_angle"),
|
||||||
m_coverflow.getVector3D(domainSel, "bottom_angle"));
|
m_coverflow.getVector3D(domainSel, "bottom_angle"));
|
||||||
|
|
||||||
Vector3D def_cvr_scale = smallflow ? Vector3D(0.66f, 0.25f, 1.f)
|
Vector3D def_cvr_scale = smallflow ? Vector3D(0.66f, 0.25f, 1.f) : Vector3D(1.f, 1.f, 1.f);
|
||||||
: (shortflow ? Vector3D(1.f, 0.66f, 1.f)
|
|
||||||
: Vector3D(1.f, 1.f, 1.f));
|
|
||||||
|
|
||||||
CoverFlow.setCoverScale(false,
|
CoverFlow.setCoverScale(false,
|
||||||
m_coverflow.getVector3D(domain, "left_scale", def_cvr_scale),
|
m_coverflow.getVector3D(domain, "left_scale", def_cvr_scale),
|
||||||
|
@ -97,7 +97,7 @@ private:
|
|||||||
u8 m_numCFVersions;
|
u8 m_numCFVersions;
|
||||||
u8 m_numPlugins;
|
u8 m_numPlugins;
|
||||||
u8 m_max_source_btn;
|
u8 m_max_source_btn;
|
||||||
const char *cf_domain;
|
char cf_domain[16];
|
||||||
bool m_use_source;// source_menu.ini found & ok to use source menu/flow
|
bool m_use_source;// source_menu.ini found & ok to use source menu/flow
|
||||||
bool m_multisource;// multi select source menu
|
bool m_multisource;// multi select source menu
|
||||||
bool m_sourceflow;// in sourceflow view
|
bool m_sourceflow;// in sourceflow view
|
||||||
@ -1022,8 +1022,6 @@ private:
|
|||||||
void _showCF(bool refreshList = false);
|
void _showCF(bool refreshList = false);
|
||||||
void _refreshExplorer(s8 direction = 0);
|
void _refreshExplorer(s8 direction = 0);
|
||||||
void _setSrcOptions(void);
|
void _setSrcOptions(void);
|
||||||
bool _sideCover(const char *magic);
|
|
||||||
bool _shortCover(const char *magic);
|
|
||||||
void _updateSourceBtns(void);
|
void _updateSourceBtns(void);
|
||||||
void _updatePluginText(void);
|
void _updatePluginText(void);
|
||||||
void _updatePluginCheckboxes(void);
|
void _updatePluginCheckboxes(void);
|
||||||
|
@ -43,6 +43,7 @@ extern const u32 gc_ogg_size;
|
|||||||
|
|
||||||
bool m_zoom_banner = false;
|
bool m_zoom_banner = false;
|
||||||
bool m_banner_loaded = false;
|
bool m_banner_loaded = false;
|
||||||
|
bool m_set_bg = false;
|
||||||
s16 m_gameBtnPlayFull;
|
s16 m_gameBtnPlayFull;
|
||||||
s16 m_gameBtnBackFull;
|
s16 m_gameBtnBackFull;
|
||||||
s16 m_gameBtnToggle;
|
s16 m_gameBtnToggle;
|
||||||
@ -316,8 +317,6 @@ void CMenu::_hideGame(bool instant)
|
|||||||
|
|
||||||
void CMenu::_showGame(void)
|
void CMenu::_showGame(void)
|
||||||
{
|
{
|
||||||
bool faPrevLoaded = m_fa.isLoaded();
|
|
||||||
|
|
||||||
const dir_discHdr *GameHdr = CoverFlow.getHdr();
|
const dir_discHdr *GameHdr = CoverFlow.getHdr();
|
||||||
const char *coverDir = NULL;
|
const char *coverDir = NULL;
|
||||||
const char *Path = NULL;
|
const char *Path = NULL;
|
||||||
@ -336,11 +335,12 @@ void CMenu::_showGame(void)
|
|||||||
_setBg(*bg, *bglq);
|
_setBg(*bg, *bglq);
|
||||||
CoverFlow.hideCover();
|
CoverFlow.hideCover();
|
||||||
}
|
}
|
||||||
else if(faPrevLoaded)
|
else if(m_set_bg)
|
||||||
{
|
{
|
||||||
CoverFlow.showCover();
|
CoverFlow.showCover();
|
||||||
_setMainBg();
|
_setMainBg();
|
||||||
}
|
}
|
||||||
|
m_set_bg = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMenu::_cleanupBanner(bool gamechange)
|
void CMenu::_cleanupBanner(bool gamechange)
|
||||||
@ -383,14 +383,18 @@ static const char *getVideoDefaultPath(const string &videoDir)
|
|||||||
bool CMenu::_startVideo()
|
bool CMenu::_startVideo()
|
||||||
{
|
{
|
||||||
const dir_discHdr *GameHdr = CoverFlow.getHdr();
|
const dir_discHdr *GameHdr = CoverFlow.getHdr();
|
||||||
|
|
||||||
|
const char *videoId = NULL;
|
||||||
char curId3[4];
|
char curId3[4];
|
||||||
memset(curId3, 0, 4);
|
memset(curId3, 0, 4);
|
||||||
const char *videoId = CoverFlow.getFilenameId(GameHdr);//title.ext
|
|
||||||
if(!NoGameID(GameHdr->type))
|
if(!NoGameID(GameHdr->type))
|
||||||
{ //id3
|
{ //id3
|
||||||
memcpy(curId3, GameHdr->id, 3);
|
memcpy(curId3, GameHdr->id, 3);
|
||||||
videoId = curId3;
|
videoId = curId3;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
videoId = CoverFlow.getFilenameId(GameHdr);//title.ext
|
||||||
|
|
||||||
//dev:/wiiflow/trailers/{coverfolder}/title.ext.thp or dev:/wiiflow/trailers/id3.thp
|
//dev:/wiiflow/trailers/{coverfolder}/title.ext.thp or dev:/wiiflow/trailers/id3.thp
|
||||||
const char *videoPath = getVideoPath(m_videoDir, videoId);
|
const char *videoPath = getVideoPath(m_videoDir, videoId);
|
||||||
const char *THP_Path = fmt("%s.thp", videoPath);
|
const char *THP_Path = fmt("%s.thp", videoPath);
|
||||||
@ -429,6 +433,7 @@ bool CMenu::_startVideo()
|
|||||||
void CMenu::_game(bool launch)
|
void CMenu::_game(bool launch)
|
||||||
{
|
{
|
||||||
m_banner_loaded = false;
|
m_banner_loaded = false;
|
||||||
|
m_set_bg = false;
|
||||||
bool coverFlipped = false;
|
bool coverFlipped = false;
|
||||||
int cf_version = 1;
|
int cf_version = 1;
|
||||||
string domain;
|
string domain;
|
||||||
@ -551,14 +556,10 @@ void CMenu::_game(bool launch)
|
|||||||
/* display game info screen */
|
/* display game info screen */
|
||||||
else if(BTN_PLUS_PRESSED && hdr->type != TYPE_HOMEBREW && hdr->type != TYPE_SOURCE && !coverFlipped && !m_video_playing)
|
else if(BTN_PLUS_PRESSED && hdr->type != TYPE_HOMEBREW && hdr->type != TYPE_SOURCE && !coverFlipped && !m_video_playing)
|
||||||
{
|
{
|
||||||
bool faLoaded = m_fa.isLoaded();
|
_hideGame();
|
||||||
_hideGame();// stops trailer movie and unloads fanart
|
|
||||||
m_banner.SetShowBanner(false);
|
m_banner.SetShowBanner(false);
|
||||||
_gameinfo();
|
_gameinfo();
|
||||||
if(faLoaded)
|
_showGame();
|
||||||
_showGame();// reloads fanart
|
|
||||||
else
|
|
||||||
_setMainBg();// show custom bg if available
|
|
||||||
m_banner.SetShowBanner(true);
|
m_banner.SetShowBanner(true);
|
||||||
}
|
}
|
||||||
/* play or stop a trailer video */
|
/* play or stop a trailer video */
|
||||||
|
@ -48,6 +48,7 @@ void CMenu::_setMainBg()
|
|||||||
_setSrcFlowBg();
|
_setSrcFlowBg();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
TexHandle.Cleanup(m_mainAltBg);
|
||||||
string fn = m_cfg.getString("general", "main_background", "");
|
string fn = m_cfg.getString("general", "main_background", "");
|
||||||
if(fn.length() > 0)
|
if(fn.length() > 0)
|
||||||
{
|
{
|
||||||
@ -215,40 +216,54 @@ void CMenu::_showCF(bool refreshList)
|
|||||||
if(m_cfg.getBool("GENERAL", "save_favorites_mode", false))
|
if(m_cfg.getBool("GENERAL", "save_favorites_mode", false))
|
||||||
m_favorites = m_cfg.getBool(_domainFromView(), "favorites", false);
|
m_favorites = m_cfg.getBool(_domainFromView(), "favorites", false);
|
||||||
|
|
||||||
/* set CoverFlow domain to _COVERFLOW, _SMALLFLOW, _SIDEFLOW, _SHORTFLOW, or _FLATFLOW */
|
strcpy(cf_domain, "_COVERFLOW");
|
||||||
cf_domain = "_COVERFLOW";
|
|
||||||
if(!m_sourceflow && m_current_view == COVERFLOW_HOMEBREW && m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox", true))
|
if(!m_sourceflow && m_current_view == COVERFLOW_HOMEBREW && m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox", true))
|
||||||
cf_domain = "_SMALLFLOW";
|
strcpy(cf_domain, "_SMALLFLOW");
|
||||||
if(m_sourceflow && m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox", true))
|
if(m_sourceflow && m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox", true))
|
||||||
cf_domain = "_SMALLFLOW";
|
strcpy(cf_domain, "_SMALLFLOW");
|
||||||
if(m_current_view == COVERFLOW_PLUGIN && !m_sourceflow)
|
if(m_current_view == COVERFLOW_PLUGIN && !m_sourceflow)
|
||||||
{
|
{
|
||||||
m_plugin.GetEnabledPlugins(m_cfg, &enabledPluginsCount);
|
m_plugin.GetEnabledPlugins(m_cfg, &enabledPluginsCount);
|
||||||
|
/* check if homebrew plugin */
|
||||||
if(enabledPluginsCount == 1 && m_cfg.getBool(PLUGIN_ENABLED, "48425257") && m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox"))
|
if(enabledPluginsCount == 1 && m_cfg.getBool(PLUGIN_ENABLED, "48425257") && m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox"))
|
||||||
cf_domain = "_smallflow";
|
strcpy(cf_domain, "_SMALLFLOW");
|
||||||
else if(enabledPluginsCount > 0)
|
else if(enabledPluginsCount > 0)
|
||||||
{
|
{
|
||||||
int sdc = 0;
|
/* load platform.ini */
|
||||||
int shc = 0;
|
Config m_platform;
|
||||||
int flatmode_cnt = 0;
|
m_platform.load(fmt("%s/platform.ini", m_pluginDataDir.c_str()) );
|
||||||
|
if(m_platform.loaded())
|
||||||
|
{
|
||||||
|
string flow_domain;
|
||||||
for(u8 i = 0; m_plugin.PluginExist(i); ++i)
|
for(u8 i = 0; m_plugin.PluginExist(i); ++i)
|
||||||
{
|
{
|
||||||
if(m_plugin.GetEnableStatus(m_cfg, m_plugin.getPluginMagic(i)))
|
if(m_plugin.GetEnableStatus(m_cfg, m_plugin.getPluginMagic(i)))
|
||||||
{
|
{
|
||||||
if(!m_plugin.GetBoxMode(i))
|
strncpy(m_plugin.PluginMagicWord, fmt("%08x", m_plugin.getPluginMagic(i)), 8);
|
||||||
flatmode_cnt++;
|
flow_domain = m_platform.getString("FLOWS", m_platform.getString("PLUGINS", m_plugin.PluginMagicWord));
|
||||||
else if(_sideCover(m_plugin.PluginMagicWord))
|
break;
|
||||||
sdc++;
|
|
||||||
else if(_shortCover(m_plugin.PluginMagicWord))
|
|
||||||
shc++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(sdc == enabledPluginsCount)
|
if(!flow_domain.empty())
|
||||||
cf_domain = "_SIDEFLOW";
|
{
|
||||||
else if(shc == enabledPluginsCount)
|
bool match = true;
|
||||||
cf_domain = "_SHORTFLOW";
|
for(u8 i = 0; m_plugin.PluginExist(i); ++i)
|
||||||
if(flatmode_cnt == enabledPluginsCount)
|
{
|
||||||
cf_domain = "_FLATFLOW";
|
if(m_plugin.GetEnableStatus(m_cfg, m_plugin.getPluginMagic(i)))
|
||||||
|
{
|
||||||
|
strncpy(m_plugin.PluginMagicWord, fmt("%08x", m_plugin.getPluginMagic(i)), 8);
|
||||||
|
if(flow_domain != m_platform.getString("FLOWS", m_platform.getString("PLUGINS", m_plugin.PluginMagicWord)))
|
||||||
|
{
|
||||||
|
match = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(match)
|
||||||
|
snprintf(cf_domain, sizeof(cf_domain), "%s", flow_domain.c_str());
|
||||||
|
}
|
||||||
|
m_platform.unload();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -352,14 +367,6 @@ int CMenu::main(void)
|
|||||||
_showCF(true);
|
_showCF(true);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(m_current_view == COVERFLOW_HOMEBREW && m_prev_view != 0)
|
|
||||||
{
|
|
||||||
m_current_view = m_prev_view;
|
|
||||||
m_prev_view = 0;
|
|
||||||
m_cfg.setUInt("GENERAL", "sources", m_current_view);
|
|
||||||
_showCF(true);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if(m_use_source)//if source_menu enabled
|
if(m_use_source)//if source_menu enabled
|
||||||
{
|
{
|
||||||
_hideMain();
|
_hideMain();
|
||||||
|
@ -183,6 +183,7 @@ void CMenu::_srcTierBack(bool home)
|
|||||||
|
|
||||||
void CMenu::_setSrcFlowBg(void)
|
void CMenu::_setSrcFlowBg(void)
|
||||||
{
|
{
|
||||||
|
TexHandle.Cleanup(sfbgimg);
|
||||||
string fn = m_source.getString("general", "background", "");
|
string fn = m_source.getString("general", "background", "");
|
||||||
if(fn.length() > 0)
|
if(fn.length() > 0)
|
||||||
{
|
{
|
||||||
@ -699,54 +700,6 @@ bool CMenu::_Source()
|
|||||||
return newSource;
|
return newSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char sideCovers[5][9] = {
|
|
||||||
"534e5854", //Snes9X-Next
|
|
||||||
"534e4553", //SNES9xGX
|
|
||||||
"4e4f3634", //Not64
|
|
||||||
"57493634", //Wii64
|
|
||||||
"513053xx" //QuakeGX Serverloader wild cards
|
|
||||||
};
|
|
||||||
|
|
||||||
static const char shortCovers[13][9] = {
|
|
||||||
"474d4254", //Gambatte
|
|
||||||
"474d4264", //Gambatte GB
|
|
||||||
"474d4274", //Gambatte GBC
|
|
||||||
"56425854", //VBA-Next
|
|
||||||
"56424158", //VbaGX
|
|
||||||
"56424168", //VbaGX GB
|
|
||||||
"56424178", //VbaGX GBC
|
|
||||||
"56424188", //VbaGX GBA
|
|
||||||
"4d45445e", //WiiMednafen GB
|
|
||||||
"4d45446e", //WiiMednafen GBC
|
|
||||||
"4d45447e", //WiiMednafen GBA
|
|
||||||
"57495358", //WiiSX - playstation
|
|
||||||
"51304dxx" //QuakeGX Modloader wild cards
|
|
||||||
};
|
|
||||||
|
|
||||||
bool CMenu::_sideCover(const char *magic)
|
|
||||||
{
|
|
||||||
if(magic == NULL)
|
|
||||||
return false;
|
|
||||||
for(i = 0; i < ARRAY_SIZE(sideCovers); i++)
|
|
||||||
{
|
|
||||||
if((sideCovers[i][6] == 'x' && strncasecmp(magic, sideCovers[i], 6) == 0) || strncasecmp(magic, sideCovers[i], 8) == 0)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CMenu::_shortCover(const char *magic)
|
|
||||||
{
|
|
||||||
if(magic == NULL)
|
|
||||||
return false;
|
|
||||||
for(i = 0; i < ARRAY_SIZE(shortCovers); i++)
|
|
||||||
{
|
|
||||||
if((shortCovers[i][6] == 'x' && strncasecmp(magic, shortCovers[i], 6) == 0) || strncasecmp(magic, shortCovers[i], 8) == 0)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CMenu::_setSrcOptions(void)
|
void CMenu::_setSrcOptions(void)
|
||||||
{
|
{
|
||||||
m_cfg.setString("GENERAL", "main_background", m_source.getString(btn_selected, "background", ""));
|
m_cfg.setString("GENERAL", "main_background", m_source.getString(btn_selected, "background", ""));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user