2022-05-07 21:12:18 +02:00
|
|
|
#include "../wumsloader/src/globals.h"
|
|
|
|
#include "kernel.h"
|
|
|
|
#include "utils/logger.h"
|
2020-12-01 13:06:40 +01:00
|
|
|
#include <nn/act/client_cpp.h>
|
2022-02-04 21:44:03 +01:00
|
|
|
#include <sysapp/launch.h>
|
2020-04-28 14:43:07 +02:00
|
|
|
|
2022-01-23 22:15:28 +01:00
|
|
|
extern "C" void __fini();
|
2020-05-17 19:05:51 +02:00
|
|
|
int main(int argc, char **argv) {
|
2022-01-23 22:16:51 +01:00
|
|
|
initLogging();
|
2020-04-28 14:43:07 +02:00
|
|
|
|
2021-12-28 18:38:22 +01:00
|
|
|
std::string basePath = "fs:/vol/external01/wiiu";
|
|
|
|
if (argc >= 1) {
|
|
|
|
basePath = argv[0];
|
|
|
|
}
|
2024-04-19 13:11:28 +02:00
|
|
|
if (argc < 4 || std::string_view("EnvironmentLoader") != argv[1] || (uint32_t) argv[2] < 2 || (uint32_t) argv[3] == 0) {
|
2024-04-21 12:53:10 +02:00
|
|
|
OSFatal("WUMSLoader:\n"
|
|
|
|
"Failed to parse arguments! Make sure to use the latest\n"
|
|
|
|
"version of the EnvironmentLoader.\n"
|
|
|
|
"\n\n"
|
|
|
|
"See https://wiiu.hacks.guide/ for instructions on how to update!");
|
2024-04-19 13:11:28 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
memcpy(MEMORY_REGION_USABLE_MEM_REGION_END_VALUE_PTR, &argv[3], sizeof(uint32_t));
|
2021-12-28 18:38:22 +01:00
|
|
|
|
2022-05-07 21:12:18 +02:00
|
|
|
#pragma GCC diagnostic push
|
|
|
|
#pragma GCC diagnostic ignored "-Warray-bounds"
|
|
|
|
#pragma GCC diagnostic ignored "-Wstringop-overflow="
|
|
|
|
strncpy(ENVRIONMENT_STRING, basePath.c_str(), ENVIRONMENT_PATH_LENGTH - 1);
|
|
|
|
#pragma GCC diagnostic pop
|
2020-04-28 14:43:07 +02:00
|
|
|
|
2022-05-07 21:12:18 +02:00
|
|
|
DEBUG_FUNCTION_LINE("Setup wumsloader");
|
|
|
|
SetupWUMSLoader();
|
2020-04-28 14:43:07 +02:00
|
|
|
|
2020-12-01 13:07:09 +01:00
|
|
|
nn::act::Initialize();
|
2022-02-04 21:44:03 +01:00
|
|
|
nn::act::SlotNo slot = nn::act::GetSlotNo();
|
2020-12-01 13:07:09 +01:00
|
|
|
nn::act::SlotNo defaultSlot = nn::act::GetDefaultAccount();
|
|
|
|
nn::act::Finalize();
|
|
|
|
|
|
|
|
if (defaultSlot) { //normal menu boot
|
|
|
|
SYSLaunchMenu();
|
|
|
|
} else { //show mii select
|
|
|
|
_SYSLaunchMenuWithCheckingAccount(slot);
|
|
|
|
}
|
2022-01-23 22:15:28 +01:00
|
|
|
|
2022-01-23 22:16:51 +01:00
|
|
|
deinitLogging();
|
|
|
|
|
2022-01-23 22:15:28 +01:00
|
|
|
__fini();
|
2020-04-28 14:43:07 +02:00
|
|
|
return 0;
|
|
|
|
}
|