--- hatari/src/includes/configuration.h 2019/04/01 07:12:40 1.1.1.7 +++ hatari/src/includes/configuration.h 2019/04/01 07:13:41 1.1.1.9 @@ -8,13 +8,13 @@ #ifndef HATARI_CONFIGURATION_H #define HATARI_CONFIGURATION_H - /* Logging */ typedef struct { char sLogFileName[FILENAME_MAX]; int nTextLogLevel; int nAlertDlgLogLevel; + BOOL bConfirmQuit; } CNF_LOG; @@ -32,12 +32,12 @@ typedef enum PLAYBACK_LOW, PLAYBACK_MEDIUM, PLAYBACK_HIGH -} SOUND_QUALITIY; +} SOUND_QUALITY; typedef struct { BOOL bEnableSound; - SOUND_QUALITIY nPlaybackQuality; + SOUND_QUALITY nPlaybackQuality; char szYMCaptureFileName[FILENAME_MAX]; } CNF_SOUND; @@ -68,10 +68,39 @@ typedef struct } CNF_KEYBOARD; +typedef enum { + SHORTCUT_OPTIONS, + SHORTCUT_FULLSCREEN, + SHORTCUT_MOUSEMODE, + SHORTCUT_COLDRESET, + SHORTCUT_WARMRESET, + SHORTCUT_SCREENSHOT, + SHORTCUT_BOSSKEY, + SHORTCUT_CURSOREMU, + SHORTCUT_MAXSPEED, + SHORTCUT_RECANIM, + SHORTCUT_RECSOUND, + SHORTCUT_SOUND, + SHORTCUT_QUIT, + SHORTCUT_LOADMEM, + SHORTCUT_SAVEMEM, + 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; @@ -91,9 +120,11 @@ typedef struct int nKeyCodeUp, nKeyCodeDown, nKeyCodeLeft, nKeyCodeRight, nKeyCodeFire; } JOYSTICK; +#define JOYSTICK_COUNT 6 + typedef struct { - JOYSTICK Joy[6]; + JOYSTICK Joy[JOYSTICK_COUNT]; } CNF_JOYSTICKS; @@ -133,23 +164,52 @@ typedef struct 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 { + MONITORTYPE MonitorType; + int FrameSkips; BOOL bFullScreen; - BOOL bFrameSkip; BOOL bAllowOverscan; - BOOL bInterleavedScreen; - int ChosenDisplayMode; - BOOL bUseHighRes; + BOOL bZoomLowRes; BOOL bUseExtVdiResolutions; - int nVdiResolution; + int nSpec512Threshold; + int nForceBpp; int nVdiColors; + int nVdiWidth; + int nVdiHeight; BOOL bCaptureChange; int nFramesPerSecond; + int nWindowBorderPixelsLeft; + int nWindowBorderPixelsRight; + int nWindowBorderPixelsBottom; + int nFullScreenBorderPixelsLeft; + int nFullScreenBorderPixelsRight; + int nFullScreenBorderPixelsBottom; } CNF_SCREEN; @@ -183,9 +243,18 @@ typedef enum typedef enum { MACHINE_ST, - MACHINE_STE + MACHINE_STE, + MACHINE_TT, + MACHINE_FALCON } MACHINETYPE; +typedef enum +{ + DSP_TYPE_NONE, + DSP_TYPE_DUMMY, + DSP_TYPE_EMU +} DSPTYPE; + typedef struct { int nCpuLevel; @@ -193,7 +262,8 @@ typedef struct BOOL bCompatibleCpu; /*BOOL bAddressSpace24;*/ MACHINETYPE nMachineType; - BOOL bBlitter; /* TRUE if blitter is enabled */ + 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 */ @@ -210,6 +280,7 @@ typedef struct CNF_SCREEN Screen; CNF_JOYSTICKS Joysticks; CNF_KEYBOARD Keyboard; + CNF_SHORTCUT Shortcut; CNF_SOUND Sound; CNF_MEMORY Memory; CNF_DISKIMAGE DiskImage; @@ -227,8 +298,9 @@ 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