GPU: Timing for CPU->VRAM transfers

Fixes Monkey Hero, probably others.
This commit is contained in:
Connor McLaughlin
2020-03-01 17:06:38 +10:00
parent 6b9c6d3750
commit b0b1fd8f1a
5 changed files with 56 additions and 26 deletions

View File

@ -302,7 +302,7 @@ protected:
void UpdateSliceTicks();
// Updates dynamic bits in GPUSTAT (ready to send VRAM/ready to receive DMA)
void UpdateGPUSTAT();
void UpdateDMARequest();
// Ticks for hblank/vblank.
void Execute(TickCount ticks);
@ -560,7 +560,12 @@ protected:
} m_crtc_state = {};
State m_state = State::Idle;
TickCount m_blitter_ticks = 0;
u32 m_command_total_words = 0;
/// GPUREAD value for non-VRAM-reads.
u32 m_GPUREAD_latch = 0;
struct VRAMTransfer
{
u16 x;
@ -571,9 +576,6 @@ protected:
u16 row;
} m_vram_transfer = {};
/// GPUREAD value for non-VRAM-reads.
u32 m_GPUREAD_latch = 0;
std::vector<u32> m_GP0_buffer;
struct Stats