From 8b7106ed387eb323f88b0ef77edbd59534edb8b6 Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Sat, 20 Dec 2014 20:48:04 +0600 Subject: [PATCH] Fix gDPSetPrimDepth for the case when viewport is not set. Fixed logos in Mario Tennis. --- gDP.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gDP.cpp b/gDP.cpp index ded9aa0a..59aef465 100644 --- a/gDP.cpp +++ b/gDP.cpp @@ -60,7 +60,10 @@ void gDPSetOtherMode( u32 mode0, u32 mode1 ) void gDPSetPrimDepth( u16 z, u16 dz ) { - gDP.primDepth.z = min(1.0f, max(-1.0f, (_FIXED2FLOAT(_SHIFTR(z, 0, 15), 15) - gSP.viewport.vtrans[2]) / gSP.viewport.vscale[2])); + if (gSP.viewport.vscale[2] == 0) + gDP.primDepth.z = _FIXED2FLOAT(_SHIFTR(z, 0, 15), 15); + else + gDP.primDepth.z = min(1.0f, max(-1.0f, (_FIXED2FLOAT(_SHIFTR(z, 0, 15), 15) - gSP.viewport.vtrans[2]) / gSP.viewport.vscale[2])); gDP.primDepth.deltaZ = dz; #ifdef DEBUG