wiiu-nanddumper-payload/src/main.c

103 lines
2.4 KiB
C
Raw Normal View History

2016-12-12 19:31:02 +01:00
#include <string.h>
#include <stdarg.h>
#include <stdlib.h>
#include <malloc.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include "dynamic_libs/os_functions.h"
#include "dynamic_libs/fs_functions.h"
#include "dynamic_libs/gx2_functions.h"
#include "dynamic_libs/sys_functions.h"
#include "dynamic_libs/vpad_functions.h"
#include "dynamic_libs/socket_functions.h"
#include "fs/fs_utils.h"
#include "fs/sd_fat_devoptab.h"
#include "system/memory.h"
#include "utils/logger.h"
#include "utils/utils.h"
#include "common/common.h"
#include "menu.h"
#include "main.h"
#include "ios_exploit.h"
2016-12-12 19:31:02 +01:00
static int exitToHBLOnLaunch = 0;
2016-12-12 19:31:02 +01:00
int Menu_Main(void)
{
//!---------INIT---------
InitOSFunctionPointers();
InitSysFunctionPointers();
InitFSFunctionPointers();
InitSocketFunctionPointers();
2016-12-12 19:31:02 +01:00
InitVPadFunctionPointers();
u64 currenTitleId = OSGetTitleID();
// in case we are not in mii maker or HBL channel but in system menu or another channel we need to exit here
if (currenTitleId != 0x000500101004A200 && // mii maker eur
currenTitleId != 0x000500101004A100 && // mii maker usa
currenTitleId != 0x000500101004A000 && // mii maker jpn
currenTitleId != 0x0005000013374842) // HBL channel
{
return EXIT_RELAUNCH_ON_LOAD;
}
else if(exitToHBLOnLaunch)
{
return 0;
}
2016-12-12 19:31:02 +01:00
VPADInit();
int forceMenu = 0;
{
VPADData vpad;
int vpadError = -1;
VPADRead(0, &vpad, 1, &vpadError);
if(vpadError == 0)
{
forceMenu = (vpad.btns_d | vpad.btns_h) & VPAD_BUTTON_B;
}
}
mount_sd_fat("sd");
cfw_config_t config;
default_config(&config);
read_config(&config);
int launch = 1;
if(forceMenu || config.directLaunch == 0)
{
launch = ShowMenu(&config);
}
int returnCode = 0;
2016-12-12 19:31:02 +01:00
if(launch)
2016-12-12 19:31:02 +01:00
{
int res = ExecuteIOSExploit(&config);
if(res == 0)
2016-12-12 19:31:02 +01:00
{
if(config.noIosReload == 0)
{
OSForceFullRelaunch();
SYSLaunchMenu();
returnCode = EXIT_RELAUNCH_ON_LOAD;
}
else if(config.launchSysMenu)
{
SYSLaunchMenu();
exitToHBLOnLaunch = 1;
returnCode = EXIT_RELAUNCH_ON_LOAD;
}
2016-12-12 19:31:02 +01:00
}
}
unmount_sd_fat("sd");
return returnCode;
2016-12-12 19:31:02 +01:00
}