/* Entry point */ extern "C" int Menu_Main(void) { //!******************************************************************* //! Initialize function pointers * //!******************************************************************* //! do OS (for acquire) and sockets first so we got logging InitOSFunctionPointers(); InitSocketFunctionPointers(); log_init("192.168.1.103"); log_print("Starting launcher\n"); InitFSFunctionPointers(); InitGX2FunctionPointers(); InitSysFunctionPointers(); InitVPadFunctionPointers(); InitPadScoreFunctionPointers(); InitAXFunctionPointers(); InitCurlFunctionPointers(); InstallExceptionHandler(); log_print("Function exports loaded\n"); //!******************************************************************* //! Initialize heap memory * //!******************************************************************* log_print("Initialize memory management\n"); memoryInitialize(); //!******************************************************************* //! Initialize FS * //!******************************************************************* log_printf("Mount SD partition\n"); mount_sd_fat("sd"); //!******************************************************************* //! Enter main application * //!******************************************************************* log_printf("Start main application\n"); Application::instance()->exec(); log_printf("Main application stopped\n"); Application::destroyInstance(); log_printf("Unmount SD\n"); unmount_sd_fat("sd"); log_printf("Release memory\n"); memoryRelease(); log_deinit(); return 0; }
/* Entry point */ extern "C" int Menu_Main(void) { //!******************************************************************* //! Initialize function pointers * //!******************************************************************* //! do OS (for acquire) and sockets first so we got logging InitOSFunctionPointers(); InitSocketFunctionPointers(); log_init(LOADIINE_LOGGER_IP); log_print("Starting Loadiine GX2 " LOADIINE_VERSION "\n"); InitFSFunctionPointers(); InitGX2FunctionPointers(); InitSysFunctionPointers(); InitVPadFunctionPointers(); InitPadScoreFunctionPointers(); InitAXFunctionPointers(); InitCurlFunctionPointers(); log_print("Function exports loaded\n"); //!******************************************************************* //! Initialize our kernel variables * //!******************************************************************* log_printf("Setup kernel variables\n"); SetupKernelCallback(); //!******************************************************************* //! Initialize heap memory * //!******************************************************************* log_print("Initialize memory management\n"); memoryInitialize(); //!******************************************************************* //! Initialize FS * //!******************************************************************* log_printf("Mount SD partition\n"); mount_sd_fat("sd"); //!******************************************************************* //! Patch Functions * //!******************************************************************* // We need to check if padcon should be enabled before hooking the functions log_printf("Load settings\n"); CSettings::instance()->Load(); int padmode = 0; switch(CSettings::getValueAsU8(CSettings::PadconMode)) { case PADCON_ENABLED: { padmode = 1; log_printf("Padcon enabled\n"); break; } default: break; } log_printf("Patch FS and loader functions\n"); PatchMethodHooks(padmode); //!******************************************************************* //! Setup exception handler * //!******************************************************************* log_printf("Setup exception handler\n"); setup_os_exceptions(); //!******************************************************************* //! Enter main application * //!******************************************************************* log_printf("Start main application\n"); Application::instance()->exec(); log_printf("Main application stopped\n"); Application::destroyInstance(); CSettings::instance()->Save(); CSettings::destroyInstance(); log_printf("Unmount SD\n"); unmount_sd_fat("sd"); log_printf("Release memory\n"); memoryRelease(); log_printf("Loadiine peace out...\n"); log_deinit(); return 0; }
extern "C" int32_t Menu_Main(int32_t argc, char **argv) { if(gAppStatus == 2) { //"No, we don't want to patch stuff again."); return EXIT_RELAUNCH_ON_LOAD; } InitOSFunctionPointers(); InitSocketFunctionPointers(); //For logging InitSysFunctionPointers(); InitFSFunctionPointers(); InitGX2FunctionPointers(); InitSysFunctionPointers(); InitVPadFunctionPointers(); InitPadScoreFunctionPointers(); InitAXFunctionPointers(); InitProcUIFunctionPointers(); log_init(); DEBUG_FUNCTION_LINE("We have %d kb for plugins.\n",(PLUGIN_LOCATION_END_ADDRESS-getApplicationEndAddr())/1024); //setup_os_exceptions(); DEBUG_FUNCTION_LINE("Wii U Plugin System Loader %s\n",APP_VERSION); DEBUG_FUNCTION_LINE("Sizeof dyn_linking_relocation_data_t %d\n",sizeof(dyn_linking_relocation_data_t)); Init(); init_kernel_syscalls(); wups_init_kernel_syscalls(); gGameTitleID = OSGetTitleID(); int32_t result = 0; //Reset everything when were going back to the Mii Maker if(isInMiiMakerHBL()) { CallHook(WUPS_LOADER_HOOK_DEINIT_PLUGIN); // Restore patches as the patched functions could change. RestorePatches(); DynamicLinkingHelper::getInstance()->clearAll(); //PluginLoader * pluginLoader = PluginLoader::getInstance(); //std::vector<PluginInformation *> pluginList = pluginLoader->getPluginInformation("sd:/wiiu/plugins/"); //pluginLoader->loadAndLinkPlugins(pluginList); //pluginLoader->clearPluginInformation(pluginList); //!******************************************************************* //! Initialize heap memory * //!******************************************************************* DEBUG_FUNCTION_LINE("Initialize memory management\n"); memoryInitialize(); DEBUG_FUNCTION_LINE("Start main application\n"); result = Application::instance()->exec(); DEBUG_FUNCTION_LINE("Main application stopped result: %d\n",result); DEBUG_FUNCTION_LINE("Application::destroyInstance\n"); Application::destroyInstance(); DEBUG_FUNCTION_LINE("Release memory\n"); memoryRelease(); CSettings::destroyInstance(); PluginLoader::destroyInstance(); } if(result == APPLICATION_CLOSE_APPLY_MEMORY) { if(!MemoryMapping::isMemoryMapped()) { MemoryMapping::setupMemoryMapping(); } } DEBUG_FUNCTION_LINE("Do relocations\n"); std::vector<dyn_linking_relocation_entry_t *> relocations = DynamicLinkingHelper::getInstance()->getAllValidDynamicLinkingRelocations(); DEBUG_FUNCTION_LINE("Found relocation information for %d functions\n",relocations.size()); if(!DynamicLinkingHelper::getInstance()->fillRelocations(relocations)) { OSFatal("fillRelocations failed."); } if(!isInMiiMakerHBL()) { DEBUG_FUNCTION_LINE("Apply patches.\n"); ApplyPatchesAndCallHookStartingApp(); ConfigUtils::loadConfigFromSD(); if(MemoryMapping::isMemoryMapped()) { DEBUG_FUNCTION_LINE("Mapping was already done. Running %016llX\n",gGameTitleID); readAndPrintSegmentRegister(NULL,NULL); MemoryMapping::readTestValuesFromMemory(); } else { DEBUG_FUNCTION_LINE("<-----------------------------------------------------> \n"); DEBUG_FUNCTION_LINE("<---------------- COPY PASTE ME START-----------------> \n"); DEBUG_FUNCTION_LINE("<-----------------------------------------------------> \n"); DEBUG_FUNCTION_LINE("Mapping was't done. Running %016llX\n",gGameTitleID); readAndPrintSegmentRegister(NULL,NULL); DEBUG_FUNCTION_LINE("<-----------------------------------------------------> \n"); DEBUG_FUNCTION_LINE("<----------------- COPY PASTE ME END -----------------> \n"); DEBUG_FUNCTION_LINE("<-----------------------------------------------------> \n"); } return EXIT_RELAUNCH_ON_LOAD; } if(result == APPLICATION_CLOSE_APPLY || result == APPLICATION_CLOSE_APPLY_MEMORY) { CallHook(WUPS_LOADER_HOOK_INIT_KERNEL); CallHook(WUPS_LOADER_HOOK_INIT_FS); CallHook(WUPS_LOADER_HOOK_INIT_OVERLAY); CallHook(WUPS_LOADER_HOOK_INIT_PLUGIN); DEBUG_FUNCTION_LINE("Loading the system menu.\n"); DeInit(); SYSLaunchMenu(); return EXIT_RELAUNCH_ON_LOAD; } DEBUG_FUNCTION_LINE("Let's go to back to the Homebrew Launcher\n"); DEBUG_FUNCTION_LINE("Restoring the patched functions\n"); RestorePatches(); DEBUG_FUNCTION_LINE("Calling the plugin deinit hook\n"); CallHook(WUPS_LOADER_HOOK_DEINIT_PLUGIN); DEBUG_FUNCTION_LINE("Unmounting SD/USB devices\n"); DeInit(); DEBUG_FUNCTION_LINE("Bye bye!\n"); return EXIT_SUCCESS; }
/* Entry point */ extern "C" int Menu_Main(void) { //!******************************************************************* //! Initialize function pointers * //!******************************************************************* //! do OS (for acquire) and sockets first so we got logging InitOSFunctionPointers(); InitSocketFunctionPointers(); log_init(LOADIINE_LOGGER_IP); log_print("Starting Loadiine GX2 " LOADIINE_VERSION "\n"); InitFSFunctionPointers(); InitGX2FunctionPointers(); InitSysFunctionPointers(); InitVPadFunctionPointers(); InitPadScoreFunctionPointers(); InitAXFunctionPointers(); InitCurlFunctionPointers(); log_print("Function exports loaded\n"); //!******************************************************************* //! Initialize our kernel variables * //!******************************************************************* log_printf("Setup kernel variables\n"); SetupKernelCallback(); //!******************************************************************* //! Initialize heap memory * //!******************************************************************* log_print("Initialize memory management\n"); memoryInitialize(); //!******************************************************************* //! Initialize FS * //!******************************************************************* log_printf("Mount SD partition\n"); mount_sd_fat("sd"); //!******************************************************************* //! Patch Functions * //!******************************************************************* log_printf("Patch FS and loader functions\n"); PatchMethodHooks(); PatchSDK(); //!******************************************************************* //! Setup exception handler * //!******************************************************************* log_printf("Setup exception handler\n"); setup_os_exceptions(); //!******************************************************************* //! Enter main application * //!******************************************************************* log_printf("Start main application\n"); Application::instance()->exec(); log_printf("Main application stopped\n"); Application::destroyInstance(); log_printf("Unmount SD\n"); unmount_sd_fat("sd"); log_printf("Release memory\n"); memoryRelease(); log_printf("Loadiine peace out...\n"); log_deinit(); return 0; }
/* Entry point */ extern "C" int Menu_Main(void) { //!******************************************************************* //! Initialize function pointers * //!******************************************************************* //! do OS (for acquire) and sockets first so we got logging InitOSFunctionPointers(); InitSocketFunctionPointers(); log_init(LOADIINE_LOGGER_IP); log_print("Starting Loadiine GX2 " LOADIINE_VERSION "\n"); InitFSFunctionPointers(); InitGX2FunctionPointers(); InitSysFunctionPointers(); InitVPadFunctionPointers(); InitPadScoreFunctionPointers(); InitAXFunctionPointers(); InitCurlFunctionPointers(); InitAocFunctionPointers(); InitACPFunctionPointers(); log_printf("Function exports loaded\n"); //!******************************************************************* //! Initialize our kernel variables * //!******************************************************************* log_printf("Setup kernel variables\n"); SetupKernelCallback(); //!******************************************************************* //! Initialize heap memory * //!******************************************************************* log_print("Initialize memory management\n"); memoryInitialize(); //!******************************************************************* //! Initialize FS * //!******************************************************************* log_printf("Mount SD partition\n"); mount_sd_fat("sd"); //!******************************************************************* //! Read Configs for HID support * //!******************************************************************* if(gConfig_done == HID_INIT_DONE) { log_print("Reading config files from SD Card\n"); ConfigReader::getInstance(); //doing the magic automatically ConfigReader::destroyInstance(); log_print("Done with reading config files from SD Card\n"); gConfig_done = HID_SDCARD_READ; } //!******************************************************************* //! Patch Functions * //!******************************************************************* log_printf("Patch FS and loader functions\n"); ApplyPatches(); PatchSDK(); //!******************************************************************* //! Setup exception handler * //!******************************************************************* log_printf("Setup exception handler\n"); setup_os_exceptions(); //!******************************************************************* //! Enter main application * //!******************************************************************* log_printf("Start main application\n"); Application::instance()->exec(); log_printf("Main application stopped\n"); Application::destroyInstance(); log_printf("Unmount SD\n"); unmount_sd_fat("sd"); log_printf("Release memory\n"); memoryRelease(); log_printf("Loadiine peace out...\n"); //log_deinit(); return 0; }