#define REG8IN16(ptr, offs) ((u8 *)ptr)[MEM_BE2(offs)]
// poll detection
-#define POLL_THRESHOLD 9 // cosmic carnage
+#define POLL_THRESHOLD 9 // Primal Rage
static struct {
u32 addr1, addr2, cycles;
idx = (idx+1) % PFIFO_SZ;
if (cpu != p->cpu) {
- if (CYCLES_GT(cycles, p->cycles+80)) {
+ if (CYCLES_GT(cycles, p->cycles+60)) { // ~180 sh2 cycles, Spiderman
// drop older fifo stores that may cause synchronisation problems.
p->a = -1;
} else if (p->a == a) {
}
#endif
-static NOINLINE void REGPARM(3) sh2_write8_sdram_sync(u32 a, u32 d, SH2 *sh2)
-{
- DRC_SAVE_SR(sh2);
- sh2_end_run(sh2, 32);
- DRC_RESTORE_SR(sh2);
- sh2_write8_sdram(a, d, sh2);
-}
-
-static void REGPARM(3) sh2_write8_sdram_wt(u32 a, u32 d, SH2 *sh2)
-{
- // xmen sync hack..
- if ((a << 8) >> 17) // ((a & 0x00ffffff) < 0x200)
- sh2_write8_sdram(a, d, sh2);
- else
- sh2_write8_sdram_sync(a, d, sh2);
-}
-
// write16
static void REGPARM(3) sh2_write16_unmapped(u32 a, u32 d, SH2 *sh2)
{
msh2_read16_map[0x06/2].addr = msh2_read16_map[0x26/2].addr =
msh2_read32_map[0x06/2].addr = msh2_read32_map[0x26/2].addr = MAP_MEMORY(Pico32xMem->sdram);
msh2_write8_map[0x06/2] = msh2_write8_map[0x26/2] = sh2_write8_sdram;
- msh2_write8_map[0x26/2] = sh2_write8_sdram_wt;
msh2_write16_map[0x06/2] = msh2_write16_map[0x26/2] = sh2_write16_sdram;
msh2_write32_map[0x06/2] = msh2_write32_map[0x26/2] = sh2_write32_sdram;
\r
SekFinishIdleDet();\r
\r
+ if (PicoIn.opt & POPT_EN_32X)\r
+ PicoReset32x();\r
+\r
if (PicoIn.AHW & PAHW_MCD) {\r
PicoResetMCD();\r
return 0;\r
if (!(PicoIn.opt & POPT_DIS_IDLE_DET))\r
SekInitIdleDet();\r
\r
- if (PicoIn.opt & POPT_EN_32X)\r
- PicoReset32x();\r
-\r
// reset sram state; enable sram access by default if it doesn't overlap with ROM\r
Pico.m.sram_reg = 0;\r
if ((Pico.sv.flags & SRF_EEPROM) || Pico.romsize <= Pico.sv.start)\r