// For commercial use, separate licencing terms must be obtained.\r
\r
#include <stdio.h>\r
+#include <stdlib.h>\r
#include <string.h>\r
#include <unistd.h>\r
#include <strings.h>\r
\r
extern int select_exits;\r
extern char *PicoConfigFile;\r
+static int load_state_slot = -1;\r
int mmuhack_status = 0; // TODO rm\r
char **g_argv;\r
\r
else if(strcasecmp(argv[x], "-selectexit") == 0) {\r
select_exits = 1;\r
}\r
+ else if(strcasecmp(argv[x], "-loadstate") == 0) {\r
+ if(x+1 < argc) { ++x; load_state_slot = atoi(argv[x]); }\r
+ }\r
else {\r
unrecognized = 1;\r
break;\r
"-state <param> pass '-state param' to the menu program\n"\r
"-config <file> use specified config file instead of default 'picoconfig.bin'\n"\r
" see currentConfig_t structure in emu.h for the file format\n"\r
- "-selectexit pressing SELECT will exit the emu and start 'menu_path'\n");\r
+ "-selectexit pressing SELECT will exit the emu and start 'menu_path'\n"\r
+ "-loadstate <num> if ROM is specified, try loading slot <num>\n");\r
}\r
}\r
\r
if (argc > 1)\r
parse_cmd_line(argc, argv);\r
\r
+ if (engineState == PGS_ReloadRom)\r
+ {\r
+ if (emu_ReloadRom(romFileName)) {\r
+ engineState = PGS_Running;\r
+ if (load_state_slot >= 0) {\r
+ state_slot = load_state_slot;\r
+ emu_SaveLoadGame(1, 0);\r
+ }\r
+ }\r
+ }\r
+\r
for (;;)\r
{\r
switch (engineState)\r
break;\r
\r
case PGS_ReloadRom:\r
- if (emu_ReloadRom())\r
+ if (emu_ReloadRom(romFileName))\r
engineState = PGS_Running;\r
else {\r
printf("PGS_ReloadRom == 0\n");\r