diff options
| author | rice1964 <rice1964@gmail.com> | 2009-09-11 05:50:02 +0000 |
|---|---|---|
| committer | rice1964 <rice1964@gmail.com> | 2009-09-11 05:50:02 +0000 |
| commit | e1a0f8884a0a7adff476b770da97842ed2e89d9f (patch) | |
| tree | 2a0aa741156711568ca26888e88d0af9c984e637 /Source/Core/VideoCommon/Src/GlobalControl.cpp | |
| parent | 5ffb48c33bd38a30773736bfe0ab471a731a736a (diff) | |
D3D: Projection hack feature. Have also moved related functions and constant definitions from OGL to VideoCommon, will clean up the code better if it works for D3D.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4252 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/VideoCommon/Src/GlobalControl.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/Src/GlobalControl.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/Src/GlobalControl.cpp b/Source/Core/VideoCommon/Src/GlobalControl.cpp index 00cd8710a0..2dbb13901b 100644 --- a/Source/Core/VideoCommon/Src/GlobalControl.cpp +++ b/Source/Core/VideoCommon/Src/GlobalControl.cpp @@ -77,3 +77,72 @@ bool Projection_GetWidescreen() {
return g_Widescreen;
}
+
+
+void UpdateProjectionHack(int iPhackvalue)
+{
+ bool bProjHack1=0, bPhackvalue1=0, bPhackvalue2=0;
+ float fhackvalue1=0, fhackvalue2=0;
+ switch(iPhackvalue)
+ {
+ case PROJECTION_HACK_NONE:
+ bProjHack1 = 0;
+ bPhackvalue1 = 0;
+ bPhackvalue2 = 0;
+ break;
+ case PROJECTION_HACK_ZELDA_TP_BLOOM_HACK:
+ bPhackvalue1 = 1;
+ bProjHack1 = 1;
+ break;
+ case PROJECTION_HACK_SONIC_AND_THE_BLACK_KNIGHT:
+ bPhackvalue1 = 1;
+ fhackvalue1 = 0.00002f;
+ bPhackvalue2 = 1;
+ fhackvalue2 = 1.999980f;
+ break;
+ case PROJECTION_HACK_BLEACH_VERSUS_CRUSADE:
+ bPhackvalue2 = 1;
+ fhackvalue2 = 0.5f;
+ bPhackvalue1 = 0;
+ bProjHack1 = 0;
+ break;
+ case PROJECTION_HACK_FINAL_FANTASY_CC_ECHO_OF_TIME:
+ bPhackvalue1 = 1;
+ fhackvalue1 = 0.8f;
+ bPhackvalue2 = 1;
+ fhackvalue2 = 1.2f;
+ bProjHack1 = 0;
+ break;
+ case PROJECTION_HACK_HARVESTMOON_MM:
+ bPhackvalue1 = 1;
+ fhackvalue1 = 0.0075f;
+ bPhackvalue2 = 0;
+ bProjHack1 = 0;
+ case PROJECTION_HACK_BATEN_KAITOS:
+ bPhackvalue1 = 1;
+ fhackvalue1 = 0.0026f;
+ bPhackvalue2 = 1;
+ fhackvalue2 = 1.9974f;
+ bProjHack1 = 1;
+ break;
+ case PROJECTION_HACK_BATEN_KAITOS_ORIGIN:
+ bPhackvalue1 = 1;
+ fhackvalue1 = 0.0012f;
+ bPhackvalue2 = 1;
+ fhackvalue2 = 1.9988f;
+ bProjHack1 = 1;
+ break;
+ case PROJECTION_HACK_SKIES_OF_ARCADIA:
+ bPhackvalue1 = 1;
+ fhackvalue1 = 0.04f;
+ bPhackvalue2 = 0;
+ bProjHack1 = 0;
+ break;
+ }
+
+ // Set the projections hacks
+ Projection_SetHack0(bProjHack1);
+ Projection_SetHack1(ProjectionHack(bPhackvalue1 == 0 ? false : true, fhackvalue1));
+ Projection_SetHack2(ProjectionHack(bPhackvalue2 == 0 ? false : true, fhackvalue2));
+}
+
|
