2023-01-11 21:31:36 +00:00
|
|
|
#pragma once
|
2020-06-12 15:35:14 +00:00
|
|
|
//#define STRICT_MODE
|
|
|
|
#ifndef STRICT_MODE
|
2019-04-15 16:02:34 +00:00
|
|
|
#define FAST_MMU
|
|
|
|
#define USE_WINCE_HACK
|
2020-06-12 15:35:14 +00:00
|
|
|
#endif
|
2013-12-19 17:10:14 +00:00
|
|
|
|
2022-12-06 19:51:45 +00:00
|
|
|
#define DC_PLATFORM_DREAMCAST 0
|
|
|
|
#define DC_PLATFORM_DEV_UNIT 1
|
|
|
|
#define DC_PLATFORM_NAOMI 2
|
|
|
|
#define DC_PLATFORM_NAOMI2 3
|
|
|
|
#define DC_PLATFORM_ATOMISWAVE 4
|
2023-07-01 10:47:02 +00:00
|
|
|
#define DC_PLATFORM_SYSTEMSP 5
|
2013-12-19 17:10:14 +00:00
|
|
|
|
|
|
|
//HOST_CPU
|
2013-12-24 00:56:44 +00:00
|
|
|
#define CPU_X86 0x20000001
|
|
|
|
#define CPU_ARM 0x20000002
|
|
|
|
#define CPU_MIPS 0x20000003
|
2014-12-11 13:02:10 +00:00
|
|
|
#define CPU_X64 0x20000004
|
2015-07-29 02:58:41 +00:00
|
|
|
#define CPU_GENERIC 0x20000005 //used for pnacl, emscripten, etc
|
2019-04-12 20:59:39 +00:00
|
|
|
#define CPU_PPC 0x20000006
|
|
|
|
#define CPU_PPC64 0x20000007
|
2019-05-12 20:02:57 +00:00
|
|
|
#define CPU_ARM64 0x20000008
|
2013-12-19 17:10:14 +00:00
|
|
|
|
2015-07-25 06:39:35 +00:00
|
|
|
//FEAT_SHREC, FEAT_AREC, FEAT_DSPREC
|
2015-07-25 06:16:53 +00:00
|
|
|
#define DYNAREC_NONE 0x40000001
|
|
|
|
#define DYNAREC_JIT 0x40000002
|
|
|
|
|
|
|
|
//automatic
|
|
|
|
|
2020-05-05 16:59:40 +00:00
|
|
|
#if defined(__x86_64__) || defined(_M_X64)
|
2015-07-25 06:16:53 +00:00
|
|
|
#define HOST_CPU CPU_X64
|
2020-05-05 16:59:40 +00:00
|
|
|
#elif defined(__i386__) || defined(_M_IX86)
|
|
|
|
#define HOST_CPU CPU_X86
|
|
|
|
#elif defined(__arm__) || defined (_M_ARM)
|
2013-12-19 17:10:14 +00:00
|
|
|
#define HOST_CPU CPU_ARM
|
2020-05-05 16:59:40 +00:00
|
|
|
#elif defined(__aarch64__) || defined(_M_ARM64)
|
2019-01-07 20:50:46 +00:00
|
|
|
#define HOST_CPU CPU_ARM64
|
2020-05-05 16:59:40 +00:00
|
|
|
#elif defined(__mips__)
|
2014-03-05 10:24:03 +00:00
|
|
|
#define HOST_CPU CPU_MIPS
|
2013-12-19 17:10:14 +00:00
|
|
|
#else
|
2020-05-05 16:59:40 +00:00
|
|
|
#define HOST_CPU CPU_GENERIC
|
|
|
|
#endif
|
|
|
|
|
2015-07-25 06:16:53 +00:00
|
|
|
#if defined(TARGET_NO_REC)
|
|
|
|
#define FEAT_SHREC DYNAREC_NONE
|
|
|
|
#define FEAT_AREC DYNAREC_NONE
|
2015-07-25 06:39:35 +00:00
|
|
|
#define FEAT_DSPREC DYNAREC_NONE
|
2015-07-25 06:16:53 +00:00
|
|
|
#endif
|
|
|
|
|
2015-07-25 07:08:20 +00:00
|
|
|
#if defined(TARGET_NO_AREC)
|
|
|
|
#define FEAT_SHREC DYNAREC_JIT
|
|
|
|
#define FEAT_AREC DYNAREC_NONE
|
|
|
|
#define FEAT_DSPREC DYNAREC_NONE
|
|
|
|
#endif
|
|
|
|
|
2021-07-13 16:51:40 +00:00
|
|
|
#ifdef __SWITCH__
|
|
|
|
#define FEAT_NO_RWX_PAGES
|
|
|
|
#endif
|
|
|
|
|
2015-07-25 06:16:53 +00:00
|
|
|
//defaults
|
2015-08-09 04:34:02 +00:00
|
|
|
|
2015-07-25 06:16:53 +00:00
|
|
|
#ifndef FEAT_SHREC
|
2021-08-24 18:49:53 +00:00
|
|
|
#if HOST_CPU == CPU_ARM || HOST_CPU == CPU_ARM64 || HOST_CPU == CPU_X86 || HOST_CPU == CPU_X64
|
2020-05-05 16:59:40 +00:00
|
|
|
#define FEAT_SHREC DYNAREC_JIT
|
2021-08-24 18:49:53 +00:00
|
|
|
#else
|
|
|
|
#define FEAT_SHREC DYNAREC_NONE
|
2020-05-05 16:59:40 +00:00
|
|
|
#endif
|
2015-07-25 06:16:53 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef FEAT_AREC
|
2020-02-29 19:58:47 +00:00
|
|
|
#if HOST_CPU == CPU_ARM || HOST_CPU == CPU_ARM64 || HOST_CPU == CPU_X64
|
2015-07-25 06:16:53 +00:00
|
|
|
#define FEAT_AREC DYNAREC_JIT
|
|
|
|
#else
|
|
|
|
#define FEAT_AREC DYNAREC_NONE
|
2014-03-24 22:12:30 +00:00
|
|
|
#endif
|
|
|
|
#endif
|
2015-07-25 06:16:53 +00:00
|
|
|
|
2015-07-25 06:39:35 +00:00
|
|
|
#ifndef FEAT_DSPREC
|
2021-08-24 18:49:53 +00:00
|
|
|
#if HOST_CPU == CPU_ARM || HOST_CPU == CPU_ARM64 || HOST_CPU == CPU_X86 || HOST_CPU == CPU_X64
|
2015-07-25 06:39:35 +00:00
|
|
|
#define FEAT_DSPREC DYNAREC_JIT
|
|
|
|
#else
|
|
|
|
#define FEAT_DSPREC DYNAREC_NONE
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
2019-05-12 20:02:57 +00:00
|
|
|
// Some restrictions on FEAT_NO_RWX_PAGES
|
|
|
|
#if defined(FEAT_NO_RWX_PAGES) && FEAT_SHREC == DYNAREC_JIT
|
|
|
|
#if HOST_CPU != CPU_X64 && HOST_CPU != CPU_ARM64
|
|
|
|
#error "FEAT_NO_RWX_PAGES Only implemented for X64 and ARMv8"
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
2021-11-19 22:18:45 +00:00
|
|
|
#ifdef _WIN32
|
|
|
|
#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP)
|
|
|
|
#define TARGET_UWP
|
|
|
|
#endif
|
2022-12-13 00:31:12 +00:00
|
|
|
#ifdef HAVE_D3D11
|
|
|
|
#define USE_DX11
|
|
|
|
#endif
|
2021-11-19 22:18:45 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#if !defined(LIBRETRO) && !defined(TARGET_NO_EXCEPTIONS)
|
|
|
|
#define USE_GGPO
|
|
|
|
#endif
|
2019-04-12 20:59:39 +00:00
|
|
|
|
2023-04-15 13:44:42 +00:00
|
|
|
#if !defined(__ANDROID__) && !defined(TARGET_IPHONE) && !defined(TARGET_UWP) \
|
|
|
|
&& !defined(__SWITCH__) && !defined(LIBRETRO) && !defined(__NetBSD__) && !defined(__OpenBSD__)
|
2023-01-11 21:31:36 +00:00
|
|
|
#define NAOMI_MULTIBOARD
|
|
|
|
#endif
|
|
|
|
|
2019-03-28 10:41:48 +00:00
|
|
|
// TARGET PLATFORM
|
2022-12-06 19:51:45 +00:00
|
|
|
#define GD_CLOCK 33868800 //GDROM XTAL -- 768fs
|
|
|
|
#define AICA_CORE_CLOCK (GD_CLOCK * 4 / 3) //[45158400] GD->PLL 3:4 -> AICA CORE -- 1024fs
|
|
|
|
#define AICA_ARM_CLOCK (AICA_CORE_CLOCK / 2) //[22579200] AICA CORE -> PLL 2:1 -> ARM
|
|
|
|
#define SH4_MAIN_CLOCK (200 * 1000 * 1000) //[200000000] XTal(13.5) -> PLL (33.3) -> PLL 1:6 (200)
|
|
|
|
#define G2_BUS_CLOCK (25 * 1000 * 1000) //[25000000] from Holly, from SH4_RAM_CLOCK w/ 2 2:1 plls
|
2019-03-28 10:41:48 +00:00
|
|
|
|
2021-03-21 17:00:01 +00:00
|
|
|
#if defined(GLES) && !defined(GLES3) && !defined(GLES2)
|
2019-05-15 10:54:03 +00:00
|
|
|
// Only use GL ES 2.0 API functions
|
|
|
|
#define GLES2
|
|
|
|
#endif
|