Merge branch 'master' into patch-1
[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 // Settings struct
30 struct VJSettings
31 {
32 bool useJoystick;
33 int32_t joyport; // Joystick port
34 bool hardwareTypeNTSC; // Set to false for PAL
35 bool useJaguarBIOS;
36 bool GPUEnabled;
37 bool DSPEnabled;
38 bool usePipelinedDSP;
39 bool fullscreen;
40 bool useOpenGL;
41 uint32_t glFilter;
42 bool hardwareTypeAlpine;
43 bool softTypeDebugger; // Soft type debugger
44 bool audioEnabled;
45 uint32_t frameSkip;
46 uint32_t renderType;
47 uint32_t refresh;
48 bool allowWritesToROM;
49 uint32_t biosType;
50 uint32_t nbrdisasmlines;
51 bool disasmopcodes;
52 bool displayHWlabels;
53 bool useFastBlitter;
54 bool displayFullSourceFilename;
55 size_t nbrmemory1browserwindow; // Number of memory browser windows
56 size_t DRAM_size; // DRAM size
57
58 // Keybindings in order of U, D, L, R, C, B, A, Op, Pa, 0-9, #, *
59
60 uint32_t p1KeyBindings[21];
61 uint32_t p2KeyBindings[21];
62
63 // Paths
64
65 char ROMPath[MAX_PATH];
66 char jagBootPath[MAX_PATH];
67 char CDBootPath[MAX_PATH];
68 char EEPROMPath[MAX_PATH];
69 char alpineROMPath[MAX_PATH];
70 char debuggerROMPath[MAX_PATH];
71 char absROMPath[MAX_PATH];
72 };
73
74 // Render types
75
76 enum { RT_NORMAL = 0, RT_TV = 1 };
77
78 // BIOS types
79
80 enum { BT_K_SERIES, BT_M_SERIES, BT_STUBULATOR_1, BT_STUBULATOR_2 };
81
82 // Exported variables
83
84 extern VJSettings vjs;
85
86 #endif // __SETTINGS_H__