-// (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
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
\r
plat_early_init();\r
\r
- /* in_init() must go before config, config accesses in_ fwk */\r
in_init();\r
- pemu_prep_defconfig();\r
- emu_ReadConfig(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
\r
if (engineState == PGS_ReloadRom)\r
{\r
- if (emu_ReloadRom(rom_fname_reload)) {\r
+ if (emu_reload_rom(rom_fname_reload)) {\r
engineState = PGS_Running;\r
if (load_state_slot >= 0) {\r
state_slot = load_state_slot;\r
- emu_SaveLoadGame(1, 0);\r
+ emu_save_load_game(1, 0);\r
}\r
}\r
}\r
menu_loop();\r
break;\r
\r
+ case PGS_TrayMenu:\r
+ menu_loop_tray();\r
+ break;\r
+\r
case PGS_ReloadRom:\r
- if (emu_ReloadRom(rom_fname_reload))\r
+ if (emu_reload_rom(rom_fname_reload))\r
engineState = PGS_Running;\r
else {\r
printf("PGS_ReloadRom == 0\n");\r
\r
case PGS_RestartRun:\r
engineState = PGS_Running;\r
+ /* vvv fallthrough */\r
\r
case PGS_Running:\r
- pemu_loop();\r
+ emu_loop();\r
break;\r
\r
case PGS_Quit:\r
\r
emu_finish();\r
plat_finish();\r
+ plat_target_finish();\r
\r
return 0;\r
}\r