X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fr3000a.h;h=0e21f518b040806423a01cacc6c65a197fc72dc5;hb=21597f53bda179a9f90d04e46f87b5a95994c882;hp=32538e584849a15938f4349c5112b3772f4b12f9;hpb=163249087400935f084080127990bc762e83319c;p=pcsx_rearmed.git diff --git a/libpcsxcore/r3000a.h b/libpcsxcore/r3000a.h index 32538e58..0e21f518 100644 --- a/libpcsxcore/r3000a.h +++ b/libpcsxcore/r3000a.h @@ -29,19 +29,26 @@ extern "C" { #include "psxcounters.h" #include "psxbios.h" +enum { + R3000ACPU_NOTIFY_CACHE_ISOLATED = 0, + R3000ACPU_NOTIFY_CACHE_UNISOLATED = 1, + R3000ACPU_NOTIFY_DMA3_EXE_LOAD = 2 +}; + typedef struct { int (*Init)(); void (*Reset)(); void (*Execute)(); /* executes up to a break */ void (*ExecuteBlock)(); /* executes up to a jump */ void (*Clear)(u32 Addr, u32 Size); + void (*Notify)(int note, void *data); + void (*ApplyConfig)(); void (*Shutdown)(); } R3000Acpu; extern R3000Acpu *psxCpu; extern R3000Acpu psxInt; extern R3000Acpu psxRec; -#define PSXREC typedef union { #if defined(__BIGENDIAN__) @@ -182,14 +189,24 @@ typedef struct { u32 cycle; u32 interrupt; struct { u32 sCycle, cycle; } intCycle[32]; + u32 gteBusyCycle; + u32 muldivBusyCycle; + // warning: changing anything in psxRegisters requires update of all + // asm in libpcsxcore/new_dynarec/, but this member can be replaced + u32 reserved[2]; } psxRegisters; +extern boolean writeok; + extern psxRegisters psxRegs; /* new_dynarec stuff */ extern u32 event_cycles[PSXINT_COUNT]; extern u32 next_interupt; +void lightrec_plugin_prepare_save_state(void); +void lightrec_plugin_prepare_load_state(void); + void new_dyna_before_save(void); void new_dyna_after_save(void); void new_dyna_freeze(void *f, int mode);