[Core/CD] added optional (platform-specific) SUB-CPU address error exceptions emulation (currently activated for libretro & SDL Windows ports only)

This commit is contained in:
ekeeke 2021-10-09 18:53:59 +02:00
parent 9254c331d2
commit c6d1e5ac38
5 changed files with 9 additions and 3 deletions

View File

@ -522,7 +522,7 @@ else
CC = gcc CC = gcc
SHARED := -shared -static-libgcc -static-libstdc++ -Wl,--version-script=$(CORE_DIR)/libretro/link.T -Wl,--no-undefined SHARED := -shared -static-libgcc -static-libstdc++ -Wl,--version-script=$(CORE_DIR)/libretro/link.T -Wl,--no-undefined
ENDIANNESS_DEFINES := -DLSB_FIRST -DBYTE_ORDER=LITTLE_ENDIAN ENDIANNESS_DEFINES := -DLSB_FIRST -DBYTE_ORDER=LITTLE_ENDIAN
PLATFORM_DEFINES := -DHAVE_ZLIB -DMAXROMSIZE=33554432 PLATFORM_DEFINES := -DHAVE_ZLIB -DMAXROMSIZE=33554432 -DENABLE_SUB_68K_ADDRESS_ERROR_EXCEPTIONS
endif endif

Binary file not shown.

View File

@ -62,7 +62,11 @@
* access a word or longword at an odd address. * access a word or longword at an odd address.
* NOTE: This is only emulated properly for 68000 mode. * NOTE: This is only emulated properly for 68000 mode.
*/ */
#ifdef ENABLE_SUB_68K_ADDRESS_ERROR_EXCEPTIONS
#define M68K_EMULATE_ADDRESS_ERROR OPT_ON
#else
#define M68K_EMULATE_ADDRESS_ERROR OPT_OFF #define M68K_EMULATE_ADDRESS_ERROR OPT_OFF
#endif
/* If ON and previous option is also ON, address error exceptions will /* If ON and previous option is also ON, address error exceptions will
also be checked when fetching instructions. Disabling this can help also be checked when fetching instructions. Disabling this can help

View File

@ -26,6 +26,7 @@
# -DHAVE_YM3438_CORE : enable (configurable) support for Nuked cycle-accurate YM2612/YM3438 core # -DHAVE_YM3438_CORE : enable (configurable) support for Nuked cycle-accurate YM2612/YM3438 core
# -DHAVE_OPLL_CORE : enable (configurable) support for Nuked cycle-accurate YM2413 core # -DHAVE_OPLL_CORE : enable (configurable) support for Nuked cycle-accurate YM2413 core
# -DHOOK_CPU : enable CPU hooks # -DHOOK_CPU : enable CPU hooks
# -DENABLE_SUB_68K_ADDRESS_ERROR_EXCEPTIONS : enable address error exceptions emulation for SUB-CPU
NAME = gen_sdl NAME = gen_sdl
@ -34,7 +35,7 @@ CFLAGS = `sdl-config --cflags` -march=native -O6 -fomit-frame-pointer -Wall -
#-g -ggdb -pg #-g -ggdb -pg
#-fomit-frame-pointer #-fomit-frame-pointer
#LDFLAGS = -pg #LDFLAGS = -pg
DEFINES = -DLSB_FIRST -DUSE_16BPP_RENDERING -DUSE_LIBTREMOR -DUSE_LIBCHDR -DMAXROMSIZE=33554432 -DHAVE_YM3438_CORE -DHAVE_OPLL_CORE DEFINES = -DLSB_FIRST -DUSE_16BPP_RENDERING -DUSE_LIBTREMOR -DUSE_LIBCHDR -DMAXROMSIZE=33554432 -DHAVE_YM3438_CORE -DHAVE_OPLL_CORE -DENABLE_SUB_68K_ADDRESS_ERROR_EXCEPTIONS
ifneq ($(OS),Windows_NT) ifneq ($(OS),Windows_NT)
DEFINES += -DHAVE_ALLOCA_H DEFINES += -DHAVE_ALLOCA_H

View File

@ -26,6 +26,7 @@
# -DHAVE_YM3438_CORE : enable (configurable) support for Nuked cycle-accurate YM2612/YM3438 core # -DHAVE_YM3438_CORE : enable (configurable) support for Nuked cycle-accurate YM2612/YM3438 core
# -DHAVE_OPLL_CORE : enable (configurable) support for Nuked cycle-accurate YM2413 core # -DHAVE_OPLL_CORE : enable (configurable) support for Nuked cycle-accurate YM2413 core
# -DHOOK_CPU : enable CPU hooks # -DHOOK_CPU : enable CPU hooks
# -DENABLE_SUB_68K_ADDRESS_ERROR_EXCEPTIONS : enable address error exceptions emulation for SUB-CPU
NAME = gen_sdl2 NAME = gen_sdl2
@ -34,7 +35,7 @@ CFLAGS = `sdl2-config --cflags` -march=native -O6 -fomit-frame-pointer -Wall
#-g -ggdb -pg #-g -ggdb -pg
#-fomit-frame-pointer #-fomit-frame-pointer
#LDFLAGS = -pg #LDFLAGS = -pg
DEFINES = -DLSB_FIRST -DUSE_16BPP_RENDERING -DUSE_LIBTREMOR -DUSE_LIBCHDR -DMAXROMSIZE=33554432 -DHAVE_YM3438_CORE -DHAVE_OPLL_CORE DEFINES = -DLSB_FIRST -DUSE_16BPP_RENDERING -DUSE_LIBTREMOR -DUSE_LIBCHDR -DMAXROMSIZE=33554432 -DHAVE_YM3438_CORE -DHAVE_OPLL_CORE -DENABLE_SUB_68K_ADDRESS_ERROR_EXCEPTIONS
ifneq ($(OS),Windows_NT) ifneq ($(OS),Windows_NT)
DEFINES += -DHAVE_ALLOCA_H DEFINES += -DHAVE_ALLOCA_H