diff --git a/port/include/system.h b/port/include/system.h index 337593dde..005dbaf48 100644 --- a/port/include/system.h +++ b/port/include/system.h @@ -13,7 +13,8 @@ enum LogLevel { LOG_ERROR, }; -void sysInit(s32 argc, const char **argv); +void sysInitArgs(s32 argc, const char **argv); +void sysInit(void); s32 sysArgCheck(const char *arg); const char *sysArgGetString(const char *arg); diff --git a/port/src/main.c b/port/src/main.c index b1566bf13..a19b6a980 100644 --- a/port/src/main.c +++ b/port/src/main.c @@ -85,8 +85,13 @@ static void gameLoadConfig(void) int main(int argc, const char **argv) { - crashInit(); - sysInit(argc, argv); + sysInitArgs(argc, argv); + + if (!sysArgCheck("--no-crash-handler")) { + crashInit(); + } + + sysInit(); fsInit(); configInit(); videoInit(); diff --git a/port/src/system.c b/port/src/system.c index 6cfcafdcd..d01e88060 100644 --- a/port/src/system.c +++ b/port/src/system.c @@ -19,12 +19,15 @@ static char logPath[2048]; static s32 sysArgc; static const char **sysArgv; -void sysInit(s32 argc, const char **argv) +void sysInitArgs(s32 argc, const char **argv) { - startTick = sysGetMicroseconds(); - sysArgc = argc; sysArgv = argv; +} + +void sysInit(void) +{ + startTick = sysGetMicroseconds(); if (sysArgCheck("--log")) { // figure out where the log is and clear it