From 1142ccba035afbe75ab707a81633c6cc26515848 Mon Sep 17 00:00:00 2001
From: bunnei <ericbunnie@gmail.com>
Date: Sun, 27 Apr 2014 12:42:01 -0400
Subject: [PATCH] fixed renderer to use correct framebuffer location

---
 src/video_core/renderer_opengl/renderer_opengl.cpp | 11 +++++------
 src/video_core/renderer_opengl/renderer_opengl.h   |  4 ++--
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp
index cf7b029ab8..b63a73d186 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.cpp
+++ b/src/video_core/renderer_opengl/renderer_opengl.cpp
@@ -53,12 +53,11 @@ void RendererOpenGL::SwapBuffers() {
 
 /**
  * Helper function to flip framebuffer from left-to-right to top-to-bottom
- * @param addr Address of framebuffer in RAM
+ * @param in Pointer to input raw framebuffer in V/RAM
  * @param out Pointer to output buffer with flipped framebuffer
  * @todo Early on hack... I'd like to find a more efficient way of doing this /bunnei
  */
-void RendererOpenGL::FlipFramebuffer(u32 addr, u8* out) {
-    u8* in = Memory::GetPointer(addr);
+void RendererOpenGL::FlipFramebuffer(const u8* in, u8* out) {
     for (int y = 0; y < VideoCore::kScreenTopHeight; y++) {
         for (int x = 0; x < VideoCore::kScreenTopWidth; x++) {
             int in_coord = (VideoCore::kScreenTopHeight * 3 * x) + (VideoCore::kScreenTopHeight * 3)
@@ -77,10 +76,10 @@ void RendererOpenGL::FlipFramebuffer(u32 addr, u8* out) {
  * @param src_rect Source rectangle in XFB to copy
  * @param dst_rect Destination rectangle in output framebuffer to copy to
  */
-void RendererOpenGL::RenderXFB(const Rect& src_rect, const Rect& dst_rect) {  
+void RendererOpenGL::RenderXFB(const Rect& src_rect, const Rect& dst_rect) {
 
-    FlipFramebuffer(LCD::TOP_RIGHT_FRAME1,  m_xfb_top_flipped);
-    FlipFramebuffer(LCD::SUB_FRAME1,        m_xfb_bottom_flipped);
+    FlipFramebuffer(LCD::GetFramebufferPointer(LCD::g_regs.framebuffer_top_left_1), m_xfb_top_flipped);
+    FlipFramebuffer(LCD::GetFramebufferPointer(LCD::g_regs.framebuffer_sub_left_1), m_xfb_bottom_flipped);
 
     // Blit the top framebuffer
     // ------------------------
diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h
index 00aa17649f..676a0ea028 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.h
+++ b/src/video_core/renderer_opengl/renderer_opengl.h
@@ -55,11 +55,11 @@ private:
 
     /**
      * Helper function to flip framebuffer from left-to-right to top-to-bottom
-     * @param addr Address of framebuffer in RAM
+     * @param in Pointer to input raw framebuffer in V/RAM
      * @param out Pointer to output buffer with flipped framebuffer
      * @todo Early on hack... I'd like to find a more efficient way of doing this /bunnei
      */
-    void RendererOpenGL::FlipFramebuffer(u32 addr, u8* out);
+    void RendererOpenGL::FlipFramebuffer(const u8* in, u8* out);
 
 
     EmuWindow*  m_render_window;                    ///< Handle to render window
-- 
GitLab