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