mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2024-11-27 13:44:15 +01:00
Allow wifi-gecko to work close to game launch
This commit is contained in:
parent
40266a8909
commit
32cd3b0cd2
@ -286,8 +286,10 @@ s32 Disc_Wait(void)
|
|||||||
|
|
||||||
s32 Disc_SetUSB(const u8 *id)
|
s32 Disc_SetUSB(const u8 *id)
|
||||||
{
|
{
|
||||||
|
//gprintf("Trying set_frag_list\n");
|
||||||
if (id) return set_frag_list((u8 *) id);
|
if (id) return set_frag_list((u8 *) id);
|
||||||
|
|
||||||
|
//gprintf("Trying WDVD_SetUSBMode\n");
|
||||||
return WDVD_SetUSBMode(wbfsDev, (u8 *) id, -1);
|
return WDVD_SetUSBMode(wbfsDev, (u8 *) id, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -335,6 +335,12 @@ s32 WDVD_SetFragList(int device, void *fraglist, int size)
|
|||||||
inbuf[2] = (u32)fraglist;
|
inbuf[2] = (u32)fraglist;
|
||||||
inbuf[3] = size;
|
inbuf[3] = size;
|
||||||
|
|
||||||
|
//int i;
|
||||||
|
//for (i = 0; i < 8; i++)
|
||||||
|
// gprintf("inbuf[%d] = %X\n", i, inbuf[i]);
|
||||||
|
//ghexdump(fraglist, size);
|
||||||
|
//gprintf("\n");
|
||||||
|
|
||||||
DCFlushRange(fraglist, size);
|
DCFlushRange(fraglist, size);
|
||||||
s32 ret = IOS_Ioctl(di_fd, IOCTL_DI_SETFRAG, inbuf, sizeof(inbuf), outbuf, sizeof(outbuf));
|
s32 ret = IOS_Ioctl(di_fd, IOCTL_DI_SETFRAG, inbuf, sizeof(inbuf), outbuf, sizeof(outbuf));
|
||||||
if (ret < 0) return ret;
|
if (ret < 0) return ret;
|
||||||
|
@ -28,9 +28,10 @@ void CMenu::error(const wstringEx &msg)
|
|||||||
_hideWaitMessage();
|
_hideWaitMessage();
|
||||||
m_btnMgr.setText(m_errorLblMessage, msg, true);
|
m_btnMgr.setText(m_errorLblMessage, msg, true);
|
||||||
_showError();
|
_showError();
|
||||||
|
|
||||||
|
gprintf(msg.toUTF8().c_str());
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
gprintf(msg.toUTF8().c_str());
|
|
||||||
_mainLoopCommon();
|
_mainLoopCommon();
|
||||||
} while (!BTN_B_PRESSED && !BTN_A_PRESSED && !BTN_HOME_PRESSED);
|
} while (!BTN_B_PRESSED && !BTN_A_PRESSED && !BTN_HOME_PRESSED);
|
||||||
_hideError(false);
|
_hideError(false);
|
||||||
|
@ -18,6 +18,9 @@
|
|||||||
#include "channel_launcher.h"
|
#include "channel_launcher.h"
|
||||||
#include "devicemounter/sdhc.h"
|
#include "devicemounter/sdhc.h"
|
||||||
|
|
||||||
|
#include <network.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include "loader/frag.h"
|
#include "loader/frag.h"
|
||||||
#include "loader/fst.h"
|
#include "loader/fst.h"
|
||||||
|
|
||||||
@ -508,7 +511,7 @@ void CMenu::_game(bool launch)
|
|||||||
Playlog_Delete();
|
Playlog_Delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
gprintf("Launching game\n");
|
gprintf("Launching game %s\n", id.c_str());
|
||||||
_launch(hdr);
|
_launch(hdr);
|
||||||
|
|
||||||
if(m_exit || bootHB) break;
|
if(m_exit || bootHB) break;
|
||||||
@ -793,6 +796,8 @@ int CMenu::_loadIOS(u8 ios, string id)
|
|||||||
int gameIOS = 0;
|
int gameIOS = 0;
|
||||||
int userIOS = 0;
|
int userIOS = 0;
|
||||||
|
|
||||||
|
gprintf("Game ID# %s requested IOS %d\n", id.c_str(), ios);
|
||||||
|
|
||||||
if (m_gcfg2.getInt(id, "ios", &userIOS) && _installed_cios.size() > 0)
|
if (m_gcfg2.getInt(id, "ios", &userIOS) && _installed_cios.size() > 0)
|
||||||
{
|
{
|
||||||
for(CIOSItr itr = _installed_cios.begin(); itr != _installed_cios.end(); itr++)
|
for(CIOSItr itr = _installed_cios.begin(); itr != _installed_cios.end(); itr++)
|
||||||
@ -995,6 +1000,7 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd)
|
|||||||
{
|
{
|
||||||
string id = string((const char *) hdr->hdr.id);
|
string id = string((const char *) hdr->hdr.id);
|
||||||
Nand::Instance()->Disable_Emu();
|
Nand::Instance()->Disable_Emu();
|
||||||
|
bool using_wifi_gecko = m_cfg.getBool("DEBUG", "wifi_gecko");
|
||||||
|
|
||||||
if (dvd)
|
if (dvd)
|
||||||
{
|
{
|
||||||
@ -1195,7 +1201,8 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd)
|
|||||||
app_gameconfig_load((u8 *) &hdr->hdr.id, gameconfig.get(), gameconfigSize);
|
app_gameconfig_load((u8 *) &hdr->hdr.id, gameconfig.get(), gameconfigSize);
|
||||||
ocarina_load_code((u8 *) &hdr->hdr.id, cheatFile.get(), cheatSize);
|
ocarina_load_code((u8 *) &hdr->hdr.id, cheatFile.get(), cheatSize);
|
||||||
|
|
||||||
net_wc24cleanup();
|
if (!using_wifi_gecko)
|
||||||
|
net_wc24cleanup();
|
||||||
|
|
||||||
bool iosLoaded = false;
|
bool iosLoaded = false;
|
||||||
|
|
||||||
@ -1208,6 +1215,12 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd)
|
|||||||
iosLoaded = true;
|
iosLoaded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (iosLoaded && using_wifi_gecko)
|
||||||
|
{
|
||||||
|
_initAsyncNetwork();
|
||||||
|
while(net_get_status() == -EBUSY);
|
||||||
|
}
|
||||||
|
|
||||||
if(emuSave)
|
if(emuSave)
|
||||||
{
|
{
|
||||||
if(iosLoaded) ISFS_Deinitialize();
|
if(iosLoaded) ISFS_Deinitialize();
|
||||||
@ -1273,7 +1286,9 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while(net_get_status() == -EBUSY);
|
||||||
cleanup();
|
cleanup();
|
||||||
|
// wifi-gecko can no longer function after cleanup
|
||||||
Close_Inputs();
|
Close_Inputs();
|
||||||
USBStorage_Deinit();
|
USBStorage_Deinit();
|
||||||
if(currentPartition == 0)
|
if(currentPartition == 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user