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

View File

@ -141,21 +141,21 @@ The clamp modes are also numerically based.
### GS Hardware General Fixes
* 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`)
* interlace [Value between `0` to `7`] {Off, WeaveTFF, WeaveBFF, BobTFF, BobBFF, BlendTFF, BlendBFF, Automatic} Default: Automatic (No value, looks up GameDB)
* 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`)
* 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
* autoFlush [`0` or `1`] {Off or On} Default: Off (`0`)
* disableDepthSupport [`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`)
* disablePartialInvalidation [`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`)
* preloadFrameData [`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)
* pointListPalette [`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`)
* preloadFrameData [`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)
* pointListPalette [`0` or `1`] {Off or On} Default: Off (`0`)
### GS Hardware Upscaling Fixes

View File

@ -1,5 +1,5 @@
/* 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
* 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* 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
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
m_gs_renderers.push_back(GSSetting(static_cast<u32>(GSRendererType::Null), "Null", ""));
m_gs_interlace.push_back(GSSetting(0, "None", ""));
m_gs_interlace.push_back(GSSetting(1, "Weave tff", "saw-tooth"));
m_gs_interlace.push_back(GSSetting(2, "Weave bff", "saw-tooth"));
m_gs_interlace.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_interlace.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_interlace.push_back(GSSetting(7, "Automatic", "Default"));
m_gs_deinterlace.push_back(GSSetting(0, "None", ""));
m_gs_deinterlace.push_back(GSSetting(1, "Weave tff", "saw-tooth"));
m_gs_deinterlace.push_back(GSSetting(2, "Weave bff", "saw-tooth"));
m_gs_deinterlace.push_back(GSSetting(3, "Bob tff", "use blend if shaking"));
m_gs_deinterlace.push_back(GSSetting(4, "Bob bff", "use blend if shaking"));
m_gs_deinterlace.push_back(GSSetting(5, "Blend tff", "slight blur, 1/2 fps"));
m_gs_deinterlace.push_back(GSSetting(6, "Blend bff", "slight blur, 1/2 fps"));
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(2, "2x Native", "~720p"));
@ -1339,7 +1339,7 @@ void GSApp::Init()
m_default_configuration["fxaa"] = "0";
m_default_configuration["HWDisableReadbacks"] = "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["linear_present"] = "1";
m_default_configuration["LoadTextureReplacements"] = "0";
@ -1627,7 +1627,7 @@ BEGIN_HOTKEY_LIST(g_gs_hotkeys){
s_gs->PurgePool();
});
}},
{"CycleInterlaceMode", "Graphics", "Cycle Interlace Mode", [](bool pressed) {
{"CycleInterlaceMode", "Graphics", "Cycle Deinterlace Mode", [](bool pressed) {
if (pressed)
return;

View File

@ -127,7 +127,7 @@ public:
void SetConfigDir();
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_max_anisotropy;
std::vector<GSSetting> m_gs_dithering;

View File

@ -643,7 +643,7 @@ void GSRenderer::KeyEvent(const HostKeyEvent& e)
case VK_F5:
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));
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;
case VK_DELETE:
GSConfig.AA1 = !GSConfig.AA1;

View File

@ -617,7 +617,7 @@ Dialog::Dialog()
m_adapter_select = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, {});
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;

View File

@ -286,7 +286,7 @@ static const char* s_gs_hw_fix_names[] = {
"halfPixelOffset",
"roundSprite",
"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");
@ -310,7 +310,7 @@ bool GameDatabaseSchema::isUserHackHWFix(GSHWFixId id)
{
switch (id)
{
case GSHWFixId::Interlace:
case GSHWFixId::Deinterlace:
case GSHWFixId::Mipmap:
case GSHWFixId::TexturePreloading:
case GSHWFixId::ConservativeFramebuffer:
@ -552,13 +552,13 @@ u32 GameDatabaseSchema::GameEntry::applyGSHardwareFixes(Pcsx2Config::GSOptions&
}
break;
case GSHWFixId::Interlace:
case GSHWFixId::Deinterlace:
if (value >= 0 && value <= static_cast<int>(GSInterlaceMode::Automatic))
{
if (config.InterlaceMode == GSInterlaceMode::Automatic)
config.InterlaceMode = static_cast<GSInterlaceMode>(value);
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;

View File

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

View File

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