NES Timing Update

Update per Visual NES inspection of $2001 writes

Correctly fixes Micro Machines while maintaining Battletoads 2p warps sync
This commit is contained in:
alyosha-tas 2017-03-21 19:01:30 -04:00 committed by GitHub
parent e484a69950
commit 9d93fe404c
3 changed files with 12 additions and 10 deletions

View File

@ -306,13 +306,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
ppur.status.cycle++;
is_even_cycle = !is_even_cycle;
//might not actually run a cpu cycle if there are none to be run right now
nes.RunCpuOne();
if (install_2001 > 0)
{
install_2001--;
@ -323,6 +316,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
ppur.status.cycle++;
is_even_cycle = !is_even_cycle;
//might not actually run a cpu cycle if there are none to be run right now
nes.RunCpuOne();
if (Reg2002_vblank_active_pending)
{
//if (Reg2002_vblank_active_pending)

View File

@ -346,7 +346,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
//printf("%04x:$%02x, %d\n",A,V,scanline);
reg_2001.Value = value;
install_2001 = 1;
install_2001 = 2;
}
byte read_2001() {return ppu_open_bus; }
byte peek_2001() {return ppu_open_bus; }

View File

@ -754,11 +754,15 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
// this sequence is tuned to pass 10-even_odd_timing.nes
runppu(1);
runppu(1);
runppu(1);
runppu(1);
bool evenOddDestiny = PPUON;
runppu(1);
runppu(1);
// After memory access 170, the PPU simply rests for 4 cycles (or the
// equivelant of half a memory access cycle) before repeating the whole