giz menu works
[picodrive.git] / platform / gizmondo / main.c
1 // (c) Copyright 2006 notaz, All rights reserved.\r
2 // Free for non-commercial use.\r
3 \r
4 // For commercial use, separate licencing terms must be obtained.\r
5 \r
6 #include <windows.h>\r
7 \r
8 #include "giz.h"\r
9 #include "menu.h"\r
10 #include "../common/menu.h"\r
11 #include "emu.h"\r
12 #include "version.h"\r
13 \r
14 \r
15 int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)\r
16 {\r
17         emu_ReadConfig(0, 0);\r
18         giz_init(hInstance, hPrevInstance);\r
19         emu_Init();\r
20         menu_init();\r
21 \r
22         engineState = PGS_Menu;\r
23 \r
24         for (;;)\r
25         {\r
26                 switch (engineState)\r
27                 {\r
28                         case PGS_Menu:\r
29                                 menu_loop();\r
30                                 break;\r
31 \r
32                         case PGS_ReloadRom:\r
33                                 if (emu_ReloadRom())\r
34                                         engineState = PGS_Running;\r
35                                 else {\r
36                                         lprintf("PGS_ReloadRom == 0\n");\r
37                                         engineState = PGS_Menu;\r
38                                 }\r
39                                 break;\r
40 \r
41                         case PGS_RestartRun:\r
42                                 engineState = PGS_Running;\r
43 \r
44                         case PGS_Running:\r
45                                 emu_Loop();\r
46                                 break;\r
47 \r
48                         case PGS_Quit:\r
49                                 goto endloop;\r
50 \r
51                         default:\r
52                                 lprintf("engine got into unknown state (%i), exitting\n", engineState);\r
53                                 goto endloop;\r
54                 }\r
55         }\r
56 \r
57         endloop:\r
58 \r
59         emu_Deinit();\r
60         giz_deinit();\r
61 \r
62         return 0;\r
63 }\r