55bb53e726ccd953d2ace068a8790b2c08685a63
[libpicofe.git] / gp2x / emu.h
1 // (c) Copyright 2006-2007 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 \r
7 \r
8 // engine states\r
9 enum TPicoGameState {\r
10         PGS_Paused = 1,\r
11         PGS_Running,\r
12         PGS_Quit,\r
13         PGS_KeyConfig,\r
14         PGS_ReloadRom,\r
15         PGS_Menu,\r
16         PGS_RestartRun,\r
17 };\r
18 \r
19 typedef struct {\r
20         char lastRomFile[512];\r
21         int EmuOpt;             // LSb->MSb: use_sram, show_fps, enable_sound, gzip_saves,\r
22                                         // squidgehack, no_save_cfg_on_exit, <unused>, 16_bit_mode\r
23                                         // craigix_ram, confirm_save, show_cd_leds, confirm_load\r
24                                         // A_SNs_gamma, perfect_vsync\r
25         int PicoOpt;  // used for config saving only, see Pico.h\r
26         int PsndRate; // ditto\r
27         int PicoRegion; // ditto\r
28         int Frameskip;\r
29         int CPUclock;\r
30         int KeyBinds[32];\r
31         int volume;\r
32         int gamma;\r
33         int JoyBinds[4][32];\r
34         int PicoAutoRgnOrder;\r
35         int PicoCDBuffers;\r
36         int scaling; // 0=center, 1=hscale, 2=hvscale, 3=hsoftscale\r
37 } currentConfig_t;\r
38 \r
39 extern char romFileName[];\r
40 extern int engineState;\r
41 extern currentConfig_t currentConfig;\r
42 \r
43 \r
44 int  emu_ReloadRom(void);\r
45 void emu_Init(void);\r
46 void emu_Deinit(void);\r
47 int  emu_SaveLoadGame(int load, int sram);\r
48 void emu_Loop(void);\r
49 void emu_ResetGame(void);\r
50 int  emu_ReadConfig(int game, int no_defaults);\r
51 int  emu_WriteConfig(int game);\r
52 char *emu_GetSaveFName(int load, int is_sram, int slot);\r
53 int  emu_check_save_file(int slot);\r
54 void emu_set_save_cbs(int gz);\r
55 void emu_forced_frame(void);\r
56 int  emu_cd_check(char **bios_file);\r
57 int  find_bios(int region, char **bios_file);\r
58 void scaling_update(void);\r
59 \r