-removed neek2o mode. meaning wiiflow will no longer work in neek2o environment. launching channels in neek2o still works.

This commit is contained in:
fledge68 2018-07-15 22:12:56 +00:00
parent c5168d89aa
commit 0888312372
12 changed files with 27 additions and 98 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

After

Width:  |  Height:  |  Size: 3.3 MiB

View File

@ -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);

View File

@ -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)

View File

@ -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);

View File

@ -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);*/

View File

@ -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;
} }

View File

@ -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();

View File

@ -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)

View File

@ -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)
{ {

View File

@ -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"));
} }
/*******************************************************************************/ /*******************************************************************************/

View File

@ -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 */

View File

@ -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;