From 0d0148dad3e3ab6ec28148eeeed70b7407678909 Mon Sep 17 00:00:00 2001 From: Henrik Rydgard Date: Thu, 6 Jun 2013 10:30:05 +0200 Subject: [PATCH] Change check in DoBlockTransfer to catch some more videos. --- GPU/GLES/DisplayListInterpreter.cpp | 5 ++++- GPU/GLES/Framebuffer.h | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/GPU/GLES/DisplayListInterpreter.cpp b/GPU/GLES/DisplayListInterpreter.cpp index b8f98b45ed..ac6d280aec 100644 --- a/GPU/GLES/DisplayListInterpreter.cpp +++ b/GPU/GLES/DisplayListInterpreter.cpp @@ -1010,8 +1010,11 @@ void GLES_GPU::DoBlockTransfer() { // the backbuffer. Detect this and have the framebuffermanager draw the pixels. u32 backBuffer = framebufferManager_.PrevDisplayFramebufAddr(); + u32 displayBuffer = framebufferManager_.DisplayFramebufAddr(); - if (backBuffer != 0 && dstBasePtr == backBuffer && width == 512 && height == 272) { + if ((backBuffer != 0 && dstBasePtr == backBuffer) || + (displayBuffer != 0 && dstBasePtr == displayBuffer) && + dstStride == 512 && height == 272) { framebufferManager_.DrawPixels(Memory::GetPointer(dstBasePtr), 3, 512); } } diff --git a/GPU/GLES/Framebuffer.h b/GPU/GLES/Framebuffer.h index d14f63bf03..f67929f56f 100644 --- a/GPU/GLES/Framebuffer.h +++ b/GPU/GLES/Framebuffer.h @@ -111,6 +111,9 @@ public: u32 PrevDisplayFramebufAddr() { return prevDisplayFramebuf_ ? (0x04000000 | prevDisplayFramebuf_->fb_address) : 0; } + u32 DisplayFramebufAddr() { + return displayFramebuf_ ? (0x04000000 | displayFramebuf_->fb_address) : 0; + } private: u32 ramDisplayFramebufPtr_; // workaround for MotoGP insanity