Added ELF sections check so a potential unknown section will stop, or not stop, the...
[clinton/Virtual-Jaguar-Rx.git] / src / settings.h
index a810d9e..8b7ca16 100644 (file)
-//
-// settings.h: Header file
-//
-// JPM = Jean-Paul Mari <djipi.mari@gmail.com>
-//
-// Who  When        What
-// ---  ----------  ------------------------------------------------------------
-// JPM  06/19/2016  Soft debugger support
-//
-
-#ifndef __SETTINGS_H__
-#define __SETTINGS_H__
-
-// MAX_PATH isn't defined in stdlib.h on *nix, so we do it here...
-#ifdef __GCCUNIX__
-#include <limits.h>
-#define MAX_PATH               _POSIX_PATH_MAX
-#else
-#include <stdlib.h>                            // for MAX_PATH on MinGW/Darwin
-// Kludge for Win64
-#ifndef MAX_PATH
-#define MAX_PATH _MAX_PATH             // Urgh.
-#endif
-#endif
-#include <stdint.h>
-
-#define MaxMemory1BrowserWindow                4
-
-// Settings struct
-struct VJSettings
-{
-       bool useJoystick;
-       int32_t joyport;                                                                                        // Joystick port
-       bool hardwareTypeNTSC;                                                                          // Set to false for PAL
-       bool useJaguarBIOS;
-       bool GPUEnabled;
-       bool DSPEnabled;
-       bool usePipelinedDSP;
-       bool fullscreen;
-       bool useOpenGL;
-       uint32_t glFilter;
-       bool hardwareTypeAlpine;
-       bool softTypeDebugger;                                                                          // Soft type debugger
-       bool audioEnabled;
-       uint32_t frameSkip;
-       uint32_t renderType;
-       uint32_t refresh;
-       bool allowWritesToROM;
-       uint32_t biosType;
-       uint32_t nbrdisasmlines;
-       bool disasmopcodes;
-       bool displayHWlabels;
-       bool useFastBlitter;
-       bool displayFullSourceFilename;
-       size_t nbrmemory1browserwindow;                                                         // Number of memory browser windows
-       size_t DRAM_size;                                                                                       // DRAM size
-
-       // Keybindings in order of U, D, L, R, C, B, A, Op, Pa, 0-9, #, *
-
-       uint32_t p1KeyBindings[21];
-       uint32_t p2KeyBindings[21];
-
-       // Paths
-
-       char ROMPath[MAX_PATH];
-       char jagBootPath[MAX_PATH];
-       char CDBootPath[MAX_PATH];
-       char EEPROMPath[MAX_PATH];
-       char alpineROMPath[MAX_PATH];
-       char debuggerROMPath[MAX_PATH];
-       char absROMPath[MAX_PATH];
-};
-
-// Render types
-
-enum { RT_NORMAL = 0, RT_TV = 1 };
-
-// BIOS types
-
-enum { BT_K_SERIES, BT_M_SERIES, BT_STUBULATOR_1, BT_STUBULATOR_2 };
-
-// Exported variables
-
-extern VJSettings vjs;
-
-#endif // __SETTINGS_H__
+//\r
+// settings.h: Header file\r
+//\r
+// JPM = Jean-Paul Mari <djipi.mari@gmail.com>\r
+//\r
+// Who  When        What\r
+// ---  ----------  ------------------------------------------------------------\r
+// JPM  06/19/2016  Soft debugger support\r
+// JPM  Sept./2018  Added the new Models and BIOS handler, and a screenshot settings\r
+// JPM  10/10/2018  Added search paths in settings\r
+// JPM  04/06/2019  Added ELF sections check\r
+//\r
+\r
+#ifndef __SETTINGS_H__\r
+#define __SETTINGS_H__\r
+\r
+// MAX_PATH isn't defined in stdlib.h on *nix, so we do it here...\r
+#ifdef __GCCUNIX__\r
+#include <limits.h>\r
+#define MAX_PATH               _POSIX_PATH_MAX\r
+#else\r
+#include <stdlib.h>                            // for MAX_PATH on MinGW/Darwin\r
+// Kludge for Win64\r
+#ifndef MAX_PATH\r
+#define MAX_PATH _MAX_PATH             // Urgh.\r
+#endif\r
+#endif\r
+#include <stdint.h>\r
+\r
+#define MaxMemory1BrowserWindow                4\r
+\r
+\r
+// List the erase settings possibilities\r
+enum\r
+{\r
+       SETTINGS_NONE = 0,\r
+       SETTINGS_ALL,\r
+       SETTINGS_UI,\r
+       SETTINGS_ALPINE,\r
+       SETTINGS_DEBUGGER,\r
+       SETTINGS_END\r
+};\r
+\r
+\r
+// Key bindings settings structure\r
+struct KBSettings\r
+{\r
+       //char KBSettingName[100];\r
+       char KBSettingValue[100];\r
+       //char KBSettingDefaultValue[100];\r
+};\r
+\r
+\r
+// functions declarations\r
+extern bool EraseSettings(char *Setting);\r
+\r
+\r
+// Settings struct\r
+struct VJSettings\r
+{\r
+       bool useJoystick;                                                                                       // Joystick usage\r
+       int32_t joyport;                                                                                        // Joystick port\r
+       bool hardwareTypeNTSC;                                                                          // Set to false for PAL, otherwise it is NTSC\r
+       bool useJaguarBIOS;                                                                                     // Use of any Jaguar BIOS\r
+       bool useRetailBIOS;                                                                                     // Use of Retail BIOS\r
+       bool useDevBIOS;                                                                                        // Use of Development BIOS\r
+       bool GPUEnabled;                                                                                        // Use of GPU\r
+       bool DSPEnabled;                                                                                        // Use of DSP\r
+       bool usePipelinedDSP;\r
+       bool fullscreen;                                                                                        // Emulator in full screen mode so video output display only\r
+       bool useOpenGL;                                                                                         // OpenGL support (always 'true')\r
+       uint32_t glFilter;\r
+       bool hardwareTypeAlpine;                                                                        // Alpine mode\r
+       bool softTypeDebugger;                                                                          // Soft type debugger mode\r
+       bool audioEnabled;\r
+       uint32_t frameSkip;\r
+       uint32_t renderType;\r
+       uint32_t refresh;\r
+       bool allowWritesToROM;                                                                          // Allow writing to ROM cartdridge\r
+       uint32_t biosType;                                                                                      // Bios type used\r
+       uint32_t jaguarModel;                                                                           // Jaguar model\r
+       size_t nbrdisasmlines;                                                                          // Number of lines to show in the M68K tracing window\r
+       bool disasmopcodes;\r
+       bool displayHWlabels;\r
+       bool useFastBlitter;\r
+       bool displayFullSourceFilename;\r
+       bool ELFSectionsCheck;\r
+       size_t nbrmemory1browserwindow;                                                         // Number of memory browser windows\r
+       size_t DRAM_size;                                                                                       // DRAM size\r
+\r
+       // Keybindings in order of U, D, L, R, C, B, A, Op, Pa, 0-9, #, *\r
+       uint32_t p1KeyBindings[21];\r
+       uint32_t p2KeyBindings[21];\r
+\r
+       // Keybindings\r
+       KBSettings KBContent[100];\r
+\r
+       // Paths\r
+       char ROMPath[MAX_PATH];\r
+       //char jagBootPath[MAX_PATH];\r
+       //char CDBootPath[MAX_PATH];\r
+       char EEPROMPath[MAX_PATH];\r
+       char alpineROMPath[MAX_PATH];\r
+       char debuggerROMPath[MAX_PATH];\r
+       char absROMPath[MAX_PATH];\r
+       char screenshotPath[MAX_PATH];\r
+       char sourcefilesearchPaths[4096];\r
+};\r
+\r
+// Render types\r
+enum { RT_NORMAL = 0, RT_TV = 1 };\r
+\r
+// Jaguar models\r
+enum { JAG_NULL_SERIES, JAG_K_SERIES, JAG_M_SERIES };\r
+\r
+// BIOS types\r
+enum { BT_NULL, BT_K_SERIES, BT_M_SERIES, BT_STUBULATOR_1, BT_STUBULATOR_2 };\r
+\r
+// Exported variables\r
+extern VJSettings vjs;\r
+\r
+#endif // __SETTINGS_H__\r