--- hatari/src/includes/configuration.h 2019/04/01 07:15:29 1.1.1.11 +++ hatari/src/includes/configuration.h 2019/04/09 08:50:26 1.1.1.15 @@ -8,7 +8,7 @@ #ifndef HATARI_CONFIGURATION_H #define HATARI_CONFIGURATION_H -/* Logging */ +/* Logging and tracing */ typedef struct { char sLogFileName[FILENAME_MAX]; @@ -19,27 +19,33 @@ typedef struct } CNF_LOG; +/* debugger */ +typedef struct +{ + int nNumberBase; + int nDisasmLines; + int nMemdumpLines; +} CNF_DEBUGGER; + + /* ROM (TOS + cartridge) configuration */ typedef struct { char szTosImageFileName[FILENAME_MAX]; + bool bPatchTos; char szCartridgeImageFileName[FILENAME_MAX]; } CNF_ROM; /* Sound configuration */ -typedef enum -{ - PLAYBACK_LOW, - PLAYBACK_MEDIUM, - PLAYBACK_HIGH -} SOUND_QUALITY; - typedef struct { + bool bEnableMicrophone; bool bEnableSound; - SOUND_QUALITY nPlaybackQuality; + int nPlaybackFreq; + int SdlAudioBufferSize; char szYMCaptureFileName[FILENAME_MAX]; + int YmVolumeMixing; } CNF_SOUND; @@ -72,7 +78,7 @@ typedef struct typedef enum { SHORTCUT_OPTIONS, SHORTCUT_FULLSCREEN, - SHORTCUT_MOUSEMODE, + SHORTCUT_MOUSEGRAB, SHORTCUT_COLDRESET, SHORTCUT_WARMRESET, SHORTCUT_SCREENSHOT, @@ -82,6 +88,7 @@ typedef enum { SHORTCUT_RECANIM, SHORTCUT_RECSOUND, SHORTCUT_SOUND, + SHORTCUT_DEBUG, SHORTCUT_PAUSE, SHORTCUT_QUIT, SHORTCUT_LOADMEM, @@ -119,6 +126,7 @@ typedef struct { JOYSTICKMODE nJoystickMode; bool bEnableAutoFire; + bool bEnableJumpOnFire2; int nJoyId; int nKeyCodeUp, nKeyCodeDown, nKeyCodeLeft, nKeyCodeRight, nKeyCodeFire; } JOYSTICK; @@ -145,6 +153,7 @@ typedef enum typedef struct { bool bAutoInsertDiskB; + bool FastFloppy; /* true to speed up FDC emulation */ WRITEPROTECTION nWriteProtection; char szDiskZipPath[MAX_FLOPPYDRIVES][FILENAME_MAX]; char szDiskFileName[MAX_FLOPPYDRIVES][FILENAME_MAX]; @@ -152,27 +161,23 @@ typedef struct } CNF_DISKIMAGE; -/* Hard drives configuration */ -#define MAX_HARDDRIVES 1 - -typedef enum -{ - DRIVE_C, - DRIVE_D, - DRIVE_E, - DRIVE_F -} DRIVELETTER; +/* Hard drives configuration: C: - Z: */ +#define MAX_HARDDRIVES 24 +#define DRIVE_C 0 typedef struct { - bool bBootFromHardDisk; int nHardDiskDir; bool bUseHardDiskDirectories; bool bUseHardDiskImage; + bool bUseIdeMasterHardDiskImage; + bool bUseIdeSlaveHardDiskImage; + WRITEPROTECTION nWriteProtection; + bool bBootFromHardDisk; char szHardDiskDirectories[MAX_HARDDRIVES][FILENAME_MAX]; char szHardDiskImage[FILENAME_MAX]; - bool bUseIdeHardDiskImage; - char szIdeHardDiskImage[FILENAME_MAX]; + char szIdeMasterHardDiskImage[FILENAME_MAX]; + char szIdeSlaveHardDiskImage[FILENAME_MAX]; } CNF_HARDDISK; /* Falcon register $FFFF8006 bits 6 & 7 (mirrored in $FFFF82C0 bits 0 & 1): @@ -181,7 +186,6 @@ typedef struct * 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 @@ -201,8 +205,10 @@ typedef struct MONITORTYPE nMonitorType; int nFrameSkips; bool bFullScreen; + bool bKeepResolution; + bool bKeepResolutionST; bool bAllowOverscan; - bool bZoomLowRes; + bool bAspectCorrect; bool bUseExtVdiResolutions; int nSpec512Threshold; int nForceBpp; @@ -211,15 +217,10 @@ typedef struct int nVdiHeight; bool bShowStatusbar; bool bShowDriveLed; - bool bCaptureChange; - int nWindowBorderPixelsTop; - int nWindowBorderPixelsLeft; - int nWindowBorderPixelsRight; - int nWindowBorderPixelsBottom; - int nFullScreenBorderPixelsTop; - int nFullScreenBorderPixelsLeft; - int nFullScreenBorderPixelsRight; - int nFullScreenBorderPixelsBottom; + bool bCrop; + bool bForceMax; + int nMaxWidth; + int nMaxHeight; } CNF_SCREEN; @@ -247,7 +248,8 @@ typedef enum MACHINE_ST, MACHINE_STE, MACHINE_TT, - MACHINE_FALCON + MACHINE_FALCON, + MACHINE_MEGA_STE, } MACHINETYPE; typedef enum @@ -257,21 +259,44 @@ typedef enum DSP_TYPE_EMU } DSPTYPE; +#if ENABLE_WINUAE_CPU +typedef enum +{ + FPU_NONE, + FPU_68881, + FPU_68882, + FPU_CPU +} FPUTYPE; +#endif + typedef struct { int nCpuLevel; int nCpuFreq; - bool bCompatibleCpu; - /*bool bAddressSpace24;*/ + bool bCompatibleCpu; /* Prefetch mode */ MACHINETYPE nMachineType; 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 bFastBoot; /* Enable to patch TOS for fast boot */ bool bFastForward; + +#if ENABLE_WINUAE_CPU + bool bAddressSpace24; + bool bCycleExactCpu; + FPUTYPE n_FPUType; + bool bCompatibleFPU; /* More compatible FPU */ + bool bMMU; /* TRUE if MMU is enabled */ +#endif } CNF_SYSTEM; +typedef struct +{ + int AviRecordVcodec; + int AviRecordFps; + char AviRecordFile[FILENAME_MAX]; +} CNF_VIDEO; /* State of system is stored in this structure */ /* On reset, variables are copied into system globals and used. */ @@ -279,6 +304,7 @@ typedef struct { /* Configure */ CNF_LOG Log; + CNF_DEBUGGER Debugger; CNF_SCREEN Screen; CNF_JOYSTICKS Joysticks; CNF_KEYBOARD Keyboard; @@ -292,6 +318,7 @@ typedef struct CNF_PRINTER Printer; CNF_MIDI Midi; CNF_SYSTEM System; + CNF_VIDEO Video; } CNF_PARAMS;