X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fpsp%2Fmain.c;h=e0698d5ebabc3b638d37a4c11d6edce40930abae;hb=ca482e5de8bacb70db55f43afe02f93fe6fe3f16;hp=ffbc761f0346fae0741c7c3a56a3ae4e60f8c100;hpb=110df09c8a2479c6a58655ad6b09b50584fbe5f4;p=picodrive.git diff --git a/platform/psp/main.c b/platform/psp/main.c index ffbc761..e0698d5 100644 --- a/platform/psp/main.c +++ b/platform/psp/main.c @@ -1,3 +1,8 @@ +// (c) Copyright 2007 notaz, All rights reserved. +// Free for non-commercial use. + +// For commercial use, separate licencing terms must be obtained. + #include #include "psp.h" #include "emu.h" @@ -5,17 +10,14 @@ #include "mp3.h" #include "../common/menu.h" #include "../common/emu.h" +#include "../common/config.h" #include "../common/lprintf.h" -#include "version.h" - -#define GPROF 0 -#define GCOV 0 -#if GPROF +#ifdef GPROF #include #endif -#if GCOV +#ifdef GCOV #include #include @@ -27,11 +29,14 @@ void dummy(void) } #endif -int main() +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.. @@ -44,16 +49,16 @@ int main() switch (engineState) { case PGS_Menu: -#if !GPROF +#ifndef GPROF menu_loop(); #else - strcpy(romFileName, currentConfig.lastRomFile); + strcpy(romFileName, loadedRomFName); engineState = PGS_ReloadRom; #endif break; case PGS_ReloadRom: - if (emu_ReloadRom()) { + if (emu_ReloadRom(romFileName)) { engineState = PGS_Running; if (mp3_last_error != 0) engineState = PGS_Menu; // send to menu to display mp3 error @@ -63,12 +68,30 @@ int main() } break; + case PGS_Suspending: + 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: + if (psp_unhandled_suspend) { + psp_unhandled_suspend = 0; + psp_resume_suspend(); + emu_HandleResume(); + break; + } emu_Loop(); -#if GPROF +#ifdef GPROF goto endloop; #endif break; @@ -86,10 +109,10 @@ int main() mp3_deinit(); emu_Deinit(); -#if GPROF +#ifdef GPROF gprof_cleanup(); #endif -#if !GCOV +#ifndef GCOV psp_finish(); #endif