minor psp fixes
[libpicofe.git] / psp / main.c
CommitLineData
fe9e3b25 1#include <string.h>
2951214e 2#include "psp.h"
3#include "emu.h"
4#include "menu.h"
a6df06b7 5#include "mp3.h"
2951214e 6#include "../common/menu.h"
703e4c7b 7#include "../common/emu.h"
2951214e 8#include "../common/lprintf.h"
16e89bed 9#include "version.h"
2951214e 10
fe9e3b25 11#define GPROF 0
12#define GCOV 0
13
14#if GPROF
15#include <pspprof.h>
16#endif
17
18#if GCOV
19#include <stdio.h>
20#include <stdlib.h>
21
22void dummy(void)
2951214e 23{
fe9e3b25 24 engineState = atoi(romFileName);
25 setbuf(NULL, NULL);
26 getenv(NULL);
27}
28#endif
a6df06b7 29
fe9e3b25 30int main()
31{
16e89bed 32 lprintf("\nPicoDrive v" VERSION " " __DATE__ " " __TIME__ "\n");
2951214e 33 psp_init();
703e4c7b 34 emu_ReadConfig(0, 0);
2951214e 35 emu_Init();
36 menu_init();
fe9e3b25 37 // moved to emu_Loop(), after CPU clock change..
38 //mp3_init();
2951214e 39
40 engineState = PGS_Menu;
41
42 for (;;)
43 {
44 switch (engineState)
45 {
46 case PGS_Menu:
fe9e3b25 47#if !GPROF
2951214e 48 menu_loop();
fe9e3b25 49#else
50 strcpy(romFileName, currentConfig.lastRomFile);
51 engineState = PGS_ReloadRom;
52#endif
2951214e 53 break;
54
55 case PGS_ReloadRom:
a6df06b7 56 if (emu_ReloadRom()) {
2951214e 57 engineState = PGS_Running;
a6df06b7 58 if (mp3_last_error != 0)
59 engineState = PGS_Menu; // send to menu to display mp3 error
60 } else {
2951214e 61 lprintf("PGS_ReloadRom == 0\n");
62 engineState = PGS_Menu;
63 }
2951214e 64 break;
65
66 case PGS_RestartRun:
67 engineState = PGS_Running;
68
69 case PGS_Running:
703e4c7b 70 emu_Loop();
fe9e3b25 71#if GPROF
72 goto endloop;
73#endif
2951214e 74 break;
75
76 case PGS_Quit:
77 goto endloop;
78
79 default:
80 lprintf("engine got into unknown state (%i), exitting\n", engineState);
81 goto endloop;
82 }
83 }
84
85 endloop:
86
fe9e3b25 87 mp3_deinit();
2951214e 88 emu_Deinit();
fe9e3b25 89#if GPROF
90 gprof_cleanup();
91#endif
92#if !GCOV
2951214e 93 psp_finish();
fe9e3b25 94#endif
2951214e 95
96 return 0;
97}
98