RICE: OOT Fix from mupen64plus-ae team
authorptitSeb <sebastien.chev@gmail.com>
Wed, 18 Dec 2013 08:04:41 +0000 (09:04 +0100)
committerptitSeb <sebastien.chev@gmail.com>
Wed, 18 Dec 2013 08:04:41 +0000 (09:04 +0100)
source/gles2rice/src/Render.cpp [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index d90633f..068fb30
@@ -214,6 +214,20 @@ void CRender::SetWorldView(const Matrix & mat, bool bPush, bool bReplace)
         {
             // Load projection matrix
             gRSP.modelviewMtxs[gRSP.modelViewMtxTop] = mat;
+
+            //GSI: Hack needed to show heart in OOT & MM
+            //it renders at Z cordinate = 0.0f that gets clipped away.
+            //so we translate them a bit along Z to make them stick
+            if( options.enableHackForGames == HACK_FOR_ZELDA || options.enableHackForGames == HACK_FOR_ZELDA_MM) 
+            {
+                if(gRSP.modelviewMtxs[gRSP.modelViewMtxTop]._43 == 0.0f
+                    && gRSP.modelviewMtxs[gRSP.modelViewMtxTop]._42 != 0.0f
+                    && gRSP.modelviewMtxs[gRSP.modelViewMtxTop]._42 <= 94.5f
+                    && gRSP.modelviewMtxs[gRSP.modelViewMtxTop]._42 >= -94.5f)
+                {
+                    gRSP.modelviewMtxs[gRSP.modelViewMtxTop]._43 -= 10.1f;
+                }
+            }
         }
         else
         {