PCSX2: Interlacing to Deinterlacing

There are some more strings but don't want to mess around with too much
This commit is contained in:
RedDevilus 2022-04-03 19:08:56 +02:00 committed by refractionpcsx2
parent 19197fabe8
commit d8b107f59c
11 changed files with 42 additions and 42 deletions

View File

@ -58,7 +58,7 @@ allowed_gs_hw_fixes = [
"halfPixelOffset", "halfPixelOffset",
"roundSprite", "roundSprite",
"texturePreloading", "texturePreloading",
"interlace", "deinterlace",
] ]
gs_hw_fix_ranges = { gs_hw_fix_ranges = {
"mipmap": (0, 2), "mipmap": (0, 2),
@ -67,7 +67,7 @@ gs_hw_fix_ranges = {
"skipDrawEnd": (0, 100000), "skipDrawEnd": (0, 100000),
"halfPixelOffset": (0, 3), "halfPixelOffset": (0, 3),
"roundSprite": (0, 2), "roundSprite": (0, 2),
"interlace": (0, 7), "deinterlace": (0, 7),
} }
allowed_speed_hacks = ["mvuFlagSpeedHack", "InstantVU1SpeedHack", "MTVUSpeedHack"] allowed_speed_hacks = ["mvuFlagSpeedHack", "InstantVU1SpeedHack", "MTVUSpeedHack"]
# Patches are allowed to have a 'default' key or a crc-32 key, followed by # Patches are allowed to have a 'default' key or a crc-32 key, followed by

Binary file not shown.

View File

@ -2748,7 +2748,7 @@ SCES-51164:
name: "Mark of Kri, The" name: "Mark of Kri, The"
region: "PAL-M5" region: "PAL-M5"
gsHWFixes: gsHWFixes:
interlace: 3 # Game requires bob delinterlacing when auto deinterlace: 3 # Game requires bob deinterlacing when auto.
SCES-51176: SCES-51176:
name: "Disney's Treasure Planet" name: "Disney's Treasure Planet"
region: "PAL-M4" region: "PAL-M4"
@ -6190,7 +6190,7 @@ SCUS-97140:
region: "NTSC-U" region: "NTSC-U"
compat: 5 compat: 5
gsHWFixes: gsHWFixes:
interlace: 3 # Game requires bob delinterlacing when auto deinterlace: 3 # Game requires bob deinterlacing when auto.
patches: patches:
DBD09DD4: DBD09DD4:
content: |- content: |-
@ -6412,7 +6412,7 @@ SCUS-97201:
name: "Mark of Kri, The" name: "Mark of Kri, The"
region: "NTSC-U" region: "NTSC-U"
gsHWFixes: gsHWFixes:
interlace: 3 # Game requires bob delinterlacing when auto deinterlace: 3 # Game requires bob deinterlacing when auto.
SCUS-97203: SCUS-97203:
name: "Wild ARMs 3" name: "Wild ARMs 3"
region: "NTSC-U" region: "NTSC-U"
@ -6492,7 +6492,7 @@ SCUS-97222:
name: "Mark of Kri [Demo]" name: "Mark of Kri [Demo]"
region: "NTSC-U" region: "NTSC-U"
gsHWFixes: gsHWFixes:
interlace: 3 # Game requires bob delinterlacing when auto deinterlace: 3 # Game requires bob deinterlacing when auto.
SCUS-97223: SCUS-97223:
name: "NFL GameDay 2003 [Demo]" name: "NFL GameDay 2003 [Demo]"
region: "NTSC-U" region: "NTSC-U"
@ -15829,7 +15829,7 @@ SLES-53621:
region: "PAL-M5" region: "PAL-M5"
compat: 5 compat: 5
gsHWFixes: gsHWFixes:
interlace: 3 # Game requires bob delinterlacing when auto deinterlace: 3 # Game requires bob deinterlacing when auto.
SLES-53623: SLES-53623:
name: "Spongebob SquarePants - Battle for Bikini Bottom" name: "Spongebob SquarePants - Battle for Bikini Bottom"
region: "PAL-F" region: "PAL-F"
@ -24842,7 +24842,7 @@ SLPM-65310:
name: "Mark of Kri, The" name: "Mark of Kri, The"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes: gsHWFixes:
interlace: 3 # Game requires bob delinterlacing when auto deinterlace: 3 # Game requires bob deinterlacing when auto.
SLPM-65311: SLPM-65311:
name: "Violet no Atelier - Gramnad no Renkinjutsushi" name: "Violet no Atelier - Gramnad no Renkinjutsushi"
region: "NTSC-J" region: "NTSC-J"
@ -28141,7 +28141,7 @@ SLPM-66327:
name: "Wallace and Gromit - The Curse of the Were-Rabbit" name: "Wallace and Gromit - The Curse of the Were-Rabbit"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes: gsHWFixes:
interlace: 3 # Game requires bob delinterlacing when auto deinterlace: 3 # Game requires bob deinterlacing when auto.
SLPM-66328: SLPM-66328:
name: "Call of Duty 2 - Big Red One" name: "Call of Duty 2 - Big Red One"
region: "NTSC-J" region: "NTSC-J"
@ -41508,7 +41508,7 @@ SLUS-21312:
region: "NTSC-U" region: "NTSC-U"
compat: 5 compat: 5
gsHWFixes: gsHWFixes:
interlace: 3 # Game requires bob delinterlacing when auto deinterlace: 3 # Game requires bob deinterlacing when auto.
SLUS-21313: SLUS-21313:
name: "Friends - The One with all the Trivia" name: "Friends - The One with all the Trivia"
region: "NTSC-U" region: "NTSC-U"

View File

@ -141,21 +141,21 @@ The clamp modes are also numerically based.
### GS Hardware General Fixes ### GS Hardware General Fixes
* conservativeFramebuffer [`0` or `1`] {Off or On} Default: On (`1`) * conservativeFramebuffer [`0` or `1`] {Off or On} Default: On (`1`)
* texturePreloading [`0` or `1` or `2`] {None, Partial or Full Hash Cache} Default: None (`0`) * texturePreloading [`0` or `1` or `2`] {None, Partial or Full Hash Cache} Default: None (`0`)
* interlace [Value between `0` to `7`] {Off, WeaveTFF, WeaveBFF, BobTFF, BobBFF, BlendTFF, BlendBFF, Automatic} Default: Automatic (No value, looks up GameDB) * deinterlace [Value between `0` to `7`] {Off, WeaveTFF, WeaveBFF, BobTFF, BobBFF, BlendTFF, BlendBFF, Automatic} Default: Automatic (No value, looks up GameDB)
### GS Hardware Renderer Fixes ### GS Hardware Renderer Fixes
* autoFlush [`0` or `1`] {Off or On} Default: Off (`0`) * autoFlush [`0` or `1`] {Off or On} Default: Off (`0`)
* disableDepthSupport [`0` or `1`] {Off or On} Default: Off (`0`) * disableDepthSupport [`0` or `1`] {Off or On} Default: Off (`0`)
* disablePartialInvalidation [`0` or `1`] {Off or On} Default: Off (`0`) * disablePartialInvalidation [`0` or `1`] {Off or On} Default: Off (`0`)
* cpuFramebufferConversion [`0` or `1`] {Off or On} Default: Off (`0`) * cpuFramebufferConversion [`0` or `1`] {Off or On} Default: Off (`0`)
* wrapGSMem [`0` or `1`] {Off or On} Default: Off (`0`) * wrapGSMem [`0` or `1`] {Off or On} Default: Off (`0`)
* preloadFrameData [`0` or `1`] {Off or On} Default: Off (`0`) * preloadFrameData [`0` or `1`] {Off or On} Default: Off (`0`)
* textureInsideRT [`0` or `1`] {Off or On} Default: Off (`0`) * textureInsideRT [`0` or `1`] {Off or On} Default: Off (`0`)
* halfBottomOverride [`0` or `1`] {Force-Disabled or Force-Enabled} Default: Automatic (No value, looks up GameDB) * halfBottomOverride [`0` or `1`] {Force-Disabled or Force-Enabled} Default: Automatic (No value, looks up GameDB)
* pointListPalette [`0` or `1`] {Off or On} Default: Off (`0`) * pointListPalette [`0` or `1`] {Off or On} Default: Off (`0`)
### GS Hardware Upscaling Fixes ### GS Hardware Upscaling Fixes

View File

@ -1,5 +1,5 @@
/* PCSX2 - PS2 Emulator for PCs /* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2021 PCSX2 Dev Team * Copyright (C) 2002-2022 PCSX2 Dev Team
* *
* PCSX2 is free software: you can redistribute it and/or modify it under the terms * PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found- * of the GNU Lesser General Public License as published by the Free Software Found-
@ -718,7 +718,7 @@ void GSgetTitleStats(std::string& info)
{ {
const char* api_name = HostDisplay::RenderAPIToString(s_render_api); const char* api_name = HostDisplay::RenderAPIToString(s_render_api);
const char* hw_sw_name = (GSConfig.Renderer == GSRendererType::Null) ? " Null" : (GSConfig.UseHardwareRenderer() ? " HW" : " SW"); const char* hw_sw_name = (GSConfig.Renderer == GSRendererType::Null) ? " Null" : (GSConfig.UseHardwareRenderer() ? " HW" : " SW");
const char* deinterlace_mode = theApp.m_gs_interlace[static_cast<int>(GSConfig.InterlaceMode)].name.c_str(); const char* deinterlace_mode = theApp.m_gs_deinterlace[static_cast<int>(GSConfig.InterlaceMode)].name.c_str();
#ifndef PCSX2_CORE #ifndef PCSX2_CORE
int iwidth, iheight; int iwidth, iheight;
@ -1209,14 +1209,14 @@ void GSApp::Init()
// The null renderer goes last, it has use for benchmarking purposes in a release build // The null renderer goes last, it has use for benchmarking purposes in a release build
m_gs_renderers.push_back(GSSetting(static_cast<u32>(GSRendererType::Null), "Null", "")); m_gs_renderers.push_back(GSSetting(static_cast<u32>(GSRendererType::Null), "Null", ""));
m_gs_interlace.push_back(GSSetting(0, "None", "")); m_gs_deinterlace.push_back(GSSetting(0, "None", ""));
m_gs_interlace.push_back(GSSetting(1, "Weave tff", "saw-tooth")); m_gs_deinterlace.push_back(GSSetting(1, "Weave tff", "saw-tooth"));
m_gs_interlace.push_back(GSSetting(2, "Weave bff", "saw-tooth")); m_gs_deinterlace.push_back(GSSetting(2, "Weave bff", "saw-tooth"));
m_gs_interlace.push_back(GSSetting(3, "Bob tff", "use blend if shaking")); m_gs_deinterlace.push_back(GSSetting(3, "Bob tff", "use blend if shaking"));
m_gs_interlace.push_back(GSSetting(4, "Bob bff", "use blend if shaking")); m_gs_deinterlace.push_back(GSSetting(4, "Bob bff", "use blend if shaking"));
m_gs_interlace.push_back(GSSetting(5, "Blend tff", "slight blur, 1/2 fps")); m_gs_deinterlace.push_back(GSSetting(5, "Blend tff", "slight blur, 1/2 fps"));
m_gs_interlace.push_back(GSSetting(6, "Blend bff", "slight blur, 1/2 fps")); m_gs_deinterlace.push_back(GSSetting(6, "Blend bff", "slight blur, 1/2 fps"));
m_gs_interlace.push_back(GSSetting(7, "Automatic", "Default")); m_gs_deinterlace.push_back(GSSetting(7, "Automatic", "Default"));
m_gs_upscale_multiplier.push_back(GSSetting(1, "Native", "PS2")); m_gs_upscale_multiplier.push_back(GSSetting(1, "Native", "PS2"));
m_gs_upscale_multiplier.push_back(GSSetting(2, "2x Native", "~720p")); m_gs_upscale_multiplier.push_back(GSSetting(2, "2x Native", "~720p"));
@ -1339,7 +1339,7 @@ void GSApp::Init()
m_default_configuration["fxaa"] = "0"; m_default_configuration["fxaa"] = "0";
m_default_configuration["HWDisableReadbacks"] = "0"; m_default_configuration["HWDisableReadbacks"] = "0";
m_default_configuration["IntegerScaling"] = "0"; m_default_configuration["IntegerScaling"] = "0";
m_default_configuration["interlace"] = "7"; m_default_configuration["deinterlace"] = "7";
m_default_configuration["conservative_framebuffer"] = "1"; m_default_configuration["conservative_framebuffer"] = "1";
m_default_configuration["linear_present"] = "1"; m_default_configuration["linear_present"] = "1";
m_default_configuration["LoadTextureReplacements"] = "0"; m_default_configuration["LoadTextureReplacements"] = "0";
@ -1627,7 +1627,7 @@ BEGIN_HOTKEY_LIST(g_gs_hotkeys){
s_gs->PurgePool(); s_gs->PurgePool();
}); });
}}, }},
{"CycleInterlaceMode", "Graphics", "Cycle Interlace Mode", [](bool pressed) { {"CycleInterlaceMode", "Graphics", "Cycle Deinterlace Mode", [](bool pressed) {
if (pressed) if (pressed)
return; return;

View File

@ -127,7 +127,7 @@ public:
void SetConfigDir(); void SetConfigDir();
std::vector<GSSetting> m_gs_renderers; std::vector<GSSetting> m_gs_renderers;
std::vector<GSSetting> m_gs_interlace; std::vector<GSSetting> m_gs_deinterlace;
std::vector<GSSetting> m_gs_upscale_multiplier; std::vector<GSSetting> m_gs_upscale_multiplier;
std::vector<GSSetting> m_gs_max_anisotropy; std::vector<GSSetting> m_gs_max_anisotropy;
std::vector<GSSetting> m_gs_dithering; std::vector<GSSetting> m_gs_dithering;

View File

@ -643,7 +643,7 @@ void GSRenderer::KeyEvent(const HostKeyEvent& e)
case VK_F5: case VK_F5:
GSConfig.InterlaceMode = static_cast<GSInterlaceMode>((static_cast<int>(GSConfig.InterlaceMode) + static_cast<int>(GSInterlaceMode::Count) + step) % static_cast<int>(GSInterlaceMode::Count)); GSConfig.InterlaceMode = static_cast<GSInterlaceMode>((static_cast<int>(GSConfig.InterlaceMode) + static_cast<int>(GSInterlaceMode::Count) + step) % static_cast<int>(GSInterlaceMode::Count));
theApp.SetConfig("interlace", static_cast<int>(GSConfig.InterlaceMode)); theApp.SetConfig("interlace", static_cast<int>(GSConfig.InterlaceMode));
printf("GS: Set deinterlace mode to %d (%s).\n", static_cast<int>(GSConfig.InterlaceMode), theApp.m_gs_interlace.at(static_cast<int>(GSConfig.InterlaceMode)).name.c_str()); printf("GS: Set deinterlace mode to %d (%s).\n", static_cast<int>(GSConfig.InterlaceMode), theApp.m_gs_deinterlace.at(static_cast<int>(GSConfig.InterlaceMode)).name.c_str());
return; return;
case VK_DELETE: case VK_DELETE:
GSConfig.AA1 = !GSConfig.AA1; GSConfig.AA1 = !GSConfig.AA1;

View File

@ -617,7 +617,7 @@ Dialog::Dialog()
m_adapter_select = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, {}); m_adapter_select = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, {});
top_grid->Add(m_adapter_select, wxSizerFlags().Expand()); top_grid->Add(m_adapter_select, wxSizerFlags().Expand());
m_ui.addComboBoxAndLabel(top_grid, "Deinterlacing (F5):", "interlace", &theApp.m_gs_interlace); m_ui.addComboBoxAndLabel(top_grid, "Deinterlacing (F5):", "deinterlace", &theApp.m_gs_deinterlace);
m_bifilter_select = m_ui.addComboBoxAndLabel(top_grid, "Texture Filtering:", "filter", &theApp.m_gs_bifilter, IDC_FILTER).first; m_bifilter_select = m_ui.addComboBoxAndLabel(top_grid, "Texture Filtering:", "filter", &theApp.m_gs_bifilter, IDC_FILTER).first;

View File

@ -286,7 +286,7 @@ static const char* s_gs_hw_fix_names[] = {
"halfPixelOffset", "halfPixelOffset",
"roundSprite", "roundSprite",
"texturePreloading", "texturePreloading",
"interlace", "deinterlace",
}; };
static_assert(std::size(s_gs_hw_fix_names) == static_cast<u32>(GameDatabaseSchema::GSHWFixId::Count), "HW fix name lookup is correct size"); static_assert(std::size(s_gs_hw_fix_names) == static_cast<u32>(GameDatabaseSchema::GSHWFixId::Count), "HW fix name lookup is correct size");
@ -310,7 +310,7 @@ bool GameDatabaseSchema::isUserHackHWFix(GSHWFixId id)
{ {
switch (id) switch (id)
{ {
case GSHWFixId::Interlace: case GSHWFixId::Deinterlace:
case GSHWFixId::Mipmap: case GSHWFixId::Mipmap:
case GSHWFixId::TexturePreloading: case GSHWFixId::TexturePreloading:
case GSHWFixId::ConservativeFramebuffer: case GSHWFixId::ConservativeFramebuffer:
@ -552,13 +552,13 @@ u32 GameDatabaseSchema::GameEntry::applyGSHardwareFixes(Pcsx2Config::GSOptions&
} }
break; break;
case GSHWFixId::Interlace: case GSHWFixId::Deinterlace:
if (value >= 0 && value <= static_cast<int>(GSInterlaceMode::Automatic)) if (value >= 0 && value <= static_cast<int>(GSInterlaceMode::Automatic))
{ {
if (config.InterlaceMode == GSInterlaceMode::Automatic) if (config.InterlaceMode == GSInterlaceMode::Automatic)
config.InterlaceMode = static_cast<GSInterlaceMode>(value); config.InterlaceMode = static_cast<GSInterlaceMode>(value);
else else
Console.Warning("[GameDB] Game requires different interlace mode but it has been overridden by user setting."); Console.Warning("[GameDB] Game requires different deinterlace mode but it has been overridden by user setting.");
} }
break; break;

View File

@ -81,7 +81,7 @@ namespace GameDatabaseSchema
HalfPixelOffset, HalfPixelOffset,
RoundSprite, RoundSprite,
TexturePreloading, TexturePreloading,
Interlace, Deinterlace,
Count Count
}; };

View File

@ -552,7 +552,7 @@ void Pcsx2Config::GSOptions::ReloadIniSettings()
GSSettingBoolEx(LoadTextureReplacementsAsync, "LoadTextureReplacementsAsync"); GSSettingBoolEx(LoadTextureReplacementsAsync, "LoadTextureReplacementsAsync");
GSSettingBoolEx(PrecacheTextureReplacements, "PrecacheTextureReplacements"); GSSettingBoolEx(PrecacheTextureReplacements, "PrecacheTextureReplacements");
GSSettingIntEnumEx(InterlaceMode, "interlace"); GSSettingIntEnumEx(InterlaceMode, "deinterlace");
GSSettingFloat(OsdScale); GSSettingFloat(OsdScale);