|
|
1.1 ! root 1: /* ! 2: Hatari - configuration.h ! 3: ! 4: This file is distributed under the GNU Public License, version 2 or at ! 5: your option any later version. Read the file gpl.txt for details. ! 6: */ ! 7: ! 8: #ifndef HATARI_CONFIGURATION_H ! 9: #define HATARI_CONFIGURATION_H ! 10: ! 11: /* Logging and tracing */ ! 12: typedef struct ! 13: { ! 14: char sLogFileName[FILENAME_MAX]; ! 15: char sTraceFileName[FILENAME_MAX]; ! 16: int nTextLogLevel; ! 17: int nAlertDlgLogLevel; ! 18: bool bConfirmQuit; ! 19: } CNF_LOG; ! 20: ! 21: ! 22: /* debugger */ ! 23: typedef struct ! 24: { ! 25: int nNumberBase; ! 26: int nDisasmLines; ! 27: int nMemdumpLines; ! 28: } CNF_DEBUGGER; ! 29: ! 30: ! 31: /* ROM (TOS + cartridge) configuration */ ! 32: typedef struct ! 33: { ! 34: char szTosImageFileName[FILENAME_MAX]; ! 35: char szCartridgeImageFileName[FILENAME_MAX]; ! 36: } CNF_ROM; ! 37: ! 38: ! 39: /* Sound configuration */ ! 40: typedef struct ! 41: { ! 42: bool bEnableSound; ! 43: int nPlaybackFreq; ! 44: char szYMCaptureFileName[FILENAME_MAX]; ! 45: int SdlAudioBufferSize; ! 46: } CNF_SOUND; ! 47: ! 48: ! 49: ! 50: /* RS232 configuration */ ! 51: typedef struct ! 52: { ! 53: bool bEnableRS232; ! 54: char szOutFileName[FILENAME_MAX]; ! 55: char szInFileName[FILENAME_MAX]; ! 56: } CNF_RS232; ! 57: ! 58: ! 59: /* Dialog Keyboard */ ! 60: typedef enum ! 61: { ! 62: KEYMAP_SYMBOLIC, /* Use keymapping with symbolic (ASCII) key codes */ ! 63: KEYMAP_SCANCODE, /* Use keymapping with PC keyboard scancodes */ ! 64: KEYMAP_LOADED /* Use keymapping with a map configuration file */ ! 65: } KEYMAPTYPE; ! 66: ! 67: typedef struct ! 68: { ! 69: bool bDisableKeyRepeat; ! 70: KEYMAPTYPE nKeymapType; ! 71: char szMappingFileName[FILENAME_MAX]; ! 72: } CNF_KEYBOARD; ! 73: ! 74: ! 75: typedef enum { ! 76: SHORTCUT_OPTIONS, ! 77: SHORTCUT_FULLSCREEN, ! 78: SHORTCUT_MOUSEGRAB, ! 79: SHORTCUT_COLDRESET, ! 80: SHORTCUT_WARMRESET, ! 81: SHORTCUT_SCREENSHOT, ! 82: SHORTCUT_BOSSKEY, ! 83: SHORTCUT_CURSOREMU, ! 84: SHORTCUT_FASTFORWARD, ! 85: SHORTCUT_RECANIM, ! 86: SHORTCUT_RECSOUND, ! 87: SHORTCUT_SOUND, ! 88: SHORTCUT_DEBUG, ! 89: SHORTCUT_PAUSE, ! 90: SHORTCUT_QUIT, ! 91: SHORTCUT_LOADMEM, ! 92: SHORTCUT_SAVEMEM, ! 93: SHORTCUT_INSERTDISKA, ! 94: SHORTCUT_KEYS, /* number of shortcuts */ ! 95: SHORTCUT_NONE ! 96: } SHORTCUTKEYIDX; ! 97: ! 98: typedef struct ! 99: { ! 100: int withModifier[SHORTCUT_KEYS]; ! 101: int withoutModifier[SHORTCUT_KEYS]; ! 102: } CNF_SHORTCUT; ! 103: ! 104: ! 105: typedef struct ! 106: { ! 107: int nMemorySize; ! 108: bool bAutoSave; ! 109: char szMemoryCaptureFileName[FILENAME_MAX]; ! 110: char szAutoSaveFileName[FILENAME_MAX]; ! 111: } CNF_MEMORY; ! 112: ! 113: ! 114: /* Joystick configuration */ ! 115: typedef enum ! 116: { ! 117: JOYSTICK_DISABLED, ! 118: JOYSTICK_REALSTICK, ! 119: JOYSTICK_KEYBOARD ! 120: } JOYSTICKMODE; ! 121: ! 122: typedef struct ! 123: { ! 124: JOYSTICKMODE nJoystickMode; ! 125: bool bEnableAutoFire; ! 126: bool bEnableJumpOnFire2; ! 127: int nJoyId; ! 128: int nKeyCodeUp, nKeyCodeDown, nKeyCodeLeft, nKeyCodeRight, nKeyCodeFire; ! 129: } JOYSTICK; ! 130: ! 131: #define JOYSTICK_COUNT 6 ! 132: ! 133: typedef struct ! 134: { ! 135: JOYSTICK Joy[JOYSTICK_COUNT]; ! 136: } CNF_JOYSTICKS; ! 137: ! 138: ! 139: /* Disk image configuration */ ! 140: ! 141: typedef enum ! 142: { ! 143: WRITEPROT_OFF, ! 144: WRITEPROT_ON, ! 145: WRITEPROT_AUTO ! 146: } WRITEPROTECTION; ! 147: ! 148: #define MAX_FLOPPYDRIVES 2 ! 149: ! 150: typedef struct ! 151: { ! 152: bool bAutoInsertDiskB; ! 153: bool bSlowFloppy; /* true to slow down FDC emulation */ ! 154: WRITEPROTECTION nWriteProtection; ! 155: char szDiskZipPath[MAX_FLOPPYDRIVES][FILENAME_MAX]; ! 156: char szDiskFileName[MAX_FLOPPYDRIVES][FILENAME_MAX]; ! 157: char szDiskImageDirectory[FILENAME_MAX]; ! 158: } CNF_DISKIMAGE; ! 159: ! 160: ! 161: /* Hard drives configuration */ ! 162: #define MAX_HARDDRIVES 23 ! 163: ! 164: typedef enum ! 165: { ! 166: DRIVE_C, ! 167: DRIVE_D, ! 168: DRIVE_E, ! 169: DRIVE_F ! 170: } DRIVELETTER; ! 171: ! 172: typedef struct ! 173: { ! 174: int nHardDiskDir; ! 175: bool bUseHardDiskDirectories; ! 176: bool bUseHardDiskImage; ! 177: bool bUseIdeMasterHardDiskImage; ! 178: bool bUseIdeSlaveHardDiskImage; ! 179: WRITEPROTECTION nWriteProtection; ! 180: bool bBootFromHardDisk; ! 181: char szHardDiskDirectories[MAX_HARDDRIVES][FILENAME_MAX]; ! 182: char szHardDiskImage[FILENAME_MAX]; ! 183: char szIdeMasterHardDiskImage[FILENAME_MAX]; ! 184: char szIdeSlaveHardDiskImage[FILENAME_MAX]; ! 185: } CNF_HARDDISK; ! 186: ! 187: /* Falcon register $FFFF8006 bits 6 & 7 (mirrored in $FFFF82C0 bits 0 & 1): ! 188: * 00 Monochrome ! 189: * 01 RGB - Colormonitor ! 190: * 10 VGA - Colormonitor ! 191: * 11 TV ! 192: */ ! 193: #define FALCON_MONITOR_MASK 0x3F ! 194: #define FALCON_MONITOR_MONO 0x00 /* SM124 */ ! 195: #define FALCON_MONITOR_RGB 0x40 ! 196: #define FALCON_MONITOR_VGA 0x80 ! 197: #define FALCON_MONITOR_TV 0xC0 ! 198: ! 199: typedef enum ! 200: { ! 201: MONITOR_TYPE_MONO, ! 202: MONITOR_TYPE_RGB, ! 203: MONITOR_TYPE_VGA, ! 204: MONITOR_TYPE_TV ! 205: } MONITORTYPE; ! 206: ! 207: /* Screen configuration */ ! 208: typedef struct ! 209: { ! 210: MONITORTYPE nMonitorType; ! 211: int nFrameSkips; ! 212: bool bFullScreen; ! 213: bool bAllowOverscan; ! 214: bool bAspectCorrect; ! 215: bool bUseExtVdiResolutions; ! 216: int nSpec512Threshold; ! 217: int nForceBpp; ! 218: int nVdiColors; ! 219: int nVdiWidth; ! 220: int nVdiHeight; ! 221: bool bShowStatusbar; ! 222: bool bShowDriveLed; ! 223: bool bCaptureChange; ! 224: int nMaxWidth; ! 225: int nMaxHeight; ! 226: } CNF_SCREEN; ! 227: ! 228: ! 229: /* Printer configuration */ ! 230: typedef struct ! 231: { ! 232: bool bEnablePrinting; ! 233: bool bPrintToFile; ! 234: char szPrintToFileName[FILENAME_MAX]; ! 235: } CNF_PRINTER; ! 236: ! 237: ! 238: /* Midi configuration */ ! 239: typedef struct ! 240: { ! 241: bool bEnableMidi; ! 242: char sMidiInFileName[FILENAME_MAX]; ! 243: char sMidiOutFileName[FILENAME_MAX]; ! 244: } CNF_MIDI; ! 245: ! 246: ! 247: /* Dialog System */ ! 248: typedef enum ! 249: { ! 250: MACHINE_ST, ! 251: MACHINE_STE, ! 252: MACHINE_TT, ! 253: MACHINE_FALCON ! 254: } MACHINETYPE; ! 255: ! 256: typedef enum ! 257: { ! 258: DSP_TYPE_NONE, ! 259: DSP_TYPE_DUMMY, ! 260: DSP_TYPE_EMU ! 261: } DSPTYPE; ! 262: ! 263: typedef struct ! 264: { ! 265: int nCpuLevel; ! 266: int nCpuFreq; ! 267: bool bCompatibleCpu; ! 268: /*bool bAddressSpace24;*/ ! 269: MACHINETYPE nMachineType; ! 270: bool bBlitter; /* TRUE if Blitter is enabled */ ! 271: DSPTYPE nDSPType; /* how to "emulate" DSP */ ! 272: bool bRealTimeClock; ! 273: bool bPatchTimerD; ! 274: bool bFastForward; ! 275: } CNF_SYSTEM; ! 276: ! 277: ! 278: /* State of system is stored in this structure */ ! 279: /* On reset, variables are copied into system globals and used. */ ! 280: typedef struct ! 281: { ! 282: /* Configure */ ! 283: CNF_LOG Log; ! 284: CNF_DEBUGGER Debugger; ! 285: CNF_SCREEN Screen; ! 286: CNF_JOYSTICKS Joysticks; ! 287: CNF_KEYBOARD Keyboard; ! 288: CNF_SHORTCUT Shortcut; ! 289: CNF_SOUND Sound; ! 290: CNF_MEMORY Memory; ! 291: CNF_DISKIMAGE DiskImage; ! 292: CNF_HARDDISK HardDisk; ! 293: CNF_ROM Rom; ! 294: CNF_RS232 RS232; ! 295: CNF_PRINTER Printer; ! 296: CNF_MIDI Midi; ! 297: CNF_SYSTEM System; ! 298: } CNF_PARAMS; ! 299: ! 300: ! 301: extern CNF_PARAMS ConfigureParams; ! 302: extern char sConfigFileName[FILENAME_MAX]; ! 303: ! 304: extern void Configuration_SetDefault(void); ! 305: extern void Configuration_Apply(bool bReset); ! 306: extern void Configuration_Load(const char *psFileName); ! 307: extern void Configuration_Save(void); ! 308: extern void Configuration_MemorySnapShot_Capture(bool bSave); ! 309: ! 310: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.