add a hack for Decap Attack
[picodrive.git] / platform / common / main.c
index b0ad4ba..5267667 100644 (file)
@@ -1,22 +1,24 @@
-// (c) Copyright 2006-2009 notaz, All rights reserved.\r
-// Free for non-commercial use.\r
-\r
-// For commercial use, separate licencing terms must be obtained.\r
+/*\r
+ * PicoDrive\r
+ * (C) notaz, 2006-2010\r
+ *\r
+ * This work is licensed under the terms of MAME license.\r
+ * See COPYING file in the top-level directory.\r
+ */\r
 \r
 #include <stdio.h>\r
 #include <stdlib.h>\r
 #include <string.h>\r
 #include <strings.h>\r
 \r
-#include "menu.h"\r
+#include "../libpicofe/input.h"\r
+#include "../libpicofe/plat.h"\r
+#include "menu_pico.h"\r
 #include "emu.h"\r
-#include "config.h"\r
-#include "input.h"\r
-#include "plat.h"\r
-#include <version.h>\r
+#include "version.h"\r
+#include <cpu/debug.h>\r
 \r
 \r
-extern char *PicoConfigFile;\r
 static int load_state_slot = -1;\r
 char **g_argv;\r
 \r
@@ -31,32 +33,41 @@ void parse_cmd_line(int argc, char *argv[])
                        if (strcasecmp(argv[x], "-config") == 0) {\r
                                if (x+1 < argc) { ++x; PicoConfigFile = argv[x]; }\r
                        }\r
-                       else if (strcasecmp(argv[x], "-loadstate") == 0) {\r
+                       else if (strcasecmp(argv[x], "-loadstate") == 0\r
+                                || strcasecmp(argv[x], "-load") == 0)\r
+                       {\r
                                if (x+1 < argc) { ++x; load_state_slot = atoi(argv[x]); }\r
                        }\r
+                       else if (strcasecmp(argv[x], "-pdb") == 0) {\r
+                               if (x+1 < argc) { ++x; pdb_command(argv[x]); }\r
+                       }\r
+                       else if (strcasecmp(argv[x], "-pdb_connect") == 0) {\r
+                               if (x+2 < argc) { pdb_net_connect(argv[x+1], argv[x+2]); x += 2; }\r
+                       }\r
                        else {\r
                                unrecognized = 1;\r
                                break;\r
                        }\r
                } else {\r
-                       /* External Frontend: ROM Name */\r
-                       FILE *f;\r
-                       strncpy(rom_fname_reload, argv[x], sizeof(rom_fname_reload));\r
-                       rom_fname_reload[sizeof(rom_fname_reload) - 1] = 0;\r
-                       f = fopen(rom_fname_reload, "rb");\r
-                       if (f) fclose(f);\r
-                       else unrecognized = 1;\r
-                       engineState = PGS_ReloadRom;\r
+                       FILE *f = fopen(argv[x], "rb");\r
+                       if (f) {\r
+                               fclose(f);\r
+                               rom_fname_reload = argv[x];\r
+                               engineState = PGS_ReloadRom;\r
+                       }\r
+                       else\r
+                               unrecognized = 1;\r
                        break;\r
                }\r
        }\r
 \r
        if (unrecognized) {\r
-               printf("\n\n\nPicoDrive v" VERSION " (c) notaz, 2006-2009\n");\r
+               printf("\n\n\nPicoDrive v" VERSION " (c) notaz, 2006-2009,2013\n");\r
                printf("usage: %s [options] [romfile]\n", argv[0]);\r
                printf("options:\n"\r
                        " -config <file>    use specified config file instead of default 'config.cfg'\n"\r
-                       " -loadstate <num>  if ROM is specified, try loading slot <num>\n");\r
+                       " -loadstate <num>  if ROM is specified, try loading savestate slot <num>\n");\r
+               exit(1);\r
        }\r
 }\r
 \r
@@ -67,15 +78,14 @@ int main(int argc, char *argv[])
 \r
        plat_early_init();\r
 \r
-       /* in_init() must go before config, config accesses in_ fwk */\r
        in_init();\r
-       emu_prep_defconfig();\r
-       emu_read_config(0, 0);\r
-       config_readlrom(PicoConfigFile);\r
+       //in_probe();\r
 \r
+       plat_target_init();\r
        plat_init();\r
-       in_probe();\r
-       in_debug_dump();\r
+\r
+       emu_prep_defconfig(); // depends on input\r
+       emu_read_config(NULL, 0);\r
 \r
        emu_init();\r
        menu_init();\r
@@ -138,6 +148,7 @@ int main(int argc, char *argv[])
 \r
        emu_finish();\r
        plat_finish();\r
+       plat_target_finish();\r
 \r
        return 0;\r
 }\r