summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/RenderBase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoCommon/RenderBase.cpp')
-rw-r--r--Source/Core/VideoCommon/RenderBase.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp
index 8b42d1c23b..744557b54c 100644
--- a/Source/Core/VideoCommon/RenderBase.cpp
+++ b/Source/Core/VideoCommon/RenderBase.cpp
@@ -502,15 +502,18 @@ void Renderer::CheckFifoRecording()
void Renderer::RecordVideoMemory()
{
- u32 *bpMem = (u32*)&bpmem;
- u32 cpMem[256];
- u32 *xfMem = (u32*)xfmem;
- u32 *xfRegs = (u32*)&xfregs;
-
- memset(cpMem, 0, 256 * 4);
- FillCPMemoryArray(cpMem);
-
- FifoRecorder::GetInstance().SetVideoMemory(bpMem, cpMem, xfMem, xfRegs, sizeof(XFRegisters) / 4);
+ u32 *bpmem_ptr = (u32*)&bpmem;
+ u32 cpmem[256];
+ // The FIFO recording format splits XF memory into xfmem and xfregs; follow
+ // that split here.
+ u32 *xfmem_ptr = (u32*)&xfmem;
+ u32 *xfregs_ptr = (u32*)&xfmem + FifoDataFile::XF_MEM_SIZE;
+ u32 xfregs_size = sizeof(XFMemory) / 4 - FifoDataFile::XF_MEM_SIZE;
+
+ memset(cpmem, 0, 256 * 4);
+ FillCPMemoryArray(cpmem);
+
+ FifoRecorder::GetInstance().SetVideoMemory(bpmem_ptr, cpmem, xfmem_ptr, xfregs_ptr, xfregs_size);
}
void Renderer::Swap(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& rc, float Gamma)