--- hatari/src/includes/configuration.h 2019/04/01 07:12:40 1.1.1.7 +++ hatari/src/includes/configuration.h 2019/04/01 07:15:29 1.1.1.11 @@ -8,13 +8,14 @@ #ifndef HATARI_CONFIGURATION_H #define HATARI_CONFIGURATION_H - /* Logging */ typedef struct { char sLogFileName[FILENAME_MAX]; + char sTraceFileName[FILENAME_MAX]; int nTextLogLevel; int nAlertDlgLogLevel; + bool bConfirmQuit; } CNF_LOG; @@ -32,12 +33,12 @@ typedef enum PLAYBACK_LOW, PLAYBACK_MEDIUM, PLAYBACK_HIGH -} SOUND_QUALITIY; +} SOUND_QUALITY; typedef struct { - BOOL bEnableSound; - SOUND_QUALITIY nPlaybackQuality; + bool bEnableSound; + SOUND_QUALITY nPlaybackQuality; char szYMCaptureFileName[FILENAME_MAX]; } CNF_SOUND; @@ -46,7 +47,7 @@ typedef struct /* RS232 configuration */ typedef struct { - BOOL bEnableRS232; + bool bEnableRS232; char szOutFileName[FILENAME_MAX]; char szInFileName[FILENAME_MAX]; } CNF_RS232; @@ -62,16 +63,47 @@ typedef enum typedef struct { - BOOL bDisableKeyRepeat; + bool bDisableKeyRepeat; KEYMAPTYPE nKeymapType; char szMappingFileName[FILENAME_MAX]; } CNF_KEYBOARD; +typedef enum { + SHORTCUT_OPTIONS, + SHORTCUT_FULLSCREEN, + SHORTCUT_MOUSEMODE, + SHORTCUT_COLDRESET, + SHORTCUT_WARMRESET, + SHORTCUT_SCREENSHOT, + SHORTCUT_BOSSKEY, + SHORTCUT_CURSOREMU, + SHORTCUT_FASTFORWARD, + SHORTCUT_RECANIM, + SHORTCUT_RECSOUND, + SHORTCUT_SOUND, + SHORTCUT_PAUSE, + SHORTCUT_QUIT, + SHORTCUT_LOADMEM, + SHORTCUT_SAVEMEM, + SHORTCUT_INSERTDISKA, + SHORTCUT_KEYS, /* number of shortcuts */ + SHORTCUT_NONE +} SHORTCUTKEYIDX; + +typedef struct +{ + int withModifier[SHORTCUT_KEYS]; + int withoutModifier[SHORTCUT_KEYS]; +} CNF_SHORTCUT; + + typedef struct { int nMemorySize; + bool bAutoSave; char szMemoryCaptureFileName[FILENAME_MAX]; + char szAutoSaveFileName[FILENAME_MAX]; } CNF_MEMORY; @@ -86,14 +118,16 @@ typedef enum typedef struct { JOYSTICKMODE nJoystickMode; - BOOL bEnableAutoFire; + bool bEnableAutoFire; int nJoyId; int nKeyCodeUp, nKeyCodeDown, nKeyCodeLeft, nKeyCodeRight, nKeyCodeFire; } JOYSTICK; +#define JOYSTICK_COUNT 6 + typedef struct { - JOYSTICK Joy[6]; + JOYSTICK Joy[JOYSTICK_COUNT]; } CNF_JOYSTICKS; @@ -106,10 +140,14 @@ typedef enum WRITEPROT_AUTO } WRITEPROTECTION; +#define MAX_FLOPPYDRIVES 2 + typedef struct { - BOOL bAutoInsertDiskB; + bool bAutoInsertDiskB; WRITEPROTECTION nWriteProtection; + char szDiskZipPath[MAX_FLOPPYDRIVES][FILENAME_MAX]; + char szDiskFileName[MAX_FLOPPYDRIVES][FILENAME_MAX]; char szDiskImageDirectory[FILENAME_MAX]; } CNF_DISKIMAGE; @@ -127,37 +165,69 @@ typedef enum typedef struct { - BOOL bBootFromHardDisk; + bool bBootFromHardDisk; int nHardDiskDir; - BOOL bUseHardDiskDirectories; - BOOL bUseHardDiskImage; + bool bUseHardDiskDirectories; + bool bUseHardDiskImage; char szHardDiskDirectories[MAX_HARDDRIVES][FILENAME_MAX]; char szHardDiskImage[FILENAME_MAX]; + bool bUseIdeHardDiskImage; + char szIdeHardDiskImage[FILENAME_MAX]; } CNF_HARDDISK; +/* Falcon register $FFFF8006 bits 6 & 7 (mirrored in $FFFF82C0 bits 0 & 1): + * 00 Monochrome + * 01 RGB - Colormonitor + * 10 VGA - Colormonitor + * 11 TV + */ +#define FALCON_MONITOR_MASK 0x3F +#define FALCON_MONITOR_MONO 0x00 /* SM124 */ +#define FALCON_MONITOR_RGB 0x40 +#define FALCON_MONITOR_VGA 0x80 +#define FALCON_MONITOR_TV 0xC0 + +typedef enum +{ + MONITOR_TYPE_MONO, + MONITOR_TYPE_RGB, + MONITOR_TYPE_VGA, + MONITOR_TYPE_TV +} MONITORTYPE; /* Screen configuration */ typedef struct { - BOOL bFullScreen; - BOOL bFrameSkip; - BOOL bAllowOverscan; - BOOL bInterleavedScreen; - int ChosenDisplayMode; - BOOL bUseHighRes; - BOOL bUseExtVdiResolutions; - int nVdiResolution; + MONITORTYPE nMonitorType; + int nFrameSkips; + bool bFullScreen; + bool bAllowOverscan; + bool bZoomLowRes; + bool bUseExtVdiResolutions; + int nSpec512Threshold; + int nForceBpp; int nVdiColors; - BOOL bCaptureChange; - int nFramesPerSecond; + int nVdiWidth; + int nVdiHeight; + bool bShowStatusbar; + bool bShowDriveLed; + bool bCaptureChange; + int nWindowBorderPixelsTop; + int nWindowBorderPixelsLeft; + int nWindowBorderPixelsRight; + int nWindowBorderPixelsBottom; + int nFullScreenBorderPixelsTop; + int nFullScreenBorderPixelsLeft; + int nFullScreenBorderPixelsRight; + int nFullScreenBorderPixelsBottom; } CNF_SCREEN; /* Printer configuration */ typedef struct { - BOOL bEnablePrinting; - BOOL bPrintToFile; + bool bEnablePrinting; + bool bPrintToFile; char szPrintToFileName[FILENAME_MAX]; } CNF_PRINTER; @@ -165,39 +235,41 @@ typedef struct /* Midi configuration */ typedef struct { - BOOL bEnableMidi; - char szMidiOutFileName[FILENAME_MAX]; + bool bEnableMidi; + char sMidiInFileName[FILENAME_MAX]; + char sMidiOutFileName[FILENAME_MAX]; } CNF_MIDI; /* Dialog System */ typedef enum { - MINMAXSPEED_MIN, - MINMAXSPEED_1, - MINMAXSPEED_2, - MINMAXSPEED_3, - MINMAXSPEED_MAX -} MINMAXSPEED_TYPE; + MACHINE_ST, + MACHINE_STE, + MACHINE_TT, + MACHINE_FALCON +} MACHINETYPE; typedef enum { - MACHINE_ST, - MACHINE_STE -} MACHINETYPE; + DSP_TYPE_NONE, + DSP_TYPE_DUMMY, + DSP_TYPE_EMU +} DSPTYPE; typedef struct { int nCpuLevel; int nCpuFreq; - BOOL bCompatibleCpu; - /*BOOL bAddressSpace24;*/ + bool bCompatibleCpu; + /*bool bAddressSpace24;*/ MACHINETYPE nMachineType; - BOOL bBlitter; /* TRUE if blitter is enabled */ - BOOL bRealTimeClock; - BOOL bPatchTimerD; - BOOL bSlowFDC; /* TRUE to slow down FDC emulation */ - MINMAXSPEED_TYPE nMinMaxSpeed; + bool bBlitter; /* TRUE if Blitter is enabled */ + DSPTYPE nDSPType; /* how to "emulate" DSP */ + bool bRealTimeClock; + bool bPatchTimerD; + bool bSlowFDC; /* TRUE to slow down FDC emulation */ + bool bFastForward; } CNF_SYSTEM; @@ -210,6 +282,7 @@ typedef struct CNF_SCREEN Screen; CNF_JOYSTICKS Joysticks; CNF_KEYBOARD Keyboard; + CNF_SHORTCUT Shortcut; CNF_SOUND Sound; CNF_MEMORY Memory; CNF_DISKIMAGE DiskImage; @@ -222,13 +295,13 @@ typedef struct } CNF_PARAMS; -extern BOOL bFirstTimeInstall; extern CNF_PARAMS ConfigureParams; extern char sConfigFileName[FILENAME_MAX]; extern void Configuration_SetDefault(void); -extern void Configuration_WorkOnDetails(BOOL bReset); +extern void Configuration_Apply(bool bReset); extern void Configuration_Load(const char *psFileName); extern void Configuration_Save(void); +extern void Configuration_MemorySnapShot_Capture(bool bSave); #endif