starting SDL port, refactoring
[picodrive.git] / platform / common / main.c
index 5a0287e..968da0d 100644 (file)
@@ -49,24 +49,25 @@ void parse_cmd_line(int argc, char *argv[])
                                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
@@ -75,12 +76,13 @@ int main(int argc, char *argv[])
 {\r
        g_argv = argv;\r
 \r
-       //plat_early_init();\r
+       plat_early_init();\r
 \r
        in_init();\r
-       in_probe();\r
+       //in_probe();\r
 \r
        plat_target_init();\r
+       plat_init();\r
 \r
        emu_prep_defconfig(); // depends on input\r
        emu_read_config(NULL, 0);\r
@@ -145,6 +147,7 @@ int main(int argc, char *argv[])
        endloop:\r
 \r
        emu_finish();\r
+       plat_finish();\r
        plat_target_finish();\r
 \r
        return 0;\r