Merge remote-tracking branch 'caviar/master'
This commit is contained in:
commit
be1b88b92f
@ -1,3 +1,5 @@
|
||||
#include <limits.h>
|
||||
#include <linux/limits.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -1483,7 +1485,7 @@ KeyMapping getDefaultKeymap()
|
||||
return defaultKeyMapping;
|
||||
}
|
||||
|
||||
int initConfig()
|
||||
int initConfig(const char* configFilePath)
|
||||
{
|
||||
config.emulateRideboard = 0;
|
||||
config.emulateDriveboard = 0;
|
||||
@ -1551,7 +1553,14 @@ int initConfig()
|
||||
|
||||
config.inputMode = 0; // Default to all inputs
|
||||
|
||||
configFile = fopen(CONFIG_PATH, "r");
|
||||
char filePath[PATH_MAX];
|
||||
strncpy(filePath, CONFIG_PATH, PATH_MAX);
|
||||
if (configFilePath != NULL && configFilePath[0] != '\0')
|
||||
{
|
||||
strncpy(filePath, configFilePath, PATH_MAX);
|
||||
}
|
||||
|
||||
configFile = fopen(filePath, "r");
|
||||
|
||||
if (configFile == NULL)
|
||||
{
|
||||
|
@ -280,7 +280,7 @@ typedef struct
|
||||
} EmulatorConfig;
|
||||
|
||||
KeyMapping getDefaultKeymap();
|
||||
int initConfig();
|
||||
int initConfig(const char* configFilePath);
|
||||
EmulatorConfig *getConfig();
|
||||
char *getGameName();
|
||||
char *getDVPName();
|
||||
|
@ -185,7 +185,9 @@ void __attribute__((constructor)) hook_init()
|
||||
act.sa_flags = SA_SIGINFO;
|
||||
sigaction(SIGSEGV, &act, NULL);
|
||||
|
||||
initConfig();
|
||||
char *(*_getenv)(const char *name) = dlsym(RTLD_NEXT, "getenv");
|
||||
char* envPath = _getenv("LINDBERGH_CONFIG_PATH");
|
||||
initConfig(envPath);
|
||||
|
||||
if (getConfig()->fpsLimiter == 1)
|
||||
{
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include <dirent.h>
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -12,6 +13,7 @@
|
||||
#define LD_PRELOAD "LD_PRELOAD"
|
||||
#define PRELOAD_FILE_NAME "lindbergh.so"
|
||||
#define TEAM "bobbydilley, retrofan, dkeruza-neo, doozer, francesco, rolel, caviar-x"
|
||||
#define LINDBERGH_CONFIG_PATH "LINDBERGH_CONFIG_PATH"
|
||||
|
||||
uint32_t elf_crc = 0;
|
||||
|
||||
@ -119,6 +121,7 @@ void printUsage(char *argv[])
|
||||
printf(" --list-controllers Lists available controllers and inputs\n");
|
||||
printf(" --version Displays the version of the loader and team's names\n");
|
||||
printf(" --help Displays this usage text\n");
|
||||
printf(" --config | -c Specifies configuration path\n");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -248,8 +251,9 @@ int main(int argc, char *argv[])
|
||||
int gdb = 0;
|
||||
int forceGame = 0;
|
||||
int segaboot = 0;
|
||||
|
||||
char extConfigPath[PATH_MAX] = {0};
|
||||
char forceGamePath[128] = {0};
|
||||
|
||||
for (int i = 1; i < argc; i++)
|
||||
{
|
||||
if (strcmp(argv[i], "-t") == 0 || strcmp(argv[i], "--test") == 0)
|
||||
@ -269,7 +273,16 @@ int main(int argc, char *argv[])
|
||||
gdb = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (strcmp(argv[i], "-c") == 0 || strcmp(argv[i], "--config") == 0)
|
||||
{
|
||||
if (i+1 >= argc)
|
||||
{
|
||||
break;
|
||||
}
|
||||
strncpy(extConfigPath, argv[i+1], PATH_MAX);
|
||||
i += 1;
|
||||
continue;
|
||||
}
|
||||
// Treat the argument as the game name
|
||||
strcpy(forceGamePath, argv[i]);
|
||||
forceGame = 1;
|
||||
@ -305,6 +318,10 @@ int main(int argc, char *argv[])
|
||||
strcat(temp, command);
|
||||
strcpy(command, temp);
|
||||
}
|
||||
if (extConfigPath[0] != '\0')
|
||||
{
|
||||
setenv(LINDBERGH_CONFIG_PATH,extConfigPath,1);
|
||||
}
|
||||
|
||||
log_info("Starting $ %s", command);
|
||||
|
||||
|
@ -4,7 +4,6 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
|
||||
|
||||
// Structure to hold the formatted message and its size
|
||||
|
Loading…
x
Reference in New Issue
Block a user