mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2024-11-23 19:59:16 +01:00
-removed neek2o mode. meaning wiiflow will no longer work in neek2o environment. launching channels in neek2o still works.
This commit is contained in:
parent
c5168d89aa
commit
0888312372
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 |
@ -193,7 +193,7 @@ void Channels::Search()
|
|||||||
{
|
{
|
||||||
u32 count;
|
u32 count;
|
||||||
u64 *list = NULL;
|
u64 *list = NULL;
|
||||||
if(!neek2o() && NANDemuView)
|
if(NANDemuView)
|
||||||
list = NandHandle.GetChannels(&count);
|
list = NandHandle.GetChannels(&count);
|
||||||
else
|
else
|
||||||
list = GetChannelList(&count);
|
list = GetChannelList(&count);
|
||||||
|
@ -120,9 +120,6 @@ bool IOS_D2X(u8 ios, u8 *base)
|
|||||||
|
|
||||||
u8 IOS_GetType(u8 slot)
|
u8 IOS_GetType(u8 slot)
|
||||||
{
|
{
|
||||||
if(neek2o())
|
|
||||||
return IOS_TYPE_NEEK2O;
|
|
||||||
|
|
||||||
u32 TMD_Length;
|
u32 TMD_Length;
|
||||||
signed_blob *TMD_Buffer = GetTMD(slot, &TMD_Length);
|
signed_blob *TMD_Buffer = GetTMD(slot, &TMD_Length);
|
||||||
if(TMD_Buffer == NULL)
|
if(TMD_Buffer == NULL)
|
||||||
|
@ -35,47 +35,12 @@
|
|||||||
#include "memory/mem2.hpp"
|
#include "memory/mem2.hpp"
|
||||||
#include "gecko/gecko.hpp"
|
#include "gecko/gecko.hpp"
|
||||||
|
|
||||||
//static u32 KeyID;
|
|
||||||
bool checked = false;
|
|
||||||
bool neek = false;
|
|
||||||
u32 kernelSize = 0;
|
u32 kernelSize = 0;
|
||||||
void *Kernel = NULL;
|
void *Kernel = NULL;
|
||||||
|
|
||||||
void check_neek2o(void)
|
|
||||||
{
|
|
||||||
if(checked == true)
|
|
||||||
return;
|
|
||||||
checked = true;
|
|
||||||
|
|
||||||
s32 ESHandle = IOS_Open("/dev/es", 0);
|
|
||||||
neek = (IOS_Ioctlv(ESHandle, 0xA2, 0, 0, NULL) == 0x666c6f77);
|
|
||||||
IOS_Close(ESHandle);
|
|
||||||
if(!neek)
|
|
||||||
{
|
|
||||||
s32 FSHandle = IOS_Open("/dev/fs", 0);
|
|
||||||
neek = (IOS_Ioctlv(FSHandle, 0x21, 0, 0, NULL) == 0);
|
|
||||||
IOS_Close(FSHandle);
|
|
||||||
}
|
|
||||||
if(!neek)
|
|
||||||
{
|
|
||||||
u32 num = 0;
|
|
||||||
ISFS_Initialize();
|
|
||||||
neek = (ISFS_ReadDir("/sneek", NULL, &num) == 0);
|
|
||||||
ISFS_Deinitialize();
|
|
||||||
}
|
|
||||||
gprintf("WiiFlow is in %s mode\n", neek ? "neek2o" : "real nand");
|
|
||||||
}
|
|
||||||
|
|
||||||
bool neek2o(void)
|
|
||||||
{
|
|
||||||
return neek;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Load_Neek2o_Kernel()
|
bool Load_Neek2o_Kernel()
|
||||||
{
|
{
|
||||||
bool ret = true;
|
bool ret = true;
|
||||||
if(neek2o())
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
if(IsOnWiiU())
|
if(IsOnWiiU())
|
||||||
Kernel = fsop_ReadFile("usb1:/sneek/vwiikernel.bin", &kernelSize);
|
Kernel = fsop_ReadFile("usb1:/sneek/vwiikernel.bin", &kernelSize);
|
||||||
@ -93,11 +58,6 @@ bool Load_Neek2o_Kernel()
|
|||||||
|
|
||||||
s32 Launch_nk(u64 TitleID, const char *nandpath, u64 ReturnTo)
|
s32 Launch_nk(u64 TitleID, const char *nandpath, u64 ReturnTo)
|
||||||
{
|
{
|
||||||
if(neek2o())
|
|
||||||
{
|
|
||||||
SYS_ResetSystem(SYS_RESTART, 0, 0);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
memcpy((void*)0x91000000, Kernel, kernelSize);
|
memcpy((void*)0x91000000, Kernel, kernelSize);
|
||||||
DCFlushRange((void*)0x91000000, kernelSize);
|
DCFlushRange((void*)0x91000000, kernelSize);
|
||||||
free(Kernel);
|
free(Kernel);
|
||||||
|
@ -27,8 +27,6 @@ extern "C" {
|
|||||||
|
|
||||||
s32 Launch_nk(u64 TitleID, const char *nandpath, u64 ReturnTo);
|
s32 Launch_nk(u64 TitleID, const char *nandpath, u64 ReturnTo);
|
||||||
bool Load_Neek2o_Kernel();
|
bool Load_Neek2o_Kernel();
|
||||||
void check_neek2o(void);
|
|
||||||
bool neek2o(void);
|
|
||||||
/*void NKKeyCreate(u8 *TIK);
|
/*void NKKeyCreate(u8 *TIK);
|
||||||
void NKAESDecryptBlock(u8 *in, u8 *out);*/
|
void NKAESDecryptBlock(u8 *in, u8 *out);*/
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ bool Sys_HW_Access(void)
|
|||||||
if(hw_checked == true)
|
if(hw_checked == true)
|
||||||
return on_hw;
|
return on_hw;
|
||||||
|
|
||||||
on_hw = AHBPROT_Patched() && !neek2o();
|
on_hw = AHBPROT_Patched();
|
||||||
hw_checked = true;
|
hw_checked = true;
|
||||||
return on_hw;
|
return on_hw;
|
||||||
}
|
}
|
||||||
|
@ -135,20 +135,14 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
/* Init NAND handlers */
|
/* Init NAND handlers */
|
||||||
NandHandle.Init();
|
NandHandle.Init();
|
||||||
check_neek2o();
|
NandHandle.LoadDefaultIOS(); /* safe reload to preferred IOS */
|
||||||
if(neek2o())
|
|
||||||
NandHandle.Init_ISFS();
|
|
||||||
else
|
|
||||||
NandHandle.LoadDefaultIOS(); /* safe reload to preferred IOS */
|
|
||||||
|
|
||||||
/* load and check wiiflow save for possible new IOS and Port settings */
|
/* load and check wiiflow save for possible new IOS and Port settings */
|
||||||
if(InternalSave.CheckSave())
|
if(InternalSave.CheckSave())
|
||||||
InternalSave.LoadSettings();
|
InternalSave.LoadSettings();
|
||||||
|
|
||||||
/* Handle (c)IOS Loading */
|
/* Handle (c)IOS Loading */
|
||||||
if(neek2o()) /* wont reload anythin */
|
if(useMainIOS && CustomIOS(IOS_GetType(mainIOS))) /* Requested */
|
||||||
iosOK = loadIOS(IOS_GetVersion(), false);
|
|
||||||
else if(useMainIOS && CustomIOS(IOS_GetType(mainIOS))) /* Requested */
|
|
||||||
iosOK = loadIOS(mainIOS, false) && CustomIOS(CurrentIOS.Type);
|
iosOK = loadIOS(mainIOS, false) && CustomIOS(CurrentIOS.Type);
|
||||||
|
|
||||||
/* sys inits */
|
/* sys inits */
|
||||||
@ -170,9 +164,9 @@ int main(int argc, char **argv)
|
|||||||
/* init configs, folders, coverflow, gui and more */
|
/* init configs, folders, coverflow, gui and more */
|
||||||
if(mainMenu.init())
|
if(mainMenu.init())
|
||||||
{
|
{
|
||||||
if(CurrentIOS.Version != mainIOS && !neek2o())
|
if(CurrentIOS.Version != mainIOS)
|
||||||
{
|
{
|
||||||
if(useMainIOS || !DeviceHandle.UsablePartitionMounted())
|
if(useMainIOS || !DeviceHandle.UsablePartitionMounted())// if useMainIOS or there's isn't a FAT or NTFS partition
|
||||||
{
|
{
|
||||||
useMainIOS = false;
|
useMainIOS = false;
|
||||||
mainMenu.TempLoadIOS();
|
mainMenu.TempLoadIOS();
|
||||||
|
@ -231,10 +231,7 @@ bool CMenu::init()
|
|||||||
|
|
||||||
/* Load cIOS Map */
|
/* Load cIOS Map */
|
||||||
_installed_cios.clear();
|
_installed_cios.clear();
|
||||||
if(!neek2o())
|
_load_installed_cioses();
|
||||||
_load_installed_cioses();
|
|
||||||
else
|
|
||||||
_installed_cios[CurrentIOS.Version] = CurrentIOS.Version;
|
|
||||||
|
|
||||||
/* Path Settings */
|
/* Path Settings */
|
||||||
m_dol = fmt("%s/boot.dol", m_appDir.c_str());
|
m_dol = fmt("%s/boot.dol", m_appDir.c_str());
|
||||||
@ -2603,7 +2600,7 @@ void CMenu::RemoveCover(const char *id)
|
|||||||
void CMenu::TempLoadIOS(int IOS)
|
void CMenu::TempLoadIOS(int IOS)
|
||||||
{
|
{
|
||||||
/* Only temp reload in IOS58 mode */
|
/* Only temp reload in IOS58 mode */
|
||||||
if(useMainIOS || neek2o())
|
if(useMainIOS)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(IOS == IOS_TYPE_NORMAL_IOS)
|
if(IOS == IOS_TYPE_NORMAL_IOS)
|
||||||
|
@ -1465,7 +1465,7 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
|
|||||||
int CMenu::_loadIOS(u8 gameIOS, int userIOS, string id, bool RealNAND_Channels)
|
int CMenu::_loadIOS(u8 gameIOS, int userIOS, string id, bool RealNAND_Channels)
|
||||||
{
|
{
|
||||||
gprintf("Game ID# %s requested IOS %d. User selected %d\n", id.c_str(), gameIOS, userIOS);
|
gprintf("Game ID# %s requested IOS %d. User selected %d\n", id.c_str(), gameIOS, userIOS);
|
||||||
if(neek2o() || (RealNAND_Channels && IOS_GetType(mainIOS) == IOS_TYPE_STUB))
|
if(RealNAND_Channels && IOS_GetType(mainIOS) == IOS_TYPE_STUB)
|
||||||
{
|
{
|
||||||
/* doesn't use cIOS so we don't check userIOS */
|
/* doesn't use cIOS so we don't check userIOS */
|
||||||
bool ret = loadIOS(gameIOS, false);//load game requested IOS and patch nothing
|
bool ret = loadIOS(gameIOS, false);//load game requested IOS and patch nothing
|
||||||
@ -1552,7 +1552,7 @@ void CMenu::_launchChannel(dir_discHdr *hdr)
|
|||||||
string id = string(hdr->id);
|
string id = string(hdr->id);
|
||||||
|
|
||||||
/* WII_Launch is used for launching real nand channels */
|
/* WII_Launch is used for launching real nand channels */
|
||||||
bool WII_Launch = (m_gcfg2.getBool(id, "custom", false) && (!NANDemuView || neek2o()));
|
bool WII_Launch = (m_gcfg2.getBool(id, "custom", false) && !NANDemuView);
|
||||||
/* use_dol = true to use the channels dol or false to use the old apploader method to boot channel */
|
/* use_dol = true to use the channels dol or false to use the old apploader method to boot channel */
|
||||||
bool use_dol = !m_gcfg2.getBool(id, "apploader", false);
|
bool use_dol = !m_gcfg2.getBool(id, "apploader", false);
|
||||||
|
|
||||||
@ -1600,11 +1600,11 @@ void CMenu::_launchChannel(dir_discHdr *hdr)
|
|||||||
|
|
||||||
int userIOS = m_gcfg2.getInt(id, "ios", 0);
|
int userIOS = m_gcfg2.getInt(id, "ios", 0);
|
||||||
u64 gameTitle = TITLE_ID(hdr->settings[0],hdr->settings[1]);
|
u64 gameTitle = TITLE_ID(hdr->settings[0],hdr->settings[1]);
|
||||||
bool useNK2o = (m_gcfg2.getBool(id, "useneek", false) && !neek2o());//if not in neek2o and use neek is set
|
bool useNK2o = m_gcfg2.getBool(id, "useneek", false);//if not in neek2o and use neek is set
|
||||||
bool use_led = m_gcfg2.getBool(id, "led", false);
|
bool use_led = m_gcfg2.getBool(id, "led", false);
|
||||||
u32 gameIOS = ChannelHandle.GetRequestedIOS(gameTitle);
|
u32 gameIOS = ChannelHandle.GetRequestedIOS(gameTitle);
|
||||||
|
|
||||||
if(NANDemuView && !neek2o())
|
if(NANDemuView)
|
||||||
{
|
{
|
||||||
/* copy real NAND sysconf, settings.txt, & RFL_DB.dat if you want to, they are replaced if they already exist */
|
/* copy real NAND sysconf, settings.txt, & RFL_DB.dat if you want to, they are replaced if they already exist */
|
||||||
NandHandle.PreNandCfg(m_cfg.getBool(CHANNEL_DOMAIN, "real_nand_miis", false),
|
NandHandle.PreNandCfg(m_cfg.getBool(CHANNEL_DOMAIN, "real_nand_miis", false),
|
||||||
@ -1619,7 +1619,7 @@ void CMenu::_launchChannel(dir_discHdr *hdr)
|
|||||||
m_cat.save(true);
|
m_cat.save(true);
|
||||||
m_cfg.save(true);
|
m_cfg.save(true);
|
||||||
|
|
||||||
if(NANDemuView && !neek2o())
|
if(NANDemuView)
|
||||||
{
|
{
|
||||||
if(useNK2o)
|
if(useNK2o)
|
||||||
{
|
{
|
||||||
@ -1657,12 +1657,12 @@ void CMenu::_launchChannel(dir_discHdr *hdr)
|
|||||||
_exitWiiflow();
|
_exitWiiflow();
|
||||||
}
|
}
|
||||||
|
|
||||||
if((CurrentIOS.Type == IOS_TYPE_D2X || neek2o()) && returnTo != 0)
|
if(CurrentIOS.Type == IOS_TYPE_D2X && returnTo != 0)
|
||||||
{
|
{
|
||||||
if(D2X_PatchReturnTo(returnTo) >= 0)
|
if(D2X_PatchReturnTo(returnTo) >= 0)
|
||||||
memset(&returnTo, 0, sizeof(u32));// not needed - always set to 0 in external booter below
|
memset(&returnTo, 0, sizeof(u32));// not needed - always set to 0 in external booter below
|
||||||
}
|
}
|
||||||
if(NANDemuView && !neek2o())
|
if(NANDemuView)
|
||||||
{
|
{
|
||||||
/* Enable our Emu NAND */
|
/* Enable our Emu NAND */
|
||||||
DeviceHandle.UnMountAll();
|
DeviceHandle.UnMountAll();
|
||||||
@ -1705,15 +1705,6 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd, bool disc_cfg)
|
|||||||
{
|
{
|
||||||
string id(hdr->id);
|
string id(hdr->id);
|
||||||
string path(hdr->path);
|
string path(hdr->path);
|
||||||
if(neek2o())
|
|
||||||
{
|
|
||||||
int discID = id.c_str()[0] << 24 | id.c_str()[1] << 16 | id.c_str()[2] << 8 | id.c_str()[3];
|
|
||||||
if(WDVD_NEEK_LoadDisc((discID&0xFFFFFFFF), 0x5D1C9EA3) > 0)//5D1C9EA3 is wii disc magic
|
|
||||||
{
|
|
||||||
dvd = true;
|
|
||||||
sleep(3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(dvd)
|
if(dvd)
|
||||||
{
|
{
|
||||||
@ -1799,7 +1790,7 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd, bool disc_cfg)
|
|||||||
else
|
else
|
||||||
emulate_mode--;
|
emulate_mode--;
|
||||||
|
|
||||||
if(emulate_mode && !dvd && !neek2o())
|
if(emulate_mode && !dvd)
|
||||||
{
|
{
|
||||||
int emuPart = _FindEmuPart(SAVES_NAND, true);
|
int emuPart = _FindEmuPart(SAVES_NAND, true);
|
||||||
if(emuPart == -1)//if savepartition is unusable
|
if(emuPart == -1)//if savepartition is unusable
|
||||||
@ -1886,7 +1877,7 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd, bool disc_cfg)
|
|||||||
_loadFile(gameconfig, gameconfigSize, m_txtCheatDir.c_str(), "gameconfig.txt");
|
_loadFile(gameconfig, gameconfigSize, m_txtCheatDir.c_str(), "gameconfig.txt");
|
||||||
|
|
||||||
int userIOS = m_gcfg2.getInt(id, "ios", 0);
|
int userIOS = m_gcfg2.getInt(id, "ios", 0);
|
||||||
int gameIOS = dvd && !neek2o() ? userIOS : GetRequestedGameIOS(hdr);
|
int gameIOS = dvd ? userIOS : GetRequestedGameIOS(hdr);
|
||||||
|
|
||||||
m_gcfg1.save(true);
|
m_gcfg1.save(true);
|
||||||
m_gcfg2.save(true);
|
m_gcfg2.save(true);
|
||||||
@ -1895,7 +1886,7 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd, bool disc_cfg)
|
|||||||
|
|
||||||
//this is a temp region change of real nand(rn) for gamesave or off or DVD if tempregionrn is set true
|
//this is a temp region change of real nand(rn) for gamesave or off or DVD if tempregionrn is set true
|
||||||
bool patchregion = false;
|
bool patchregion = false;
|
||||||
if(emulate_mode <= 1 && !neek2o() && m_cfg.getBool("GENERAL", "tempregionrn", false))
|
if(emulate_mode <= 1 && m_cfg.getBool("GENERAL", "tempregionrn", false))
|
||||||
{
|
{
|
||||||
gprintf("Temp region change applied\n");
|
gprintf("Temp region change applied\n");
|
||||||
// change real nand region to game ID[3] region. is reset when you turn wii off.
|
// change real nand region to game ID[3] region. is reset when you turn wii off.
|
||||||
@ -1907,7 +1898,7 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd, bool disc_cfg)
|
|||||||
error(_t("errgame15", L"Missing ext_loader.bin or ext_booter.bin!"));
|
error(_t("errgame15", L"Missing ext_loader.bin or ext_booter.bin!"));
|
||||||
_exitWiiflow();
|
_exitWiiflow();
|
||||||
}
|
}
|
||||||
if(!dvd || neek2o())
|
if(!dvd)
|
||||||
{
|
{
|
||||||
if(_loadIOS(gameIOS, userIOS, id) == LOAD_IOS_FAILED)
|
if(_loadIOS(gameIOS, userIOS, id) == LOAD_IOS_FAILED)
|
||||||
{
|
{
|
||||||
|
@ -215,22 +215,19 @@ bool CMenu::_ExitTo(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//if(m_cfg.getBool("NEEK2O", "launchwiiflow", true) && !neek2o())
|
//if(m_cfg.getBool("NEEK2O", "launchwiiflow", true))
|
||||||
// exitHandler(EXIT_TO_WFNK2O);
|
// exitHandler(EXIT_TO_WFNK2O);
|
||||||
//else
|
//else
|
||||||
exitHandler(EXIT_TO_SMNK2O);
|
exitHandler(EXIT_TO_SMNK2O);
|
||||||
/* if exiting to Neek2o we must set the EmuNand Path for sys_exit() in sys.c */
|
/* if exiting to Neek2o we must set the EmuNand Path for sys_exit() in sys.c */
|
||||||
const char *EmuNandPath = NULL;
|
const char *EmuNandPath = NULL;
|
||||||
/* but only if we are not already in neek2o mode */
|
/* but only if we are not already in neek2o mode */
|
||||||
if(!neek2o())
|
if(_FindEmuPart(EMU_NAND, false) >= 0)// make sure emunand exists
|
||||||
|
EmuNandPath = NandHandle.Get_NandPath();
|
||||||
|
else
|
||||||
{
|
{
|
||||||
if(_FindEmuPart(EMU_NAND, false) >= 0)// make sure emunand exists
|
error(_fmt("errneek1", L"Cannot launch neek2o. Verify your neek2o setup"));
|
||||||
EmuNandPath = NandHandle.Get_NandPath();
|
_showExitTo();
|
||||||
else
|
|
||||||
{
|
|
||||||
error(_fmt("errneek1", L"Cannot launch neek2o. Verify your neek2o setup"));
|
|
||||||
_showExitTo();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Sys_SetNeekPath(EmuNandPath);
|
Sys_SetNeekPath(EmuNandPath);
|
||||||
}
|
}
|
||||||
@ -407,10 +404,7 @@ void CMenu::_textExitTo(void)
|
|||||||
else
|
else
|
||||||
m_btnMgr.setText(m_homeBtnExitToPriiloader, _t("prii", L"Priiloader"));
|
m_btnMgr.setText(m_homeBtnExitToPriiloader, _t("prii", L"Priiloader"));
|
||||||
m_btnMgr.setText(m_homeBtnExitToBootmii, _t("bootmii", L"Bootmii"));
|
m_btnMgr.setText(m_homeBtnExitToBootmii, _t("bootmii", L"Bootmii"));
|
||||||
if(!neek2o())
|
m_btnMgr.setText(m_homeBtnExitToNeek, _t("neek2o", L"neek2o"));
|
||||||
m_btnMgr.setText(m_homeBtnExitToNeek, _t("neek2o", L"neek2o"));
|
|
||||||
else
|
|
||||||
m_btnMgr.setText(m_homeBtnExitToNeek, _t("real", L"Real Nand"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
@ -990,7 +990,7 @@ wstringEx CMenu::_getNoticeTranslation(int sorting, wstringEx curLetter)
|
|||||||
|
|
||||||
void CMenu::_setPartition(s8 direction)
|
void CMenu::_setPartition(s8 direction)
|
||||||
{
|
{
|
||||||
if((m_current_view == COVERFLOW_CHANNEL && neek2o()) || (m_source_cnt > 1 && !m_emuSaveNand))
|
if(m_source_cnt > 1 && !m_emuSaveNand)
|
||||||
return;
|
return;
|
||||||
int FS_Type = 0;
|
int FS_Type = 0;
|
||||||
/* change partition if direction is not zero */
|
/* change partition if direction is not zero */
|
||||||
|
@ -191,8 +191,6 @@ void CMenu::_checkEmuNandSettings(void)
|
|||||||
|
|
||||||
void CMenu::_FullNandCheck(void)
|
void CMenu::_FullNandCheck(void)
|
||||||
{
|
{
|
||||||
if(neek2o())
|
|
||||||
return;
|
|
||||||
for(u8 i = 0; i < 2; i++)
|
for(u8 i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
int emulate_mode;
|
int emulate_mode;
|
||||||
|
Loading…
Reference in New Issue
Block a user