X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=frontend%2Fmain.c;h=0427ce4c1472229c11c6a4130938560a9ab32067;hb=ffd0d743cceac1715686af44f80779dc877735e0;hp=b3a56c606d2963c242f0488f350ea7b35b01ea0e;hpb=7e400e1c1d60c94128b3b44019be9e9ad52a033c;p=pcsx_rearmed.git diff --git a/frontend/main.c b/frontend/main.c index b3a56c60..0427ce4c 100644 --- a/frontend/main.c +++ b/frontend/main.c @@ -1,5 +1,5 @@ /* - * (C) notaz, 2010 + * (C) notaz, 2010-2011 * * This work is licensed under the terms of the GNU GPLv2 or later. * See the COPYING file in the top-level directory. @@ -54,6 +54,7 @@ static void CheckSubDir() { create_profile_dir(PLUGINS_CFG_DIR); create_profile_dir(CHEATS_DIR); create_profile_dir(PATCHES_DIR); + create_profile_dir(PCSX_DOT_DIR "cfg"); } void set_cd_image(const char *fname) @@ -162,7 +163,6 @@ int main(int argc, char *argv[]) strcpy(Config.Net, "Disabled"); CheckSubDir(); -// ScanAllPlugins(); MAKE_PATH(Config.Mcd1, MEMCARD_DIR, "card1.mcd"); MAKE_PATH(Config.Mcd2, MEMCARD_DIR, "card2.mcd"); @@ -207,9 +207,10 @@ int main(int argc, char *argv[]) if (OpenPlugins() == -1) { return 1; } + plugin_call_rearmed_cbs(); - SysReset(); CheckCdrom(); + SysReset(); if (file[0] != '\0') { if (Load(file) != -1) @@ -297,6 +298,7 @@ void UpdateMenuSlots() { void OnFile_Exit() { printf("OnFile_Exit\n"); + menu_finish(); plat_finish(); SysClose(); exit(0); @@ -422,9 +424,11 @@ static const int builtin_plugin_ids[] = { void *SysLoadLibrary(const char *lib) { const char *tmp = strrchr(lib, '/'); + void *ret; int i; - printf("dlopen %s\n", lib); + printf("plugin: %s\n", lib); + if (tmp != NULL) { tmp++; for (i = 0; i < ARRAY_SIZE(builtin_plugins); i++) @@ -432,7 +436,17 @@ void *SysLoadLibrary(const char *lib) { return (void *)(long)(PLUGIN_DL_BASE + builtin_plugin_ids[i]); } - return dlopen(lib, RTLD_NOW); +#if defined(__x86_64__) || defined(__i386__) + // convenience hack + char name[MAXPATHLEN]; + snprintf(name, sizeof(name), "%s.x86", lib); + lib = name; +#endif + + ret = dlopen(lib, RTLD_NOW); + if (ret == NULL) + fprintf(stderr, "dlopen: %s\n", dlerror()); + return ret; } void *SysLoadSym(void *lib, const char *sym) {