diff --git a/Assets/dll/ares64.wbx.zst b/Assets/dll/ares64.wbx.zst deleted file mode 100644 index 2cb630ee7f..0000000000 Binary files a/Assets/dll/ares64.wbx.zst and /dev/null differ diff --git a/Assets/dll/ares64_interpreter.wbx.zst b/Assets/dll/ares64_interpreter.wbx.zst new file mode 100644 index 0000000000..58a0466245 Binary files /dev/null and b/Assets/dll/ares64_interpreter.wbx.zst differ diff --git a/Assets/dll/ares64_recompiler.wbx.zst b/Assets/dll/ares64_recompiler.wbx.zst new file mode 100644 index 0000000000..8a6195fd32 Binary files /dev/null and b/Assets/dll/ares64_recompiler.wbx.zst differ diff --git a/waterbox/ares64/ares/ares/n64/accuracy.hpp b/waterbox/ares64/ares/ares/n64/accuracy.hpp index 007ecd4641..9f1e700d14 100644 --- a/waterbox/ares64/ares/ares/n64/accuracy.hpp +++ b/waterbox/ares64/ares/ares/n64/accuracy.hpp @@ -3,7 +3,7 @@ struct Accuracy { static constexpr bool Reference = 0; struct CPU { - static constexpr bool Interpreter = 0 | Reference | !recompiler::generic::supported; + static constexpr bool Interpreter = 0 | Reference | !recompiler::generic::supported | WANT_CPU_INTERPRETER; static constexpr bool Recompiler = !Interpreter; //exceptions when the CPU accesses unaligned memory addresses diff --git a/waterbox/ares64/Makefile b/waterbox/ares64/common.mak similarity index 87% rename from waterbox/ares64/Makefile rename to waterbox/ares64/common.mak index 19696ec6a1..8ca5a63e37 100644 --- a/waterbox/ares64/Makefile +++ b/waterbox/ares64/common.mak @@ -16,9 +16,14 @@ CXXFLAGS := -std=gnu++17 -march=x86-64-v2 \ -Wno-mismatched-tags -Wno-missing-braces -Wno-overloaded-virtual \ -Wno-unused-private-field -Wno-sometimes-uninitialized \ -fno-strict-aliasing -fwrapv \ - -DSLJIT_HAVE_CONFIG_PRE=1 -DSLJIT_HAVE_CONFIG_POST=1 + -DSLJIT_HAVE_CONFIG_PRE=1 -DSLJIT_HAVE_CONFIG_POST=1 \ + -DWANT_CPU_INTERPRETER=$(WANT_CPU_INTERPRETER) -TARGET = ares64.wbx +ifneq (0,$(WANT_CPU_INTERPRETER)) +TARGET = ares64_interpreter.wbx +else +TARGET = ares64_recompiler.wbx +endif SRCS_NALL = \ $(NALL_PATH)/nall.cpp @@ -57,6 +62,4 @@ SRCS_SLJIT = \ $(SLJIT_PATH)/sljitLir.c \ $(THIRDPARTY_PATH)/sljitAllocator.cpp -SRCS = $(SRCS_NALL) $(SRCS_PROCESSORS) $(SRCS_ARES) $(SRCS_N64) $(SRCS_ANGRYLION) $(SRCS_SLJIT) BizInterface.cpp - -include ../common.mak +SRCS = $(SRCS_NALL) $(SRCS_PROCESSORS) $(SRCS_ARES) $(SRCS_N64) $(SRCS_ANGRYLION) $(SRCS_SLJIT) $(ROOT_DIR)/BizInterface.cpp diff --git a/waterbox/ares64/interpreter.mak b/waterbox/ares64/interpreter.mak new file mode 100644 index 0000000000..d07b041c55 --- /dev/null +++ b/waterbox/ares64/interpreter.mak @@ -0,0 +1,4 @@ +WANT_CPU_INTERPRETER := 1 +include common.mak +OUT_DIR := $(realpath .)/obj/interpreter +include ../common.mak diff --git a/waterbox/ares64/make-both.sh b/waterbox/ares64/make-both.sh new file mode 100755 index 0000000000..5a2c7e6b2a --- /dev/null +++ b/waterbox/ares64/make-both.sh @@ -0,0 +1,5 @@ +#!/bin/sh +set -e + +make -f interpreter.mak $1 -j +make -f recompiler.mak $1 -j diff --git a/waterbox/ares64/recompiler.mak b/waterbox/ares64/recompiler.mak new file mode 100644 index 0000000000..7a93898d10 --- /dev/null +++ b/waterbox/ares64/recompiler.mak @@ -0,0 +1,4 @@ +WANT_CPU_INTERPRETER := 0 +include common.mak +OUT_DIR := $(realpath .)/obj/recompiler +include ../common.mak diff --git a/waterbox/make-all-cores.sh b/waterbox/make-all-cores.sh index 22f9e77120..ac94da3e21 100755 --- a/waterbox/make-all-cores.sh +++ b/waterbox/make-all-cores.sh @@ -3,7 +3,7 @@ set -e cd emulibc && make -f Makefile $1 -j && cd - cd libco && make -f Makefile $1 -j && cd - -cd ares64 && make -f Makefile $1 -j && cd - +cd ares64 && ./make-both.sh $1 && cd - cd bsnescore && make -f Makefile $1 -j && cd - cd gpgx && make -f Makefile $1 -j && cd - cd libsnes && make -f Makefile $1 -j && cd -