diff -Nuar hatari-2.1.0-orig/cmake/FindCapsImage.cmake hatari-2.1.0/cmake/FindCapsImage.cmake --- hatari-2.1.0-orig/cmake/FindCapsImage.cmake 2018-07-28 20:32:59.164780571 +0300 +++ hatari-2.1.0/cmake/FindCapsImage.cmake 2018-07-28 20:33:16.130781607 +0300 @@ -1,22 +1,18 @@ - IF (CAPSIMAGE_INCLUDE_DIR) - # Already in cache, be silent - SET(CAPSIMAGE_FIND_QUIETLY TRUE) + # Already in cache, be silent + SET(CAPSIMAGE_FIND_QUIETLY TRUE) ENDIF (CAPSIMAGE_INCLUDE_DIR) - -# Choose the library version to use : 4 or 5 -SET(CAPSIMAGE_VERSION 5) - - -if(CAPSIMAGE_VERSION STREQUAL 4) - SET(CAPSIMAGE_DIR caps) - FIND_PATH(CAPSIMAGE_INCLUDE_DIR ${CAPSIMAGE_DIR}/capsimage.h) +if(ENABLE_CAPSIMAGE5) + SET(CAPSIMAGE_VERSION 5) + FIND_PATH(CAPSIMAGE_INCLUDE_DIR NAMES CapsAPI.h PATH_SUFFIXES caps5) else() - SET(CAPSIMAGE_DIR caps5) - FIND_PATH(CAPSIMAGE_INCLUDE_DIR ${CAPSIMAGE_DIR}/CapsAPI.h) + SET(CAPSIMAGE_VERSION 4) + FIND_PATH(CAPSIMAGE_INCLUDE_DIR NAMES capsimage.h PATH_SUFFIXES caps) endif() +message(${CAPSIMAGE_INCLUDE_DIR}) + if(WIN32) FIND_LIBRARY(CAPSIMAGE_LIBRARY NAMES capsimg PATH_SUFFIXES ${CAPSIMAGE_DIR} ) else() diff -Nuar hatari-2.1.0-orig/src/CMakeLists.txt hatari-2.1.0/src/CMakeLists.txt --- hatari-2.1.0-orig/src/CMakeLists.txt 2018-07-28 20:32:59.152780571 +0300 +++ hatari-2.1.0/src/CMakeLists.txt 2018-07-28 20:33:16.131781607 +0300 @@ -55,6 +55,10 @@ include_directories(${PNG_INCLUDE_DIR}) endif(PNG_FOUND) +if(CAPSIMAGE_FOUND) + include_directories(${CAPSIMAGE_INCLUDE_DIR}) +endif(CAPSIMAGE_FOUND) + if(X11_FOUND) include_directories(${X11_INCLUDE_DIR}) endif(X11_FOUND) diff -Nuar hatari-2.1.0-orig/src/floppy_ipf.c hatari-2.1.0/src/floppy_ipf.c --- hatari-2.1.0-orig/src/floppy_ipf.c 2018-07-28 20:32:59.152780571 +0300 +++ hatari-2.1.0/src/floppy_ipf.c 2018-07-28 20:34:32.782786288 +0300 @@ -30,9 +30,9 @@ #ifdef HAVE_CAPSIMAGE #if CAPSIMAGE_VERSION == 5 -#include +#include #else -#include +#include #define CAPS_LIB_RELEASE 4 #define CAPS_LIB_REVISION 2 #endif @@ -61,8 +61,8 @@ struct CapsFdc Fdc; /* Fdc state */ struct CapsDrive Drive[ MAX_FLOPPYDRIVES ]; /* Physical drives */ - CapsLong CapsImage[ MAX_FLOPPYDRIVES ]; /* Image Id or -1 if drive empty */ - CapsLong CapsImageType[ MAX_FLOPPYDRIVES ]; /* ImageType or -1 if not known */ + Sint32 CapsImage[ MAX_FLOPPYDRIVES ]; /* Image Id or -1 if drive empty */ + Sint32 CapsImageType[ MAX_FLOPPYDRIVES ]; /* ImageType or -1 if not known */ int Rev_Track[ MAX_FLOPPYDRIVES ]; /* Needed to handle CAPSSetRevolution for type II/III commands */ int Rev_Side[ MAX_FLOPPYDRIVES ]; @@ -83,9 +83,9 @@ static char *IPF_FilenameFindTrackSide (char *FileName); static bool IPF_Insert_RawStreamImage ( int Drive ); -static void IPF_CallBack_Trk ( struct CapsFdc *pc , CapsULong State ); -static void IPF_CallBack_Irq ( struct CapsFdc *pc , CapsULong State ); -static void IPF_CallBack_Drq ( struct CapsFdc *pc , CapsULong State ); +static void IPF_CallBack_Trk ( struct CapsFdc *pc , Uint32 State ); +static void IPF_CallBack_Irq ( struct CapsFdc *pc , Uint32 State ); +static void IPF_CallBack_Drq ( struct CapsFdc *pc , Uint32 State ); static void IPF_Drive_Update_Enable_Side ( void ); static void IPF_FDC_LogCommand ( Uint8 Command ); #endif @@ -419,8 +419,8 @@ return false; #else - CapsLong ImageId; - CapsLong ImageType; + Sint32 ImageId; + Sint32 ImageType; ImageId = CAPSAddImage(); if ( ImageId < 0 ) @@ -470,7 +470,7 @@ ImageType = -1; #endif - if ( CAPSLockImageMemory ( ImageId , pImageBuffer , (CapsULong)ImageSize , DI_LOCK_MEMREF ) == imgeOk ) + if ( CAPSLockImageMemory ( ImageId , pImageBuffer , (Uint32)ImageSize , DI_LOCK_MEMREF ) == imgeOk ) { struct CapsImageInfo cii; int i; @@ -703,7 +703,7 @@ * We need to update the track data by calling CAPSLockTrack */ #ifdef HAVE_CAPSIMAGE -static void IPF_CallBack_Trk ( struct CapsFdc *pc , CapsULong State ) +static void IPF_CallBack_Trk ( struct CapsFdc *pc , Uint32 State ) { int Drive = State; /* State is the drive number in that case */ struct CapsDrive *pd = pc->drive+Drive; /* Current drive where the track change occurred */ @@ -732,7 +732,7 @@ * Callback function used when the FDC change the IRQ signal */ #ifdef HAVE_CAPSIMAGE -static void IPF_CallBack_Irq ( struct CapsFdc *pc , CapsULong State ) +static void IPF_CallBack_Irq ( struct CapsFdc *pc , Uint32 State ) { LOG_TRACE(TRACE_FDC, "fdc ipf callback irq state=0x%x VBL=%d HBL=%d\n" , (int)State , nVBLs , nHBL ); @@ -751,7 +751,7 @@ * -> copy the byte to/from the DMA's FIFO if it's a read or a write to the disk */ #ifdef HAVE_CAPSIMAGE -static void IPF_CallBack_Drq ( struct CapsFdc *pc , CapsULong State ) +static void IPF_CallBack_Drq ( struct CapsFdc *pc , Uint32 State ) { Uint8 Byte; diff -Nuar hatari-2.1.0-orig/src/uae-cpu/newcpu.c hatari-2.1.0/src/uae-cpu/newcpu.c --- hatari-2.1.0-orig/src/uae-cpu/newcpu.c 2018-07-28 20:32:59.158780571 +0300 +++ hatari-2.1.0/src/uae-cpu/newcpu.c 2018-07-28 20:33:16.132781607 +0300 @@ -167,7 +167,7 @@ #ifdef HAVE_CAPSIMAGE #if CAPSIMAGE_VERSION == 5 -#include +#include #endif #endif