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