--- hatari/src/includes/configuration.h 2019/04/09 08:55:42 1.1.1.19 +++ hatari/src/includes/configuration.h 2019/04/09 08:59:26 1.1.1.22 @@ -16,7 +16,6 @@ typedef struct { char sLogFileName[FILENAME_MAX]; char sTraceFileName[FILENAME_MAX]; - int nExceptionDebugMask; int nTextLogLevel; int nAlertDlgLogLevel; bool bConfirmQuit; @@ -29,10 +28,16 @@ typedef struct typedef struct { int nNumberBase; - int nDisasmLines; + int nSymbolLines; int nMemdumpLines; + int nDisasmLines; + int nExceptionDebugMask; int nDisasmOptions; bool bDisasmUAE; + /* load symbols immediately on program start, and keep them after its termination */ + bool bSymbolsResident; + /* whether to match all symbols or just types relevant for given command */ + bool bMatchAllSymbols; } CNF_DEBUGGER; @@ -63,8 +68,11 @@ typedef struct typedef struct { bool bEnableRS232; + bool bEnableSccB; char szOutFileName[FILENAME_MAX]; char szInFileName[FILENAME_MAX]; + char sSccBInFileName[FILENAME_MAX]; + char sSccBOutFileName[FILENAME_MAX]; } CNF_RS232; @@ -87,6 +95,7 @@ typedef struct typedef enum { SHORTCUT_OPTIONS, SHORTCUT_FULLSCREEN, + SHORTCUT_BORDERS, SHORTCUT_MOUSEGRAB, SHORTCUT_COLDRESET, SHORTCUT_WARMRESET, @@ -120,8 +129,8 @@ typedef struct typedef struct { - int nMemorySize; - int nTTRamSize; + int STRamSize_KB; + int TTRamSize_KB; bool bAutoSave; char szMemoryCaptureFileName[FILENAME_MAX]; char szAutoSaveFileName[FILENAME_MAX]; @@ -205,27 +214,42 @@ typedef struct { int nGemdosDrive; bool bUseHardDiskDirectories; - bool bUseIdeMasterHardDiskImage; - bool bUseIdeSlaveHardDiskImage; WRITEPROTECTION nWriteProtection; GEMDOS_CHR_CONV nGemdosCase; bool bFilenameConversion; + bool bGemdosHostTime; bool bBootFromHardDisk; char szHardDiskDirectories[MAX_HARDDRIVES][FILENAME_MAX]; - char szIdeMasterHardDiskImage[FILENAME_MAX]; - char szIdeSlaveHardDiskImage[FILENAME_MAX]; } CNF_HARDDISK; -/* SCSI/ACSI configuration */ +/* SCSI/ACSI/IDE configuration */ #define MAX_ACSI_DEVS 8 #define MAX_SCSI_DEVS 8 +#define MAX_IDE_DEVS 2 typedef struct { bool bUseDevice; char sDeviceFile[FILENAME_MAX]; + int nBlockSize; } CNF_SCSIDEV; +typedef enum +{ + BYTESWAP_OFF, + BYTESWAP_ON, + BYTESWAP_AUTO +} BYTESWAPPING; + +typedef struct +{ + bool bUseDevice; + BYTESWAPPING nByteSwap; + char sDeviceFile[FILENAME_MAX]; + int nBlockSize; + int nDeviceType; +} CNF_IDEDEV; + /* Falcon register $FFFF8006 bits 6 & 7 (mirrored in $FFFF82C0 bits 0 & 1): * 00 Monochrome * 01 RGB - Colormonitor @@ -252,7 +276,11 @@ typedef struct int nFrameSkips; bool bFullScreen; bool bKeepResolution; +#if WITH_SDL2 + bool bResizable; +#else bool bKeepResolutionST; +#endif bool bAllowOverscan; bool bAspectCorrect; bool bUseExtVdiResolutions; @@ -269,9 +297,11 @@ typedef struct int nMaxWidth; int nMaxHeight; #if WITH_SDL2 + bool bUseSdlRenderer; int nRenderScaleQuality; bool bUseVsync; #endif + bool DisableVideo; } CNF_SCREEN; @@ -289,6 +319,8 @@ typedef struct bool bEnableMidi; char sMidiInFileName[FILENAME_MAX]; char sMidiOutFileName[FILENAME_MAX]; + char sMidiInPortName[FILENAME_MAX]; + char sMidiOutPortName[FILENAME_MAX]; } CNF_MIDI; @@ -296,10 +328,11 @@ typedef struct typedef enum { MACHINE_ST, + MACHINE_MEGA_ST, MACHINE_STE, + MACHINE_MEGA_STE, MACHINE_TT, - MACHINE_FALCON, - MACHINE_MEGA_STE + MACHINE_FALCON } MACHINETYPE; typedef enum @@ -319,6 +352,15 @@ typedef enum } FPUTYPE; #endif +typedef enum +{ + VIDEO_TIMING_MODE_RANDOM = 0, + VIDEO_TIMING_MODE_WS1, + VIDEO_TIMING_MODE_WS2, + VIDEO_TIMING_MODE_WS3, + VIDEO_TIMING_MODE_WS4, +} VIDEOTIMINGMODE; + typedef struct { int nCpuLevel; @@ -327,16 +369,17 @@ typedef struct MACHINETYPE nMachineType; bool bBlitter; /* TRUE if Blitter is enabled */ DSPTYPE nDSPType; /* how to "emulate" DSP */ - bool bRealTimeClock; bool bPatchTimerD; bool bFastBoot; /* Enable to patch TOS for fast boot */ bool bFastForward; bool bAddressSpace24; /* Always set to true with old UAE cpu */ + VIDEOTIMINGMODE VideoTimingMode; #if ENABLE_WINUAE_CPU bool bCycleExactCpu; FPUTYPE n_FPUType; bool bCompatibleFPU; /* More compatible FPU */ + bool bSoftFloatFPU; bool bMMU; /* TRUE if MMU is enabled */ #endif } CNF_SYSTEM; @@ -365,6 +408,7 @@ typedef struct CNF_HARDDISK HardDisk; CNF_SCSIDEV Acsi[MAX_ACSI_DEVS]; CNF_SCSIDEV Scsi[MAX_SCSI_DEVS]; + CNF_IDEDEV Ide[MAX_IDE_DEVS]; CNF_ROM Rom; CNF_RS232 RS232; CNF_PRINTER Printer; @@ -377,10 +421,33 @@ typedef struct extern CNF_PARAMS ConfigureParams; extern char sConfigFileName[FILENAME_MAX]; +static inline bool Config_IsMachineST(void) +{ + return ConfigureParams.System.nMachineType == MACHINE_ST || + ConfigureParams.System.nMachineType == MACHINE_MEGA_ST; +} + +static inline bool Config_IsMachineSTE(void) +{ + return ConfigureParams.System.nMachineType == MACHINE_STE || + ConfigureParams.System.nMachineType == MACHINE_MEGA_STE; +} + +static inline bool Config_IsMachineTT(void) +{ + return ConfigureParams.System.nMachineType == MACHINE_TT; +} + +static inline bool Config_IsMachineFalcon(void) +{ + return ConfigureParams.System.nMachineType == MACHINE_FALCON; +} + extern void Configuration_SetDefault(void); 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); +extern void Configuration_ChangeCpuFreq ( int CpuFreq_new ); #endif