summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorMarkus Wick <degasus@users.noreply.github.com>2018-04-04 09:10:32 +0200
committerGitHub <noreply@github.com>2018-04-04 09:10:32 +0200
commitc6d0d9a01f83baf9cf50d95a49907e27232fb84b (patch)
tree6d5707dbaeb47977394f502df5c09e45f9f3ae81 /Source/Core
parentba42238b0b8489cfedefe21346fc554f240dee25 (diff)
parent91732e2baff00bf5642d51b2618499aecc65107c (diff)
Merge pull request #6578 from JosJuice/remove-projection-hacks
Remove support for projection hacks
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/Config/GraphicsSettings.cpp7
-rw-r--r--Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp4
-rw-r--r--Source/Core/DolphinWX/ISOProperties/ISOProperties.cpp25
-rw-r--r--Source/Core/DolphinWX/ISOProperties/ISOProperties.h9
-rw-r--r--Source/Core/VideoBackends/OGL/Render.cpp5
-rw-r--r--Source/Core/VideoCommon/VertexShaderManager.cpp89
-rw-r--r--Source/Core/VideoCommon/VertexShaderManager.h2
-rw-r--r--Source/Core/VideoCommon/VideoBackendBase.cpp1
-rw-r--r--Source/Core/VideoCommon/VideoConfig.cpp5
-rw-r--r--Source/Core/VideoCommon/VideoConfig.h11
10 files changed, 4 insertions, 154 deletions
diff --git a/Source/Core/Core/Config/GraphicsSettings.cpp b/Source/Core/Core/Config/GraphicsSettings.cpp
index 7412c81740..f46c7a585a 100644
--- a/Source/Core/Core/Config/GraphicsSettings.cpp
+++ b/Source/Core/Core/Config/GraphicsSettings.cpp
@@ -141,13 +141,6 @@ const ConfigInfo<bool> GFX_HACK_VERTEX_ROUDING{{System::GFX, "Hacks", "VertexRou
// Graphics.GameSpecific
-const ConfigInfo<int> GFX_PROJECTION_HACK{{System::GFX, "GameSpecific", "ProjectionHack"}, 0};
-const ConfigInfo<int> GFX_PROJECTION_HACK_SZNEAR{{System::GFX, "GameSpecific", "PH_SZNear"}, 0};
-const ConfigInfo<int> GFX_PROJECTION_HACK_SZFAR{{System::GFX, "GameSpecific", "PH_SZFar"}, 0};
-const ConfigInfo<std::string> GFX_PROJECTION_HACK_ZNEAR{{System::GFX, "GameSpecific", "PH_ZNear"},
- ""};
-const ConfigInfo<std::string> GFX_PROJECTION_HACK_ZFAR{{System::GFX, "GameSpecific", "PH_ZFar"},
- ""};
const ConfigInfo<bool> GFX_PERF_QUERIES_ENABLE{{System::GFX, "GameSpecific", "PerfQueriesEnable"},
false};
} // namespace Config
diff --git a/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp b/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp
index d9e210deaa..a4bf157df9 100644
--- a/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp
+++ b/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp
@@ -80,9 +80,7 @@ bool IsSettingSaveable(const Config::ConfigLocation& config_location)
// Graphics.GameSpecific
- Config::GFX_PROJECTION_HACK.location, Config::GFX_PROJECTION_HACK_SZNEAR.location,
- Config::GFX_PROJECTION_HACK_SZFAR.location, Config::GFX_PROJECTION_HACK_ZNEAR.location,
- Config::GFX_PROJECTION_HACK_ZFAR.location, Config::GFX_PERF_QUERIES_ENABLE.location,
+ Config::GFX_PERF_QUERIES_ENABLE.location,
};
diff --git a/Source/Core/DolphinWX/ISOProperties/ISOProperties.cpp b/Source/Core/DolphinWX/ISOProperties/ISOProperties.cpp
index e4aaf0a59d..622246f5c4 100644
--- a/Source/Core/DolphinWX/ISOProperties/ISOProperties.cpp
+++ b/Source/Core/DolphinWX/ISOProperties/ISOProperties.cpp
@@ -495,26 +495,7 @@ void CISOProperties::LoadGameConfig()
SetCheckboxValueFromGameini("Wii", "Widescreen", m_enable_widescreen);
SetCheckboxValueFromGameini("Video_Stereoscopy", "StereoEFBMonoDepth", m_mono_depth);
- IniFile::Section* default_video = m_gameini_default.GetOrCreateSection("Video");
-
- int iTemp;
- default_video->Get("ProjectionHack", &iTemp);
- default_video->Get("PH_SZNear", &m_phack_data.PHackSZNear);
- if (m_gameini_local.GetIfExists("Video", "PH_SZNear", &iTemp))
- m_phack_data.PHackSZNear = !!iTemp;
- default_video->Get("PH_SZFar", &m_phack_data.PHackSZFar);
- if (m_gameini_local.GetIfExists("Video", "PH_SZFar", &iTemp))
- m_phack_data.PHackSZFar = !!iTemp;
-
std::string sTemp;
- default_video->Get("PH_ZNear", &m_phack_data.PHZNear);
- if (m_gameini_local.GetIfExists("Video", "PH_ZNear", &sTemp))
- m_phack_data.PHZNear = sTemp;
- default_video->Get("PH_ZFar", &m_phack_data.PHZFar);
- if (m_gameini_local.GetIfExists("Video", "PH_ZFar", &sTemp))
- m_phack_data.PHZFar = sTemp;
-
- sTemp = "";
if (!m_gameini_local.GetIfExists("Core", "GPUDeterminismMode", &sTemp))
m_gameini_default.GetIfExists("Core", "GPUDeterminismMode", &sTemp);
@@ -527,6 +508,7 @@ void CISOProperties::LoadGameConfig()
else if (sTemp == "fake-completion")
m_gpu_determinism->SetSelection(3);
+ int iTemp;
IniFile::Section* default_stereoscopy = m_gameini_default.GetOrCreateSection("Video_Stereoscopy");
default_stereoscopy->Get("StereoDepthPercentage", &iTemp, 100);
m_gameini_local.GetIfExists("Video_Stereoscopy", "StereoDepthPercentage", &iTemp);
@@ -595,11 +577,6 @@ bool CISOProperties::SaveGameConfig()
m_gameini_local.DeleteKey((section), (key)); \
} while (0)
- SAVE_IF_NOT_DEFAULT("Video", "PH_SZNear", (m_phack_data.PHackSZNear ? 1 : 0), 0);
- SAVE_IF_NOT_DEFAULT("Video", "PH_SZFar", (m_phack_data.PHackSZFar ? 1 : 0), 0);
- SAVE_IF_NOT_DEFAULT("Video", "PH_ZNear", m_phack_data.PHZNear, "");
- SAVE_IF_NOT_DEFAULT("Video", "PH_ZFar", m_phack_data.PHZFar, "");
-
std::string tmp;
if (m_gpu_determinism->GetSelection() == 0)
tmp = "Not Set";
diff --git a/Source/Core/DolphinWX/ISOProperties/ISOProperties.h b/Source/Core/DolphinWX/ISOProperties/ISOProperties.h
index 55465b3f7c..713fe3d364 100644
--- a/Source/Core/DolphinWX/ISOProperties/ISOProperties.h
+++ b/Source/Core/DolphinWX/ISOProperties/ISOProperties.h
@@ -39,14 +39,6 @@ namespace Gecko
class CodeConfigPanel;
}
-struct PHackData
-{
- bool PHackSZNear;
- bool PHackSZFar;
- std::string PHZNear;
- std::string PHZFar;
-};
-
wxDECLARE_EVENT(DOLPHIN_EVT_CHANGE_ISO_PROPERTIES_TITLE, wxCommandEvent);
class CISOProperties : public wxDialog
@@ -64,7 +56,6 @@ private:
std::unique_ptr<DiscIO::Volume> m_open_iso;
std::vector<PatchEngine::Patch> m_on_frame;
- PHackData m_phack_data;
// Core
wxCheckBox *m_cpu_thread, *m_mmu, *m_dcbz_off, *m_fprf;
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp
index ab30fe288a..e7557deed6 100644
--- a/Source/Core/VideoBackends/OGL/Render.cpp
+++ b/Source/Core/VideoBackends/OGL/Render.cpp
@@ -51,11 +51,6 @@
#include "VideoCommon/VideoConfig.h"
#include "VideoCommon/XFMemory.h"
-void VideoConfig::UpdateProjectionHack()
-{
- ::UpdateProjectionHack(g_Config.phack);
-}
-
namespace OGL
{
VideoConfig g_ogl_config;
diff --git a/Source/Core/VideoCommon/VertexShaderManager.cpp b/Source/Core/VideoCommon/VertexShaderManager.cpp
index 9d3c25ca13..e01b9aa666 100644
--- a/Source/Core/VideoCommon/VertexShaderManager.cpp
+++ b/Source/Core/VideoCommon/VertexShaderManager.cpp
@@ -47,88 +47,6 @@ static float s_fViewRotation[2];
VertexShaderConstants VertexShaderManager::constants;
bool VertexShaderManager::dirty;
-struct ProjectionHack
-{
- float sign;
- float value;
- ProjectionHack() {}
- ProjectionHack(float new_sign, float new_value) : sign(new_sign), value(new_value) {}
-};
-
-namespace
-{
-// Control Variables
-static ProjectionHack g_proj_hack_near;
-static ProjectionHack g_proj_hack_far;
-} // Namespace
-
-static float PHackValue(std::string sValue)
-{
- float f = 0;
- bool fp = false;
- const char* cStr = sValue.c_str();
- char* c = new char[strlen(cStr) + 1];
- std::istringstream sTof("");
-
- for (unsigned int i = 0; i <= strlen(cStr); ++i)
- {
- if (i == 20)
- {
- c[i] = '\0';
- break;
- }
-
- c[i] = (cStr[i] == ',') ? '.' : *(cStr + i);
- if (c[i] == '.')
- fp = true;
- }
-
- cStr = c;
- sTof.str(cStr);
- sTof >> f;
-
- if (!fp)
- f /= 0xF4240;
-
- delete[] c;
- return f;
-}
-
-void UpdateProjectionHack(const ProjectionHackConfig& config)
-{
- float near_value = 0, far_value = 0;
- float near_sign = 1.0, far_sign = 1.0;
-
- if (config.m_enable)
- {
- const char* near_sign_str = "";
- const char* far_sign_str = "";
-
- NOTICE_LOG(VIDEO, "\t\t--- Orthographic Projection Hack ON ---");
-
- if (config.m_sznear)
- {
- near_sign *= -1.0f;
- near_sign_str = " * (-1)";
- }
- if (config.m_szfar)
- {
- far_sign *= -1.0f;
- far_sign_str = " * (-1)";
- }
-
- near_value = PHackValue(config.m_znear);
- NOTICE_LOG(VIDEO, "- zNear Correction = (%f + zNear)%s", near_value, near_sign_str);
-
- far_value = PHackValue(config.m_zfar);
- NOTICE_LOG(VIDEO, "- zFar Correction = (%f + zFar)%s", far_value, far_sign_str);
- }
-
- // Set the projections hacks
- g_proj_hack_near = ProjectionHack(near_sign, near_value);
- g_proj_hack_far = ProjectionHack(far_sign, far_value);
-}
-
// Viewport correction:
// In D3D, the viewport rectangle must fit within the render target.
// Say you want a viewport at (ix, iy) with size (iw, ih),
@@ -454,7 +372,6 @@ void VertexShaderManager::SetConstants()
g_fProjectionMatrix[8] = 0.0f;
g_fProjectionMatrix[9] = 0.0f;
g_fProjectionMatrix[10] = rawProjection[4];
-
g_fProjectionMatrix[11] = rawProjection[5];
g_fProjectionMatrix[12] = 0.0f;
@@ -495,10 +412,8 @@ void VertexShaderManager::SetConstants()
g_fProjectionMatrix[8] = 0.0f;
g_fProjectionMatrix[9] = 0.0f;
- g_fProjectionMatrix[10] = (g_proj_hack_near.value + rawProjection[4]) *
- ((g_proj_hack_near.sign == 0) ? 1.0f : g_proj_hack_near.sign);
- g_fProjectionMatrix[11] = (g_proj_hack_far.value + rawProjection[5]) *
- ((g_proj_hack_far.sign == 0) ? 1.0f : g_proj_hack_far.sign);
+ g_fProjectionMatrix[10] = rawProjection[4];
+ g_fProjectionMatrix[11] = rawProjection[5];
g_fProjectionMatrix[12] = 0.0f;
g_fProjectionMatrix[13] = 0.0f;
diff --git a/Source/Core/VideoCommon/VertexShaderManager.h b/Source/Core/VideoCommon/VertexShaderManager.h
index b2c707db1f..71bb5cbdb7 100644
--- a/Source/Core/VideoCommon/VertexShaderManager.h
+++ b/Source/Core/VideoCommon/VertexShaderManager.h
@@ -12,8 +12,6 @@
class PointerWrap;
struct ProjectionHackConfig;
-void UpdateProjectionHack(const ProjectionHackConfig& config);
-
// The non-API dependent parts.
class VertexShaderManager
{
diff --git a/Source/Core/VideoCommon/VideoBackendBase.cpp b/Source/Core/VideoCommon/VideoBackendBase.cpp
index d8415c46f0..9315d1d7b3 100644
--- a/Source/Core/VideoCommon/VideoBackendBase.cpp
+++ b/Source/Core/VideoCommon/VideoBackendBase.cpp
@@ -295,7 +295,6 @@ void VideoBackendBase::InitializeShared()
PixelShaderManager::Init();
g_Config.Refresh();
- g_Config.UpdateProjectionHack();
UpdateActiveConfig();
}
diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp
index 9c90c009a0..d08d5b793a 100644
--- a/Source/Core/VideoCommon/VideoConfig.cpp
+++ b/Source/Core/VideoCommon/VideoConfig.cpp
@@ -142,11 +142,6 @@ void VideoConfig::Refresh()
bEFBEmulateFormatChanges = Config::Get(Config::GFX_HACK_EFB_EMULATE_FORMAT_CHANGES);
bVertexRounding = Config::Get(Config::GFX_HACK_VERTEX_ROUDING);
- phack.m_enable = Config::Get(Config::GFX_PROJECTION_HACK) == 1;
- phack.m_sznear = Config::Get(Config::GFX_PROJECTION_HACK_SZNEAR) == 1;
- phack.m_szfar = Config::Get(Config::GFX_PROJECTION_HACK_SZFAR) == 1;
- phack.m_znear = Config::Get(Config::GFX_PROJECTION_HACK_ZNEAR);
- phack.m_zfar = Config::Get(Config::GFX_PROJECTION_HACK_ZFAR);
bPerfQueriesEnable = Config::Get(Config::GFX_PERF_QUERIES_ENABLE);
VerifyValidity();
diff --git a/Source/Core/VideoCommon/VideoConfig.h b/Source/Core/VideoCommon/VideoConfig.h
index 8e22765695..cc8e4cde88 100644
--- a/Source/Core/VideoCommon/VideoConfig.h
+++ b/Source/Core/VideoCommon/VideoConfig.h
@@ -50,22 +50,12 @@ enum class ShaderCompilationMode : int
AsynchronousSkipRendering
};
-struct ProjectionHackConfig final
-{
- bool m_enable;
- bool m_sznear;
- bool m_szfar;
- std::string m_znear;
- std::string m_zfar;
-};
-
// NEVER inherit from this class.
struct VideoConfig final
{
VideoConfig();
void Refresh();
void VerifyValidity();
- void UpdateProjectionHack();
bool IsVSync() const;
// General
@@ -130,7 +120,6 @@ struct VideoConfig final
bool bImmediateXFB;
bool bCopyEFBScaled;
int iSafeTextureCache_ColorSamples;
- ProjectionHackConfig phack;
float fAspectRatioHackW, fAspectRatioHackH;
bool bEnablePixelLighting;
bool bFastDepthCalc;