From 203c53307d568d7f0e45bd1a4af815221eeaa62e Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Fri, 29 Sep 2017 17:20:07 +0700 Subject: [PATCH] Reset gDPTile::frameBuffer if it points to removed buffer. Fixed Paper Mario: Red Station Crashing #1539 --- src/FrameBuffer.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/FrameBuffer.cpp b/src/FrameBuffer.cpp index 67e7e67a..3db61d16 100644 --- a/src/FrameBuffer.cpp +++ b/src/FrameBuffer.cpp @@ -46,6 +46,10 @@ FrameBuffer::FrameBuffer() : FrameBuffer::~FrameBuffer() { + for (u32 i = 0; i < 8; ++i) { + if (gDP.tiles[i].frameBuffer == this) + gDP.tiles[i].frameBuffer = nullptr; + } gfxContext.deleteFramebuffer(m_FBO); gfxContext.deleteFramebuffer(m_resolveFBO); gfxContext.deleteFramebuffer(m_SubFBO);