LIGHTREC_CUSTOM_MAP ?= 0
LIGHTREC_CUSTOM_MAP_OBJ ?= libpcsxcore/lightrec/mem.o
LIGHTREC_THREADED_COMPILER ?= 0
+LIGHTREC_CODE_INV ?= 0
CFLAGS += -DLIGHTREC_CUSTOM_MAP=$(LIGHTREC_CUSTOM_MAP) \
+ -DLIGHTREC_CODE_INV=$(LIGHTREC_CODE_INV) \
-DLIGHTREC_ENABLE_THREADED_COMPILER=$(LIGHTREC_THREADED_COMPILER)
ifeq ($(LIGHTREC_CUSTOM_MAP),1)
LDLIBS += -lrt
SOURCES_C += $(DYNAREC_DIR)/emu_if.c
ifeq ($(HAVE_LIGHTREC),1)
- COREFLAGS += -DLIGHTREC -DLIGHTREC_STATIC
+ COREFLAGS += -DLIGHTREC -DLIGHTREC_STATIC -DLIGHTREC_CODE_INV=0
EXTRA_INCLUDES += $(DEPS_DIR)/lightning/include \
$(DEPS_DIR)/lightrec \
$(DEPS_DIR)/lightrec/tlsf \
#include "mem.h"
+void wiiu_clear_cache(void *start, void *end);
+
static void* wiiu_mmap(uint32_t requested_va, size_t length, void* backing_mem) {
if (length < OS_PAGE_SIZE) length = OS_PAGE_SIZE;
free(psx_scratch);
free(psx_bios);
}
+
+void lightrec_code_inv(void *ptr, uint32_t len)
+{
+ wiiu_clear_cache(ptr, (void *)((uintptr_t)ptr + len));
+}
extern u32 lightrec_hacks;
+extern void lightrec_code_inv(void *ptr, uint32_t len);
+
enum my_cp2_opcodes {
OP_CP2_RTPS = 0x01,
OP_CP2_NCLIP = 0x06,
}
}
-#if defined(HW_DOL) || defined(HW_RVL)
-static void lightrec_code_inv(void *ptr, uint32_t len)
-{
- extern void DCFlushRange(void *ptr, u32 len);
- extern void ICInvalidateRange(void *ptr, u32 len);
-
- DCFlushRange(ptr, len);
- ICInvalidateRange(ptr, len);
-}
-#elif defined(HW_WUP)
-static void lightrec_code_inv(void *ptr, uint32_t len)
-{
- wiiu_clear_cache(ptr, (void *)((uintptr_t)ptr + len));
-}
-#endif
-
static const struct lightrec_ops lightrec_ops = {
.cop2_op = cop2_op,
.enable_ram = lightrec_enable_ram,
.hw_direct = lightrec_can_hw_direct,
-#if defined(HW_DOL) || defined(HW_RVL) || defined(HW_WUP)
- .code_inv = lightrec_code_inv,
-#endif
+ .code_inv = LIGHTREC_CODE_INV ? lightrec_code_inv : NULL,
};
static int lightrec_plugin_init(void)