summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon
diff options
context:
space:
mode:
authorsl1nk3.s <sl1nk3.s@gmail.com>2009-08-24 04:04:10 +0000
committersl1nk3.s <sl1nk3.s@gmail.com>2009-08-24 04:04:10 +0000
commit944844bfba844c80ca415935fe70634d6c8f86a9 (patch)
tree7019a83ba6ebbc2f36468356f35e83528b047ef8 /Source/Core/VideoCommon
parent9fcb1db34fccbe09de2850668ca6d793ba5b88f1 (diff)
Fix Pikmin PAL not booting thanks to LordMark for figuring it out ! :D
Added "AccurateFCMP" ini setting which fixes Nights, Paper Mario games... git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4042 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/VideoCommon')
-rw-r--r--Source/Core/VideoCommon/Src/PixelShaderManager.cpp3
-rw-r--r--Source/Core/VideoCommon/Src/XFMemory.h2
-rw-r--r--Source/Core/VideoCommon/Src/XFStructs.cpp27
3 files changed, 22 insertions, 10 deletions
diff --git a/Source/Core/VideoCommon/Src/PixelShaderManager.cpp b/Source/Core/VideoCommon/Src/PixelShaderManager.cpp
index c0d8a7e4c6..946548e56d 100644
--- a/Source/Core/VideoCommon/Src/PixelShaderManager.cpp
+++ b/Source/Core/VideoCommon/Src/PixelShaderManager.cpp
@@ -122,7 +122,8 @@ void PixelShaderManager::SetConstants()
if (s_bZBiasChanged || s_bDepthRangeChanged)
{
- //ERROR_LOG("pixel=%x,%x, bias=%x\n", bpmem.zcontrol.pixel_format, bpmem.ztex2.type, lastZBias);
+ //ERROR_LOG("pixel=%x,%x, bias=%x\n", bpmem.zcontrol.pixel_format, bpmem.ztex2.type, lastZBias);
+ // TODO : Should this use 16777216.0f or 16777215.0f ?
SetPSConstant4f(C_ZBIAS+1, lastDepthRange[0] / 16777216.0f, lastDepthRange[1] / 16777216.0f, 0, (float)( (((int)lastZBias<<8)>>8))/16777216.0f);
s_bZBiasChanged = s_bDepthRangeChanged = false;
}
diff --git a/Source/Core/VideoCommon/Src/XFMemory.h b/Source/Core/VideoCommon/Src/XFMemory.h
index 872861f2f5..10f554072a 100644
--- a/Source/Core/VideoCommon/Src/XFMemory.h
+++ b/Source/Core/VideoCommon/Src/XFMemory.h
@@ -91,6 +91,8 @@
#define XFMEM_SETMATRIXINDA 0x1018
#define XFMEM_SETMATRIXINDB 0x1019
#define XFMEM_SETVIEWPORT 0x101a
+#define XFMEM_SETZSCALE 0x101c
+#define XFMEM_SETZOFFSET 0x101f
#define XFMEM_SETPROJECTION 0x1020
#define XFMEM_SETNUMTEXGENS 0x103f
#define XFMEM_SETTEXMTXINFO 0x1040
diff --git a/Source/Core/VideoCommon/Src/XFStructs.cpp b/Source/Core/VideoCommon/Src/XFStructs.cpp
index 9a96c3294a..f058ccee01 100644
--- a/Source/Core/VideoCommon/Src/XFStructs.cpp
+++ b/Source/Core/VideoCommon/Src/XFStructs.cpp
@@ -169,6 +169,24 @@ void LoadXFReg(u32 transferSize, u32 baseAddress, u32 *pData)
}
break;
+ // GXSetZScaleOffset ?
+ // Actually everything i tried didn't seem to change anything x)
+ case XFMEM_SETZSCALE:
+ // paper mario writes 16777216.0f, 1677721.75
+ // Killer 7 writes 16777216.0f here
+ WARN_LOG(VIDEO, "Set ZScale : %x=%x\n", address, data);
+ break;
+
+ case XFMEM_SETZOFFSET:
+ // paper mario writes 16777216.0f, 5033165.0f
+ // Killer 7 alterns this between 16777216.0f and 16710107.0f
+ WARN_LOG(VIDEO, "Set ZOffset : %x=%x\n", address, data);
+ break;
+
+ // --------------
+ // Unknown Regs
+ // --------------
+
// Maybe these are for Normals?
case 0x1048: //xfregs.texcoords[0].nrmmtxinfo.hex = data; break; ??
case 0x1049:
@@ -181,21 +199,12 @@ void LoadXFReg(u32 transferSize, u32 baseAddress, u32 *pData)
DEBUG_LOG(VIDEO, "Possible Normal Mtx XF reg?: %x=%x\n", address, data);
break;
- // --------------
- // Unknown Regs
- // --------------
case 0x1013:
case 0x1014:
case 0x1015:
case 0x1016:
case 0x1017:
- case 0x101c:
- // paper mario writes 16777216.0f, 1677721.75
- // Killer 7 writes 0x4b800000 here on 3D rendering only
- case 0x101f:
- // paper mario writes 16777216.0f, 5033165.0f
- // Killer 7 alterns this between 0x4b800000 and 0x4b7ef9db on 3D rendering
default:
WARN_LOG(VIDEO, "Unknown XF Reg: %x=%x\n", address, data);
break;