2 // settings.h: Header file
4 // JPM = Jean-Paul Mari <djipi.mari@gmail.com>
5 // RG = Richard Goedeken
8 // --- ---------- ------------------------------------------------------------
9 // JPM 06/19/2016 Soft debugger support
10 // JPM Sept./2018 Added the new Models and BIOS handler, and a screenshot settings
11 // JPM 10/10/2018 Added search paths in settings
12 // JPM 04/06/2019 Added ELF sections check
13 // RG Jan./2021 Linux build fix
16 #ifndef __SETTINGS_H__
17 #define __SETTINGS_H__
19 // MAX_PATH isn't defined in stdlib.h on *nix, so we do it here...
22 #define MAX_PATH _POSIX_PATH_MAX
24 #include <stdlib.h> // for MAX_PATH on MinGW/Darwin
27 #define MAX_PATH _MAX_PATH // Urgh.
33 #define MaxMemory1BrowserWindow 4
36 // List the erase settings possibilities
48 // Key bindings settings structure
51 //char KBSettingName[100];
52 char KBSettingValue
[100];
53 //char KBSettingDefaultValue[100];
57 // functions declarations
58 extern bool EraseSettings(char *Setting
);
64 bool useJoystick
; // Joystick usage
65 int32_t joyport
; // Joystick port
66 bool hardwareTypeNTSC
; // Set to false for PAL, otherwise it is NTSC
67 bool useJaguarBIOS
; // Use of any Jaguar BIOS
68 bool useRetailBIOS
; // Use of Retail BIOS
69 bool useDevBIOS
; // Use of Development BIOS
70 bool GPUEnabled
; // Use of GPU
71 bool DSPEnabled
; // Use of DSP
73 bool fullscreen
; // Emulator in full screen mode so video output display only
74 bool useOpenGL
; // OpenGL support (always 'true')
76 bool hardwareTypeAlpine
; // Alpine mode
77 bool softTypeDebugger
; // Soft type debugger mode
82 bool allowM68KExceptionCatch
; // Allow M68K exception catch
83 bool allowWritesToROM
; // Allow writing to ROM cartdridge
84 uint32_t biosType
; // Bios type used
85 uint32_t jaguarModel
; // Jaguar model
86 size_t nbrdisasmlines
; // Number of lines to show in the M68K tracing window
90 bool displayFullSourceFilename
;
91 bool ELFSectionsCheck
;
92 size_t nbrmemory1browserwindow
; // Number of memory browser windows
93 size_t DRAM_size
; // DRAM size
95 // Keybindings in order of U, D, L, R, C, B, A, Op, Pa, 0-9, #, *
96 uint32_t p1KeyBindings
[21];
97 uint32_t p2KeyBindings
[21];
100 KBSettings KBContent
[100];
103 char ROMPath
[MAX_PATH
];
104 //char jagBootPath[MAX_PATH];
105 //char CDBootPath[MAX_PATH];
106 char EEPROMPath
[MAX_PATH
];
107 char alpineROMPath
[MAX_PATH
];
108 char debuggerROMPath
[MAX_PATH
];
109 char absROMPath
[MAX_PATH
];
110 char screenshotPath
[MAX_PATH
];
111 char sourcefilesearchPaths
[4096];
115 enum { RT_NORMAL
= 0, RT_TV
= 1 };
118 enum { JAG_NULL_SERIES
, JAG_K_SERIES
, JAG_M_SERIES
};
121 enum { BT_NULL
, BT_K_SERIES
, BT_M_SERIES
, BT_STUBULATOR_1
, BT_STUBULATOR_2
};
123 // Exported variables
124 extern VJSettings vjs
;
126 #endif // __SETTINGS_H__