diff --git a/Makefile.libretro b/Makefile.libretro index 0ec8ef4..962d123 100644 --- a/Makefile.libretro +++ b/Makefile.libretro @@ -522,7 +522,7 @@ else CC = gcc 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 - PLATFORM_DEFINES := -DHAVE_ZLIB -DMAXROMSIZE=33554432 + PLATFORM_DEFINES := -DHAVE_ZLIB -DMAXROMSIZE=33554432 -DENABLE_SUB_68K_ADDRESS_ERROR_EXCEPTIONS endif diff --git a/builds/genesis_plus_gx_libretro.dll b/builds/genesis_plus_gx_libretro.dll index 9bc4bd5..72b6c31 100644 Binary files a/builds/genesis_plus_gx_libretro.dll and b/builds/genesis_plus_gx_libretro.dll differ diff --git a/core/m68k/s68kconf.h b/core/m68k/s68kconf.h index 4bc5454..d67a0d0 100644 --- a/core/m68k/s68kconf.h +++ b/core/m68k/s68kconf.h @@ -62,7 +62,11 @@ * access a word or longword at an odd address. * 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 +#endif /* If ON and previous option is also ON, address error exceptions will also be checked when fetching instructions. Disabling this can help diff --git a/sdl/Makefile.sdl1 b/sdl/Makefile.sdl1 index f83f52a..a74854e 100644 --- a/sdl/Makefile.sdl1 +++ b/sdl/Makefile.sdl1 @@ -26,6 +26,7 @@ # -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 # -DHOOK_CPU : enable CPU hooks +# -DENABLE_SUB_68K_ADDRESS_ERROR_EXCEPTIONS : enable address error exceptions emulation for SUB-CPU NAME = gen_sdl @@ -34,7 +35,7 @@ CFLAGS = `sdl-config --cflags` -march=native -O6 -fomit-frame-pointer -Wall - #-g -ggdb -pg #-fomit-frame-pointer #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) DEFINES += -DHAVE_ALLOCA_H diff --git a/sdl/Makefile.sdl2 b/sdl/Makefile.sdl2 index 8ecbfaf..1f27f34 100644 --- a/sdl/Makefile.sdl2 +++ b/sdl/Makefile.sdl2 @@ -26,6 +26,7 @@ # -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 # -DHOOK_CPU : enable CPU hooks +# -DENABLE_SUB_68K_ADDRESS_ERROR_EXCEPTIONS : enable address error exceptions emulation for SUB-CPU NAME = gen_sdl2 @@ -34,7 +35,7 @@ CFLAGS = `sdl2-config --cflags` -march=native -O6 -fomit-frame-pointer -Wall #-g -ggdb -pg #-fomit-frame-pointer #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) DEFINES += -DHAVE_ALLOCA_H