From d5aae5a705e3015bf97275067e679db9ae44f0a3 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Mon, 9 Jun 2014 23:27:57 -0700 Subject: [PATCH] Match block transfer address even when uncached. Rhythm8 for example uses an uncached address for the dest framebuffer. --- GPU/GLES/Framebuffer.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/GPU/GLES/Framebuffer.cpp b/GPU/GLES/Framebuffer.cpp index 84773b0c74..6fb3dabcc6 100644 --- a/GPU/GLES/Framebuffer.cpp +++ b/GPU/GLES/Framebuffer.cpp @@ -2092,9 +2092,12 @@ void FramebufferManager::FindTransferFramebuffers(VirtualFramebuffer *&dstBuffer int width = srcWidth; int height = srcHeight; + dstBasePtr &= 0x3FFFFFFF; + srcBasePtr &= 0x3FFFFFFF; + for (size_t i = 0; i < vfbs_.size(); ++i) { VirtualFramebuffer *vfb = vfbs_[i]; - const u32 vfb_address = 0x04000000 | vfb->fb_address; + const u32 vfb_address = (0x04000000 | vfb->fb_address) & 0x3FFFFFFF; const u32 vfb_size = FramebufferByteSize(vfb); const u32 vfb_bpp = vfb->format == GE_FORMAT_8888 ? 4 : 2; const u32 vfb_byteStride = vfb->fb_stride * vfb_bpp;