+// (c) Copyright 2007 notaz, All rights reserved.
+// Free for non-commercial use.
+
+// For commercial use, separate licencing terms must be obtained.
+
+#include <string.h>
#include "psp.h"
#include "emu.h"
#include "menu.h"
#include "../common/lprintf.h"
#include "version.h"
-int main()
+#ifdef GPROF
+#include <pspprof.h>
+#endif
+
+#ifdef GCOV
+#include <stdio.h>
+#include <stdlib.h>
+
+void dummy(void)
{
- int mp3_ret;
+ engineState = atoi(romFileName);
+ setbuf(NULL, NULL);
+ getenv(NULL);
+}
+#endif
+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();
- mp3_ret = mp3_init();
+ // moved to emu_Loop(), after CPU clock change..
+ //mp3_init();
engineState = PGS_Menu;
switch (engineState)
{
case PGS_Menu:
+#ifndef GPROF
menu_loop();
+#else
+ strcpy(romFileName, lastRomFile);
+ engineState = PGS_ReloadRom;
+#endif
break;
case PGS_ReloadRom:
}
break;
+ case PGS_Suspending:
+ while (engineState == PGS_Suspending)
+ psp_wait_suspend();
+ break;
+
case PGS_RestartRun:
engineState = PGS_Running;
case PGS_Running:
+ if (psp_unhandled_suspend) {
+ psp_resume_suspend();
+ emu_HandleResume();
+ }
emu_Loop();
+#ifdef GPROF
+ goto endloop;
+#endif
break;
case PGS_Quit:
endloop:
- if (mp3_ret == 0) mp3_deinit();
+ mp3_deinit();
emu_Deinit();
+#ifdef GPROF
+ gprof_cleanup();
+#endif
+#ifndef GCOV
psp_finish();
+#endif
return 0;
}