notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libretro: update for newer spu code
[pcsx_rearmed.git]
/
libpcsxcore
/
new_dynarec
/
emu_if.c
diff --git
a/libpcsxcore/new_dynarec/emu_if.c
b/libpcsxcore/new_dynarec/emu_if.c
index
85ec174
..
89e2bd6
100644
(file)
--- a/
libpcsxcore/new_dynarec/emu_if.c
+++ b/
libpcsxcore/new_dynarec/emu_if.c
@@
-25,6
+25,7
@@
#define evprintf(...)
char invalid_code[0x100000];
#define evprintf(...)
char invalid_code[0x100000];
+static u32 scratch_buf[8*8*2] __attribute__((aligned(64)));
u32 event_cycles[PSXINT_COUNT];
static void schedule_timeslice(void)
u32 event_cycles[PSXINT_COUNT];
static void schedule_timeslice(void)
@@
-59,6
+60,7
@@
static irq_func * const irq_funcs[] = {
[PSXINT_CDRDMA] = cdrDmaInterrupt,
[PSXINT_CDRLID] = cdrLidSeekInterrupt,
[PSXINT_CDRPLAY] = cdrPlayInterrupt,
[PSXINT_CDRDMA] = cdrDmaInterrupt,
[PSXINT_CDRLID] = cdrLidSeekInterrupt,
[PSXINT_CDRPLAY] = cdrPlayInterrupt,
+ [PSXINT_SPU_UPDATE] = spuUpdate,
[PSXINT_RCNT] = psxRcntUpdate,
};
[PSXINT_RCNT] = psxRcntUpdate,
};
@@
-259,6
+261,7
@@
static int ari64_init()
{
extern void (*psxCP2[64])();
extern void psxNULL();
{
extern void (*psxCP2[64])();
extern void psxNULL();
+ extern u_char *out;
size_t i;
new_dynarec_init();
size_t i;
new_dynarec_init();
@@
-268,9
+271,9
@@
static int ari64_init()
if (psxCP2[i] != psxNULL)
gte_handlers[i] = psxCP2[i];
if (psxCP2[i] != psxNULL)
gte_handlers[i] = psxCP2[i];
-#if !defined(DRC_DBG)
-#ifdef __arm__
+#if defined(__arm__) && !defined(DRC_DBG)
gte_handlers[0x06] = gteNCLIP_arm;
gte_handlers[0x06] = gteNCLIP_arm;
+#ifdef HAVE_ARMV5
gte_handlers_nf[0x01] = gteRTPS_nf_arm;
gte_handlers_nf[0x30] = gteRTPT_nf_arm;
#endif
gte_handlers_nf[0x01] = gteRTPS_nf_arm;
gte_handlers_nf[0x30] = gteRTPT_nf_arm;
#endif
@@
-286,6
+289,11
@@
static int ari64_init()
#endif
psxH_ptr = psxH;
zeromem_ptr = zero_mem;
#endif
psxH_ptr = psxH;
zeromem_ptr = zero_mem;
+ scratch_buf_ptr = scratch_buf;
+
+ SysPrintf("Mapped (RAM/scrp/ROM/LUTs/TC):\n");
+ SysPrintf("%08x/%08x/%08x/%08x/%08x\n",
+ psxM, psxH, psxR, mem_rtab, out);
return 0;
}
return 0;
}
@@
-299,7
+307,6
@@
static void ari64_reset()
pending_exception = 1;
}
pending_exception = 1;
}
-#ifdef __arm__
// execute until predefined leave points
// (HLE softcall exit and BIOS fastboot end)
static void ari64_execute_until()
// execute until predefined leave points
// (HLE softcall exit and BIOS fastboot end)
static void ari64_execute_until()
@@
-322,7
+329,6
@@
static void ari64_execute()
evprintf("drc left @%08x\n", psxRegs.pc);
}
}
evprintf("drc left @%08x\n", psxRegs.pc);
}
}
-#endif
static void ari64_clear(u32 addr, u32 size)
{
static void ari64_clear(u32 addr, u32 size)
{
@@
-346,6
+352,7
@@
static void ari64_clear(u32 addr, u32 size)
static void ari64_shutdown()
{
new_dynarec_cleanup();
static void ari64_shutdown()
{
new_dynarec_cleanup();
+ new_dyna_pcsx_mem_shutdown();
}
extern void intExecute();
}
extern void intExecute();
@@
-360,7
+367,7
@@
extern void intExecuteBlockT();
R3000Acpu psxRec = {
ari64_init,
ari64_reset,
R3000Acpu psxRec = {
ari64_init,
ari64_reset,
-#if
defined(__arm__)
+#if
ndef DRC_DISABLE
ari64_execute,
ari64_execute_until,
#else
ari64_execute,
ari64_execute_until,
#else
@@
-377,7
+384,7
@@
void do_insn_trace() {}
void do_insn_cmp() {}
#endif
void do_insn_cmp() {}
#endif
-#if
defined(__x86_64__) || defined(__i386__)
+#if
def DRC_DISABLE
unsigned int address;
int pending_exception, stop;
unsigned int next_interupt;
unsigned int address;
int pending_exception, stop;
unsigned int next_interupt;
@@
-387,7
+394,10
@@
int new_dynarec_hacks;
void *psxH_ptr;
void *zeromem_ptr;
u8 zero_mem[0x1000];
void *psxH_ptr;
void *zeromem_ptr;
u8 zero_mem[0x1000];
-void new_dynarec_init() {}
+u_char *out;
+void *mem_rtab;
+void *scratch_buf_ptr;
+void new_dynarec_init() { (void)ari64_execute; }
void new_dyna_start() {}
void new_dynarec_cleanup() {}
void new_dynarec_clear_full() {}
void new_dyna_start() {}
void new_dynarec_cleanup() {}
void new_dynarec_clear_full() {}
@@
-396,6
+406,7
@@
void invalidate_block(unsigned int block) {}
void new_dyna_pcsx_mem_init(void) {}
void new_dyna_pcsx_mem_reset(void) {}
void new_dyna_pcsx_mem_load_state(void) {}
void new_dyna_pcsx_mem_init(void) {}
void new_dyna_pcsx_mem_reset(void) {}
void new_dyna_pcsx_mem_load_state(void) {}
+void new_dyna_pcsx_mem_shutdown(void) {}
#endif
#ifdef DRC_DBG
#endif
#ifdef DRC_DBG