menu text adjustment
[libpicofe.git] / psp / main.c
... / ...
CommitLineData
1// (c) Copyright 2007 notaz, All rights reserved.
2// Free for non-commercial use.
3
4// For commercial use, separate licencing terms must be obtained.
5
6#include <string.h>
7#include "psp.h"
8#include "emu.h"
9#include "menu.h"
10#include "mp3.h"
11#include "../common/menu.h"
12#include "../common/emu.h"
13#include "../common/lprintf.h"
14#include "version.h"
15
16#ifdef GPROF
17#include <pspprof.h>
18#endif
19
20#ifdef GCOV
21#include <stdio.h>
22#include <stdlib.h>
23
24void dummy(void)
25{
26 engineState = atoi(romFileName);
27 setbuf(NULL, NULL);
28 getenv(NULL);
29}
30#endif
31
32int pico_main(void)
33{
34 lprintf("\nPicoDrive v" VERSION " " __DATE__ " " __TIME__ "\n");
35 psp_init();
36
37 emu_prepareDefaultConfig();
38 emu_ReadConfig(0, 0);
39 config_readlrom(PicoConfigFile);
40
41 emu_Init();
42 menu_init();
43 // moved to emu_Loop(), after CPU clock change..
44 //mp3_init();
45
46 engineState = PGS_Menu;
47
48 for (;;)
49 {
50 switch (engineState)
51 {
52 case PGS_Menu:
53#ifndef GPROF
54 menu_loop();
55#else
56 strcpy(romFileName, lastRomFile);
57 engineState = PGS_ReloadRom;
58#endif
59 break;
60
61 case PGS_ReloadRom:
62 if (emu_ReloadRom()) {
63 engineState = PGS_Running;
64 if (mp3_last_error != 0)
65 engineState = PGS_Menu; // send to menu to display mp3 error
66 } else {
67 lprintf("PGS_ReloadRom == 0\n");
68 engineState = PGS_Menu;
69 }
70 break;
71
72 case PGS_Suspending:
73 while (engineState == PGS_Suspending)
74 psp_wait_suspend();
75 break;
76
77 case PGS_RestartRun:
78 engineState = PGS_Running;
79
80 case PGS_Running:
81 if (psp_unhandled_suspend) {
82 psp_resume_suspend();
83 emu_HandleResume();
84 }
85 emu_Loop();
86#ifdef GPROF
87 goto endloop;
88#endif
89 break;
90
91 case PGS_Quit:
92 goto endloop;
93
94 default:
95 lprintf("engine got into unknown state (%i), exitting\n", engineState);
96 goto endloop;
97 }
98 }
99
100 endloop:
101
102 mp3_deinit();
103 emu_Deinit();
104#ifdef GPROF
105 gprof_cleanup();
106#endif
107#ifndef GCOV
108 psp_finish();
109#endif
110
111 return 0;
112}
113