mirror of https://github.com/PCSX2/pcsx2.git
UI: Integrated Motion Adaptive Deinterlacing with UI
[SETTINGSVERSION+] Added entries in the drop-down menu for Adaptive Deinterlacing Re-arranged deinterlacing mode order in the drop-down menu. "Auto" mode defaults to MAD. Adjusted GameDB entries to be compatible with the new order of entries. Improved Bob description for WX
This commit is contained in:
parent
f10e7f4ab7
commit
0f42eab7a4
|
@ -425,7 +425,7 @@ SCAJ-10008:
|
||||||
name: "Taiko no Tatsujin - Atsumare! Matsuri da!! Yondaime"
|
name: "Taiko no Tatsujin - Atsumare! Matsuri da!! Yondaime"
|
||||||
region: "NTSC-Unk"
|
region: "NTSC-Unk"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SCAJ-10009:
|
SCAJ-10009:
|
||||||
name: "Psikyo Shooting Collection Vol.1 - Strikers 1-2"
|
name: "Psikyo Shooting Collection Vol.1 - Strikers 1-2"
|
||||||
|
@ -440,31 +440,31 @@ SCAJ-10011:
|
||||||
name: "Taiko no Tatsujin - Go! Go! Godaime"
|
name: "Taiko no Tatsujin - Go! Go! Godaime"
|
||||||
region: "NTSC-Unk"
|
region: "NTSC-Unk"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SCAJ-10012:
|
SCAJ-10012:
|
||||||
name: "Taiko Drum Master"
|
name: "Taiko Drum Master"
|
||||||
region: "NTSC-Unk"
|
region: "NTSC-Unk"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SCAJ-10013:
|
SCAJ-10013:
|
||||||
name: "Taiko no Tatsujin - Tobikkiri! Anime Special"
|
name: "Taiko no Tatsujin - Tobikkiri! Anime Special"
|
||||||
region: "NTSC-Unk"
|
region: "NTSC-Unk"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SCAJ-10014:
|
SCAJ-10014:
|
||||||
name: "Taiko no Tatsujin - Wai Wai Happy! Rokudaime"
|
name: "Taiko no Tatsujin - Wai Wai Happy! Rokudaime"
|
||||||
region: "NTSC-Unk"
|
region: "NTSC-Unk"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SCAJ-10015:
|
SCAJ-10015:
|
||||||
name: "Taiko no Tatsujin - Doka! to Oomori Nanadaime"
|
name: "Taiko no Tatsujin - Doka! to Oomori Nanadaime"
|
||||||
region: "NTSC-Unk"
|
region: "NTSC-Unk"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SCAJ-20001:
|
SCAJ-20001:
|
||||||
name: "Ratchet & Clank"
|
name: "Ratchet & Clank"
|
||||||
|
@ -3170,7 +3170,7 @@ SCES-51164:
|
||||||
name: "Mark of Kri, The"
|
name: "Mark of Kri, The"
|
||||||
region: "PAL-M5"
|
region: "PAL-M5"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 3 # Game requires bob deinterlacing when auto.
|
deinterlace: 4 # 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"
|
||||||
|
@ -6471,7 +6471,7 @@ SCPS-51011:
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
compat: 5
|
compat: 5
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 6 # Fixes blurriness.
|
deinterlace: 7 # Fixes blurriness.
|
||||||
SCPS-51012:
|
SCPS-51012:
|
||||||
name: "Gigantic Drive"
|
name: "Gigantic Drive"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
|
@ -6992,7 +6992,7 @@ SCUS-97140:
|
||||||
region: "NTSC-U"
|
region: "NTSC-U"
|
||||||
compat: 5
|
compat: 5
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 3 # Game requires bob deinterlacing when auto.
|
deinterlace: 4 # Game requires bob deinterlacing when auto.
|
||||||
patches:
|
patches:
|
||||||
DBD09DD4:
|
DBD09DD4:
|
||||||
content: |-
|
content: |-
|
||||||
|
@ -7218,7 +7218,7 @@ SCUS-97201:
|
||||||
name: "Mark of Kri, The"
|
name: "Mark of Kri, The"
|
||||||
region: "NTSC-U"
|
region: "NTSC-U"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 3 # Game requires bob deinterlacing when auto.
|
deinterlace: 4 # Game requires bob deinterlacing when auto.
|
||||||
SCUS-97203:
|
SCUS-97203:
|
||||||
name: "Wild ARMs 3"
|
name: "Wild ARMs 3"
|
||||||
region: "NTSC-U"
|
region: "NTSC-U"
|
||||||
|
@ -7300,7 +7300,7 @@ SCUS-97222:
|
||||||
name: "Mark of Kri [Demo]"
|
name: "Mark of Kri [Demo]"
|
||||||
region: "NTSC-U"
|
region: "NTSC-U"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 3 # Game requires bob deinterlacing when auto.
|
deinterlace: 4 # 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"
|
||||||
|
@ -11965,7 +11965,7 @@ SLES-51235:
|
||||||
region: "PAL-M5"
|
region: "PAL-M5"
|
||||||
compat: 5
|
compat: 5
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 6 # Fixes blurriness.
|
deinterlace: 7 # Fixes blurriness.
|
||||||
SLES-51236:
|
SLES-51236:
|
||||||
name: "Gungrave"
|
name: "Gungrave"
|
||||||
region: "PAL-M3"
|
region: "PAL-M3"
|
||||||
|
@ -17330,7 +17330,7 @@ SLES-53621:
|
||||||
region: "PAL-M5"
|
region: "PAL-M5"
|
||||||
compat: 5
|
compat: 5
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 3 # Game requires bob deinterlacing when auto.
|
deinterlace: 4 # Game requires bob deinterlacing when auto.
|
||||||
halfPixelOffset: 1 # Fixes misalignment/bloom when upscaling.
|
halfPixelOffset: 1 # Fixes misalignment/bloom when upscaling.
|
||||||
SLES-53623:
|
SLES-53623:
|
||||||
name: "SpongeBob SquarePants - Battle for Bikini Bottom"
|
name: "SpongeBob SquarePants - Battle for Bikini Bottom"
|
||||||
|
@ -19569,7 +19569,7 @@ SLES-54548:
|
||||||
name: "Cocoto Fishing Master"
|
name: "Cocoto Fishing Master"
|
||||||
region: "PAL-M4"
|
region: "PAL-M4"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 6 # Fixes blurriness.
|
deinterlace: 7 # Fixes blurriness.
|
||||||
halfPixelOffset: 1 # Fixes blur.
|
halfPixelOffset: 1 # Fixes blur.
|
||||||
SLES-54549:
|
SLES-54549:
|
||||||
name: "Crazy Frog Racer 2"
|
name: "Crazy Frog Racer 2"
|
||||||
|
@ -26604,7 +26604,7 @@ SLPM-64521:
|
||||||
region: "NTSC-K"
|
region: "NTSC-K"
|
||||||
compat: 5
|
compat: 5
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 6 # Fixes blurriness.
|
deinterlace: 7 # Fixes blurriness.
|
||||||
SLPM-64522:
|
SLPM-64522:
|
||||||
name: "La Pucelle"
|
name: "La Pucelle"
|
||||||
region: "NTSC-K"
|
region: "NTSC-K"
|
||||||
|
@ -27733,7 +27733,7 @@ SLPM-65310:
|
||||||
name: "Mark of Kri, The"
|
name: "Mark of Kri, The"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 3 # Game requires bob deinterlacing when auto.
|
deinterlace: 4 # 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"
|
||||||
|
@ -31207,7 +31207,7 @@ SLPM-66327:
|
||||||
name: "Wallace & Gromit - The Curse of the Were-Rabbit"
|
name: "Wallace & Gromit - The Curse of the Were-Rabbit"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 3 # Game requires bob deinterlacing when auto.
|
deinterlace: 4 # Game requires bob deinterlacing when auto.
|
||||||
halfPixelOffset: 1 # Fixes misalignment/bloom when upscaling.
|
halfPixelOffset: 1 # Fixes misalignment/bloom when upscaling.
|
||||||
SLPM-66328:
|
SLPM-66328:
|
||||||
name: "Call of Duty 2 - Big Red One"
|
name: "Call of Duty 2 - Big Red One"
|
||||||
|
@ -34743,7 +34743,7 @@ SLPS-20198:
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
compat: 5
|
compat: 5
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 6 # Fixes blurriness.
|
deinterlace: 7 # Fixes blurriness.
|
||||||
SLPS-20199:
|
SLPS-20199:
|
||||||
name: "F1 2002"
|
name: "F1 2002"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
|
@ -35146,13 +35146,13 @@ SLPS-20382:
|
||||||
name: "Taiko no Tatsujin - Atsumare! Matsuri da!! Yondaime [with Tatacon]"
|
name: "Taiko no Tatsujin - Atsumare! Matsuri da!! Yondaime [with Tatacon]"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLPS-20383:
|
SLPS-20383:
|
||||||
name: "Taiko no Tatsujin - Atsumare! Matsuri da!! Yondaime"
|
name: "Taiko no Tatsujin - Atsumare! Matsuri da!! Yondaime"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLPS-20384:
|
SLPS-20384:
|
||||||
name: "Hayarigami - Keishichou Kaii Jiken File"
|
name: "Hayarigami - Keishichou Kaii Jiken File"
|
||||||
|
@ -35194,13 +35194,13 @@ SLPS-20399:
|
||||||
name: "Taiko no Tatsujin - Go! Go! Godaime [with Tatacon]"
|
name: "Taiko no Tatsujin - Go! Go! Godaime [with Tatacon]"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLPS-20400:
|
SLPS-20400:
|
||||||
name: "Taiko no Tatsujin - Go! Go! Godaime"
|
name: "Taiko no Tatsujin - Go! Go! Godaime"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLPS-20401:
|
SLPS-20401:
|
||||||
name: "Tecmo Hit Parade"
|
name: "Tecmo Hit Parade"
|
||||||
|
@ -35241,14 +35241,14 @@ SLPS-20413:
|
||||||
name: "Taiko no Tatsujin - Taiko Drum Master [with Tatacon]"
|
name: "Taiko no Tatsujin - Taiko Drum Master [with Tatacon]"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLPS-20414:
|
SLPS-20414:
|
||||||
name: "Taiko no Tatsujin - Taiko Drum Master"
|
name: "Taiko no Tatsujin - Taiko Drum Master"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
compat: 5
|
compat: 5
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLPS-20416:
|
SLPS-20416:
|
||||||
name: "Inyou Taisenki - Byakko Enbu [with EyeToy]"
|
name: "Inyou Taisenki - Byakko Enbu [with EyeToy]"
|
||||||
|
@ -35277,13 +35277,13 @@ SLPS-20424:
|
||||||
name: "Taiko no Tatsujin - Tobikkiri! Anime Special [with Tatacon]"
|
name: "Taiko no Tatsujin - Tobikkiri! Anime Special [with Tatacon]"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLPS-20425:
|
SLPS-20425:
|
||||||
name: "Taiko no Tatsujin - Tobikkiri! Anime Special"
|
name: "Taiko no Tatsujin - Tobikkiri! Anime Special"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLPS-20426:
|
SLPS-20426:
|
||||||
name: "Dreamworks Madagascar"
|
name: "Dreamworks Madagascar"
|
||||||
|
@ -35345,13 +35345,13 @@ SLPS-20450:
|
||||||
name: "Taiko no Tatsujin - Wai Wai Happy! Rokudaime [with Tatacon]"
|
name: "Taiko no Tatsujin - Wai Wai Happy! Rokudaime [with Tatacon]"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLPS-20451:
|
SLPS-20451:
|
||||||
name: "Taiko no Tatsujin - Wai Wai Happy! Rokudaime"
|
name: "Taiko no Tatsujin - Wai Wai Happy! Rokudaime"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLPS-20452:
|
SLPS-20452:
|
||||||
name: "Simple 2000 Series Ultimate Vol. 30 - Kourin! Zokusha Goddo!"
|
name: "Simple 2000 Series Ultimate Vol. 30 - Kourin! Zokusha Goddo!"
|
||||||
|
@ -35472,13 +35472,13 @@ SLPS-20485:
|
||||||
name: "Taiko no Tatsujin - Doka! to Oomori Nanadaime [with Tatacon]"
|
name: "Taiko no Tatsujin - Doka! to Oomori Nanadaime [with Tatacon]"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLPS-20486:
|
SLPS-20486:
|
||||||
name: "Taiko no Tatsujin - Doka! to Oomori Nanadaime"
|
name: "Taiko no Tatsujin - Doka! to Oomori Nanadaime"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLPS-20487:
|
SLPS-20487:
|
||||||
name: "Pachi-Slot King! Kagaku Ninja-Tai Gatchaman"
|
name: "Pachi-Slot King! Kagaku Ninja-Tai Gatchaman"
|
||||||
|
@ -38987,7 +38987,7 @@ SLPS-73107:
|
||||||
name: "Taiko no Tatsujin - Go! Go! Godaime [PlayStation 2 The Best]"
|
name: "Taiko no Tatsujin - Go! Go! Godaime [PlayStation 2 The Best]"
|
||||||
region: "NTSC-J"
|
region: "NTSC-J"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLPS-73108:
|
SLPS-73108:
|
||||||
name: "Phantom Brave [PlayStation 2 The Best]"
|
name: "Phantom Brave [PlayStation 2 The Best]"
|
||||||
|
@ -41510,7 +41510,7 @@ SLUS-20475:
|
||||||
name: "Dual Hearts"
|
name: "Dual Hearts"
|
||||||
region: "NTSC-U"
|
region: "NTSC-U"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 5 # Game requires blend tff deinterlacing when auto.
|
deinterlace: 6 # Game requires blend tff deinterlacing when auto.
|
||||||
compat: 5
|
compat: 5
|
||||||
SLUS-20476:
|
SLUS-20476:
|
||||||
name: "NBA 2K3 - Sega Sports"
|
name: "NBA 2K3 - Sega Sports"
|
||||||
|
@ -43036,7 +43036,7 @@ SLUS-20800:
|
||||||
name: "Taiko Drum Master"
|
name: "Taiko Drum Master"
|
||||||
region: "NTSC-U"
|
region: "NTSC-U"
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 4 # Game requires bob bff deinterlacing when auto.
|
deinterlace: 5 # Game requires bob bff deinterlacing when auto.
|
||||||
alignSprite: 1 # Fixes vertical lines.
|
alignSprite: 1 # Fixes vertical lines.
|
||||||
SLUS-20801:
|
SLUS-20801:
|
||||||
name: "Midway Arcade Treasures"
|
name: "Midway Arcade Treasures"
|
||||||
|
@ -45678,7 +45678,7 @@ SLUS-21312:
|
||||||
region: "NTSC-U"
|
region: "NTSC-U"
|
||||||
compat: 5
|
compat: 5
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 3 # Game requires bob deinterlacing when auto.
|
deinterlace: 4 # Game requires bob deinterlacing when auto.
|
||||||
halfPixelOffset: 1 # Fixes misalignment/bloom when upscaling.
|
halfPixelOffset: 1 # Fixes misalignment/bloom when upscaling.
|
||||||
SLUS-21313:
|
SLUS-21313:
|
||||||
name: "Friends - The One with all the Trivia"
|
name: "Friends - The One with all the Trivia"
|
||||||
|
@ -47380,7 +47380,7 @@ SLUS-21663:
|
||||||
region: "NTSC-U"
|
region: "NTSC-U"
|
||||||
compat: 5
|
compat: 5
|
||||||
gsHWFixes:
|
gsHWFixes:
|
||||||
deinterlace: 6 # Fixes blurriness.
|
deinterlace: 7 # Fixes blurriness.
|
||||||
halfPixelOffset: 1 # Fixes blur.
|
halfPixelOffset: 1 # Fixes blur.
|
||||||
SLUS-21664:
|
SLUS-21664:
|
||||||
name: "Sims 2, The - Castaway"
|
name: "Sims 2, The - Castaway"
|
||||||
|
|
|
@ -75,7 +75,7 @@ static const char* s_anisotropic_filtering_entries[] = {QT_TRANSLATE_NOOP("Graph
|
||||||
QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "8x"), QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "16x"), nullptr};
|
QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "8x"), QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "16x"), nullptr};
|
||||||
static const char* s_anisotropic_filtering_values[] = {"0", "2", "4", "8", "16", nullptr};
|
static const char* s_anisotropic_filtering_values[] = {"0", "2", "4", "8", "16", nullptr};
|
||||||
|
|
||||||
static constexpr int DEFAULT_INTERLACE_MODE = 7;
|
static constexpr int DEFAULT_INTERLACE_MODE = 0;
|
||||||
static constexpr int DEFAULT_TV_SHADER_MODE = 0;
|
static constexpr int DEFAULT_TV_SHADER_MODE = 0;
|
||||||
|
|
||||||
GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsDialog* dialog, QWidget* parent)
|
GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsDialog* dialog, QWidget* parent)
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTabWidget" name="hardwareRendererGroup">
|
<widget class="QTabWidget" name="hardwareRendererGroup">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>2</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="documentMode">
|
<property name="documentMode">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
|
@ -149,6 +149,11 @@
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QComboBox" name="interlacing">
|
<widget class="QComboBox" name="interlacing">
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Automatic (Default)</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>None</string>
|
<string>None</string>
|
||||||
|
@ -186,7 +191,12 @@
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Automatic (Default)</string>
|
<string>Adaptive (Top Field First)</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Adaptive (Bottom Field First)</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
|
@ -130,6 +130,7 @@ enum class GSRendererType : s8
|
||||||
|
|
||||||
enum class GSInterlaceMode : u8
|
enum class GSInterlaceMode : u8
|
||||||
{
|
{
|
||||||
|
Automatic,
|
||||||
Off,
|
Off,
|
||||||
WeaveTFF,
|
WeaveTFF,
|
||||||
WeaveBFF,
|
WeaveBFF,
|
||||||
|
@ -137,7 +138,8 @@ enum class GSInterlaceMode : u8
|
||||||
BobBFF,
|
BobBFF,
|
||||||
BlendTFF,
|
BlendTFF,
|
||||||
BlendBFF,
|
BlendBFF,
|
||||||
Automatic,
|
AdaptiveTFF,
|
||||||
|
AdaptiveBFF,
|
||||||
Count
|
Count
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -140,9 +140,18 @@ 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
|
||||||
* texturePreloading [`0` or `1` or `2`] {None, Partial or Full Hash Cache} Default: None (`0`)
|
[`0` or `1`]
|
||||||
* deinterlace [Value between `0` to `7`] {Off, WeaveTFF, WeaveBFF, BobTFF, BobBFF, BlendTFF, BlendBFF, Automatic} Default: Automatic (No value, looks up GameDB)
|
{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 `9`]
|
||||||
|
{Automatic Off, WeaveTFF, WeaveBFF, BobTFF, BobBFF, BlendTFF, BlendBFF, AdaptiveTFF, AdaptiveBFF}
|
||||||
|
Default: Automatic (No value, looks up GameDB)
|
||||||
|
|
||||||
### GS Hardware Renderer Fixes
|
### GS Hardware Renderer Fixes
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
#include <ShlObj.h>
|
#include <ShlObj.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static constexpr u32 SETTINGS_VERSION = 1;
|
static constexpr u32 SETTINGS_VERSION = 2;
|
||||||
|
|
||||||
namespace CommonHost
|
namespace CommonHost
|
||||||
{
|
{
|
||||||
|
|
|
@ -1310,14 +1310,16 @@ 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_deinterlace.push_back(GSSetting(0, "None", ""));
|
m_gs_deinterlace.push_back(GSSetting(0, "Automatic", "Default"));
|
||||||
m_gs_deinterlace.push_back(GSSetting(1, "Weave tff", "saw-tooth"));
|
m_gs_deinterlace.push_back(GSSetting(1, "None", ""));
|
||||||
m_gs_deinterlace.push_back(GSSetting(2, "Weave bff", "saw-tooth"));
|
m_gs_deinterlace.push_back(GSSetting(2, "Weave tff", "saw-tooth"));
|
||||||
m_gs_deinterlace.push_back(GSSetting(3, "Bob tff", "use blend if shaking"));
|
m_gs_deinterlace.push_back(GSSetting(3, "Weave bff", "saw-tooth"));
|
||||||
m_gs_deinterlace.push_back(GSSetting(4, "Bob bff", "use blend if shaking"));
|
m_gs_deinterlace.push_back(GSSetting(4, "Bob tff", "use adaptive or blend if shaking"));
|
||||||
m_gs_deinterlace.push_back(GSSetting(5, "Blend tff", "slight blur, 1/2 fps"));
|
m_gs_deinterlace.push_back(GSSetting(5, "Bob bff", "use adaptive or blend if shaking"));
|
||||||
m_gs_deinterlace.push_back(GSSetting(6, "Blend bff", "slight blur, 1/2 fps"));
|
m_gs_deinterlace.push_back(GSSetting(6, "Blend tff", "slight blur, 1/2 fps"));
|
||||||
m_gs_deinterlace.push_back(GSSetting(7, "Automatic", "Default"));
|
m_gs_deinterlace.push_back(GSSetting(7, "Blend bff", "slight blur, 1/2 fps"));
|
||||||
|
m_gs_deinterlace.push_back(GSSetting(8, "Adaptive tff", "minor artifacts"));
|
||||||
|
m_gs_deinterlace.push_back(GSSetting(9, "Adaptive bff", "minor artifacts"));
|
||||||
|
|
||||||
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"));
|
||||||
|
|
|
@ -364,42 +364,42 @@ void GSDevice::Merge(GSTexture* sTex[3], GSVector4* sRect, GSVector4* dRect, con
|
||||||
void GSDevice::Interlace(const GSVector2i& ds, int field, int mode, float yoffset)
|
void GSDevice::Interlace(const GSVector2i& ds, int field, int mode, float yoffset)
|
||||||
{
|
{
|
||||||
static int bufIdx = 0;
|
static int bufIdx = 0;
|
||||||
|
float offset = yoffset * static_cast<float>(field);
|
||||||
|
offset = GSConfig.DisableInterlaceOffset ? 0.0f : offset;
|
||||||
|
|
||||||
if (mode == 0) // weave
|
switch (mode)
|
||||||
{
|
{
|
||||||
const float offset = yoffset * static_cast<float>(field);
|
case 0: // weave
|
||||||
ResizeTarget(&m_weavebob, ds.x, ds.y);
|
ResizeTarget(&m_weavebob, ds.x, ds.y);
|
||||||
DoInterlace(m_merge, m_weavebob, field, false, GSConfig.DisableInterlaceOffset ? 0.0f : offset, 0);
|
DoInterlace(m_merge, m_weavebob, field, false, offset, 0);
|
||||||
m_current = m_weavebob;
|
m_current = m_weavebob;
|
||||||
}
|
break;
|
||||||
else if (mode == 1) // bob
|
case 1: // bob
|
||||||
{
|
// Field is reversed here as we are countering the bounce.
|
||||||
// Field is reversed here as we are countering the bounce.
|
ResizeTarget(&m_weavebob, ds.x, ds.y);
|
||||||
ResizeTarget(&m_weavebob, ds.x, ds.y);
|
DoInterlace(m_merge, m_weavebob, 3, true, yoffset * (1 - field), 0);
|
||||||
DoInterlace(m_merge, m_weavebob, 3, true, yoffset * (1-field), 0);
|
m_current = m_weavebob;
|
||||||
m_current = m_weavebob;
|
break;
|
||||||
}
|
case 2: //Blend
|
||||||
else if (mode == 2) // FastMAD Motion Adaptive Deinterlacing
|
ResizeTarget(&m_weavebob, ds.x, ds.y);
|
||||||
{
|
DoInterlace(m_merge, m_weavebob, field, false, offset, 0);
|
||||||
bufIdx++;
|
ResizeTarget(&m_blend, ds.x, ds.y);
|
||||||
bufIdx &= ~(field ^ 1);
|
DoInterlace(m_weavebob, m_blend, 2, false, 0, 0);
|
||||||
bufIdx |= (field);
|
m_current = m_blend;
|
||||||
bufIdx &= 3;
|
break;
|
||||||
|
case 3: // FastMAD Motion Adaptive Deinterlacing
|
||||||
float offset = (yoffset * field);
|
bufIdx++;
|
||||||
offset = GSConfig.DisableInterlaceOffset ? 0.0f : offset;
|
bufIdx &= ~1;
|
||||||
|
bufIdx |= field;
|
||||||
ResizeTarget(&m_mad, ds.x, ds.y * 2.0f);
|
bufIdx &= 3;
|
||||||
DoInterlace(m_merge, m_mad, 4, false, offset, bufIdx);
|
ResizeTarget(&m_mad, ds.x, ds.y * 2.0f);
|
||||||
ResizeTarget(&m_blend, ds.x, ds.y);
|
DoInterlace(m_merge, m_mad, 4, false, offset, bufIdx);
|
||||||
DoInterlace(m_mad, m_blend, 5, false, 0, bufIdx);
|
ResizeTarget(&m_weavebob, ds.x, ds.y);
|
||||||
|
DoInterlace(m_mad, m_weavebob, 5, false, 0, bufIdx);
|
||||||
|
m_current = m_weavebob;
|
||||||
m_current = m_blend;
|
break;
|
||||||
}
|
default:
|
||||||
else
|
m_current = m_merge;
|
||||||
{
|
|
||||||
m_current = m_merge;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -179,13 +179,13 @@ bool GSRenderer::Merge(int field)
|
||||||
float offset = is_bob ? (tex[1] ? tex[1]->GetScale().y : tex[0]->GetScale().y) : 0.0f;
|
float offset = is_bob ? (tex[1] ? tex[1]->GetScale().y : tex[0]->GetScale().y) : 0.0f;
|
||||||
|
|
||||||
int field2 = 0;
|
int field2 = 0;
|
||||||
int mode = 2;
|
int mode = 3;
|
||||||
|
|
||||||
// FFMD (half frames) requires blend deinterlacing, so automatically use that. Same when SCANMSK is used but not blended in the merge circuit (Alpine Racer 3)
|
// FFMD (half frames) requires blend deinterlacing, so automatically use that. Same when SCANMSK is used but not blended in the merge circuit (Alpine Racer 3)
|
||||||
if (GSConfig.InterlaceMode != GSInterlaceMode::Automatic || (!m_regs->SMODE2.FFMD && !scanmask_frame))
|
if (GSConfig.InterlaceMode != GSInterlaceMode::Automatic || (!m_regs->SMODE2.FFMD && !scanmask_frame))
|
||||||
{
|
{
|
||||||
field2 = ((static_cast<int>(GSConfig.InterlaceMode) - 1) & 1);
|
field2 = ((static_cast<int>(GSConfig.InterlaceMode) - 2) & 1);
|
||||||
mode = ((static_cast<int>(GSConfig.InterlaceMode) - 1) >> 1);
|
mode = ((static_cast<int>(GSConfig.InterlaceMode) - 2) >> 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 2; i++)
|
for (int i = 0; i < 2; i++)
|
||||||
|
|
|
@ -722,9 +722,10 @@ void GSDevice12::DoMerge(GSTexture* sTex[3], GSVector4* sRect, GSTexture* dTex,
|
||||||
|
|
||||||
void GSDevice12::DoInterlace(GSTexture* sTex, GSTexture* dTex, int shader, bool linear, float yoffset, int bufIdx)
|
void GSDevice12::DoInterlace(GSTexture* sTex, GSTexture* dTex, int shader, bool linear, float yoffset, int bufIdx)
|
||||||
{
|
{
|
||||||
const GSVector4 ss = GSVector4(sTex->GetSize());
|
const GSVector4 ss = GSVector4(sTex->GetSize());
|
||||||
const GSVector4 ds = GSVector4(dTex->GetSize());
|
const GSVector2i ds_i = dTex->GetSize();
|
||||||
const GSVector2i ds_i(dTex->GetSize());
|
const GSVector4 ds = GSVector4(ds_i);
|
||||||
|
|
||||||
|
|
||||||
const GSVector4 sRect(0, 0, 1, 1);
|
const GSVector4 sRect(0, 0, 1, 1);
|
||||||
const GSVector4 dRect(0.0f, yoffset, ds.x, ds.y + yoffset);
|
const GSVector4 dRect(0.0f, yoffset, ds.x, ds.y + yoffset);
|
||||||
|
@ -733,7 +734,7 @@ void GSDevice12::DoInterlace(GSTexture* sTex, GSTexture* dTex, int shader, bool
|
||||||
|
|
||||||
cb.ZrH = GSVector4(static_cast<float>(bufIdx), 1.0f / ss.y, ss.y, MAD_SENSITIVITY);
|
cb.ZrH = GSVector4(static_cast<float>(bufIdx), 1.0f / ss.y, ss.y, MAD_SENSITIVITY);
|
||||||
|
|
||||||
GL_PUSH("DoInterlace %dx%d Shader:%d Linear:%d", size.x, size.y, shader, linear);
|
GL_PUSH("DoInterlace %dx%d Shader:%d Linear:%d", ds_i.x, ds_i.y, shader, linear);
|
||||||
|
|
||||||
static_cast<GSTexture12*>(dTex)->TransitionToState(D3D12_RESOURCE_STATE_RENDER_TARGET);
|
static_cast<GSTexture12*>(dTex)->TransitionToState(D3D12_RESOURCE_STATE_RENDER_TARGET);
|
||||||
|
|
||||||
|
|
|
@ -857,9 +857,10 @@ void GSDeviceVK::DoMerge(GSTexture* sTex[3], GSVector4* sRect, GSTexture* dTex,
|
||||||
|
|
||||||
void GSDeviceVK::DoInterlace(GSTexture* sTex, GSTexture* dTex, int shader, bool linear, float yoffset, int bufIdx)
|
void GSDeviceVK::DoInterlace(GSTexture* sTex, GSTexture* dTex, int shader, bool linear, float yoffset, int bufIdx)
|
||||||
{
|
{
|
||||||
const GSVector4 ss = GSVector4(sTex->GetSize());
|
const GSVector4 ss = GSVector4(sTex->GetSize());
|
||||||
const GSVector4 ds = GSVector4(dTex->GetSize());
|
const GSVector2i ds_i = dTex->GetSize();
|
||||||
const GSVector2i ds_i(dTex->GetSize());
|
const GSVector4 ds = GSVector4(ds_i);
|
||||||
|
|
||||||
|
|
||||||
const GSVector4 sRect(0, 0, 1, 1);
|
const GSVector4 sRect(0, 0, 1, 1);
|
||||||
const GSVector4 dRect(0.0f, yoffset, ds.x, ds.y + yoffset);
|
const GSVector4 dRect(0.0f, yoffset, ds.x, ds.y + yoffset);
|
||||||
|
@ -868,7 +869,7 @@ void GSDeviceVK::DoInterlace(GSTexture* sTex, GSTexture* dTex, int shader, bool
|
||||||
|
|
||||||
cb.ZrH = GSVector4(static_cast<float>(bufIdx), 1.0f / ss.y, ss.y, MAD_SENSITIVITY);
|
cb.ZrH = GSVector4(static_cast<float>(bufIdx), 1.0f / ss.y, ss.y, MAD_SENSITIVITY);
|
||||||
|
|
||||||
GL_PUSH("DoInterlace %dx%d Shader:%d Linear:%d", size.x, size.y, shader, linear);
|
GL_PUSH("DoInterlace %dx%d Shader:%d Linear:%d", ds_i.x, ds_i.y, shader, linear);
|
||||||
|
|
||||||
static_cast<GSTextureVK*>(dTex)->TransitionToLayout(VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL);
|
static_cast<GSTextureVK*>(dTex)->TransitionToLayout(VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue