perfect vsync
[libpicofe.git] / gp2x / emu.h
CommitLineData
6ab2f79c 1// (c) Copyright 2006-2007 notaz, All rights reserved.\r
720ee7f6 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
9enum 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
5e2e14f2 16 PGS_RestartRun,\r
720ee7f6 17};\r
18\r
19typedef struct {\r
20 char lastRomFile[512];\r
21 int EmuOpt; // LSb->MSb: use_sram, show_fps, enable_sound, gzip_saves,\r
79cad122 22 // squidgehack, no_save_cfg_on_exit, <unused>, 16_bit_mode\r
46ede6a6 23 // craigix_ram, confirm_save, show_cd_leds, confirm_load\r
59d0f042 24 // A_SNs_gamma, perfect_vsync\r
720ee7f6 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
979ba09f 34 int PicoAutoRgnOrder;\r
5f9922e6 35 int PicoCDBuffers;\r
79cad122 36 int scaling; // 0=center, 1=hscale, 2=hvscale, 3=hsoftscale\r
720ee7f6 37} currentConfig_t;\r
38\r
39extern char romFileName[];\r
40extern int engineState;\r
41extern currentConfig_t currentConfig;\r
42\r
43\r
44int emu_ReloadRom(void);\r
45void emu_Init(void);\r
46void emu_Deinit(void);\r
47int emu_SaveLoadGame(int load, int sram);\r
48void emu_Loop(void);\r
49void emu_ResetGame(void);\r
50int emu_ReadConfig(int game);\r
51int emu_WriteConfig(int game);\r
4ffd2858 52char *emu_GetSaveFName(int load, int is_sram, int slot);\r
53int emu_check_save_file(int slot);\r
54void emu_set_save_cbs(int gz);\r
55void emu_forced_frame(void);\r
5e2e14f2 56int emu_cd_check(char **bios_file);\r
daf91588 57int find_bios(int region, char **bios_file);\r
79cad122 58void scaling_update(void);\r
daf91588 59\r