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