AromaBaseModule/source/main.cpp

50 lines
1.4 KiB
C++
Raw Normal View History

2022-08-25 12:58:35 +02:00
#include "applicationendshook/applicationendhook.h"
#include "dynload/dynload.h"
#include "globals.h"
#include "logger.h"
#include "patches/patches.h"
2022-08-25 12:58:35 +02:00
#include "sdrefcount/refcount.h"
#include "symbolnamepatcher/symbolname.h"
#include "version.h"
#include <function_patcher/function_patching.h>
2022-08-25 12:58:35 +02:00
#include <wums.h>
WUMS_MODULE_EXPORT_NAME("homebrew_basemodule");
WUMS_MODULE_SKIP_INIT_FINI();
WUMS_DEPENDS_ON(homebrew_functionpatcher);
2022-08-25 12:58:35 +02:00
2023-07-19 18:22:34 +02:00
#define VERSION "v0.2.3"
2022-08-25 12:58:35 +02:00
WUMS_INITIALIZE(args) {
initLogging();
gModuleData = args.module_information;
if (gModuleData == nullptr) {
OSFatal("AromaBaseModule: Failed to get gModuleData pointer.");
}
if (gModuleData->version != MODULE_INFORMATION_VERSION) {
OSFatal("AromaBaseModule: The module information struct version does not match.");
}
// First init Dynload to have proper OSDynLoad support!
initDynload();
// Now init the library so we can use it for the other patches.
if (FunctionPatcher_InitLibrary() != FUNCTION_PATCHER_RESULT_SUCCESS) {
OSFatal("homebrew_basemodule: FunctionPatcher_InitLibrary failed");
}
2022-08-25 12:58:35 +02:00
initApplicationEndsHook();
initSDRefCount();
initSymbolNamePatcher();
initCommonPatches();
2022-08-25 12:58:35 +02:00
deinitLogging();
}
WUMS_APPLICATION_STARTS() {
OSReport("Running AromaBaseModule " VERSION VERSION_EXTRA "\n");
commonPatchesStart();
}