-// (c) Copyright 2007 notaz, All rights reserved.
-// Free for non-commercial use.
-
-// For commercial use, separate licencing terms must be obtained.
+/*
+ * PicoDrive
+ * (C) notaz, 2007,2008
+ *
+ * This work is licensed under the terms of MAME license.
+ * See COPYING file in the top-level directory.
+ */
#include <string.h>
#include "psp.h"
#include "mp3.h"
#include "../common/menu.h"
#include "../common/emu.h"
+#include "../common/config.h"
#include "../common/lprintf.h"
-#include "version.h"
#ifdef GPROF
#include <pspprof.h>
void dummy(void)
{
- engineState = atoi(romFileName);
+ engineState = atoi(rom_fname_reload);
setbuf(NULL, NULL);
getenv(NULL);
}
int pico_main(void)
{
- lprintf("\nPicoDrive v" VERSION " " __DATE__ " " __TIME__ "\n");
psp_init();
+
+ emu_prepareDefaultConfig();
emu_ReadConfig(0, 0);
+ config_readlrom(PicoConfigFile);
+
emu_Init();
menu_init();
// moved to emu_Loop(), after CPU clock change..
#ifndef GPROF
menu_loop();
#else
- strcpy(romFileName, currentConfig.lastRomFile);
+ strcpy(rom_fname_reload, rom_fname_loaded);
engineState = PGS_ReloadRom;
#endif
break;
case PGS_ReloadRom:
- if (emu_ReloadRom()) {
+ if (emu_reload_rom(rom_fname_reload)) {
engineState = PGS_Running;
if (mp3_last_error != 0)
engineState = PGS_Menu; // send to menu to display mp3 error
break;
case PGS_Suspending:
- psp_wait_suspend();
+ while (engineState == PGS_Suspending)
+ psp_wait_suspend();
+ break;
+
+ case PGS_SuspendWake:
+ psp_unhandled_suspend = 0;
+ psp_resume_suspend();
+ emu_HandleResume();
+ engineState = engineStateSuspend;
break;
case PGS_RestartRun:
engineState = PGS_Running;
case PGS_Running:
- emu_Loop();
+ if (psp_unhandled_suspend) {
+ psp_unhandled_suspend = 0;
+ psp_resume_suspend();
+ emu_HandleResume();
+ break;
+ }
+ pemu_loop();
#ifdef GPROF
goto endloop;
#endif