Fixed builds for DreamSDK4.

- Both Miami and Liberty fixed.
- FUNDAMENTAL issues with data types not being configured correctly for
  64-bit Windows
- More issues with <windows.h> and other files not being included
  properly for _WIN64
- Successfully baked and tested both liberty and miami CDIs in Flycast
This commit is contained in:
Falco
2025-07-15 16:55:44 -05:00
parent fa563ee805
commit 0b7892665e
4 changed files with 30 additions and 3 deletions

View File

@@ -13,7 +13,9 @@ enum eWinVersion
OS_WINXP,
};
#ifdef _WIN32
#ifdef _WIN64
#include <windows.h>
#elif defined(_WIN32)
// As long as WITHWINDOWS isn't defined / <Windows.h> isn't included, we only need type definitions so let's include <IntSafe.h>.
// NOTE: It's perfectly fine to include <Windows.h> here, but it can increase build size and time in *some* conditions, and maybe substantially in future if we'll use crossplatform.h more.

View File

@@ -17,7 +17,7 @@ enum eWinVersion
char *_strdate(char *buf);
#endif
#ifdef _WIN32
#if defined(_WIN32) || defined(_WIN64)
// As long as WITHWINDOWS isn't defined / <Windows.h> isn't included, we only need type definitions so let's include <IntSafe.h>.
// NOTE: It's perfectly fine to include <Windows.h> here, but it can increase build size and time in *some* conditions, and maybe substantially in future if we'll use crossplatform.h more.

View File

@@ -1,6 +1,27 @@
#pragma once
#if ( (__LONG_MAX__ *2UL+1UL) == 18446744073709551615ULL) && ((__INT_MAX__ *2U +1U) == 4294967295ULL)
#if defined(_WIN64) && _WIN64 == 1
typedef unsigned long long uint64; /**< \brief 64-bit unsigned integer */
typedef unsigned int uint32; /**< \brief 32-bit unsigned integer */
typedef unsigned short uint16; /**< \brief 16-bit unsigned integer */
typedef unsigned char uint8; /**< \brief 8-bit unsigned integer */
typedef long long int64; /**< \brief 64-bit signed integer */
typedef int int32; /**< \brief 32-bit signed integer */
typedef short int16; /**< \brief 16-bit signed integer */
typedef char int8; /**< \brief 8-bit signed integer */
typedef volatile unsigned long long vuint64; /**< \brief 64-bit unsigned integer */
typedef volatile unsigned int vuint32; /**< \brief 32-bit unsigned integer */
typedef volatile unsigned short vuint16; /**< \brief 16-bit unsigned integer */
typedef volatile unsigned char vuint8; /**< \brief 8-bit unsigned integer */
typedef volatile long long vint64; /**< \brief 64-bit signed integer */
typedef volatile int vint32; /**< \brief 32-bit signed integer */
typedef volatile short vint16; /**< \brief 16-bit signed integer */
typedef volatile char vint8; /**< \brief 8-bit signed integer */
typedef uint64 ptr_t;
#define INT32_IS_INT
#elif (( (__LONG_MAX__ *2UL+1UL) == 18446744073709551615ULL) && ((__INT_MAX__ *2U +1U) == 4294967295ULL))
typedef unsigned long uint64; /**< \brief 64-bit unsigned integer */
typedef unsigned int uint32; /**< \brief 32-bit unsigned integer */
typedef unsigned short uint16; /**< \brief 16-bit unsigned integer */

View File

@@ -4527,6 +4527,10 @@ imageFindRasterFormat(Image *img, int32 type,
#if defined(_WIN32) || defined(_WIN64)
#include <windows.h> // For QueryPerformanceCounter and GetCurrentThreadId
#ifdef _WIN64
#include <profileapi.h>
#include <processthreadsapi.h>
#endif
#elif defined(__APPLE__)
#include <mach/mach_time.h> // For mach_absolute_time
#include <pthread.h>