diff options
| author | Tillmann Karras <tilkax@gmail.com> | 2024-11-16 16:08:54 +0000 |
|---|---|---|
| committer | Tillmann Karras <tilkax@gmail.com> | 2025-05-05 21:18:37 +0100 |
| commit | 6f25e20c6a0c5b4027fffe2bea0116728018e7df (patch) | |
| tree | 8b2d53116f2fe220829f589ac2a5e36c0eb4b20a /Source/Core/VideoCommon/CommandProcessor.h | |
| parent | d2db9d95906de73d704bd0f32bd1ee79f4a442f6 (diff) | |
VideoCommon: reset some CP registers during PI_FIFO_RESET
This fixes the shutdown error in SpongeBob Globs of Doom.
Diffstat (limited to 'Source/Core/VideoCommon/CommandProcessor.h')
| -rw-r--r-- | Source/Core/VideoCommon/CommandProcessor.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Source/Core/VideoCommon/CommandProcessor.h b/Source/Core/VideoCommon/CommandProcessor.h index fcd81a893e..e4bb4cd136 100644 --- a/Source/Core/VideoCommon/CommandProcessor.h +++ b/Source/Core/VideoCommon/CommandProcessor.h @@ -60,6 +60,7 @@ enum CTRL_REGISTER = 0x02, CLEAR_REGISTER = 0x04, PERF_SELECT = 0x06, + UNK_0A_REGISTER = 0x0A, FIFO_BASE_LO = 0x20, FIFO_BASE_HI = 0x22, FIFO_END_LO = 0x24, @@ -142,7 +143,8 @@ union UCPClearReg { u16 ClearFifoOverflow : 1; u16 ClearFifoUnderflow : 1; - u16 ClearMetrices : 1; + // set by GXClearGPMetric + u16 ClearMetrics : 1; u16 : 13; }; u16 Hex; @@ -178,6 +180,7 @@ public: void SetCpClearRegister(); void SetCpControlRegister(); void SetCpStatusRegister(); + void ResetFifo(); void HandleUnknownOpcode(u8 cmd_byte, const u8* buffer, bool preprocess); @@ -194,6 +197,8 @@ private: UCPStatusReg m_cp_status_reg; UCPCtrlReg m_cp_ctrl_reg; UCPClearReg m_cp_clear_reg; + u16 m_perf_select = 0; + u16 m_unk_0a_reg = 0; u16 m_bbox_left = 0; u16 m_bbox_top = 0; |
