Work started for the source tracing
[clinton/Virtual-Jaguar-Rx.git] / src / settings.h
... / ...
CommitLineData
1//\r
2// settings.h: Header file\r
3//\r
4// JPM = Jean-Paul Mari <djipi.mari@gmail.com>\r
5//\r
6// Who When What\r
7// --- ---------- ------------------------------------------------------------\r
8// JPM 06/19/2016 Soft debugger support\r
9// JPM Sept./2018 Added the new Models and BIOS handler, and a screenshot settings\r
10// JPM 10/10/2018 Added search paths in settings\r
11// JPM 04/06/2019 Added ELF sections check\r
12//\r
13\r
14#ifndef __SETTINGS_H__\r
15#define __SETTINGS_H__\r
16\r
17// MAX_PATH isn't defined in stdlib.h on *nix, so we do it here...\r
18#ifdef __GCCUNIX__\r
19#include <limits.h>\r
20#define MAX_PATH _POSIX_PATH_MAX\r
21#else\r
22#include <stdlib.h> // for MAX_PATH on MinGW/Darwin\r
23// Kludge for Win64\r
24#ifndef MAX_PATH\r
25#define MAX_PATH _MAX_PATH // Urgh.\r
26#endif\r
27#endif\r
28#include <stdint.h>\r
29\r
30#define MaxMemory1BrowserWindow 4\r
31\r
32\r
33// List the erase settings possibilities\r
34enum\r
35{\r
36 SETTINGS_NONE = 0,\r
37 SETTINGS_ALL,\r
38 SETTINGS_UI,\r
39 SETTINGS_ALPINE,\r
40 SETTINGS_DEBUGGER,\r
41 SETTINGS_END\r
42};\r
43\r
44\r
45// Key bindings settings structure\r
46struct KBSettings\r
47{\r
48 //char KBSettingName[100];\r
49 char KBSettingValue[100];\r
50 //char KBSettingDefaultValue[100];\r
51};\r
52\r
53\r
54// functions declarations\r
55extern bool EraseSettings(char *Setting);\r
56\r
57\r
58// Settings struct\r
59struct VJSettings\r
60{\r
61 bool useJoystick; // Joystick usage\r
62 int32_t joyport; // Joystick port\r
63 bool hardwareTypeNTSC; // Set to false for PAL, otherwise it is NTSC\r
64 bool useJaguarBIOS; // Use of any Jaguar BIOS\r
65 bool useRetailBIOS; // Use of Retail BIOS\r
66 bool useDevBIOS; // Use of Development BIOS\r
67 bool GPUEnabled; // Use of GPU\r
68 bool DSPEnabled; // Use of DSP\r
69 bool usePipelinedDSP;\r
70 bool fullscreen; // Emulator in full screen mode so video output display only\r
71 bool useOpenGL; // OpenGL support (always 'true')\r
72 uint32_t glFilter;\r
73 bool hardwareTypeAlpine; // Alpine mode\r
74 bool softTypeDebugger; // Soft type debugger mode\r
75 bool audioEnabled;\r
76 uint32_t frameSkip;\r
77 uint32_t renderType;\r
78 uint32_t refresh;\r
79 bool allowWritesToROM; // Allow writing to ROM cartdridge\r
80 uint32_t biosType; // Bios type used\r
81 uint32_t jaguarModel; // Jaguar model\r
82 size_t nbrdisasmlines; // Number of lines to show in the M68K tracing window\r
83 bool disasmopcodes;\r
84 bool displayHWlabels;\r
85 bool useFastBlitter;\r
86 bool displayFullSourceFilename;\r
87 bool ELFSectionsCheck;\r
88 size_t nbrmemory1browserwindow; // Number of memory browser windows\r
89 size_t DRAM_size; // DRAM size\r
90\r
91 // Keybindings in order of U, D, L, R, C, B, A, Op, Pa, 0-9, #, *\r
92 uint32_t p1KeyBindings[21];\r
93 uint32_t p2KeyBindings[21];\r
94\r
95 // Keybindings\r
96 KBSettings KBContent[100];\r
97\r
98 // Paths\r
99 char ROMPath[MAX_PATH];\r
100 //char jagBootPath[MAX_PATH];\r
101 //char CDBootPath[MAX_PATH];\r
102 char EEPROMPath[MAX_PATH];\r
103 char alpineROMPath[MAX_PATH];\r
104 char debuggerROMPath[MAX_PATH];\r
105 char absROMPath[MAX_PATH];\r
106 char screenshotPath[MAX_PATH];\r
107 char sourcefilesearchPaths[4096];\r
108};\r
109\r
110// Render types\r
111enum { RT_NORMAL = 0, RT_TV = 1 };\r
112\r
113// Jaguar models\r
114enum { JAG_NULL_SERIES, JAG_K_SERIES, JAG_M_SERIES };\r
115\r
116// BIOS types\r
117enum { BT_NULL, BT_K_SERIES, BT_M_SERIES, BT_STUBULATOR_1, BT_STUBULATOR_2 };\r
118\r
119// Exported variables\r
120extern VJSettings vjs;\r
121\r
122#endif // __SETTINGS_H__\r