X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=psp%2Fmain.c;h=952f80e9b65bc2202df9f8c4e317f9c33bfecb6d;hb=7a938d57b1dd2ff4170d801a5a70191a6e003717;hp=8d5fbf45a5ca5475742101915c5826ca422aed61;hpb=2951214ea65ce2e2ac40671511b8d5a9ea2d2842;p=libpicofe.git diff --git a/psp/main.c b/psp/main.c index 8d5fbf4..952f80e 100644 --- a/psp/main.c +++ b/psp/main.c @@ -1,16 +1,47 @@ +// (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" #include "menu.h" +#include "mp3.h" #include "../common/menu.h" +#include "../common/emu.h" #include "../common/lprintf.h" +#include "version.h" + +#ifdef GPROF +#include +#endif + +#ifdef GCOV +#include +#include + +void dummy(void) +{ + engineState = atoi(romFileName); + setbuf(NULL, NULL); + getenv(NULL); +} +#endif -int main() +int pico_main(void) { + lprintf("\nPicoDrive v" VERSION " " __DATE__ " " __TIME__ "\n"); psp_init(); -// emu_ReadConfig(0, 0); + emu_prepareDefaultConfig(); + emu_ReadConfig(0, 0); + config_readlrom(PicoConfigFile); + emu_Init(); menu_init(); + // moved to emu_Loop(), after CPU clock change.. + //mp3_init(); engineState = PGS_Menu; @@ -19,25 +50,42 @@ int main() switch (engineState) { case PGS_Menu: +#ifndef GPROF menu_loop(); +#else + strcpy(romFileName, lastRomFile); + engineState = PGS_ReloadRom; +#endif break; case PGS_ReloadRom: -/* - if (emu_ReloadRom()) + if (emu_ReloadRom()) { engineState = PGS_Running; - else { + if (mp3_last_error != 0) + engineState = PGS_Menu; // send to menu to display mp3 error + } else { lprintf("PGS_ReloadRom == 0\n"); engineState = PGS_Menu; } -*/ + break; + + case PGS_Suspending: + while (engineState == PGS_Suspending) + psp_wait_suspend(); break; case PGS_RestartRun: engineState = PGS_Running; case PGS_Running: -// emu_Loop(); + if (psp_unhandled_suspend) { + psp_resume_suspend(); + emu_HandleResume(); + } + emu_Loop(); +#ifdef GPROF + goto endloop; +#endif break; case PGS_Quit: @@ -51,8 +99,14 @@ int main() endloop: + mp3_deinit(); emu_Deinit(); +#ifdef GPROF + gprof_cleanup(); +#endif +#ifndef GCOV psp_finish(); +#endif return 0; }