X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Flightrec%2Fplugin.c;h=7f500fd275f8497f83b488c5ffc7e35bb405212b;hb=3bf2e5ab375a0e453b64b03296c1bfaa115ee95d;hp=c8e6bf7fc19b40fa640d77093abc1002377f36be;hpb=d1c67a8c131d618949fc3dedabf393ebeb7d195b;p=pcsx_rearmed.git diff --git a/libpcsxcore/lightrec/plugin.c b/libpcsxcore/lightrec/plugin.c index c8e6bf7f..7f500fd2 100644 --- a/libpcsxcore/lightrec/plugin.c +++ b/libpcsxcore/lightrec/plugin.c @@ -53,6 +53,14 @@ # define unlikely(x) (x) #endif +#ifndef LIGHTREC_PROG_NAME +# ifdef __linux__ +# define LIGHTREC_PROG_NAME "/proc/self/exe" +# else +# define LIGHTREC_PROG_NAME "retroarch.exe" +# endif +#endif + psxRegisters psxRegs; Rcnt rcnts[4]; @@ -60,14 +68,14 @@ void* code_buffer; static struct lightrec_state *lightrec_state; -static char *name = "retroarch.exe"; - static bool use_lightrec_interpreter; static bool use_pcsx_interpreter; static bool block_stepping; 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, @@ -417,29 +425,11 @@ static bool lightrec_can_hw_direct(u32 kaddr, bool is_write, u8 size) } } -#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) @@ -474,7 +464,7 @@ static int lightrec_plugin_init(void) use_lightrec_interpreter = !!getenv("LIGHTREC_INTERPRETER"); - lightrec_state = lightrec_init(name, + lightrec_state = lightrec_init(LIGHTREC_PROG_NAME, lightrec_map, ARRAY_SIZE(lightrec_map), &lightrec_ops);