From bbaa1ba17a05aac9d76d6c4f24153fd2d1a3ddcb Mon Sep 17 00:00:00 2001 From: izzy2lost Date: Fri, 29 Aug 2025 12:26:17 -0400 Subject: [PATCH] updated api etc. better controller detection ui changes --- .gitignore | 1 + app/build.gradle | 15 +- app/src/main/assets/resources/GameIndex.yaml | 2661 ++++++++++------- .../main/assets/resources/RedumpDatabase.yaml | 712 ++++- ...db.txt.disabled => game_controller_db.txt} | 46 +- app/src/main/assets/resources/patches.zip | Bin 2002809 -> 2014284 bytes .../java/com/izzy2lost/psx2/MainActivity.java | 160 +- .../psx2/QuickActionsDialogFragment.java | 13 +- .../main/res/layout-land/activity_main.xml | 1 + .../main/res/layout-port/activity_main.xml | 1 + app/src/main/res/layout/activity_main.xml | 1 + .../main/res/layout/dialog_quick_actions.xml | 11 +- gradle.properties | 3 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 14 files changed, 2321 insertions(+), 1306 deletions(-) rename app/src/main/assets/resources/{game_controller_db.txt.disabled => game_controller_db.txt} (98%) diff --git a/.gitignore b/.gitignore index a5b0562..4f596ce 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ app/.cxx/ *.iml *.exe /PCSX2_ARM64 +build/reports/problems/problems-report.html diff --git a/app/build.gradle b/app/build.gradle index 765523b..bbe7cca 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,27 +4,26 @@ plugins { android { namespace 'com.izzy2lost.psx2' - compileSdk 35 - buildToolsVersion '35.0.0' + compileSdk 36 ndkVersion '28.2.13676358' defaultConfig { applicationId "com.izzy2lost.psx2" minSdk 26 - targetSdk 35 + targetSdk 36 versionCode 1 versionName "1.0" - // APK setProperty("archivesBaseName","PSX2_${versionCode}_${new Date().format('yyyyMMddHHmm')}") externalNativeBuild { cmake { arguments '-DANDROID=true','-DCMAKE_BUILD_TYPE=Release','-DANDROID_STL=c++_static' -// arguments '-DANDROID=true','-DCMAKE_BUILD_TYPE=Debug','-DANDROID_STL=c++_static' + // arguments '-DANDROID=true','-DCMAKE_BUILD_TYPE=Debug','-DANDROID_STL=c++_static' } } ndk { + //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a' } } @@ -60,9 +59,9 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.7.1' implementation 'com.google.android.material:material:1.12.0' implementation 'androidx.constraintlayout:constraintlayout:2.2.1' - implementation 'androidx.documentfile:documentfile:1.0.1' - implementation 'androidx.recyclerview:recyclerview:1.3.2' + implementation 'androidx.documentfile:documentfile:1.1.0' + implementation 'androidx.recyclerview:recyclerview:1.4.0' + implementation 'androidx.activity:activity:1.10.1' implementation 'com.github.bumptech.glide:glide:4.16.0' - implementation 'androidx.activity:activity:1.9.3' annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0' } diff --git a/app/src/main/assets/resources/GameIndex.yaml b/app/src/main/assets/resources/GameIndex.yaml index 2ca0b79..8b747d0 100644 --- a/app/src/main/assets/resources/GameIndex.yaml +++ b/app/src/main/assets/resources/GameIndex.yaml @@ -121,7 +121,7 @@ CPCS-01005: halfPixelOffset: 5 # Fixes character offset with flashlight and blurriness. Fixes water lines. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes light bloom intensity. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. CPCS-01020: name: "モンスターハンター2 [DXハンターボックス]" name-sort: "もんすたーはんたー2 [DXはんたーぼっくす]" @@ -193,7 +193,9 @@ PAPX-90203: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + halfPixelOffset: 5 # Fixes edge bleed and lines. + autoFlush: 1 # Fixes missing lens flare and intensity. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PAPX-90204: name: "TVDJ ~ティービィーディージェー~ [体験版]" name-sort: "TVDJ [たいけんばん]" @@ -218,7 +220,7 @@ PAPX-90207: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PAPX-90208: name: "GRAN TURISMO 3 - A-Spec - リプレイシアター" name-sort: "ぐらんつーりすも 3 A-Spec りぷれいしあたー" @@ -226,7 +228,7 @@ PAPX-90208: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PAPX-90209: name: "GRAN TURISMO 3 - A-Spec - Netz TOYOTA - リプレイシアターディスク" name-sort: "ぐらんつーりすも 3 A-Spec ねっつとよたりぷれいしあたーでぃすく" @@ -234,7 +236,7 @@ PAPX-90209: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PAPX-90210: name: "やっぱ RPGでしょ。 [オリジナルムービーディスク]" name-sort: "やっぱ あーるぴーじーでしょ [おりじなるむーびーでぃすく]" @@ -248,7 +250,7 @@ PAPX-90211: gameFixes: - SoftwareRendererFMVHack # Black FMV. gsHWFixes: - halfPixelOffset: 4 # Fixes post processing position. + halfPixelOffset: 4 # Fixes post-processing position. nativeScaling: 2 # Fixes post effects. PAPX-90212: name: "ボクと魔王 [体験版]" @@ -331,7 +333,7 @@ PAPX-90230: name-en: "Arc the Lad - Seirei no Tasogare - Premiere Disc [ShopDemo]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. PAPX-90231: @@ -411,7 +413,7 @@ PAPX-90504: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PAPX-90505: name: "2002 夏のオススメソフト おためしDisc" name-sort: "2002 なつのおすすめそふと おためしでぃすく" @@ -444,7 +446,7 @@ PAPX-90508: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PAPX-90511: name: "SIREN [体験版]" name-sort: "さいれん [たいけんばん]" @@ -464,7 +466,7 @@ PAPX-90512: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PAPX-90514: name: "冬のオススメソフト おためしDISC" name-sort: "ふゆのおすすめそふとおためしでぃすく" @@ -481,7 +483,7 @@ PAPX-90516: name-en: "Jak and Daxter II [Trial]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. @@ -493,7 +495,7 @@ PAPX-90517: region: "NTSC-J" gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Reduces post-processing misalignment. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. PAPX-90519: name: "どこでもいっしょ トロといっぱい [体験版]" @@ -520,7 +522,7 @@ PAPX-90523: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PAPX-90524: name: "ワイルドアームズ ザ フィフスヴァンガード [体験版]" name-sort: "わいるどあーむず ざ ふぃふすゔぁんがーど [たいけんばん]" @@ -667,13 +669,13 @@ PBPX-95502: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PBPX-95503: name: "Gran Turismo 3 - A-Spec [PS2 Bundle]" region: "NTSC-U" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "PBPX-95503" - "SCUS-97102" @@ -736,7 +738,7 @@ PBPX-95523: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. # vuClampMode = 2 Text in GT mode works. PBPX-95524: name: "Gran Turismo 4 Prologue [PlayStation 2 Racing Pack]" @@ -745,7 +747,7 @@ PBPX-95524: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. # vuClampMode = 2 Text in GT mode works. PBPX-95525: name: "ファイナルファンタジーⅫ [本体同梱版]" @@ -764,7 +766,7 @@ PBPX-95601: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. autoFlush: 1 # Helps lens flare and sun occlusion somewhat but doesn't full fix it. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "SCAJ-20066" - "SCAJ-30006" @@ -812,7 +814,7 @@ PCPX-96309: name-en: "GRAN TURISMO 3 Netz TOYOTA [Demo]" region: "NTSC-J" gsHWFixes: - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PCPX-96310: name: "エクストリーム・レーシング SSX [体験版]" name-sort: "えくすとりーむ れーしんぐ SSX [たいけんばん]" @@ -829,7 +831,7 @@ PCPX-96311: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PCPX-96312: name: "GRAN TURISMO 3 - A-Spec - [オートバックス店頭試遊ディスク]" name-sort: "ぐらんつーりすも 3 A-Spec おーとばっくすてんとうしゆうでぃすく" @@ -837,7 +839,7 @@ PCPX-96312: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PCPX-96314: name: "スカイオデッセイ [体験版]" name-sort: "すかいおでっせい [たいけんばん]" @@ -905,6 +907,8 @@ PCPX-96323: name-sort: "とろときゅうじつ [でも]" name-en: "Toro to Kyuujitsu [Demo Movie]" region: "NTSC-J" + gsHWFixes: + textureInsideRT: 1 # Fixes depth shadow stenciling effects. PCPX-96324: name: "デュアルハーツ [体験版]" name-sort: "でゅあるはーつ [たいけんばん]" @@ -926,7 +930,7 @@ PCPX-96330: name-en: "Arc the Lad - Seirei no Tasogare - Premiere Disc [ShopTrial]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. PCPX-96554: @@ -967,7 +971,7 @@ PCPX-96609: name-en: "Gran Turismo 3 - A-Spec - Tentou Shiyuu Disc Vol. 2" region: "NTSC-J" gsHWFixes: - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PCPX-96610: name: "見る見る 2001年2月度受注号" name-sort: "みるみる 2001ねん 2がつどじゅちゅうごう" @@ -1043,7 +1047,7 @@ PCPX-96624: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PCPX-96625: name: "プレプレ2 VOLUME.4" name-sort: "ぷれぷれ2 VOLUME. 4" @@ -1097,7 +1101,7 @@ PCPX-96634: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PCPX-96635: name: "プレプレ2 VOLUME.8" name-sort: "ぷれぷれ2 VOLUME. 8" @@ -1139,7 +1143,7 @@ PCPX-96649: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PCPX-96653: name: "ラチェット&クランク3 突撃!ガラクチック★レンジャーズ [店頭体験版]" name-sort: "らちぇっとあんどくらんく3 とつげき!がらくちっくれんじゃーず [てんとうたいけんばん]" @@ -1183,7 +1187,7 @@ PCPX-96660: clampModes: vuClampMode: 2 # Fixes SPS in TT Mode menu caused by the moving tooltips. gsHWFixes: - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. PCPX-98017: name: "ラチェット&クランク4th ギリギリ銀河のギガバトル [体験版]" name-sort: "らちぇっとあんどくらんく4th ぎりぎりぎんがのぎがばとる [たいけんばん]" @@ -1252,7 +1256,7 @@ SCAJ-10004: name: "Time Crisis 2 [PlayStation2 the Best]" region: "NTSC-Unk" gsHWFixes: - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SCAJ-10006: name: "Taiko no Tatsujin - Appare Sandaime" region: "NTSC-Unk" @@ -1417,7 +1421,7 @@ SCAJ-20019: name-en: "Arc the Lad - Twilight of the Spirits" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. SCAJ-20020: @@ -1473,7 +1477,7 @@ SCAJ-20026: region: "NTSC-Unk" SCAJ-20027: name: "Tenchu 3" - region: "NTSC-Unk" + region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 4 # Fixes various shading effects. halfPixelOffset: 5 # Helps align post effects. @@ -1513,7 +1517,7 @@ SCAJ-20038: name: "Arc the Lad - Jing Ling Zhi Huang Hun" region: "NTSC-C" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. SCAJ-20039: @@ -1554,8 +1558,8 @@ SCAJ-20047: region: "NTSC-Unk" gsHWFixes: texturePreloading: 0 # Performs much better with no preload. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. SCAJ-20048: name: "R:RACING EVOLUTION" name-sort: "Rれーしんぐえぼりゅーしょん" @@ -1605,8 +1609,8 @@ SCAJ-20060: region: "NTSC-Unk" gsHWFixes: texturePreloading: 0 # Performs much better with no preload. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. SCAJ-20061: name: "Seven Samurai 20XX" region: "NTSC-Unk" @@ -1631,7 +1635,7 @@ SCAJ-20066: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "SCAJ-20066" - "SCAJ-30006" @@ -1685,7 +1689,7 @@ SCAJ-20073: name: "Jak and Daxter II" region: "NTSC-Unk" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. @@ -1697,6 +1701,8 @@ SCAJ-20074: SCAJ-20075: name: "Dragon Quest V - Bride of the Sky" region: "NTSC-Unk" + roundModes: + eeDivRoundMode: 3 # Fixes camera issues at the top of mount evil. SCAJ-20076: name: "Armored Core - Nexus [Disc 1]" region: "NTSC-Unk" @@ -1892,7 +1898,7 @@ SCAJ-20108: name: "Arc the Lad - Generation" region: "NTSC-Unk" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. SCAJ-20109: @@ -2218,7 +2224,7 @@ SCAJ-20154: region: "NTSC-Unk" gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SCAJ-20155: name: "義経英雄伝 修羅" @@ -2226,7 +2232,7 @@ SCAJ-20155: name-en: "The Story of Hero Yoshitsune Shura" region: "NTSC-J" gsHWFixes: - nativeScaling: 2 # Fixes post processing alignment. + nativeScaling: 2 # Fixes post-processing alignment. SCAJ-20156: name: "Gallop Racer 8 - Live Horse Racing" region: "NTSC-Unk" @@ -2272,8 +2278,8 @@ SCAJ-20161: gameFixes: - XGKickHack # Fixes SPS. gsHWFixes: - halfPixelOffset: 2 # Fixes post processing position. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 2 # Fixes post-processing position. + nativeScaling: 2 # Fixes post-processing. mergeSprite: 1 # Fixes vertical lines in-game. preloadFrameData: 1 # Fixes some missing effects. SCAJ-20162: @@ -2317,8 +2323,8 @@ SCAJ-20167: gameFixes: - XGKickHack # Fixes SPS. gsHWFixes: - halfPixelOffset: 2 # Fixes post processing position. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 2 # Fixes post-processing position. + nativeScaling: 2 # Fixes post-processing. mergeSprite: 1 # Fixes vertical lines in-game. preloadFrameData: 1 # Fixes some missing effects. SCAJ-20168: @@ -2332,7 +2338,7 @@ SCAJ-20169: gsHWFixes: autoFlush: 1 # Fixes lighting. halfPixelOffset: 5 # Fixes ghosting. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. recommendedBlendingLevel: 4 # Fixes missing light brightness. SCAJ-20170: name: "Tourist Trophy" @@ -2341,14 +2347,14 @@ SCAJ-20170: clampModes: vuClampMode: 2 # Fixes SPS in TT Mode menu caused by the moving tooltips. gsHWFixes: - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCAJ-20171: name: "絶体絶命都市2 - 凍てついた記憶たち" name-sort: "ぜったいぜつめいとし いてついたきおくたち" name-en: "Zettai Zetsumei Toshi 2 - Itetsuita Kioku Tachi" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. getSkipCount: "GSC_ZettaiZetsumeiToshi2" SCAJ-20172: @@ -2398,7 +2404,7 @@ SCAJ-20177: textureInsideRT: 1 # Required for swirl battle transition. nativeScaling: 2 # Fixes depth of field effects and bloom. roundSprite: 1 # Fixes lines in transitions. - cpuSpriteRenderBW: 1 # Fixes upscaled FMV lines. + autoFlush: 2 # Fixes shadow rendering in certain scenarios when using DirectX. SCAJ-20178: name: "Ape Escape - Million Monkeys" region: "NTSC-Unk" @@ -2410,6 +2416,7 @@ SCAJ-20179: autoFlush: 1 # Fixes shadows. halfPixelOffset: 4 # Fixes lighting misalignment. nativeScaling: 2 # Fixes lighting smoothness. + textureInsideRT: 1 # Fixes broken crystalline surface textures. SCAJ-20180: name: "Xenosaga Episode III - Also Sprach Zarathustra [Disc 2 of 2]" region: "NTSC-Unk" @@ -2417,6 +2424,7 @@ SCAJ-20180: autoFlush: 1 # Fixes shadows. halfPixelOffset: 4 # Fixes lighting misalignment. nativeScaling: 2 # Fixes lighting smoothness. + textureInsideRT: 1 # Fixes broken crystalline surface textures. SCAJ-20181: name: "Minna no Tennis" region: "NTSC-Unk" @@ -2516,7 +2524,7 @@ SCAJ-20197: textureInsideRT: 1 # Required for swirl battle transition. nativeScaling: 2 # Fixes depth of field effects and bloom. roundSprite: 1 # Fixes lines in transitions. - cpuSpriteRenderBW: 1 # Fixes upscaled FMV lines. + autoFlush: 2 # Fixes shadow rendering in certain scenarios when using DirectX. SCAJ-20198: name: "Everybody's Tennis [PlayStation2 the Best]" region: "NTSC-Unk" @@ -2623,7 +2631,7 @@ SCAJ-30006: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. autoFlush: 1 # Helps lens flare and sun occlusion somewhat but doesn't full fix it. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "SCAJ-20066" - "SCAJ-30006" @@ -2646,7 +2654,7 @@ SCAJ-30007: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. autoFlush: 1 # Helps lens flare and sun occlusion somewhat but doesn't full fix it. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCAJ-30008: name: "Gran Turismo 4 [PlayStation2 the Best]" region: "NTSC-C" @@ -2657,7 +2665,7 @@ SCAJ-30008: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. autoFlush: 1 # Helps lens flare and sun occlusion somewhat but doesn't full fix it. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "SCAJ-20066" - "SCAJ-30006" @@ -2734,7 +2742,7 @@ SCCS-40007: name-en: "Arc the Lad - Seirei no Tasogare" region: "NTSC-C" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. SCCS-40009: @@ -2820,7 +2828,7 @@ SCCS-60002: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. autoFlush: 1 # Helps lens flare and sun occlusion somewhat but doesn't full fix it. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCED-50041: name: "Tekken Tag Tournament [Demo]" region: "PAL-E" @@ -2971,14 +2979,15 @@ SCED-50642: gameFixes: - SoftwareRendererFMVHack # Fixes interlacing. roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. - vu0ClampMode: 2 # Fixes SPS. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SCED-50660: name: "Dropship - United Peace Force" region: "PAL-A" @@ -3097,17 +3106,6 @@ SCED-50844: SCED-50907: name: "Final Fantasy X [Bonus Disc - Beyond Final Fantasy]" region: "PAL-Unk" - gameFixes: - - SoftwareRendererFMVHack # Fixes interlacing. - roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. - clampModes: - eeClampMode: 3 # Fixes animations. - vu0ClampMode: 2 # Fixes SPS. - gsHWFixes: - recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. - roundSprite: 2 # Fixes font artifacts. - autoFlush: 1 # Fixes blur effect on attacks. SCED-50916: name: "Ratchet & Clank [Demo]" region: "PAL-M5" @@ -3231,7 +3229,7 @@ SCED-51352: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCED-51359: name: "Official PlayStation 2 Magazine Demo 27" region: "PAL-M5" @@ -3495,7 +3493,7 @@ SCED-51700: name: "Jak II - Renegade [Demo]" region: "PAL-M5" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. @@ -3797,7 +3795,7 @@ SCED-52455: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. # vuClampMode = 2 Text in GT mode works. SCED-52461: name: "SingStar [Press Kit]" @@ -3805,8 +3803,11 @@ SCED-52461: SCED-52491: name: "Athens 2004" region: "PAL-M6" +SCED-52496: + name: "This Is Football 2004 [Demo]" + region: "PAL-M4" SCED-52497: - name: "This is Football 2004" + name: "This Is Football 2004 [Demo]" region: "PAL-M4" SCED-52549: name: "Official PlayStation 2 Magazine Demo 47" @@ -3817,7 +3818,7 @@ SCED-52578: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCED-52580: name: "Magazine Ufficiale PlayStation 2 Italia 06/04" region: "PAL-I" @@ -3833,7 +3834,7 @@ SCED-52681: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCED-52687: name: "Formula One 04 [Demo]" region: "PAL-M11" @@ -4016,7 +4017,7 @@ SCED-52952: cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. autoFlush: 2 # Fixes lighting. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes lighting effects due to upscaling. SCED-52969: name: "EyeToy - Play 2" @@ -4669,7 +4670,7 @@ SCES-50000: vuClampMode: 2 # Fixes texture rendering in the intro. gsHWFixes: textureInsideRT: 1 # Fixes post effects - halfPixelOffset: 2 # Fixes title screen and some intro post processing alignment. + halfPixelOffset: 2 # Fixes title screen and some intro post-processing alignment. roundSprite: 1 # Fixes ui and hud alignment. gpuPaletteConversion: 2 # Lots of CLUTs in large textures. cpuSpriteRenderBW: 1 # Fixes car textures. @@ -4729,13 +4730,17 @@ SCES-50139: eeRoundMode: 0 # Fixes crash when using the Subaru. gameFixes: - EETimingHack # Fix in-game Freeze. + gsHWFixes: + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Aligns distant blur layer. + autoFlush: 1 # Better aligns car shadows. SCES-50240: name: "Extermination" region: "PAL-M5" gameFixes: - SoftwareRendererFMVHack # Black FMV. gsHWFixes: - halfPixelOffset: 4 # Fixes post processing position. + halfPixelOffset: 4 # Fixes post-processing position. nativeScaling: 2 # Fixes post effects. SCES-50241: name: "The Bouncer" @@ -4761,7 +4766,7 @@ SCES-50294: compat: 5 gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCES-50295: name: "Dark Cloud" region: "PAL-M5" @@ -4773,7 +4778,7 @@ SCES-50300: region: "PAL-M5" compat: 5 gsHWFixes: - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SCES-50354: name: "Klonoa 2 - Lunatea's Veil" region: "PAL-M5" @@ -4847,71 +4852,76 @@ SCES-50490: gameFixes: - SoftwareRendererFMVHack # Fixes interlacing. roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. - vu0ClampMode: 2 # Fixes SPS. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SCES-50491: name: "Final Fantasy X" region: "PAL-F" gameFixes: - SoftwareRendererFMVHack # Fixes interlacing. roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. - vu0ClampMode: 2 # Fixes SPS. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SCES-50492: name: "Final Fantasy X" region: "PAL-G" - compat: 5 gameFixes: - SoftwareRendererFMVHack # Fixes interlacing. + compat: 5 roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. - vu0ClampMode: 2 # Fixes SPS. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SCES-50493: name: "Final Fantasy X" region: "PAL-I" gameFixes: - SoftwareRendererFMVHack # Fixes interlacing. roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. - vu0ClampMode: 2 # Fixes SPS. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SCES-50494: name: "Final Fantasy X" region: "PAL-S" gameFixes: - SoftwareRendererFMVHack # Fixes interlacing. roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. - vu0ClampMode: 2 # Fixes SPS. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SCES-50499: name: "Ecco the Dolphin - Defender of the Future" region: "PAL-M5" @@ -5025,7 +5035,7 @@ SCES-50858: region: "PAL-M6" compat: 5 gsHWFixes: - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "SCES-50858" - "SCES-50294" @@ -5356,7 +5366,7 @@ SCES-51608: region: "PAL-M7" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. @@ -5440,7 +5450,7 @@ SCES-51719: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. autoFlush: 1 # Helps lens flare and sun occlusion somewhat but doesn't full fix it. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "SCES-51719" - "SCES-52438" @@ -5454,8 +5464,8 @@ SCES-51844: region: "PAL-M5" gsHWFixes: texturePreloading: 0 # Performs much better with no preload. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. SCES-51895: name: "EyeToy - Groove" region: "PAL-M11" @@ -5471,7 +5481,7 @@ SCES-51910: region: "PAL-M5" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. SCES-51920: @@ -5700,7 +5710,7 @@ SCES-52438: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "SCES-51719" - "SCES-52438" @@ -5733,7 +5743,7 @@ SCES-52460: cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. autoFlush: 2 # Fixes lighting. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes lighting effects due to upscaling. SCES-52529: name: "Sly 2 - Band of Thieves" @@ -6053,7 +6063,7 @@ SCES-53372: clampModes: vuClampMode: 2 # Fixes SPS in TT Mode menu caused by the moving tooltips. gsHWFixes: - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCES-53397: name: "SingStar - Popworld Events Code" region: "PAL-Unk" @@ -6070,6 +6080,8 @@ SCES-53409: SCES-53422: name: "Stuart Little 3 - Big Photo Adventure" region: "PAL-M9" + gameFixes: + - InstantDMAHack # Fixes loading screen corruption. gsHWFixes: autoFlush: 2 # Fixes missing effects. SCES-53449: @@ -6160,8 +6172,8 @@ SCES-53851: gameFixes: - XGKickHack # Fixes SPS. gsHWFixes: - halfPixelOffset: 2 # Fixes post processing position. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 2 # Fixes post-processing position. + nativeScaling: 2 # Fixes post-processing. mergeSprite: 1 # Fixes vertical lines in-game. preloadFrameData: 1 # Fixes some missing effects. patches: @@ -6249,7 +6261,7 @@ SCES-53960: gsHWFixes: autoFlush: 1 # Fixes lighting. halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 1 # Fixes post processing position. + nativeScaling: 1 # Fixes post-processing position. SCES-54025: name: "SingStar Rocks! with RTÉ 2fm" region: "PAL-IR" @@ -6523,6 +6535,9 @@ SCES-54638: SCES-54639: name: "AFL Premiership 2007" region: "PAL-A" + gsHWFixes: + halfPixelOffset: 5 # Fixes post positioning. + nativeScaling: 2 # Fixes post effects. SCES-54676: name: "Buzz! Junior - RoboJam" region: "PAL-M7" @@ -6586,7 +6601,7 @@ SCES-54794: region: "PAL-M5" gsHWFixes: autoFlush: 2 - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SCES-54823: name: "SingStar - Bollywood" region: "PAL-E" @@ -6875,7 +6890,7 @@ SCES-55496: compat: 5 gsHWFixes: halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 2 # Corrects post processing smoothness. + nativeScaling: 2 # Corrects post-processing smoothness. SCES-55497: name: "Medical and Engineering Joint Entrance Quiz" region: "PAL-IN" @@ -7068,7 +7083,7 @@ SCKA-20002: name: "Time Crisis II" region: "NTSC-K" gsHWFixes: - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SCKA-20003: name: "War of the Monsters" region: "NTSC-K" @@ -7107,7 +7122,7 @@ SCKA-20010: name: "Jak II" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. @@ -7125,7 +7140,7 @@ SCKA-20012: name: "Arc the Lad - Jeongryeongui Hwanghon" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. SCKA-20013: @@ -7149,8 +7164,8 @@ SCKA-20015: compat: 5 gsHWFixes: texturePreloading: 0 # Performs much better with no preload. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. SCKA-20016: name: "SoulCalibur II" region: "NTSC-K" @@ -7190,7 +7205,7 @@ SCKA-20022: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. # vuClampMode = 2 Text in GT mode works. SCKA-20023: name: "제로 ~붉은 나비~" @@ -7243,7 +7258,7 @@ SCKA-20029: name: "Gran Turismo - Concept 2002 Tokyo-Seoul [PlayStation 2 Big Hit Series]" region: "NTSC-K" gsHWFixes: - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCKA-20030: name: "Sly Cooper - Jeonseolui Bibeobseoreul Chajaseo" name-en: "Sly Cooper and the Thievius Raccoonus [PlayStation 2 Big Hit Series]" @@ -7281,8 +7296,8 @@ SCKA-20034: region: "NTSC-K" gsHWFixes: texturePreloading: 0 # Performs much better with no preload. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. SCKA-20035: name: "Hot Shots Golf 3 [PlayStation 2 Big Hit Series]" region: "NTSC-K" @@ -7326,7 +7341,7 @@ SCKA-20040: cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. autoFlush: 2 # Fixes lighting. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes lighting effects due to upscaling. SCKA-20041: name: "EyeToy - Play 2" @@ -7544,8 +7559,11 @@ SCKA-20066: name: "EyeToy - Play 3" region: "NTSC-K" SCKA-20067: - name: "Stuart Little 3 - Big Photo Adventure" + name: "스튜어트 리틀 3 - 빅 포토 어드벤처" + name-en: "Stuart Little 3 - Big Photo Adventure" region: "NTSC-K" + gameFixes: + - InstantDMAHack # Fixes loading screen corruption. gsHWFixes: autoFlush: 2 # Fixes missing effects. SCKA-20068: @@ -7562,8 +7580,8 @@ SCKA-20069: gameFixes: - XGKickHack # Fixes SPS. gsHWFixes: - halfPixelOffset: 2 # Fixes post processing position. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 2 # Fixes post-processing position. + nativeScaling: 2 # Fixes post-processing. mergeSprite: 1 # Fixes vertical lines in-game. preloadFrameData: 1 # Fixes some missing effects. SCKA-20070: @@ -7634,7 +7652,7 @@ SCKA-20079: textureInsideRT: 1 # Required for swirl battle transition. nativeScaling: 2 # Fixes depth of field effects and bloom. roundSprite: 1 # Fixes lines in transitions. - cpuSpriteRenderBW: 1 # Fixes upscaled FMV lines. + autoFlush: 2 # Fixes shadow rendering in certain scenarios when using DirectX. SCKA-20081: name: "Tekken 5 [PlayStation 2 Big Hit Series]" region: "NTSC-K" @@ -7673,14 +7691,18 @@ SCKA-20086: name: "Shin Onimusha - Dawn of Dreams [Disc 1 of 2]" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. + bilinearUpscale: 2 # Attempts to sharpen blurry text in menus. SCKA-20087: name: "Shin Onimusha - Dawn of Dreams [Disc 2 of 2]" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. + bilinearUpscale: 2 # Attempts to sharpen blurry text in menus. memcardFilters: - "SCKA-20086" SCKA-20088: @@ -7781,7 +7803,7 @@ SCKA-20106: region: "NTSC-K" gsHWFixes: halfPixelOffset: 1 # Fixes misalignments and borders on side. - nativeScaling: 2 # Fixes post processing position and smoothness of shadows and depth of field. + nativeScaling: 2 # Fixes post-processing position and smoothness of shadows and depth of field. SCKA-20107: name: "Odin Sphere" region: "NTSC-K" @@ -7934,6 +7956,7 @@ SCKA-20142: region: "NTSC-K" gsHWFixes: textureInsideRT: 1 # Needed for mipmapping to function correctly. + mipmap: 0 # Currently causes texture corruption. SCKA-20171: name: "Let's Bravo Music" region: "NTSC-K" @@ -7966,7 +7989,7 @@ SCKA-30001: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. autoFlush: 1 # Helps lens flare and sun occlusion somewhat but doesn't full fix it. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCKA-30002: name: "God of War" region: "NTSC-K" @@ -7989,7 +8012,7 @@ SCKA-30004: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. autoFlush: 1 # Helps lens flare and sun occlusion somewhat but doesn't full fix it. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCKA-30005: name: "Rogue Galaxy" region: "NTSC-K" @@ -8067,7 +8090,7 @@ SCPM-85301: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPM-85302: name: "みんなのGOLF オンライン" name-sort: "みんなのごるふ おんらいん" @@ -8086,7 +8109,7 @@ SCPM-85304: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPN-60101: name: "PlayStation BB Navigator - Version 0.10 [Prerelease] [Disc 1]" name-sort: "ぷれいすてーしょん BB なびげーたー - Version 0.10 [Prerelease] [Disc 1]" @@ -8401,7 +8424,7 @@ SCPS-15009: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-15010: name: "GRAN TURISMO Concept 2001 Tokyo" name-sort: "ぐらんつーりすも こんせぷと 2001 Tokyo" @@ -8410,7 +8433,7 @@ SCPS-15010: compat: 5 gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-15011: name: "EXTERMINATION" name-sort: "エクスターミネーション" @@ -8419,7 +8442,7 @@ SCPS-15011: gameFixes: - SoftwareRendererFMVHack # Black FMV. gsHWFixes: - halfPixelOffset: 4 # Fixes post processing position. + halfPixelOffset: 4 # Fixes post-processing position. nativeScaling: 2 # Fixes post effects. SCPS-15012: name: "サーヴィランス 監視者" @@ -8449,6 +8472,8 @@ SCPS-15015: name-en: "Toro to Kyuujitsu" region: "NTSC-J" compat: 5 + gsHWFixes: + textureInsideRT: 1 # Fixes depth shadow stenciling effects. SCPS-15016: name: "みんなのGOLF 3" name-sort: "みんなのごるふ 3" @@ -8648,7 +8673,7 @@ SCPS-15040: name-en: "Arc the Lad - Twilight of the Spirits [Limited Edition]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. SCPS-15041: @@ -8657,7 +8682,7 @@ SCPS-15041: name-en: "Arc the Lad - Twilight of the Spirits" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. SCPS-15042: @@ -8748,7 +8773,7 @@ SCPS-15055: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "SCAJ-20066" - "SCAJ-30006" @@ -8781,7 +8806,7 @@ SCPS-15057: name-en: "Jak and Daxter II" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. @@ -8792,7 +8817,7 @@ SCPS-15058: name-en: "Arc the Lad - Generation" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. SCPS-15059: @@ -8891,7 +8916,7 @@ SCPS-15066: region: "NTSC-J" gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SCPS-15067: name: "どこでもいっしょ トロと流れ星" @@ -9216,7 +9241,7 @@ SCPS-15105: clampModes: vuClampMode: 2 # Fixes SPS in TT Mode menu caused by the moving tooltips. gsHWFixes: - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-15106: name: "SIREN2" name-sort: "さいれん2" @@ -9226,8 +9251,8 @@ SCPS-15106: gameFixes: - XGKickHack # Fixes SPS. gsHWFixes: - halfPixelOffset: 2 # Fixes post processing position. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 2 # Fixes post-processing position. + nativeScaling: 2 # Fixes post-processing. mergeSprite: 1 # Fixes vertical lines in-game. preloadFrameData: 1 # Fixes some missing effects. patches: @@ -9375,7 +9400,7 @@ SCPS-17001: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. autoFlush: 1 # Helps lens flare and sun occlusion somewhat but doesn't full fix it. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "SCAJ-20066" - "SCAJ-30006" @@ -9404,7 +9429,7 @@ SCPS-17008: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-17009: name: "NIKE/ GRAN TURISMO Limited Edition [9inch]" name-sort: "ぐらんつーりすも ないき りみてっどえでぃしょん [9inch]" @@ -9413,7 +9438,7 @@ SCPS-17009: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-17010: name: "NIKE/ GRAN TURISMO Limited Edition [10inch]" name-sort: "ぐらんつーりすも ないき りみてっどえでぃしょん [10inch]" @@ -9422,7 +9447,7 @@ SCPS-17010: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-17011: name: "NIKE/ GRAN TURISMO Limited Edition [11inch]" name-sort: "ぐらんつーりすも ないき りみてっどえでぃしょん [11inch]" @@ -9431,7 +9456,7 @@ SCPS-17011: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-17013: name: "ローグギャラクシー ディレクターズカット" name-sort: "ろーぐぎゃらくしー でぃれくたーずかっと" @@ -9545,7 +9570,7 @@ SCPS-19202: gameFixes: - SoftwareRendererFMVHack # Black FMV. gsHWFixes: - halfPixelOffset: 4 # Fixes post processing position. + halfPixelOffset: 4 # Fixes post-processing position. nativeScaling: 2 # Fixes post effects. SCPS-19203: name: "ダーククラウド [PlayStation2 the Best]" @@ -9589,7 +9614,7 @@ SCPS-19208: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-19209: name: "ぼくのなつやすみ2 海の冒険篇 [PlayStation2 the Best]" name-sort: "ぼくのなつやすみ2 うみのぼうけんへん [PlayStation2 the Best]" @@ -9662,7 +9687,7 @@ SCPS-19252: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. autoFlush: 1 # Helps lens flare and sun occlusion somewhat but doesn't full fix it. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "SCAJ-20066" - "SCAJ-30006" @@ -9727,7 +9752,7 @@ SCPS-19304: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "SCAJ-20066" - "SCAJ-30006" @@ -9968,7 +9993,7 @@ SCPS-19324: clampModes: vuClampMode: 2 # Fixes SPS in TT Mode menu caused by the moving tooltips. gsHWFixes: - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-19325: name: "サルゲッチュ ミリオンモンキーズ [PlayStation2 the Best]" name-sort: "さるげっちゅ みりおんもんきーず [PlayStation2 the Best]" @@ -9982,8 +10007,8 @@ SCPS-19326: gameFixes: - XGKickHack # Fixes SPS. gsHWFixes: - halfPixelOffset: 2 # Fixes post processing position. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 2 # Fixes post-processing position. + nativeScaling: 2 # Fixes post-processing. mergeSprite: 1 # Fixes vertical lines in-game. preloadFrameData: 1 # Fixes some missing effects. SCPS-19327: @@ -10186,7 +10211,7 @@ SCPS-55005: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-55006: name: "ワイルドアームズ アドヴァンスドサード" name-sort: "わいるどあーむず あどゔぁんすどさーど" @@ -10202,7 +10227,7 @@ SCPS-55007: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-55008: name: "サンダーストライカー" name-sort: "さんだーすとらいかー" @@ -10518,14 +10543,14 @@ SCPS-55902: name-en: "Gran Turismo - Concept 2002 Tokyo-Geneva" region: "NTSC-J" gsHWFixes: - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-55903: name: "GRAN TURISMO - Concept 2002 Tokyo-Geneva" name-sort: "ぐらんつーりすも - こんせぷと 2002 Tokyo-Geneva" name-en: "Gran Turismo - Concept 2002 Tokyo-Geneva" region: "NTSC-J" gsHWFixes: - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-56001: name: "Ico" region: "NTSC-K" @@ -10558,7 +10583,7 @@ SCPS-56005: name: "Gran Turismo - Concept 2002 Tokyo-Seoul" region: "NTSC-K" gsHWFixes: - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-56006: name: "Tekken 4" region: "NTSC-K" @@ -10616,7 +10641,7 @@ SCPS-56016: - GIFFIFOHack gsHWFixes: recommendedBlendingLevel: 4 # Fixes car shadows but addeds about 5000 barriers, might impact slower machines. - halfPixelOffset: 2 # Fixes post processing position. + halfPixelOffset: 2 # Fixes post-processing position. nativeScaling: 2 # Fixes post effects. autoFlush: 1 # Corrects shadows (Currently still broken even with this). getSkipCount: "GSC_DTGames" @@ -10627,7 +10652,7 @@ SCPS-72001: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCPS-72002: name: "みんなのGOLF 3 [MEGA HITS!]" name-sort: "みんなのごるふ 3 [MEGA HITS!]" @@ -10637,8 +10662,8 @@ SCUS-10380: name: "LEGO Batman - The Videogame" region: "NTSC-U" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SCUS-21052: name: "Disney/Pixar Monsters, Inc." region: "NTSC-U" @@ -10650,8 +10675,8 @@ SCUS-21295: vu1RoundMode: 0 # Crashes without. gsHWFixes: recommendedBlendingLevel: 3 # Fixes water and grass textures. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SCUS-90174: name: "Disney/Pixar Toy Story 3 [PlayStation 2 Bundle]" region: "NTSC-U" @@ -10667,7 +10692,7 @@ SCUS-90682: vuClampMode: 2 # Text in GT mode works. gsHWFixes: halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCUS-94346: name: "SingStar - Latino" region: "NTSC-U" @@ -10693,7 +10718,7 @@ SCUS-97102: compat: 5 gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCUS-97104: name: "ATV Offroad Fury" region: "NTSC-U" @@ -10731,7 +10756,7 @@ SCUS-97112: gameFixes: - SoftwareRendererFMVHack # Black FMV. gsHWFixes: - halfPixelOffset: 4 # Fixes post processing position. + halfPixelOffset: 4 # Fixes post-processing position. nativeScaling: 2 # Fixes post effects. SCUS-97113: name: "Ico" @@ -10755,7 +10780,7 @@ SCUS-97115: region: "NTSC-U" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCUS-97116: name: "Kiosk Demo Disc 2.01" region: "NTSC-U" @@ -11186,7 +11211,7 @@ SCUS-97219: region: "NTSC-U" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "SCUS-97219" - "SCUS-97102" @@ -11242,7 +11267,7 @@ SCUS-97231: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. SCUS-97232: @@ -11377,7 +11402,7 @@ SCUS-97265: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. @@ -11416,7 +11441,7 @@ SCUS-97273: name: "Jak II [Demo]" region: "NTSC-U" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. @@ -11425,7 +11450,7 @@ SCUS-97274: name: "Jak II [Video Demo]" region: "NTSC-U" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. @@ -11461,7 +11486,7 @@ SCUS-97282: name: "Arc the Lad - Twilight of the Spirits [Demo]" region: "NTSC-U" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. SCUS-97292: @@ -11541,7 +11566,7 @@ SCUS-97328: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. autoFlush: 1 # Helps lens flare and sun occlusion somewhat but doesn't full fix it. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: # Allows car imports from GT3 or something. - "SCUS-97328" - "SCUS-97436" @@ -11565,7 +11590,7 @@ SCUS-97330: cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. autoFlush: 2 # Fixes lighting. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes lighting effects due to upscaling. SCUS-97331: name: "Official U.S. PlayStation Magazine Demo Disc 078" @@ -11650,7 +11675,7 @@ SCUS-97362: compat: 5 gsHWFixes: autoFlush: 2 - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SCUS-97365: name: "World Tour Soccer 2005" region: "NTSC-U" @@ -11743,7 +11768,7 @@ SCUS-97384: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCUS-97392: name: "NBA '06 featuring The Life Vol.1 [Demo]" region: "NTSC-U" @@ -11849,7 +11874,7 @@ SCUS-97412: cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. autoFlush: 2 # Fixes lighting. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes lighting effects due to upscaling. SCUS-97413: name: "Ratchet & Clank - Up Your Arsenal [Public Beta v1.0]" @@ -11955,7 +11980,7 @@ SCUS-97436: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. memcardFilters: - "SCUS-97328" - "SCUS-97436" @@ -12177,7 +12202,7 @@ SCUS-97483: gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCUS-97484: name: "Sly 3 - Honor Among Thieves [E3 Demo]" region: "NTSC-U" @@ -12303,7 +12328,7 @@ SCUS-97502: clampModes: vuClampMode: 2 # Fixes SPS in TT Mode menu caused by the moving tooltips. gsHWFixes: - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCUS-97503: name: "MLB '06 - The Show [Demo]" region: "NTSC-U" @@ -12333,7 +12358,7 @@ SCUS-97509: name: "Jak II [Greatest Hits]" region: "NTSC-U" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. @@ -12358,7 +12383,7 @@ SCUS-97512: - "SCUS-97102" gsHWFixes: recommendedBlendingLevel: 3 # Improves banding in car showcase as well as car brightness and sheen. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCUS-97513: name: "Ratchet & Clank 2 - Going Commando [Greatest Hits]" region: "NTSC-U" @@ -12387,7 +12412,7 @@ SCUS-97516: cpuSpriteRenderBW: 4 # Fixes character and water textures. cpuSpriteRenderLevel: 2 # Needed for above. autoFlush: 2 # Fixes lighting. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes lighting effects due to upscaling. SCUS-97517: name: "Killzone [Greatest Hits]" @@ -12561,7 +12586,7 @@ SCUS-97563: vuClampMode: 2 # Text in GT mode works. gsHWFixes: halfPixelOffset: 4 # Fixes weird edge shadows and depth bleed which happens on the edge as well. - getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post processing. + getSkipCount: "GSC_PolyphonyDigitalGames" # Fixes post-processing. SCUS-97564: name: "Jampack Demo Disc Vol.15 [T-Rated]" region: "NTSC-U" @@ -12620,7 +12645,7 @@ SCUS-97584: gsHWFixes: autoFlush: 2 preloadFrameData: 1 - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SCUS-97589: name: "NBA '08 featuring The Life Vol.3" region: "NTSC-U" @@ -12694,7 +12719,7 @@ SCUS-97620: region: "NTSC-U" gsHWFixes: autoFlush: 2 - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SCUS-97621: name: "Twisted Metal - Head-On [Extra Twisted Edition]" region: "NTSC-U" @@ -12726,7 +12751,7 @@ SCUS-97623: compat: 5 gsHWFixes: halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 2 # Corrects post processing smoothness. + nativeScaling: 2 # Corrects post-processing smoothness. SCUS-97625: name: "NBA 09 - The Inside" region: "NTSC-U" @@ -12793,6 +12818,7 @@ SCUS-97657: compat: 5 gsHWFixes: textureInsideRT: 1 # Needed for mipmapping to function correctly. + mipmap: 0 # Currently causes texture corruption. SCUS-97660: name: "SingStar - Latino" region: "NTSC-U" @@ -12952,15 +12978,15 @@ SLAJ-25051: name-sort: "Lord of the Rings, The - The Third Age" region: "NTSC-C" gsHWFixes: - halfPixelOffset: 5 # Aligns post processing. - nativeScaling: 2 # Corrects post processing smoothness. + halfPixelOffset: 5 # Aligns post-processing. + nativeScaling: 2 # Corrects post-processing smoothness. SLAJ-25052: name: "The Urbz - Sims in the City" name-sort: "Urbz, The - Sims in the City" region: "NTSC-Unk" gsHWFixes: halfPixelOffset: 2 # Fixes upscaling lines. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLAJ-25053: name: "橫衝直撞3" name-en: "Burnout 3 - Takedown" @@ -12993,8 +13019,8 @@ SLAJ-25058: region: "NTSC-Unk" gsHWFixes: recommendedBlendingLevel: 3 # Improves metalic shine. - halfPixelOffset: 4 # Fixes offset post processing. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 4 # Fixes offset post-processing. + nativeScaling: 2 # Fixes post-processing. SLAJ-25059: name: "NBA Street V3" region: "NTSC-Unk" @@ -13041,7 +13067,7 @@ SLAJ-25072: region: "NTSC-Unk" gsHWFixes: halfPixelOffset: 2 # Fix effects upscaling. - autoFlush: 1 # Fixes broken post processing. + autoFlush: 1 # Fixes broken post-processing. SLAJ-25073: name: "バイオハザード4 [Asia版]" name-sort: "ばいおはざーど4 [Asiaばん]" @@ -13092,8 +13118,8 @@ SLAJ-25078: gsHWFixes: recommendedBlendingLevel: 4 # Improves lighting on buildings and objects. autoFlush: 2 # Properly diffuses light instead of strips of light. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Improves post processing smoothness. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Improves post-processing smoothness. getSkipCount: "GSC_BlackAndBurnoutSky" beforeDraw: "OI_BurnoutGames" SLAJ-25079: @@ -13105,7 +13131,7 @@ SLAJ-25080: region: "NTSC-Unk" gsHWFixes: textureInsideRT: 1 # Required for complex offset shuffles. - halfPixelOffset: 2 # Fixes center line in post processing. + halfPixelOffset: 2 # Fixes center line in post-processing. SLAJ-25081: name: "FIFA World Cup - Germany 2006" region: "NTSC-Unk" @@ -13133,7 +13159,7 @@ SLAJ-25091: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. memcardFilters: - "SLAJ-25091" @@ -13166,8 +13192,11 @@ SLAJ-25095: name: "Medal of Honor - Vanguard" region: "NTSC-HK" gsHWFixes: - halfPixelOffset: 2 # Fixes lighting misalignment. - mergeSprite: 1 # Removes occasional vertical lines. + recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. + autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. + nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLAJ-25096: name: "Musou Orochi" region: "NTSC-Unk" @@ -13208,6 +13237,8 @@ SLAJ-25115: SLAJ-35001: name: "Sakura Wars" region: "NTSC-Unk" + gsHWFixes: + halfPixelOffset: 5 # Fixes recrusive drawing to the top left. SLAJ-35003: name: "Sakura Taisen - Atsuki Chishio Ni" region: "NTSC-C" @@ -13282,6 +13313,8 @@ SLED-50884: SLED-50895: name: "Medal of Honor - Frontline [Demo]" region: "PAL-E" + gsHWFixes: + halfPixelOffset: 2 # Fixes misaligned blur. SLED-50904: name: "Dynasty Warriors 3" region: "PAL-Unk" @@ -13378,15 +13411,17 @@ SLED-51472: name: "Tom Clancy's Splinter Cell" region: "PAL-Unk" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. recommendedBlendingLevel: 4 # Fixes lighting effects but has high barrier count. SLED-51645: name: "Def Jam - Vendetta [Demo]" region: "PAL-E" SLED-51651: - name: "Starsky & Hutch" + name: "Starsky & Hutch [Demo]" region: "PAL-E" + gsHWFixes: + halfPixelOffset: 5 # Aligns shadows better. SLED-51676: name: "Warhammer 40,000 - Fire Warrior [Demo]" region: "PAL" @@ -13540,7 +13575,7 @@ SLED-52488: instantVU1: 1 # Fixes SPS. gsHWFixes: autoFlush: 2 # Fixes debris and blending on lower part of screen during monster transformation. - halfPixelOffset: 4 # Aligns post processing, might sometimes cause edge bleed which must be cropped. + halfPixelOffset: 4 # Aligns post-processing, might sometimes cause edge bleed which must be cropped. nativeScaling: 2 # Fixes post effects like lights. SLED-52506: name: "Mashed - Drive to Survive [Demo]" @@ -13626,7 +13661,7 @@ SLED-52929: region: "PAL-M5" gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLED-52979: name: "Mercenaries - Playground of Destruction [Demo]" @@ -13754,8 +13789,8 @@ SLED-53591: name: "Fahrenheit [Demo]" region: "PAL-E" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. - nativeScaling: 2 # Fixes post processing position. + halfPixelOffset: 4 # Aligns post-processing. + nativeScaling: 2 # Fixes post-processing position. SLED-53619: name: "Tom Clancy's Rainbow Six - Lockdown" region: "PAL-Unk" @@ -13771,7 +13806,7 @@ SLED-53627: region: "PAL-Unk" gsHWFixes: autoFlush: 2 # Fixes debris and blending on lower part of screen during monster transformation. - halfPixelOffset: 4 # Aligns post processing, might sometimes cause edge bleed which must be cropped. + halfPixelOffset: 4 # Aligns post-processing, might sometimes cause edge bleed which must be cropped. nativeScaling: 2 # Fixes post effects like lights. SLED-53637: name: "Burnout Revenge [Demo]" @@ -13832,12 +13867,12 @@ SLED-53723: autoFlush: 1 # Corrects vignette to match software. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. halfPixelOffset: 4 # Aligns blur more correctly to match software. - textureInsideRT: 1 # Fixes post processing effects. + textureInsideRT: 1 # Fixes post-processing effects. SLED-53731: name: "Battlefield 2 - Modern Combat [Demo]" region: "PAL-E" gsHWFixes: - minimumBlendingLevel: 4 # Fixes ground texture rendering. + recommendedBlendingLevel: 4 # Fixes ground texture rendering. autoFlush: 1 # Post-processing. halfPixelOffset: 2 # Offset post-processing. texturePreloading: 1 # Improves performance. @@ -13849,15 +13884,15 @@ SLED-53732: gameFixes: - EETimingHack # Fixes garbage textures flashing on the character model. gsHWFixes: - autoFlush: 1 # Fixes missing post processing. - halfPixelOffset: 1 # Aligns post processing. + autoFlush: 1 # Fixes missing post-processing. + halfPixelOffset: 1 # Aligns post-processing. nativeScaling: 1 # Fixes post effects. SLED-53745: name: "Total Overdose [Demo]" region: "PAL-M5" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLED-53770: name: "The Sims 2 [Demo]" name-sort: "Sims 2, The [Demo]" @@ -13871,7 +13906,7 @@ SLED-53845: region: "PAL-E" gsHWFixes: halfPixelOffset: 2 # Fix effects upscaling. - autoFlush: 1 # Fixes broken post processing. + autoFlush: 1 # Fixes broken post-processing. nativeScaling: 2 # Fixes post effects. SLED-53888: name: "TOCA Race Driver 3 + V8 Supercars Australia 3" @@ -13890,8 +13925,8 @@ SLED-53937: gsHWFixes: recommendedBlendingLevel: 4 # Improves lighting on buildings and objects. autoFlush: 2 # Properly diffuses light instead of strips of light. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Improves post processing smoothness. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Improves post-processing smoothness. getSkipCount: "GSC_BlackAndBurnoutSky" beforeDraw: "OI_BurnoutGames" SLED-53951: @@ -13916,7 +13951,7 @@ SLED-53954: halfPixelOffset: 5 # Fixes post positioning. cpuSpriteRenderBW: 2 # Fixes some bad textures. cpuCLUTRender: 1 # Fixes the rest of the bad textures. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. preloadFrameData: 1 # Fixes road texture corruption. SLED-53977: name: "Dragon Quest - The Journey of the Cursed King" @@ -13930,9 +13965,9 @@ SLED-53980: name: "Urban Chaos - Riot Response [Demo]" region: "PAL-E" gsHWFixes: - halfPixelOffset: 4 # Fixes edge garbage thin lines and post processing alignment. + halfPixelOffset: 4 # Fixes edge garbage thin lines and post-processing alignment. autoFlush: 1 # Fixes misaligned lights at native resolution. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLED-53983: name: "Fight Night Round 3 [Demo]" region: "PAL-E" @@ -13944,11 +13979,11 @@ SLED-54022: gameFixes: - SoftwareRendererFMVHack # Fixes broken FMVs on repeat plays. gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. + textureInsideRT: 1 # Needed for post-processing effects. autoFlush: 1 # Fixes bloom intensity. minimumBlendingLevel: 4 # Fixes multiple lighting effects from lights, computers, cave walls and more. - nativeScaling: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes offset post processing. + nativeScaling: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes offset post-processing. SLED-54032: name: "Sonic Riders [Demo]" region: "PAL-E" @@ -13964,14 +13999,14 @@ SLED-54312: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. SLED-54315: name: "LEGO Star Wars II - The Original Trilogy [Demo]" region: "PAL-M5" gsHWFixes: - halfPixelOffset: 1 # Aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 1 # Aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLED-54327: name: "FIFA 07" region: "PAL-M7" @@ -13991,7 +14026,7 @@ SLED-54401: gsHWFixes: recommendedBlendingLevel: 3 # Improves metal sheen and reflections. halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. autoFlush: 1 # Fixes sun occlusion and brightness. textureInsideRT: 1 # Fixes shadow maps. SLED-54445: @@ -15052,7 +15087,7 @@ SLES-50423: - BlitInternalFPSHack # Fixes internal FPS detection. gsHWFixes: halfPixelOffset: 4 # Fixes post positioning. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLES-50424: name: "Cricket 2002" region: "PAL-E" @@ -15084,7 +15119,7 @@ SLES-50431: - BlitInternalFPSHack # Fixes internal FPS detection. gsHWFixes: halfPixelOffset: 4 # Fixes post positioning. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLES-50433: name: "GoDai - Elemental Force" region: "PAL-E" @@ -15180,7 +15215,9 @@ SLES-50479: region: "PAL-M4" compat: 5 gsHWFixes: + halfPixelOffset: 2 # Fixes depth/fog lines. textureInsideRT: 1 # Fixes underwater levels. + getSkipCount: "GSC_Turok" SLES-50480: name: "Aggressive Inline" region: "PAL-M4" @@ -15541,9 +15578,10 @@ SLES-50672: region: "PAL-M5" compat: 5 gsHWFixes: - textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance. roundSprite: 1 # Fixes lines in menus. + textureInsideRT: 1 # Fixes half right. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLES-50677: name: "Shadow Hearts" region: "PAL-E" @@ -15574,6 +15612,8 @@ SLES-50684: name: "Medal of Honor - Frontline" region: "PAL-M3" compat: 5 + gsHWFixes: + halfPixelOffset: 2 # Fixes misaligned blur. SLES-50686: name: "Iron Aces 2 - Birds of Prey" region: "PAL-E" @@ -16074,9 +16114,13 @@ SLES-50843: SLES-50845: name: "Medal of Honor - En Première Ligne" region: "PAL-F" + gsHWFixes: + halfPixelOffset: 2 # Fixes misaligned blur. SLES-50846: name: "Medal of Honor - Frontline" region: "PAL-G" + gsHWFixes: + halfPixelOffset: 2 # Fixes misaligned blur. SLES-50848: name: "Speed Kings" region: "PAL-M5" @@ -16143,7 +16187,7 @@ SLES-50874: - BlitInternalFPSHack # Fixes internal FPS detection. gsHWFixes: halfPixelOffset: 4 # Fixes post positioning. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLES-50875: name: "F1 2002" region: "PAL-I" @@ -16151,7 +16195,7 @@ SLES-50875: - BlitInternalFPSHack # Fixes internal FPS detection. gsHWFixes: halfPixelOffset: 4 # Fixes post positioning. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLES-50876: name: "Driv3r" region: "PAL-M5" @@ -16357,8 +16401,8 @@ SLES-50978: region: "PAL-M5" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLES-50981: name: "RC Sports Copter Challenge" region: "PAL-E" @@ -16682,7 +16726,9 @@ SLES-51124: region: "PAL-G" compat: 5 gsHWFixes: + halfPixelOffset: 2 # Fixes depth/fog lines. textureInsideRT: 1 # Fixes underwater levels. + getSkipCount: "GSC_Turok" SLES-51125: name: "Sega Soccer Slam" region: "PAL-E" @@ -16696,7 +16742,7 @@ SLES-51128: region: "PAL-M5" compat: 5 gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. + textureInsideRT: 1 # Needed for post-processing effects. roundSprite: 1 # Fixes upscaling lines. SLES-51130: name: "Tony Hawk's Pro Skater 4" @@ -16824,8 +16870,7 @@ SLES-51192: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. - texturePreloading: 0 # Performs better on certain areas like mid-game in and around the castle as the hash goes easily to 200 MB. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLES-51193: name: "Harry Potter et la Chambre des Secrets" region: "PAL-F" @@ -16834,8 +16879,7 @@ SLES-51193: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. - texturePreloading: 0 # Performs better on certain areas like mid-game in and around the castle as the hash goes easily to 200 MB. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLES-51194: name: "Harry Potter und die Kammer des Schreckens" region: "PAL-G" @@ -16844,8 +16888,7 @@ SLES-51194: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. - texturePreloading: 0 # Performs better on certain areas like mid-game in and around the castle as the hash goes easily to 200 MB. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLES-51195: name: "Harry Potter y la Cámara Secreta" region: "PAL-S" @@ -16854,8 +16897,7 @@ SLES-51195: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. - texturePreloading: 0 # Performs better on certain areas like mid-game in and around the castle as the hash goes easily to 200 MB. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLES-51196: name: "Harry Potter e La Camera dei Secreti" region: "PAL-I" @@ -16864,8 +16906,7 @@ SLES-51196: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. - texturePreloading: 0 # Performs better on certain areas like mid-game in and around the castle as the hash goes easily to 200 MB. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLES-51197: name: "FIFA 2003" region: "PAL-M7" @@ -16921,8 +16962,7 @@ SLES-51214: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. - texturePreloading: 0 # Performs better on certain areas like mid-game in and around the castle as the hash goes easily to 200 MB. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLES-51215: name: "Harry Potter og Mysteriekammeret" region: "PAL-NO" @@ -16931,8 +16971,7 @@ SLES-51215: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. - texturePreloading: 0 # Performs better on certain areas like mid-game in and around the castle as the hash goes easily to 200 MB. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLES-51216: name: "Harry Potter ja Salaisuuksien Kammio" region: "PAL-FI" @@ -16941,8 +16980,7 @@ SLES-51216: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. - texturePreloading: 0 # Performs better on certain areas like mid-game in and around the castle as the hash goes easily to 200 MB. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLES-51217: name: "Harry Potter och Hemligheternas Kammare" region: "PAL-SW" @@ -16951,8 +16989,7 @@ SLES-51217: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. - texturePreloading: 0 # Performs better on certain areas like mid-game in and around the castle as the hash goes easily to 200 MB. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLES-51218: name: "Harry Potter en de Geheime Kamer" region: "PAL-NL" @@ -16961,8 +16998,7 @@ SLES-51218: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. - texturePreloading: 0 # Performs better on certain areas like mid-game in and around the castle as the hash goes easily to 200 MB. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLES-51219: name: "Harry Potter ea Camara dos Segredos" region: "PAL-P" @@ -16971,8 +17007,7 @@ SLES-51219: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. - texturePreloading: 0 # Performs better on certain areas like mid-game in and around the castle as the hash goes easily to 200 MB. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLES-51220: name: "TY the Tasmanian Tiger" region: "PAL-M5" @@ -17013,9 +17048,10 @@ SLES-51230: name: "Minority Report - Everybody Runs" region: "PAL-E" gsHWFixes: - gpuTargetCLUT: 1 # Fixes light bleed through objects. + gpuTargetCLUT: 2 # Fixes light bleed through objects. halfPixelOffset: 1 # Fixes light bleed through objects. autoFlush: 1 # Fixes light bloom intensity. + bilinearUpscale: 2 # Fixes jagged light bloom. SLES-51232: name: "Virtua Tennis 2" region: "PAL-M4" @@ -17028,7 +17064,7 @@ SLES-51233: compat: 5 gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLES-51235: name: "Raging Blades" region: "PAL-M5" @@ -17283,16 +17319,18 @@ SLES-51317: name: "Minority Report - Le Futur vous Rattrape" region: "PAL-F" gsHWFixes: - gpuTargetCLUT: 1 # Fixes light bleed through objects. + gpuTargetCLUT: 2 # Fixes light bleed through objects. halfPixelOffset: 1 # Fixes light bleed through objects. autoFlush: 1 # Fixes light bloom intensity. + bilinearUpscale: 2 # Fixes jagged light bloom. SLES-51318: name: "Minority Report - Everybody Runs" region: "PAL-G" gsHWFixes: - gpuTargetCLUT: 1 # Fixes light bleed through objects. + gpuTargetCLUT: 2 # Fixes light bleed through objects. halfPixelOffset: 1 # Fixes light bleed through objects. autoFlush: 1 # Fixes light bloom intensity. + bilinearUpscale: 2 # Fixes jagged light bloom. SLES-51322: name: "Robotech - Battlecry" region: "PAL-M5" @@ -17585,7 +17623,7 @@ SLES-51448: halfPixelOffset: 5 # Fixes character offset with flashlight and blurriness. Fixes water lines. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes light bloom intensity. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLES-51449: name: "Return to Castle Wolfenstein - Operation Resurrection" region: "PAL-E" @@ -17620,7 +17658,7 @@ SLES-51466: region: "PAL-M5" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. recommendedBlendingLevel: 4 # Fixes lighting effects but has high barrier count. SLES-51467: @@ -17734,14 +17772,16 @@ SLES-51525: region: "PAL-M3" gsHWFixes: textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance and reduces hash cache size when moving. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. roundSprite: 1 # Fixes HUD garbage. SLES-51526: name: "Fallout - Brotherhood of Steel" region: "PAL-M3" gsHWFixes: textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance and reduces hash cache size when moving. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. roundSprite: 1 # Fixes HUD garbage. SLES-51547: name: "Next Generation Tennis 2003" @@ -17762,7 +17802,7 @@ SLES-51553: clampModes: vuClampMode: 2 # Fixes SPS in item menu. gsHWFixes: - halfPixelOffset: 5 # Aligns post processing. + halfPixelOffset: 5 # Aligns post-processing. roundSprite: 2 # Fixes vertical lines and some font artifacts but not completely fixed. textureInsideRT: 1 # Fixes rainbow shadow of legions. SLES-51554: @@ -17805,7 +17845,7 @@ SLES-51584: - BlitInternalFPSHack # Fixes internal FPS detection. gsHWFixes: halfPixelOffset: 4 # Fixes post positioning. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLES-51588: name: "Evil Dead - A Fistful of Boomstick [with Bonus DVD Movie]" region: "PAL-E" @@ -17854,9 +17894,13 @@ SLES-51617: name: "Starsky & Hutch" region: "PAL-M5" compat: 5 + gsHWFixes: + halfPixelOffset: 5 # Aligns shadows better. SLES-51618: name: "Starsky & Hutch" region: "PAL-I-S" + gsHWFixes: + halfPixelOffset: 5 # Aligns shadows better. SLES-51619: name: "Clock Tower 3" region: "PAL-M5" @@ -17929,12 +17973,12 @@ SLES-51653: name: "Mace Griffin - Bounty Hunter" region: "PAL-M4" gsHWFixes: - recommendedBlendingLevel: 3 # Improves lighting. + minimumBlendingLevel: 3 # Fixes missing lighting. SLES-51654: name: "Mace Griffin - Bounty Hunter" region: "PAL-G" gsHWFixes: - recommendedBlendingLevel: 3 # Improves lighting. + minimumBlendingLevel: 3 # Fixes missing lighting. SLES-51658: name: "Disney's ferkels grosses abenteuer-spiel" name-en: "Piglet's Big Game" @@ -18005,8 +18049,8 @@ SLES-51682: name: "Headhunter - Redemption" region: "PAL-E" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLES-51686: name: "Pitfall - The Lost Expedition" region: "PAL-E" @@ -18039,7 +18083,7 @@ SLES-51693: region: "PAL-E-F-G" gsHWFixes: autoFlush: 2 # Fixes debris and blending on lower part of screen during monster transformation. - halfPixelOffset: 4 # Aligns post processing, might sometimes cause edge bleed which must be cropped. + halfPixelOffset: 4 # Aligns post-processing, might sometimes cause edge bleed which must be cropped. nativeScaling: 2 # Fixes post effects like lights. SLES-51696: name: "Dragon's Lair 3D - Special Edition" @@ -18054,7 +18098,7 @@ SLES-51697: recommendedBlendingLevel: 4 # Fixes missing lighting and makes snow not look like snow sludge. textureInsideRT: 1 # Fixes rainbow effect in the pause menu before a jump. halfPixelOffset: 2 # Fixes depth lines. - nativeScaling: 1 # Fixes post processing + nativeScaling: 1 # Fixes post-processing SLES-51698: name: "Mobile Light Force 2" region: "PAL-M5" @@ -18225,6 +18269,8 @@ SLES-51783: name: "Starsky & Hutch" region: "PAL-F-G" compat: 5 + gsHWFixes: + halfPixelOffset: 5 # Aligns shadows better. SLES-51785: name: "Cool Shot" region: "PAL-E" @@ -18234,7 +18280,7 @@ SLES-51787: region: "PAL-M10" gsHWFixes: halfPixelOffset: 4 # Fixes post alignment. - nativeScaling: 1 # Fixes post processing smoothness. + nativeScaling: 1 # Fixes post-processing smoothness. recommendedBlendingLevel: 4 # Fixes missing lighting. SLES-51792: name: "Aliens Versus Predator - Extinction" @@ -18346,7 +18392,7 @@ SLES-51820: gsHWFixes: halfPixelOffset: 5 # Fixes bloom misalignment. autoFlush: 2 # Fixes bloom misalignment. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. textureInsideRT: 1 # Fixes sky bloom. SLES-51821: name: "Alias" @@ -18407,7 +18453,7 @@ SLES-51839: compat: 5 gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLES-51840: name: "NHL Hitz Pro" region: "PAL-E" @@ -18438,8 +18484,8 @@ SLES-51848: vu1RoundMode: 0 # Crashes without. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLES-51850: name: "Basketball Xciting" @@ -18451,8 +18497,8 @@ SLES-51851: vu1RoundMode: 0 # Crashes without. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLES-51852: name: "Tony Hawk's Underground" @@ -18462,8 +18508,8 @@ SLES-51852: vu1RoundMode: 0 # Crashes without. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLES-51853: name: "Tony Hawk's Underground" @@ -18472,8 +18518,8 @@ SLES-51853: vu1RoundMode: 0 # Crashes without. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLES-51854: name: "Tony Hawk's Underground" @@ -18482,8 +18528,8 @@ SLES-51854: vu1RoundMode: 0 # Crashes without. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLES-51855: name: "Tank Elite" @@ -18651,8 +18697,8 @@ SLES-51914: - "SLES-51913" - "SLES-51914" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. disablePartialInvalidation: 1 # Fixes textureless graphics ingame. bilinearUpscale: 2 # Gets rid of center vertical line when upscaling. SLES-51915: @@ -18680,7 +18726,7 @@ SLES-51918: compat: 5 gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Reduces post-processing misalignment. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLES-51924: name: "World War Zero - Ironstorm" @@ -18705,7 +18751,7 @@ SLES-51931: region: "PAL-M5" compat: 5 gsHWFixes: - halfPixelOffset: 2 # Fixes post processing alignment. + halfPixelOffset: 2 # Fixes post-processing alignment. nativeScaling: 2 # Fixes post effects. autoFlush: 1 # Fixes sun intensity. SLES-51932: @@ -18784,7 +18830,7 @@ SLES-51961: region: "PAL-E" gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLES-51963: name: "FIFA 2004" @@ -18848,7 +18894,7 @@ SLES-51981: - IbitHack # Reduces VU recompilation. gsHWFixes: roundSprite: 1 # Fixes slight blur. - halfPixelOffset: 2 # Aligns sun post processing. + halfPixelOffset: 2 # Aligns sun post-processing. nativeScaling: 2 # Fixes sun lines. SLES-51982: name: "ShellShock - Nam '67" @@ -18859,7 +18905,7 @@ SLES-51982: - IbitHack # Reduces VU recompilation. gsHWFixes: roundSprite: 1 # Fixes slight blur. - halfPixelOffset: 2 # Aligns sun post processing. + halfPixelOffset: 2 # Aligns sun post-processing. nativeScaling: 2 # Fixes sun lines. SLES-51986: name: "Backyard Wrestling - Don't Try This At Home" @@ -19031,6 +19077,7 @@ SLES-52045: gameFixes: - XGKickHack # Fixes bad Geometry. gsHWFixes: + recommendedBlendingLevel: 4 # Fixes missing road highlights. roundSprite: 1 # Fixes lines in menus and misaligned text. SLES-52046: name: "007 - Everything or Nothing" @@ -19091,7 +19138,7 @@ SLES-52096: name: "Firefighter F.D. 18" region: "PAL-M5" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. roundSprite: 1 # Fixes sprite misaligment. SLES-52097: name: "SWAT - Global Strike Team" @@ -19172,8 +19219,8 @@ SLES-52132: gsHWFixes: texturePreloading: 1 # Performs much better with partial preload. autoFlush: 1 # Fixes bloom rendering. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. roundModes: vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects. speedHacks: @@ -19184,8 +19231,8 @@ SLES-52133: gsHWFixes: texturePreloading: 1 # Performs much better with partial preload. autoFlush: 1 # Fixes bloom rendering. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. roundModes: vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects. speedHacks: @@ -19197,8 +19244,8 @@ SLES-52134: gsHWFixes: texturePreloading: 1 # Performs much better with partial preload. autoFlush: 1 # Fixes bloom rendering. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. roundModes: vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects. speedHacks: @@ -19209,8 +19256,8 @@ SLES-52135: gsHWFixes: texturePreloading: 1 # Performs much better with partial preload. autoFlush: 1 # Fixes bloom rendering. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. roundModes: vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects. speedHacks: @@ -19221,8 +19268,8 @@ SLES-52136: gsHWFixes: texturePreloading: 1 # Performs much better with partial preload. autoFlush: 1 # Fixes bloom rendering. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. roundModes: vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects. speedHacks: @@ -19305,24 +19352,26 @@ SLES-52187: compat: 5 gsHWFixes: textureInsideRT: 1 # Fixes half right. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. roundSprite: 1 # Fixes lines in sprites but still some lines left. - estimateTextureRegion: 1 # Improves performance. SLES-52188: name: "Baldur's Gate - Dark Alliance II" region: "PAL-M3" compat: 5 gsHWFixes: textureInsideRT: 1 # Fixes half right. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. roundSprite: 1 # Fixes lines in sprites but still some lines left. - estimateTextureRegion: 1 # Improves performance. SLES-52190: name: "RPM Tuning" region: "PAL-M6" compat: 5 gsHWFixes: autoFlush: 1 - halfPixelOffset: 2 # Corrects post processing positioning. - nativeScaling: 2 # Fixes post processing effect and position. + halfPixelOffset: 2 # Corrects post-processing positioning. + nativeScaling: 2 # Fixes post-processing effect and position. SLES-52202: name: "Downhill Domination" region: "PAL-M5" @@ -19631,7 +19680,8 @@ SLES-52325: - BlitInternalFPSHack # Fixes internal fps detection in some areas. gsHWFixes: textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. roundSprite: 1 # Fixes lines in menus HUD and in game. halfPixelOffset: 2 # Fixes edge garbage. PCRTCOverscan: 1 # Fixes offscreen image. @@ -19728,7 +19778,7 @@ SLES-52372: autoFlush: 2 # Fixes the position of the shadow and makes it not blocky. halfPixelOffset: 2 # Fixes shadows. gpuPaletteConversion: 0 # Stops potential crashes from too many palette textures. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLES-52373: name: "Champions of Norrath" region: "PAL-E-S" @@ -19736,7 +19786,8 @@ SLES-52373: - BlitInternalFPSHack # Fixes internal fps detection in some areas. gsHWFixes: textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. roundSprite: 1 # Fixes lines in menus HUD and in game. halfPixelOffset: 2 # Fixes edge garbage. PCRTCOverscan: 1 # Fixes offscreen image. @@ -19881,7 +19932,7 @@ SLES-52439: compat: 5 gsHWFixes: autoFlush: 2 # Fixes debris and blending on lower part of screen during monster transformation. - halfPixelOffset: 4 # Aligns post processing, might sometimes cause edge bleed which must be cropped. + halfPixelOffset: 4 # Aligns post-processing, might sometimes cause edge bleed which must be cropped. nativeScaling: 2 # Fixes post effects like lights. SLES-52440: name: "Harry Potter and the Prisoner of Azkaban" @@ -19914,7 +19965,7 @@ SLES-52447: autoFlush: 2 # Fixes the position of the shadow and makes it not blocky. halfPixelOffset: 2 # Fixes shadows. gpuPaletteConversion: 0 # Stops potential crashes from too many palette textures. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLES-52448: name: "Knights of the Temple - Infernal Crusade" region: "PAL-M4" @@ -20033,7 +20084,7 @@ SLES-52493: autoFlush: 2 # Fixes the position of the shadow and makes it not blocky. halfPixelOffset: 2 # Fixes shadows. gpuPaletteConversion: 0 # Stops potential crashes from too many palette textures. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLES-52495: name: "Bujingai - Swordmaster" region: "PAL-M5" @@ -20070,14 +20121,14 @@ SLES-52511: name: "Headhunter - Redemption" region: "PAL-E" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLES-52512: name: "Headhunter - Redemption" region: "PAL-M4" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLES-52515: name: "Ultimate Casino" region: "PAL-E" @@ -20126,7 +20177,7 @@ SLES-52531: instantVU1: 1 # Fixes SPS. gsHWFixes: autoFlush: 2 # Fixes debris and blending on lower part of screen during monster transformation. - halfPixelOffset: 4 # Aligns post processing, might sometimes cause edge bleed which must be cropped. + halfPixelOffset: 4 # Aligns post-processing, might sometimes cause edge bleed which must be cropped. nativeScaling: 2 # Fixes post effects like lights. SLES-52532: name: "Aces of War" @@ -20184,7 +20235,7 @@ SLES-52541: gsHWFixes: recommendedBlendingLevel: 2 # Fixes blocky heat haze effect. halfPixelOffset: 5 # Helps align radiosity closer to native. - autoFlush: 1 # Fixes post processing. + autoFlush: 1 # Fixes post-processing. SLES-52542: name: "All Music Dance!" region: "PAL-I" @@ -20197,22 +20248,22 @@ SLES-52545: compat: 5 gsHWFixes: recommendedBlendingLevel: 3 # Improves reflections on certain characters and objects on certain levels. - halfPixelOffset: 4 # Corrects post processing positioning. - nativeScaling: 2 # Smooths post processing. + halfPixelOffset: 4 # Corrects post-processing positioning. + nativeScaling: 2 # Smooths post-processing. SLES-52546: name: "Star Wars - Battlefront" region: "PAL-F" gsHWFixes: recommendedBlendingLevel: 3 # Improves reflections on certain characters and objects on certain levels. - halfPixelOffset: 4 # Corrects post processing positioning. - nativeScaling: 2 # Smooths post processing. + halfPixelOffset: 4 # Corrects post-processing positioning. + nativeScaling: 2 # Smooths post-processing. SLES-52547: name: "Star Wars - Battlefront" region: "PAL-G" gsHWFixes: recommendedBlendingLevel: 3 # Improves reflections on certain characters and objects on certain levels. - halfPixelOffset: 4 # Corrects post processing positioning. - nativeScaling: 2 # Smooths post processing. + halfPixelOffset: 4 # Corrects post-processing positioning. + nativeScaling: 2 # Smooths post-processing. SLES-52551: name: "Samurai Warriors" region: "PAL-E" @@ -20315,7 +20366,7 @@ SLES-52569: region: "PAL-M6" compat: 5 gsHWFixes: - nativeScaling: 2 # Fixes post processing smoothness and position. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLES-52570: name: "Area 51" region: "PAL-M5" @@ -20466,8 +20517,8 @@ SLES-52621: gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. preloadFrameData: 1 # Fixes missing loading screens. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLES-52622: name: "Tony Hawk's Underground 2" @@ -20477,8 +20528,8 @@ SLES-52622: gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. preloadFrameData: 1 # Fixes missing loading screens. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLES-52624: name: "X-Men Legends" @@ -20701,6 +20752,9 @@ SLES-52676: SLES-52678: name: "Viewtiful Joe" region: "PAL-M5" + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 2 # Aligns post processing. SLES-52680: name: "Intellivision Lives - The History of Video Gaming" region: "PAL-E" @@ -20856,7 +20910,7 @@ SLES-52730: compat: 5 gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLES-52731: name: "One Piece - Round the Land!" region: "PAL-M3" @@ -21018,40 +21072,40 @@ SLES-52801: name-sort: "Lord of the Rings, The - The Third Age" region: "PAL-M5" gsHWFixes: - halfPixelOffset: 5 # Aligns post processing. - nativeScaling: 2 # Corrects post processing smoothness. + halfPixelOffset: 5 # Aligns post-processing. + nativeScaling: 2 # Corrects post-processing smoothness. SLES-52802: name: "Le Seigneur des Anneaux - Le Tiers Âge" name-sort: "Seigneur des Anneaux, Le - Tiers Âge, Le" name-en: "The Lord of the Rings - The Third Age" region: "PAL-F" gsHWFixes: - halfPixelOffset: 5 # Aligns post processing. - nativeScaling: 2 # Corrects post processing smoothness. + halfPixelOffset: 5 # Aligns post-processing. + nativeScaling: 2 # Corrects post-processing smoothness. SLES-52803: name: "Der Herr der Ringe - Das dritte Zeitalter" name-sort: "Herr der Ringe, Der - dritte Zeitalter, Das" name-en: "The Lord of the Rings - The Third Age" region: "PAL-G" gsHWFixes: - halfPixelOffset: 5 # Aligns post processing. - nativeScaling: 2 # Corrects post processing smoothness. + halfPixelOffset: 5 # Aligns post-processing. + nativeScaling: 2 # Corrects post-processing smoothness. SLES-52804: name: "Il Signore degli Anelli - La Terza Era" name-sort: "Signore degli Anelli, Il - Terza Era, La" name-en: "The Lord of the Rings - The Third Age" region: "PAL-I" gsHWFixes: - halfPixelOffset: 5 # Aligns post processing. - nativeScaling: 2 # Corrects post processing smoothness. + halfPixelOffset: 5 # Aligns post-processing. + nativeScaling: 2 # Corrects post-processing smoothness. SLES-52805: name: "El Señor de los Anillos - La Tercera Edad" name-sort: "Señor de los Anillos, El - Tercera Edad, La" name-en: "The Lord of the Rings - The Third Age" region: "PAL-S" gsHWFixes: - halfPixelOffset: 5 # Aligns post processing. - nativeScaling: 2 # Corrects post processing smoothness. + halfPixelOffset: 5 # Aligns post-processing. + nativeScaling: 2 # Corrects post-processing smoothness. SLES-52807: name: "Lemony Snicket's A Series of Unfortunate Events" region: "PAL-E" @@ -21141,7 +21195,7 @@ SLES-52822: compat: 5 gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLES-52824: name: "Furry Tales" @@ -21171,6 +21225,10 @@ SLES-52835: name: "The Mummy" name-sort: "Mummy, The" region: "PAL-M6" + gsHWFixes: + halfPixelOffset: 5 # Aligns post processing. + autoFlush: 1 # Fixes light penetrating objects and intensity. + nativeScaling: 1 # Aligns post processing. SLES-52836: name: "Knight Rider 2" region: "PAL-M6" @@ -21211,10 +21269,10 @@ SLES-52859: name: "Project - Snowblind" region: "PAL-E" gsHWFixes: - autoFlush: 1 # Fixes the post processing positioning. - textureInsideRT: 1 # Fixes post processing. + autoFlush: 1 # Fixes the post-processing positioning. + textureInsideRT: 1 # Fixes post-processing. halfPixelOffset: 5 # Aligns bloom effect. - nativeScaling: 2 # Fixes post processing smoothness and position. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLES-52861: name: "King Arthur" region: "PAL-M5" @@ -21253,7 +21311,7 @@ SLES-52877: gsHWFixes: halfPixelOffset: 5 # Reduces blurriness. bilinearUpscale: 1 # Smooths out fire textures. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. textureInsideRT: 1 # Fixes post effects. SLES-52882: name: "Stolen" @@ -21295,6 +21353,7 @@ SLES-52894: gsHWFixes: textureInsideRT: 1 # Fixes half right. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLES-52895: name: "Nickelodeon The SpongeBob SquarePants Movie" name-sort: "Nickelodeon SpongeBob SquarePants Movie, The" @@ -21302,21 +21361,21 @@ SLES-52895: compat: 5 gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLES-52896: name: "Nickelodeon SpongeBob SquarePants - The Movie" region: "PAL-F-N" gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLES-52897: name: "Nickelodeon SpongeBob - Il Film" region: "PAL-I" gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLES-52898: name: "King of Fighters - Maximum Impact" @@ -21340,7 +21399,7 @@ SLES-52908: compat: 5 gsHWFixes: halfPixelOffset: 2 # Fixes upscaling lines. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLES-52909: name: "UEFA Champions League 2004-2005" region: "PAL-E-G" @@ -21366,7 +21425,7 @@ SLES-52913: region: "PAL-M5" compat: 5 gsHWFixes: - halfPixelOffset: 1 # Fixes black squares in water. + halfPixelOffset: 5 # Fixes grid-like patterns in water. SLES-52915: name: "DreamWorks Shark Tale - Hajar som Hajar" region: "PAL-SW" @@ -21384,7 +21443,7 @@ SLES-52917: eeRoundMode: 2 # Fixes missing text. gsHWFixes: autoFlush: 1 # Fixes player shadow. - nativeScaling: 2 # Fixes post processing position. + nativeScaling: 2 # Fixes post-processing position. SLES-52918: name: "Scaler" region: "PAL-M4" @@ -21393,7 +21452,7 @@ SLES-52918: eeRoundMode: 2 # Fixes missing text. gsHWFixes: autoFlush: 1 # Fixes player shadow. - nativeScaling: 2 # Fixes post processing position. + nativeScaling: 2 # Fixes post-processing position. SLES-52919: name: "NRL Rugby League 2" region: "PAL-E" @@ -21405,7 +21464,7 @@ SLES-52921: region: "PAL-M5" gsHWFixes: halfPixelOffset: 4 # Fixes edge garbage and misaligned bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness and alignment. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and alignment. autoFlush: 1 # Fixes bloom alignment. SLES-52922: name: "EyeToy - Disney Move" @@ -21418,7 +21477,7 @@ SLES-52927: gsHWFixes: recommendedBlendingLevel: 2 # Fixes blocky heat haze effect. halfPixelOffset: 5 # Helps align radiosity closer to native. - autoFlush: 1 # Fixes post processing. + autoFlush: 1 # Fixes post-processing. SLES-52931: name: "Legend of Kay" region: "PAL-M5" @@ -21559,29 +21618,29 @@ SLES-52974: region: "PAL-M4" gsHWFixes: recommendedBlendingLevel: 3 # Improves metalic shine. - halfPixelOffset: 4 # Fixes offset post processing. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 4 # Fixes offset post-processing. + nativeScaling: 2 # Fixes post-processing. SLES-52975: name: "GoldenEye - Au Service du Mal" region: "PAL-F" gsHWFixes: recommendedBlendingLevel: 3 # Improves metalic shine. - halfPixelOffset: 4 # Fixes offset post processing. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 4 # Fixes offset post-processing. + nativeScaling: 2 # Fixes post-processing. SLES-52976: name: "GoldenEye - Rogue Agent" region: "PAL-G" gsHWFixes: recommendedBlendingLevel: 3 # Improves metalic shine. - halfPixelOffset: 4 # Fixes offset post processing. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 4 # Fixes offset post-processing. + nativeScaling: 2 # Fixes post-processing. SLES-52977: name: "GoldenEye - Agente Corrupto" region: "PAL-S" gsHWFixes: recommendedBlendingLevel: 3 # Improves metalic shine. - halfPixelOffset: 4 # Fixes offset post processing. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 4 # Fixes offset post-processing. + nativeScaling: 2 # Fixes post-processing. SLES-52978: name: "La Pucelle Tactics" region: "PAL-E" @@ -21604,20 +21663,20 @@ SLES-52985: region: "PAL-G" gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLES-52986: name: "Nickelodeon Bob Esponja - La Película" region: "PAL-S" gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. - nativeScaling: 2 # Fixes post processing position. + halfPixelOffset: 4 # Aligns post-processing. + nativeScaling: 2 # Fixes post-processing position. SLES-52988: name: "Mega Man X8" region: "PAL-M5" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing position. + halfPixelOffset: 4 # Fixes post-processing position. autoFlush: 2 # Fixes bloom. roundSprite: 1 # Fixes misaligned bloom. deinterlace: 6 # Game requires blend tff de-interlacing when auto for 'fixing' subtitles flickering or half weaved. @@ -21784,10 +21843,9 @@ SLES-53028: vuClampMode: 0 # Fixes bump mapping issues. gsHWFixes: minimumBlendingLevel: 4 # Fixes various rendering errors that appear as large black patches throughout levels. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. autoFlush: 1 # Fixes sun intensity. - textureInsideRT: 1 # Fixes post processing. - getSkipCount: "GSC_HitmanBloodMoney" + textureInsideRT: 1 # Fixes post-processing. SLES-53029: name: "Hitman - Blood Money" region: "PAL-F" @@ -21795,10 +21853,9 @@ SLES-53029: vuClampMode: 0 # Fixes bump mapping issues. gsHWFixes: minimumBlendingLevel: 4 # Fixes various rendering errors that appear as large black patches throughout levels. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. autoFlush: 1 # Fixes sun intensity. - textureInsideRT: 1 # Fixes post processing. - getSkipCount: "GSC_HitmanBloodMoney" + textureInsideRT: 1 # Fixes post-processing. SLES-53030: name: "Hitman - Blood Money" region: "PAL-G" @@ -21806,10 +21863,9 @@ SLES-53030: vuClampMode: 0 # Fixes bump mapping issues. gsHWFixes: minimumBlendingLevel: 4 # Fixes various rendering errors that appear as large black patches throughout levels. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. autoFlush: 1 # Fixes sun intensity. - textureInsideRT: 1 # Fixes post processing. - getSkipCount: "GSC_HitmanBloodMoney" + textureInsideRT: 1 # Fixes post-processing. SLES-53031: name: "Hitman - Blood Money" region: "PAL-I" @@ -21817,10 +21873,9 @@ SLES-53031: vuClampMode: 0 # Fixes bump mapping issues. gsHWFixes: minimumBlendingLevel: 4 # Fixes various rendering errors that appear as large black patches throughout levels. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. autoFlush: 1 # Fixes sun intensity. - textureInsideRT: 1 # Fixes post processing. - getSkipCount: "GSC_HitmanBloodMoney" + textureInsideRT: 1 # Fixes post-processing. SLES-53032: name: "Hitman - Blood Money" region: "PAL-S" @@ -21828,10 +21883,9 @@ SLES-53032: vuClampMode: 0 # Fixes bump mapping issues. gsHWFixes: minimumBlendingLevel: 4 # Fixes various rendering errors that appear as large black patches throughout levels. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. autoFlush: 1 # Fixes sun intensity. - textureInsideRT: 1 # Fixes post processing. - getSkipCount: "GSC_HitmanBloodMoney" + textureInsideRT: 1 # Fixes post-processing. SLES-53035: name: "Masters of the Universe - He-Man - Defender of Greyskull" region: "PAL-E" @@ -21858,14 +21912,15 @@ SLES-53038: eeRoundMode: 0 # Fixes inability to enter door in Mission 18. gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLES-53039: name: "Champions - Return to Arms" # aka "Champions of Norrath 2" region: "PAL-M4" compat: 5 gsHWFixes: textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. roundSprite: 1 # Fixes lines in menus HUD and in game. halfPixelOffset: 2 # Fixes erroneous line in menus. PCRTCOverscan: 1 # Fixes offscreen image. @@ -22117,10 +22172,10 @@ SLES-53124: name: "Project - Snowblind" region: "PAL-M4" gsHWFixes: - autoFlush: 1 # Fixes the post processing positioning. - textureInsideRT: 1 # Fixes post processing. + autoFlush: 1 # Fixes the post-processing positioning. + textureInsideRT: 1 # Fixes post-processing. halfPixelOffset: 5 # Aligns bloom effect. - nativeScaling: 2 # Fixes post processing smoothness and position. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLES-53125: name: "Enthusia Professional Racing" region: "PAL-M5" @@ -22168,18 +22223,28 @@ SLES-53142: SLES-53143: name: "Fantastic 4" region: "PAL-E" + gsHWFixes: + halfPixelOffset: 5 # Fixes large depth line. SLES-53144: name: "4 Fantastiques, Les" region: "PAL-F" + gsHWFixes: + halfPixelOffset: 5 # Fixes large depth line. SLES-53145: name: "Fantastic 4" region: "PAL-G" + gsHWFixes: + halfPixelOffset: 5 # Fixes large depth line. SLES-53146: name: "I Fantastici Quattro" region: "PAL-I" + gsHWFixes: + halfPixelOffset: 5 # Fixes large depth line. SLES-53147: name: "4 Fantásticos, Los" region: "PAL-S" + gsHWFixes: + halfPixelOffset: 5 # Fixes large depth line. SLES-53148: name: "Fruitfall" region: "PAL-E" @@ -22213,6 +22278,7 @@ SLES-53154: gsHWFixes: textureInsideRT: 1 # Fixes half right. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLES-53155: name: "Star Wars - Episode III - Revenge of the Sith" region: "PAL-M3" @@ -22298,7 +22364,7 @@ SLES-53196: gsHWFixes: recommendedBlendingLevel: 3 # Improves metal sheen and reflections. halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. autoFlush: 1 # Fixes sun occlusion and brightness. textureInsideRT: 1 # Fixes shadow maps. SLES-53197: @@ -22307,7 +22373,7 @@ SLES-53197: gsHWFixes: recommendedBlendingLevel: 3 # Improves metal sheen and reflections. halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. autoFlush: 1 # Fixes sun occlusion and brightness. textureInsideRT: 1 # Fixes shadow maps. SLES-53199: @@ -22319,7 +22385,7 @@ SLES-53200: compat: 5 gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLES-53201: name: "Saint Seiya - The Sanctuary" region: "PAL-M5" @@ -22423,6 +22489,8 @@ SLES-53280: SLES-53281: name: "Fantastic 4" region: "PAL-NL" + gsHWFixes: + halfPixelOffset: 5 # Fixes large depth line. SLES-53282: name: "Harvest Fishing" region: "PAL-E" @@ -22453,7 +22521,7 @@ SLES-53299: autoFlush: 1 # Fixes bloom misalignment. halfPixelOffset: 4 # Fixes bloom misalignment. textureInsideRT: 1 # Fixes sky bloom. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLES-53300: name: "SOCOM 3 - U.S. Navy SEALs" region: "PAL-Unk" @@ -22521,41 +22589,46 @@ SLES-53332: compat: 5 gsHWFixes: recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. - halfPixelOffset: 5 # Fixes misaligned blur. nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLES-53333: name: "Medal of Honor - Les Faucons de Guerre" region: "PAL-F" gsHWFixes: recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. - halfPixelOffset: 5 # Fixes misaligned blur. nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLES-53334: name: "Medal of Honor - European Assault" region: "PAL-G" gsHWFixes: recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. - halfPixelOffset: 5 # Fixes misaligned blur. nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLES-53335: name: "Medal of Honor - European Assault" region: "PAL-I" gsHWFixes: recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. - halfPixelOffset: 5 # Fixes misaligned blur. nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLES-53336: name: "Medal of Honor - European Assault" region: "PAL-S" gsHWFixes: recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. - halfPixelOffset: 5 # Fixes misaligned blur. nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLES-53338: name: "Victorious Boxers 2 - Fighting Spirit" region: "PAL-M3" @@ -22587,7 +22660,7 @@ SLES-53346: compat: 5 gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLES-53350: name: "Sonic Gems Collection" region: "PAL-M5" @@ -22709,7 +22782,7 @@ SLES-53387: gsHWFixes: halfPixelOffset: 2 # Fixes lighting misalignment. autoFlush: 2 # Fixes lighting misalignment. - nativeScaling: 2 # Fixes post processing position. + nativeScaling: 2 # Fixes post-processing position. SLES-53388: name: "Rhythmic Star!" region: "PAL-M5" @@ -22739,8 +22812,8 @@ SLES-53393: gameFixes: - EETimingHack # Fixes garbage textures flashing on the character model. gsHWFixes: - autoFlush: 1 # Fixes missing post processing. - halfPixelOffset: 5 # Aligns post processing. + autoFlush: 1 # Fixes missing post-processing. + halfPixelOffset: 5 # Aligns post-processing. nativeScaling: 1 # Fixes post effects. SLES-53396: name: "Spartan - Total Warrior" @@ -22748,8 +22821,8 @@ SLES-53396: gameFixes: - EETimingHack # Fixes garbage textures flashing on the character model. gsHWFixes: - autoFlush: 1 # Fixes missing post processing. - halfPixelOffset: 5 # Aligns post processing. + autoFlush: 1 # Fixes missing post-processing. + halfPixelOffset: 5 # Aligns post-processing. nativeScaling: 1 # Fixes post effects. SLES-53398: name: "Zombie Zone" @@ -22861,8 +22934,8 @@ SLES-53424: name: "Dead to Rights II" region: "PAL-M4" gsHWFixes: - halfPixelOffset: 4 # Fixes offset post processing. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 4 # Fixes offset post-processing. + nativeScaling: 2 # Fixes post-processing. SLES-53430: name: "The Incredible Hulk - Ultimate Destruction" name-sort: "Incredible Hulk, The - Ultimate Destruction" @@ -22932,6 +23005,9 @@ SLES-53452: SLES-53457: name: "Evil Dead - Regeneration" region: "PAL-E" + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 1 # Aligns post processing. SLES-53458: name: "Shin Megami Tensei - Digital Devil Saga" region: "PAL-E" @@ -22951,7 +23027,7 @@ SLES-53462: region: "PAL-M5" gsHWFixes: halfPixelOffset: 2 # Fix effects upscaling. - autoFlush: 1 # Fixes broken post processing. + autoFlush: 1 # Fixes broken post-processing. nativeScaling: 2 # Fixes post effects. SLES-53463: name: "NHL 06" @@ -23030,79 +23106,79 @@ SLES-53492: name: "Total Overdose" region: "PAL-M5" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLES-53494: name: "Nickelodeon SpongeBob SquarePants - Lights, Camera, Pants!" region: "PAL-E" compat: 5 gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLES-53495: name: "Nickelodeon Bob L'éponge - Silence on Tourne!" region: "PAL-F" gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLES-53496: name: "Nickelodeon SpongeBob - Ciak si Gira!" region: "PAL-I" gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLES-53497: name: "Nickelodeon SpongeBob Schwammkopf - Film ab!" region: "PAL-G" gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLES-53498: name: "Nickelodeon Bob Esponja - ¡Luces, Cámara, Esponja!" region: "PAL-S" gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLES-53499: name: "Nickelodeon SpongeBob SquarePants - Licht uit, Camera aan!" region: "PAL-NL" gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLES-53500: name: "Nickelodeon Svampbob Fyrkant - Tystnad, Tagning, Tvättsvamp!" region: "PAL-SW" gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLES-53501: name: "Star Wars - Battlefront II" region: "PAL-M3" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Corrects post processing positioning. - nativeScaling: 2 # Smooths post processing. + halfPixelOffset: 4 # Corrects post-processing positioning. + nativeScaling: 2 # Smooths post-processing. autoFlush: 1 # Fixes missing lights. SLES-53502: name: "Star Wars - Battlefront II" region: "PAL-F" gsHWFixes: - halfPixelOffset: 4 # Corrects post processing positioning. - nativeScaling: 2 # Smooths post processing. + halfPixelOffset: 4 # Corrects post-processing positioning. + nativeScaling: 2 # Smooths post-processing. autoFlush: 1 # Fixes missing lights. SLES-53503: name: "Star Wars - Battlefront II" region: "PAL-G" gsHWFixes: - halfPixelOffset: 4 # Corrects post processing positioning. - nativeScaling: 2 # Smooths post processing. + halfPixelOffset: 4 # Corrects post-processing positioning. + nativeScaling: 2 # Smooths post-processing. autoFlush: 1 # Fixes missing lights. SLES-53504: name: "Agent Hugo" @@ -23200,7 +23276,7 @@ SLES-53526: region: "PAL-E-F" gsHWFixes: autoFlush: 2 # Fixes debris and blending on lower part of screen during monster transformation. - halfPixelOffset: 4 # Aligns post processing, might sometimes cause edge bleed which must be cropped. + halfPixelOffset: 4 # Aligns post-processing, might sometimes cause edge bleed which must be cropped. nativeScaling: 2 # Fixes post effects like lights. memcardFilters: - "SLES-53526" @@ -23216,7 +23292,7 @@ SLES-53527: region: "PAL-E-I-S" gsHWFixes: autoFlush: 2 # Fixes debris and blending on lower part of screen during monster transformation. - halfPixelOffset: 4 # Aligns post processing, might sometimes cause edge bleed which must be cropped. + halfPixelOffset: 4 # Aligns post-processing, might sometimes cause edge bleed which must be cropped. nativeScaling: 2 # Fixes post effects like lights. memcardFilters: - "SLES-53526" @@ -23232,7 +23308,7 @@ SLES-53528: region: "PAL-G" gsHWFixes: autoFlush: 2 # Fixes debris and blending on lower part of screen during monster transformation. - halfPixelOffset: 4 # Aligns post processing, might sometimes cause edge bleed which must be cropped. + halfPixelOffset: 4 # Aligns post-processing, might sometimes cause edge bleed which must be cropped. nativeScaling: 2 # Fixes post effects like lights. memcardFilters: - "SLES-53526" @@ -23285,8 +23361,8 @@ SLES-53534: vu1RoundMode: 0 # Crashes without. gsHWFixes: recommendedBlendingLevel: 3 # Fixes water and grass textures. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Improves post-processing rendering. preloadFrameData: 1 # Fixes missing loading screens. SLES-53535: @@ -23296,8 +23372,8 @@ SLES-53535: vu1RoundMode: 0 # Crashes without. gsHWFixes: recommendedBlendingLevel: 3 # Fixes water and grass textures. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Improves post-processing rendering. preloadFrameData: 1 # Fixes missing loading screens. SLES-53536: @@ -23309,8 +23385,8 @@ SLES-53539: region: "PAL-M4" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. - nativeScaling: 2 # Fixes post processing position. + halfPixelOffset: 4 # Aligns post-processing. + nativeScaling: 2 # Fixes post-processing position. patches: default: content: |- @@ -23336,8 +23412,8 @@ SLES-53540: region: "PAL-M4" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. - nativeScaling: 2 # Fixes post processing position. + halfPixelOffset: 4 # Aligns post-processing. + nativeScaling: 2 # Fixes post-processing position. patches: default: content: |- @@ -23426,7 +23502,7 @@ SLES-53556: halfPixelOffset: 5 # Fixes post positioning. cpuSpriteRenderBW: 2 # Fixes some bad textures. cpuCLUTRender: 1 # Fixes the rest of the bad textures. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. preloadFrameData: 1 # Fixes road texture corruption. SLES-53557: name: "Need for Speed - Most Wanted" @@ -23476,7 +23552,7 @@ SLES-53560: region: "PAL-M5" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Fix post processing blur. + halfPixelOffset: 4 # Fix post-processing blur. nativeScaling: 1 # Fixes post effects. SLES-53561: name: "Canis Canem Edit" @@ -23668,7 +23744,7 @@ SLES-53626: region: "PAL-E-G" gsHWFixes: autoFlush: 2 # Fixes debris and blending on lower part of screen during monster transformation. - halfPixelOffset: 4 # Aligns post processing, might sometimes cause edge bleed which must be cropped. + halfPixelOffset: 4 # Aligns post-processing, might sometimes cause edge bleed which must be cropped. nativeScaling: 2 # Fixes post effects like lights. memcardFilters: - "SLES-53526" @@ -23721,7 +23797,7 @@ SLES-53641: gsHWFixes: recommendedBlendingLevel: 3 # Improves metal sheen and reflections. halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. autoFlush: 1 # Fixes sun occlusion and brightness. textureInsideRT: 1 # Fixes shadow maps. SLES-53644: @@ -23779,8 +23855,8 @@ SLES-53658: region: "PAL-R" gsHWFixes: recommendedBlendingLevel: 3 # Fixes building shade and shadows. - halfPixelOffset: 4 # Aligns post processing. - nativeScaling: 2 # Fixes post processing position. + halfPixelOffset: 4 # Aligns post-processing. + nativeScaling: 2 # Fixes post-processing position. SLES-53659: name: "Brothers in Arms - Earned in Blood" region: "PAL-M5" @@ -23917,7 +23993,7 @@ SLES-53703: autoFlush: 1 # Corrects vignette to match software. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. halfPixelOffset: 4 # Aligns blur more correctly to match software. - textureInsideRT: 1 # Fixes post processing effects. + textureInsideRT: 1 # Fixes post-processing effects. SLES-53704: name: "Peter Jackson's King Kong - The Official Game of the Movie" name-sort: "King Kong, Peter Jackson's - The Official Game of the Movie" @@ -23927,7 +24003,7 @@ SLES-53704: autoFlush: 1 # Corrects vignette to match software. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. halfPixelOffset: 4 # Aligns blur more correctly to match software. - textureInsideRT: 1 # Fixes post processing effects. + textureInsideRT: 1 # Fixes post-processing effects. SLES-53705: name: "Peter Jackson's King Kong - The Official Game of the Movie" name-sort: "King Kong, Peter Jackson's - The Official Game of the Movie" @@ -23937,7 +24013,7 @@ SLES-53705: autoFlush: 1 # Corrects vignette to match software. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. halfPixelOffset: 4 # Aligns blur more correctly to match software. - textureInsideRT: 1 # Fixes post processing effects. + textureInsideRT: 1 # Fixes post-processing effects. SLES-53706: name: "The Chronicles of Narnia - The Lion, the Witch and the Wardrobe" name-sort: "Chronicles of Narnia, The - The Lion, the Witch and the Wardrobe" @@ -24044,7 +24120,7 @@ SLES-53729: name: "Battlefield 2 - Modern Combat" region: "PAL-M4" gsHWFixes: - minimumBlendingLevel: 4 # Fixes ground texture rendering. + recommendedBlendingLevel: 4 # Fixes ground texture rendering. autoFlush: 1 # Post-processing. halfPixelOffset: 2 # Offset post-processing. texturePreloading: 1 # Improves performance. @@ -24054,7 +24130,7 @@ SLES-53730: name: "Battlefield 2 - Modern Combat" region: "PAL-M3" gsHWFixes: - minimumBlendingLevel: 4 # Fixes ground texture rendering. + recommendedBlendingLevel: 4 # Fixes ground texture rendering. autoFlush: 1 # Post-processing. halfPixelOffset: 2 # Offset post-processing. texturePreloading: 1 # Improves performance. @@ -24101,7 +24177,7 @@ SLES-53747: roundModes: eeRoundMode: 2 # Fixes missing text. gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLES-53748: name: "Quest for Sleeping Beauty" @@ -24155,7 +24231,7 @@ SLES-53758: gsHWFixes: halfPixelOffset: 5 # Fixes bloom misalignment. autoFlush: 2 # Fixes bloom misalignment. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. textureInsideRT: 1 # Fixes sky bloom. SLES-53759: name: "The Matrix - Path of Neo" @@ -24163,7 +24239,7 @@ SLES-53759: region: "PAL-M5" gsHWFixes: halfPixelOffset: 2 # Fix effects upscaling. - autoFlush: 1 # Fixes broken post processing. + autoFlush: 1 # Fixes broken post-processing. nativeScaling: 2 # Fixes post effects. SLES-53760: name: "Rugby Challenge 2006" @@ -24216,14 +24292,14 @@ SLES-53775: gsHWFixes: halfPixelOffset: 2 # Fixes ghosting. textureInsideRT: 1 # Fixes bottom half screen issues. - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SLES-53777: name: "Prince of Persia - The Two Thrones" region: "PAL-M5" compat: 5 gsHWFixes: autoFlush: 1 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLES-53778: name: "Jacked" @@ -24272,7 +24348,7 @@ SLES-53799: compat: 5 gsHWFixes: halfPixelOffset: 2 # Fix effects upscaling. - autoFlush: 1 # Fixes broken post processing. + autoFlush: 1 # Fixes broken post-processing. nativeScaling: 2 # Fixes post effects. SLES-53800: name: "Rampage - Total Destruction" @@ -24281,11 +24357,15 @@ SLES-53803: name: "Friends - Das Trivia Game" region: "PAL-G" SLES-53804: - name: "SeaWorld Adventure Park - Shamu's Deep Sea Adventures" + name: "SeaWorld Adventure Parks - Shamu's Deep Sea Adventures" region: "PAL-E" gsHWFixes: + recommendedBlendingLevel: 2 # Improves overall brightness. + halfPixelOffset: 5 # Fixes depth alignment. + nativeScaling: 1 # Fixes depth intensity. textureInsideRT: 1 # Fixes depth blur. - estimateTextureRegion: 1 # Massively improves performance. + estimateTextureRegion: 1 # Massively improves performance in certain situations. + getSkipCount: "GSC_SandGrainGames" SLES-53805: name: "Cocoto Funfair" region: "PAL-M5" @@ -24507,8 +24587,8 @@ SLES-53886: gsHWFixes: recommendedBlendingLevel: 4 # Improves lighting on buildings and objects. autoFlush: 2 # Properly diffuses light instead of strips of light. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Improves post processing smoothness. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Improves post-processing smoothness. getSkipCount: "GSC_BlackAndBurnoutSky" beforeDraw: "OI_BurnoutGames" patches: @@ -24548,7 +24628,7 @@ SLES-53904: clampModes: vuClampMode: 0 # Fixes black artifacts on tracks gsHWFixes: - halfPixelOffset: 5 # Fixes post processing position. + halfPixelOffset: 5 # Fixes post-processing position. nativeScaling: 2 # Fixes post effects. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. gpuPaletteConversion: 2 # Improves performance and reduces hash cache size. @@ -24567,11 +24647,11 @@ SLES-53908: gameFixes: - SoftwareRendererFMVHack # Fixes broken FMVs on repeat plays. gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. + textureInsideRT: 1 # Needed for post-processing effects. autoFlush: 1 # Fixes bloom intensity. minimumBlendingLevel: 4 # Fixes multiple lighting effects from lights, computers, cave walls and more. - nativeScaling: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes offset post processing. + nativeScaling: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes offset post-processing. SLES-53909: name: "Full Spectrum Warrior - Ten Hammers" region: "PAL-G" @@ -24689,35 +24769,35 @@ SLES-53967: region: "PAL-M6" gsHWFixes: textureInsideRT: 1 # Required for complex offset shuffles. - halfPixelOffset: 2 # Fixes center line in post processing. + halfPixelOffset: 2 # Fixes center line in post-processing. nativeScaling: 2 # Fixes post effects. SLES-53968: name: "Parrain, Le" region: "PAL-F" gsHWFixes: textureInsideRT: 1 # Required for complex offset shuffles. - halfPixelOffset: 2 # Fixes center line in post processing. + halfPixelOffset: 2 # Fixes center line in post-processing. nativeScaling: 2 # Fixes post effects. SLES-53969: name: "Pate, Der" region: "PAL-G" gsHWFixes: textureInsideRT: 1 # Required for complex offset shuffles. - halfPixelOffset: 2 # Fixes center line in post processing. + halfPixelOffset: 2 # Fixes center line in post-processing. nativeScaling: 2 # Fixes post effects. SLES-53970: name: "Padrino, Il" region: "PAL-I" gsHWFixes: textureInsideRT: 1 # Required for complex offset shuffles. - halfPixelOffset: 2 # Fixes center line in post processing. + halfPixelOffset: 2 # Fixes center line in post-processing. nativeScaling: 2 # Fixes post effects. SLES-53971: name: "Padrino, El" region: "PAL-S" gsHWFixes: textureInsideRT: 1 # Required for complex offset shuffles. - halfPixelOffset: 2 # Fixes center line in post processing. + halfPixelOffset: 2 # Fixes center line in post-processing. nativeScaling: 2 # Fixes post effects. SLES-53972: name: "Stock Car Crash" @@ -24787,9 +24867,9 @@ SLES-53991: name: "Urban Chaos - Riot Response" region: "PAL-M5" gsHWFixes: - halfPixelOffset: 4 # Fixes edge garbage thin lines and post processing alignment. + halfPixelOffset: 4 # Fixes edge garbage thin lines and post-processing alignment. autoFlush: 1 # Fixes misaligned lights at native resolution. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLES-53994: name: "50 Cent - Bulletproof" region: "PAL-E" @@ -24802,6 +24882,12 @@ SLES-53996: name: "Army Men - Major Malfunction" region: "PAL-E" compat: 5 + gsHWFixes: + recommendedBlendingLevel: 4 # Fixes missing text glow. + halfPixelOffset: 5 # Fixes misaligned bloom. + nativeScaling: 1 # Fixes misaligned bloom. + textureInsideRT: 1 # Fixes bottom half rendering and corrupted shadows. + PCRTCOverscan: 1 # Adjusts image upwards to center it correctly. SLES-53998: name: "OutRun 2006 - Coast 2 Coast" region: "PAL-M5" @@ -24927,7 +25013,7 @@ SLES-54027: halfPixelOffset: 5 # Fixes post positioning. cpuSpriteRenderBW: 2 # Fixes some bad textures. cpuCLUTRender: 1 # Fixes the rest of the bad textures. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. preloadFrameData: 1 # Fixes road texture corruption. SLES-54030: name: "Black" @@ -24938,8 +25024,8 @@ SLES-54030: gsHWFixes: recommendedBlendingLevel: 4 # Improves lighting on buildings and objects. autoFlush: 2 # Properly diffuses light instead of strips of light. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Improves post processing smoothness. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Improves post-processing smoothness. getSkipCount: "GSC_BlackAndBurnoutSky" beforeDraw: "OI_BurnoutGames" patches: @@ -25173,7 +25259,7 @@ SLES-54150: region: "PAL-M6" gsHWFixes: halfPixelOffset: 2 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and position. + nativeScaling: 2 # Fixes post-processing and position. SLES-54151: name: "Let's Make a Soccer Team!" region: "PAL-M5" @@ -25214,13 +25300,13 @@ SLES-54159: name: "Eragon" region: "PAL-M5" gsHWFixes: - halfPixelOffset: 2 # Fixes post processing misalignment. + halfPixelOffset: 2 # Fixes post-processing misalignment. recommendedBlendingLevel: 4 # Improves reflection quality and terrain lighting. SLES-54160: name: "Eragon" region: "PAL-R" gsHWFixes: - halfPixelOffset: 2 # Fixes post processing misalignment. + halfPixelOffset: 2 # Fixes post-processing misalignment. recommendedBlendingLevel: 4 # Improves reflection quality and terrain lighting. SLES-54161: name: "Super Dragon Ball Z" @@ -25231,7 +25317,7 @@ SLES-54162: compat: 5 gsHWFixes: halfPixelOffset: 4 # Fixes blooming and lighting offset. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLES-54163: name: "Naruto - Ultimate Ninja" region: "PAL-F" @@ -25244,7 +25330,7 @@ SLES-54164: compat: 5 gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. beforeDraw: "OI_DBZBTGames" SLES-54165: name: "One Piece - Grand Adventure" @@ -25294,7 +25380,7 @@ SLES-54171: - EETimingHack # Fixes flickering. gsHWFixes: alignSprite: 1 # Helps align bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness. + nativeScaling: 2 # Fixes post-processing and lighting smoothness. SLES-54172: name: "Garfield 2" region: "PAL-M11" @@ -25329,33 +25415,33 @@ SLES-54182: gameFixes: - IbitHack gsHWFixes: - autoFlush: 2 # Fixes post processing overlay. + autoFlush: 2 # Fixes post-processing overlay. roundSprite: 1 # Greatly reduces chromatic effect when upscaling. forceEvenSpritePosition: 1 # Fixes chromatic fringing. - halfPixelOffset: 2 # Fixes post processing position. - nativeScaling: 1 # Fixes post processing effect and position. + halfPixelOffset: 2 # Fixes post-processing position. + nativeScaling: 1 # Fixes post-processing effect and position. SLES-54183: name: "Scarface - The World is Yours" region: "PAL-G" gameFixes: - IbitHack gsHWFixes: - autoFlush: 2 # Fixes post processing overlay. + autoFlush: 2 # Fixes post-processing overlay. roundSprite: 1 # Greatly reduces chromatic effect when upscaling. forceEvenSpritePosition: 1 # Fixes chromatic fringing. - halfPixelOffset: 2 # Fixes post processing position. - nativeScaling: 1 # Fixes post processing effect and position. + halfPixelOffset: 2 # Fixes post-processing position. + nativeScaling: 1 # Fixes post-processing effect and position. SLES-54184: name: "Scarface - The World is Yours" region: "PAL-R" gameFixes: - IbitHack gsHWFixes: - autoFlush: 2 # Fixes post processing overlay. + autoFlush: 2 # Fixes post-processing overlay. roundSprite: 1 # Greatly reduces chromatic effect when upscaling. forceEvenSpritePosition: 1 # Fixes chromatic fringing. - halfPixelOffset: 2 # Fixes post processing position. - nativeScaling: 1 # Fixes post processing effect and position. + halfPixelOffset: 2 # Fixes post-processing position. + nativeScaling: 1 # Fixes post-processing effect and position. SLES-54185: name: "Dirge of Cerberus - Final Fantasy VII" region: "PAL-M5" @@ -25363,7 +25449,7 @@ SLES-54185: gsHWFixes: autoFlush: 1 # Fixes lighting. halfPixelOffset: 5 # Fixes ghosting. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. recommendedBlendingLevel: 4 # Fixes missing light brightness. SLES-54186: name: "Devil May Cry 3 - Dante's Awakening [Special Edition]" @@ -25372,7 +25458,7 @@ SLES-54186: eeRoundMode: 0 # Fixes inability to enter door in Mission 18. gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLES-54187: name: "Real World Golf 2007" region: "PAL-M3" @@ -25470,8 +25556,8 @@ SLES-54221: name: "LEGO Star Wars II - The Original Trilogy" region: "PAL-M6" gsHWFixes: - halfPixelOffset: 1 # Aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 1 # Aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. memcardFilters: # Allows import of characters from Lego Star Wars 1. - "SLES-54221" - "SLES-53194" @@ -25637,11 +25723,11 @@ SLES-54271: gameFixes: - IbitHack gsHWFixes: - autoFlush: 2 # Fixes post processing overlay. + autoFlush: 2 # Fixes post-processing overlay. roundSprite: 1 # Greatly reduces chromatic effect when upscaling. forceEvenSpritePosition: 1 # Fixes chromatic fringing. - halfPixelOffset: 2 # Fixes post processing position. - nativeScaling: 1 # Fixes post processing effect and position. + halfPixelOffset: 2 # Fixes post-processing position. + nativeScaling: 1 # Fixes post-processing effect and position. SLES-54305: name: "Demon Chaos" region: "PAL-M5" @@ -25706,7 +25792,7 @@ SLES-54321: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. memcardFilters: - "SLES-54321" @@ -25726,7 +25812,7 @@ SLES-54322: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. memcardFilters: - "SLES-54321" @@ -25746,7 +25832,7 @@ SLES-54323: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. memcardFilters: - "SLES-54321" @@ -25766,7 +25852,7 @@ SLES-54324: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. memcardFilters: - "SLES-54321" @@ -25996,6 +26082,9 @@ SLES-54382: name: "Jumanji" region: "PAL-M6" compat: 5 + gsHWFixes: + recommendedBlendingLevel: 2 # Fixes blending issues during the intro. + textureInsideRT: 1 # Fixes half right. SLES-54383: name: "Casper and The Ghostly Trio" region: "PAL-M6" @@ -26005,7 +26094,7 @@ SLES-54384: gsHWFixes: recommendedBlendingLevel: 3 # Improves metal sheen and reflections. halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. autoFlush: 1 # Fixes sun occlusion and brightness. textureInsideRT: 1 # Fixes shadow maps. SLES-54385: @@ -26029,8 +26118,8 @@ SLES-54389: vu1RoundMode: 0 # Fixes invalid VU size spam and likely SPS. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLES-54390: name: "Tony Hawk's Project 8" @@ -26040,8 +26129,8 @@ SLES-54390: vu1RoundMode: 0 # Fixes invalid VU size spam and likely SPS. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLES-54393: name: "Pippa Funnell - Take the Reins" @@ -26071,7 +26160,7 @@ SLES-54402: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. memcardFilters: - "SLES-54402" @@ -26100,11 +26189,12 @@ SLES-54421: SLES-54423: name: "Justice League Heroes" region: "PAL-M5" - gsHWFixes: - textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance. clampModes: vuClampMode: 2 # Fixes ingame SPS for the capes. + gsHWFixes: + textureInsideRT: 1 # Fixes half right. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLES-54424: name: "Dr. Dolittle" region: "PAL-M7" @@ -26117,6 +26207,9 @@ SLES-54426: SLES-54427: name: "Jumanji" region: "PAL-M6" + gsHWFixes: + recommendedBlendingLevel: 2 # Fixes blending issues during the intro. + textureInsideRT: 1 # Fixes half right. SLES-54430: name: "Teen Titans" region: "PAL-E-F" @@ -26146,11 +26239,14 @@ SLES-54434: name: "Babe" region: "PAL-A" SLES-54435: - name: "Babe" + name: "Casper and the Ghostly Trio" region: "PAL-A" SLES-54436: name: "Jumanji" region: "PAL-A" + gsHWFixes: + recommendedBlendingLevel: 2 # Fixes blending issues during the intro. + textureInsideRT: 1 # Fixes half right. SLES-54437: name: "The King of Fighters XI" name-sort: "King of Fighters XI, The" @@ -26193,20 +26289,35 @@ SLES-54448: name: "World Series of Poker - Tournament of Champions" region: "PAL-E" SLES-54449: - name: "Chicken Little - Ace in Action" + name: "Disney's Chicken Little - Ace in Action" region: "PAL-E" + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 1 # Aligns post processing. SLES-54450: - name: "Chicken Little - Aventures Intergalactiques" + name: "Disney Chicken Little - Aventures Intergalactiques" region: "PAL-F" + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 1 # Aligns post processing. SLES-54451: - name: "Himmel und Huhn - Ace in Action" + name: "Disneys Himmel und Huhn - Ace in Action" region: "PAL-G" + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 1 # Aligns post processing. SLES-54452: name: "Disney Chicken Little - As en Acción" region: "PAL-S" + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 1 # Aligns post processing. SLES-54453: - name: "Chicken Little - Asso Spaziale!" + name: "Disney Chicken Little - Asso Spaziale!" region: "PAL-I" + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 1 # Aligns post processing. SLES-54454: name: "Disgaea 2 - Cursed Memories" region: "PAL-E" @@ -26218,7 +26329,7 @@ SLES-54455: gsHWFixes: minimumBlendingLevel: 2 # Improves banding. halfPixelOffset: 1 # Fixes misaligned bloom effects. - nativeScaling: 2 # Corrects post processing. + nativeScaling: 2 # Corrects post-processing. SLES-54456: name: "Beverly Hills Cop" region: "PAL-M11" @@ -26381,7 +26492,7 @@ SLES-54492: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. memcardFilters: - "SLES-54402" @@ -26400,7 +26511,7 @@ SLES-54493: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. memcardFilters: - "SLES-54402" @@ -26420,8 +26531,11 @@ SLES-54508: name: "National Geographic - Safari Adventures Africa" region: "PAL-M6" SLES-54510: - name: "Meet the Robinsons" + name: "Walt Disney Pictures Presents Meet the Robinsons" region: "PAL-M3" + gsHWFixes: + halfPixelOffset: 5 # Fixes bloom alignment. + nativeScaling: 1 # Fixes bloom effects. SLES-54511: name: "UEFA Champions League 2006-2007" region: "PAL-E" @@ -26448,7 +26562,7 @@ SLES-54516: gsHWFixes: minimumBlendingLevel: 2 # Improves banding. halfPixelOffset: 1 # Fixes misaligned bloom effects. - nativeScaling: 2 # Corrects post processing. + nativeScaling: 2 # Corrects post-processing. SLES-54517: name: "Thrillville" region: "PAL-M3" @@ -26457,7 +26571,7 @@ SLES-54517: gsHWFixes: minimumBlendingLevel: 2 # Improves banding. halfPixelOffset: 1 # Fixes misaligned bloom effects. - nativeScaling: 2 # Corrects post processing. + nativeScaling: 2 # Corrects post-processing. SLES-54518: name: "Clumsy Shumsy" region: "PAL-E" @@ -26491,11 +26605,11 @@ SLES-54534: gameFixes: - IbitHack gsHWFixes: - autoFlush: 2 # Fixes post processing overlay. + autoFlush: 2 # Fixes post-processing overlay. roundSprite: 1 # Greatly reduces chromatic effect when upscaling. forceEvenSpritePosition: 1 # Fixes chromatic fringing. - halfPixelOffset: 2 # Fixes post processing position. - nativeScaling: 1 # Fixes post processing effect and position. + halfPixelOffset: 2 # Fixes post-processing position. + nativeScaling: 1 # Fixes post-processing effect and position. SLES-54536: name: "Big Idea's VeggieTales - LarryBoy and the Bad Apple" region: "PAL-I" @@ -26634,7 +26748,8 @@ SLES-54584: name: "Pac-Man Rally" region: "PAL-M5" gsHWFixes: - halfPixelOffset: 2 # Fixes depth line. + textureInsideRT: 1 # Fixes Half blackscreen on the splitscreen couch co-op mode. + halfPixelOffset: 5 # Fixes depth line. clampModes: vuClampMode: 3 # Fixes bad geometry. SLES-54586: @@ -26646,7 +26761,7 @@ SLES-54587: name: "Raw Danger" region: "PAL-E" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLES-54588: name: "Brunswick Pro Bowling" @@ -26798,7 +26913,7 @@ SLES-54644: textureInsideRT: 1 # Required for swirl battle transition. nativeScaling: 2 # Fixes depth of field effects and bloom. roundSprite: 1 # Fixes lines in transitions. - cpuSpriteRenderBW: 1 # Fixes upscaled FMV lines. + autoFlush: 2 # Fixes shadow rendering in certain scenarios when using DirectX. SLES-54645: name: "Valkyrie Profile 2 - Silmeria" region: "PAL-F" @@ -26809,7 +26924,7 @@ SLES-54645: textureInsideRT: 1 # Required for swirl battle transition. nativeScaling: 2 # Fixes depth of field effects and bloom. roundSprite: 1 # Fixes lines in transitions. - cpuSpriteRenderBW: 1 # Fixes upscaled FMV lines. + autoFlush: 2 # Fixes shadow rendering in certain scenarios when using DirectX. SLES-54646: name: "Valkyrie Profile 2 - Silmeria" region: "PAL-G" @@ -26821,7 +26936,7 @@ SLES-54646: textureInsideRT: 1 # Required for swirl battle transition. nativeScaling: 2 # Fixes depth of field effects and bloom. roundSprite: 1 # Fixes lines in transitions. - cpuSpriteRenderBW: 1 # Fixes upscaled FMV lines. + autoFlush: 2 # Fixes shadow rendering in certain scenarios when using DirectX. SLES-54647: name: "Valkyrie Profile 2 - Silmeria" region: "PAL-I" @@ -26833,7 +26948,7 @@ SLES-54647: textureInsideRT: 1 # Required for swirl battle transition. nativeScaling: 2 # Fixes depth of field effects and bloom. roundSprite: 1 # Fixes lines in transitions. - cpuSpriteRenderBW: 1 # Fixes upscaled FMV lines. + autoFlush: 2 # Fixes shadow rendering in certain scenarios when using DirectX. SLES-54648: name: "Valkyrie Profile 2 - Silmeria" region: "PAL-S" @@ -26844,13 +26959,15 @@ SLES-54648: textureInsideRT: 1 # Required for swirl battle transition. nativeScaling: 2 # Fixes depth of field effects and bloom. roundSprite: 1 # Fixes lines in transitions. - cpuSpriteRenderBW: 1 # Fixes upscaled FMV lines. + autoFlush: 2 # Fixes shadow rendering in certain scenarios when using DirectX. SLES-54653: name: "Freak Out - Extreme Freeride" region: "PAL-M5" SLES-54655: name: "Cabela's African Safari" region: "PAL-A" + gsHWFixes: + getSkipCount: "GSC_SandGrainGames" SLES-54656: name: "EyeToy - Bob the Builder" region: "PAL-E" @@ -26929,10 +27046,10 @@ SLES-54674: region: "PAL-M10" compat: 5 gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. - halfPixelOffset: 2 # Fixes offset post processing. + textureInsideRT: 1 # Needed for post-processing effects. + halfPixelOffset: 2 # Fixes offset post-processing. autoFlush: 1 # Fixes bloom intensity. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLES-54675: name: "Street Warrior" region: "PAL-E" @@ -26941,8 +27058,11 @@ SLES-54677: region: "PAL-E" compat: 5 SLES-54679: - name: "Metal Slug - Anthology" + name: "Walt Disney Pictures Presents Meet the Robinsons" region: "PAL-M3" + gsHWFixes: + halfPixelOffset: 5 # Fixes bloom alignment. + nativeScaling: 1 # Fixes bloom effects. SLES-54681: name: "Burnout Dominator" region: "PAL-E" @@ -26961,8 +27081,11 @@ SLES-54683: name: "Medal of Honor - Vanguard" region: "PAL-M9" gsHWFixes: - halfPixelOffset: 2 # Fixes lighting misalignment. - mergeSprite: 1 # Removes occasional vertical lines. + recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. + autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. + nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLES-54684: name: "Peter Pan" region: "PAL-M3" @@ -26998,7 +27121,8 @@ SLES-54711: region: "PAL-E" compat: 5 gsHWFixes: - roundSprite: 2 # Fixes font artifacts and reduces text box artifacts. + halfPixelOffset: 5 # Fixes shadow positioning. + nativeScaling: 2 # Aligns post processing and bloom. SLES-54712: name: "Action Man A.T.O.M. - Alpha Teens on Machines" region: "PAL-PL" @@ -27012,8 +27136,8 @@ SLES-54714: vu1RoundMode: 0 # Crashes without. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLES-54715: name: "Tony Hawk's Downhill Jam" @@ -27022,8 +27146,8 @@ SLES-54715: vu1RoundMode: 0 # Crashes without. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLES-54716: name: "Skateboard Madness - Xtreme Edition" @@ -27182,20 +27306,20 @@ SLES-54755: region: "PAL-E" compat: 5 gsHWFixes: - halfPixelOffset: 2 # Fixes alignment of post processing. - nativeScaling: 1 # Fixes post processing effect. + halfPixelOffset: 2 # Fixes alignment of post-processing. + nativeScaling: 1 # Fixes post-processing effect. SLES-54756: name: "Transformers - The Game" region: "PAL-F-S" gsHWFixes: - halfPixelOffset: 2 # Fixes alignment of post processing. - nativeScaling: 1 # Fixes post processing effect. + halfPixelOffset: 2 # Fixes alignment of post-processing. + nativeScaling: 1 # Fixes post-processing effect. SLES-54757: name: "Transformers - The Game" region: "PAL-G-I" gsHWFixes: - halfPixelOffset: 2 # Fixes alignment of post processing. - nativeScaling: 1 # Fixes post processing effect. + halfPixelOffset: 2 # Fixes alignment of post-processing. + nativeScaling: 1 # Fixes post-processing effect. SLES-54767: name: "Sniper Assault" region: "PAL-E" @@ -27208,7 +27332,7 @@ SLES-54770: eeClampMode: 3 # Fixes objects spawning. gsHWFixes: halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SLES-54771: name: "DreamWorks Shrek the Third" region: "PAL-M5" @@ -27218,7 +27342,7 @@ SLES-54771: eeClampMode: 3 # Fixes objects spawning. gsHWFixes: halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SLES-54772: name: "Monster Eggs" region: "PAL-E" @@ -27231,7 +27355,7 @@ SLES-54774: eeClampMode: 3 # Fixes objects spawning. gsHWFixes: halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SLES-54776: name: "Fantastic Four - Rise of the Silver Surfer" region: "PAL-E-I" @@ -27428,8 +27552,8 @@ SLES-54835: name: "Power Rangers - Super Legends" region: "PAL-M5" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing position. SLES-54836: name: "Disney High School Musical - Sing It!" region: "PAL-M5" @@ -27464,16 +27588,16 @@ SLES-54859: roundModes: vu1RoundMode: 0 # Massages the Z on the score meter for hardware mode, software doesn't really need this. gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLES-54860: name: "Guitar Hero - Rocks The 80s" region: "PAL-M4" roundModes: vu1RoundMode: 0 # Massages the Z on the score meter for hardware mode, software doesn't really need this. gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLES-54861: name: "Thomas & Friends - A Day at the Races" region: "PAL-SC" @@ -27749,7 +27873,7 @@ SLES-54945: compat: 5 gsHWFixes: halfPixelOffset: 5 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. beforeDraw: "OI_DBZBTGames" SLES-54946: name: "Sega Superstars Tennis" @@ -27826,8 +27950,8 @@ SLES-54962: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. getSkipCount: "GSC_GuitarHero" SLES-54963: name: "Tony Hawk's Proving Ground" @@ -27837,8 +27961,8 @@ SLES-54963: vu1RoundMode: 0 # Crashes without. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLES-54964: name: "Tony Hawk's Proving Ground" @@ -27847,8 +27971,8 @@ SLES-54964: vu1RoundMode: 0 # Crashes without. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLES-54971: name: "Hot Wheels - Beat That!" @@ -27874,8 +27998,8 @@ SLES-54974: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. getSkipCount: "GSC_GuitarHero" SLES-54975: name: "George Of The Jungle" @@ -27946,6 +28070,10 @@ SLES-54996: name: "The Golden Compass" name-sort: "Golden Compass, The" region: "PAL-M5" + gsHWFixes: + halfPixelOffset: 4 # Aligns post processing. + autoFlush: 1 # Fixes light penetrating objects and intensity. + nativeScaling: 2 # Aligns post processing. SLES-54997: name: "Mercenaries 2 - World in Flames" region: "PAL-E" @@ -28153,7 +28281,11 @@ SLES-55011: SLES-55012: name: "The Golden Compass" name-sort: "Golden Compass, The" - region: "PAL-M5" + region: "PAL-SC" + gsHWFixes: + halfPixelOffset: 4 # Aligns post processing. + autoFlush: 1 # Fixes light penetrating objects and intensity. + nativeScaling: 2 # Aligns post processing. SLES-55013: name: "Iridium Runners" region: "PAL-M5" @@ -28263,8 +28395,8 @@ SLES-55031: gsHWFixes: cpuSpriteRenderBW: 1 # Fixes textures. cpuSpriteRenderLevel: 1 # Needed for above. - halfPixelOffset: 4 # Aligns post processing. - autoFlush: 1 # Fixes post processing. + halfPixelOffset: 4 # Aligns post-processing. + autoFlush: 1 # Fixes post-processing. SLES-55032: name: "Off Road" region: "PAL-M5" @@ -28398,10 +28530,17 @@ SLES-55102: name-sort: "History Channel, The - Battle for the Pacific" region: "PAL-E" gsHWFixes: + minimumBlendingLevel: 2 # Fixes rendering in DirectX 11/12. + recommendedBlendingLevel: 4 # Fixes shine on guns and missing lighting on grass and trees. + halfPixelOffset: 5 # Fixes depth alignment. + nativeScaling: 1 # Fixes depth intensity. textureInsideRT: 1 # Fixes depth blur. + getSkipCount: "GSC_SandGrainGames" SLES-55103: name: "Cabela's Big Game Hunter [2007]" region: "PAL-E" + gsHWFixes: + getSkipCount: "GSC_SandGrainGames" SLES-55104: name: "UEFA Euro 2008 - Austria-Switzerland" region: "PAL-E" @@ -28473,8 +28612,8 @@ SLES-55135: name: "LEGO Batman - The Videogame" region: "PAL-M6" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLES-55136: name: "Let's Ride! Silver Buckle Stables" region: "PAL-M4" @@ -28483,34 +28622,35 @@ SLES-55138: region: "PAL-E" gsHWFixes: halfPixelOffset: 2 # Corrects most vertical lines. + getSkipCount: "GSC_BlueTongueGames" # Mipmap rendering on CPU. SLES-55143: name: "The Chronicles of Narnia - Prince Caspian" name-sort: "Chronicles of Narnia, The - Prince Caspian" region: "PAL-G-I" gsHWFixes: halfPixelOffset: 2 # Reduces ghosting but on normal vertex is less ghosting but causes corruption at the sides. - nativeScaling: 1 # Fixes post processing position. + nativeScaling: 1 # Fixes post-processing position. SLES-55144: name: "The Chronicles of Narnia - Prince Caspian" name-sort: "Chronicles of Narnia, The - Prince Caspian" region: "PAL-M6" gsHWFixes: halfPixelOffset: 2 # Reduces ghosting but on normal vertex is less ghosting but causes corruption at the sides. - nativeScaling: 1 # Fixes post processing position. + nativeScaling: 1 # Fixes post-processing position. SLES-55145: name: "The Chronicles of Narnia - Prince Caspian" name-sort: "Chronicles of Narnia, The - Prince Caspian" region: "PAL-F-DU" gsHWFixes: halfPixelOffset: 2 # Reduces ghosting but on normal vertex is less ghosting but causes corruption at the sides. - nativeScaling: 1 # Fixes post processing position. + nativeScaling: 1 # Fixes post-processing position. SLES-55146: name: "The Chronicles of Narnia - Prince Caspian" name-sort: "Chronicles of Narnia, The - Prince Caspian" region: "PAL-UK" gsHWFixes: halfPixelOffset: 2 # Reduces ghosting but on normal vertex is less ghosting but causes corruption at the sides. - nativeScaling: 1 # Fixes post processing position. + nativeScaling: 1 # Fixes post-processing position. SLES-55147: name: "Silent Hill - Origins" region: "PAL-M5" @@ -28569,7 +28709,7 @@ SLES-55172: gsHWFixes: deinterlace: 9 # Game requires adaptive bff de-interlacing instead of auto for the UI at native. halfPixelOffset: 5 # Reduces ghosting effects. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLES-55174: name: "NHL 08" region: "PAL-R" @@ -28632,8 +28772,8 @@ SLES-55191: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. getSkipCount: "GSC_GuitarHero" SLES-55192: name: "Steam Express" @@ -28698,8 +28838,8 @@ SLES-55200: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. getSkipCount: "GSC_GuitarHero" SLES-55201: name: "Riding Star" @@ -28756,7 +28896,7 @@ SLES-55216: gsHWFixes: halfPixelOffset: 2 # Fixes ghosting of characters. autoFlush: 2 # Fixes missing glow. - nativeScaling: 2 # Fixes post processing alignment. + nativeScaling: 2 # Fixes post-processing alignment. SLES-55218: name: "Tiger Woods PGA Tour 09" region: "PAL-E" @@ -28791,24 +28931,24 @@ SLES-55234: gsHWFixes: cpuSpriteRenderBW: 1 # Fixes textures. cpuSpriteRenderLevel: 1 # Needed for above. - halfPixelOffset: 4 # Aligns post processing. - autoFlush: 1 # Fixes post processing. + halfPixelOffset: 4 # Aligns post-processing. + autoFlush: 1 # Fixes post-processing. SLES-55235: name: "DreamWorks Kung Fu Panda" region: "PAL-I" gsHWFixes: cpuSpriteRenderBW: 1 # Fixes textures. cpuSpriteRenderLevel: 1 # Needed for above. - halfPixelOffset: 4 # Aligns post processing. - autoFlush: 1 # Fixes post processing. + halfPixelOffset: 4 # Aligns post-processing. + autoFlush: 1 # Fixes post-processing. SLES-55236: name: "DreamWorks Kung Fu Panda" region: "PAL-G-S" gsHWFixes: cpuSpriteRenderBW: 1 # Fixes textures. cpuSpriteRenderLevel: 1 # Needed for above. - halfPixelOffset: 4 # Aligns post processing. - autoFlush: 1 # Fixes post processing. + halfPixelOffset: 4 # Aligns post-processing. + autoFlush: 1 # Fixes post-processing. SLES-55237: name: "Naruto - Ultimate Ninja 3" region: "PAL-M5" @@ -28836,7 +28976,7 @@ SLES-55242: region: "PAL-E" gsHWFixes: alignSprite: 1 # Helps align bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness. + nativeScaling: 2 # Fixes post-processing and lighting smoothness. memcardFilters: # Allows import of Yakuza 1 data. - "SLES-55242" - "SLES-54171" @@ -29208,8 +29348,8 @@ SLES-55355: roundModes: vu1RoundMode: 0 # Fixes graphical issues ingame. gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLES-55356: name: "Bratz - Girlz Really Rock" region: "PAL-M3" @@ -29384,10 +29524,10 @@ SLES-55442: region: "PAL-M8" compat: 5 gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. + textureInsideRT: 1 # Needed for post-processing effects. autoFlush: 1 # Fixes missing blur layer. - nativeScaling: 1 # Fixes post processing. - halfPixelOffset: 4 # Fixes offset post processing. + nativeScaling: 1 # Fixes post-processing. + halfPixelOffset: 4 # Fixes offset post-processing. SLES-55443: name: "Mana Khemia - Alchemists of Al-Revis" region: "PAL-E" @@ -29420,7 +29560,7 @@ SLES-55451: name: "Rock Band 2" region: "PAL-M5" SLES-55452: - name: "Rock Band 2" + name: "Shaun White Snowboarding" region: "PAL-M5" SLES-55453: name: "SingStar - Queen" @@ -29473,8 +29613,8 @@ SLES-55474: clampModes: vuClampMode: 2 # Fix flickering floor during cutscenes in school. gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLES-55476: name: "Scooby-Doo! First Frights" region: "PAL-M5" @@ -29540,19 +29680,19 @@ SLES-55499: region: "PAL-M4" gsHWFixes: halfPixelOffset: 5 # Fixes bloom misaligment. - nativeScaling: 2 # Fixes post processing smoothness and position. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLES-55500: name: "Disney G-Force" region: "PAL-G-I" gsHWFixes: halfPixelOffset: 5 # Fixes bloom misaligment. - nativeScaling: 2 # Fixes post processing smoothness and position. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLES-55502: name: "Миссия Дарвина" region: "PAL-R" gsHWFixes: halfPixelOffset: 5 # Fixes bloom misaligment. - nativeScaling: 2 # Fixes post processing smoothness and position. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLES-55509: name: "Music Maker - Rockstar" region: "PAL-M6" @@ -29583,8 +29723,8 @@ SLES-55518: gsHWFixes: preloadFrameData: 1 # Fixes icons. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. roundModes: vu1RoundMode: 0 # Fixes VU size spam and potential graphical issues with GH3 engine. SLES-55520: @@ -29593,8 +29733,8 @@ SLES-55520: compat: 5 gsHWFixes: cpuSpriteRenderBW: 2 # Fixes textures. - halfPixelOffset: 4 # Aligns post processing, needed for below, but does cause a line around the edge, can be cropped out with 3 px left and top. - nativeScaling: 2 # Fixes post processing smoothness, causes edge bleed without Align to Native. + halfPixelOffset: 4 # Aligns post-processing, needed for below, but does cause a line around the edge, can be cropped out with 3 px left and top. + nativeScaling: 2 # Fixes post-processing smoothness, causes edge bleed without Align to Native. autoFlush: 2 # Fixes soft shadows. patches: 9E36E023: @@ -29638,13 +29778,13 @@ SLES-55533: roundModes: vu1RoundMode: 0 # Fixes SPS and VU size spam. gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLES-55536: name: "Disney/Pixar Cars - Race-O-Rama" region: "PAL-M5" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. autoFlush: 1 # Fixes sun penetrating walls and buildings. SLES-55537: name: "G.I. Joe - The Rise of Cobra" @@ -29796,8 +29936,8 @@ SLES-55610: name: "Springdale" region: "PAL-SC" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. - nativeScaling: 2 # Fixes post processing position. + halfPixelOffset: 4 # Aligns post-processing. + nativeScaling: 2 # Fixes post-processing position. SLES-55622: name: "Disney/Pixar Toy Story 3" region: "PAL-M6" @@ -29957,13 +30097,19 @@ SLES-55676: SLES-82001: name: "Summoner" region: "PAL-E" + clampModes: + eeClampMode: 2 # Fixes missing shadows and indicators. SLES-82003: name: "Summoner" region: "PAL-F" + clampModes: + eeClampMode: 2 # Fixes missing shadows and indicators. SLES-82005: name: "Summoner" region: "PAL-G" compat: 5 + clampModes: + eeClampMode: 2 # Fixes missing shadows and indicators. SLES-82009: name: "Metal Gear Solid 2 - Substance" region: "PAL-M5" @@ -30073,14 +30219,16 @@ SLES-82030: name: "Shadow Hearts - Covenant [Disc 1 of 2]" region: "PAL-M3" gsHWFixes: - halfPixelOffset: 4 # Fixes shadow positioning. + halfPixelOffset: 5 # Fixes shadow positioning. autoFlush: 2 # Makes the shadow monsters appear. + nativeScaling: 2 # Aligns post processing and bloom. SLES-82031: name: "Shadow Hearts - Covenant [Disc 2 of 2]" region: "PAL-M3" gsHWFixes: - halfPixelOffset: 4 # Fixes shadow positioning. + halfPixelOffset: 5 # Fixes shadow positioning. autoFlush: 2 # Makes the shadow monsters appear. + nativeScaling: 2 # Aligns post processing and bloom. memcardFilters: - "SLES-82030" SLES-82032: @@ -30118,15 +30266,19 @@ SLES-82038: region: "PAL-M5" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. + bilinearUpscale: 2 # Attempts to sharpen blurry text in menus. SLES-82039: name: "Onimusha - Dawn of Dreams [Disc 2 of 2]" region: "PAL-M5" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. + bilinearUpscale: 2 # Attempts to sharpen blurry text in menus. memcardFilters: - "SLES-82038" SLES-82042: @@ -30344,7 +30496,7 @@ SLKA-15016: region: "NTSC-K" gsHWFixes: halfPixelOffset: 4 # Fixes post alignment. - nativeScaling: 1 # Fixes post processing smoothness. + nativeScaling: 1 # Fixes post-processing smoothness. recommendedBlendingLevel: 4 # Fixes missing lighting. SLKA-15018: name: "Kidou Senshi Gundam Seed" @@ -30359,7 +30511,7 @@ SLKA-15019: - BlitInternalFPSHack # Fixes internal FPS detection. gsHWFixes: halfPixelOffset: 4 # Fixes post positioning. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLKA-15020: name: "Aliens Versus Predator - Extinction" region: "NTSC-K" @@ -30528,7 +30680,7 @@ SLKA-25026: clampModes: vuClampMode: 2 # Fixes SPS in item menu. gsHWFixes: - halfPixelOffset: 5 # Aligns post processing. + halfPixelOffset: 5 # Aligns post-processing. roundSprite: 2 # Fixes vertical lines and some font artifacts but not completely fixed. textureInsideRT: 1 # Fixes rainbow shadow of legions. SLKA-25027: @@ -30573,7 +30725,7 @@ SLKA-25038: halfPixelOffset: 5 # Fixes character offset with flashlight and blurriness. Fixes water lines. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes light bloom intensity. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLKA-25039: name: "Burnout 2 - Point of Impact" region: "NTSC-K" @@ -30665,7 +30817,7 @@ SLKA-25061: name: "Tom Clancy's Splinter Cell" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. recommendedBlendingLevel: 4 # Fixes lighting effects but has high barrier count. SLKA-25062: @@ -30785,6 +30937,8 @@ SLKA-25088: SLKA-25090: name: "Starsky & Hutch" region: "NTSC-K" + gsHWFixes: + halfPixelOffset: 5 # Aligns shadows better. SLKA-25091: name: "Bansug Yeongung vs. 3D" region: "NTSC-K" @@ -30803,8 +30957,8 @@ SLKA-25093: - "SLKA-25092" - "SLKA-25093" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. disablePartialInvalidation: 1 # Fixes textureless graphics ingame. bilinearUpscale: 2 # Gets rid of center vertical line when upscaling. SLKA-25095: @@ -30828,7 +30982,7 @@ SLKA-25099: region: "NTSC-K" gsHWFixes: halfPixelOffset: 2 # Fixes upscaling lines. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLKA-25100: name: "Breath of Fire V - Dragon Quarter" region: "NTSC-K" @@ -30897,13 +31051,13 @@ SLKA-25118: recommendedBlendingLevel: 4 # Fixes missing lighting and makes snow not look like snow sludge. textureInsideRT: 1 # Fixes rainbow effect in the pause menu before a jump. halfPixelOffset: 2 # Fixes depth lines. - nativeScaling: 1 # Fixes post processing + nativeScaling: 1 # Fixes post-processing SLKA-25120: name: "Prince of Persia - The Sands of Time" region: "NTSC-K" gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLKA-25121: name: "Vexx" @@ -31212,7 +31366,7 @@ SLKA-25200: recommendedBlendingLevel: 4 # Fixes missing lighting and makes snow not look like snow sludge. textureInsideRT: 1 # Fixes rainbow effect in the pause menu before a jump. halfPixelOffset: 2 # Fixes depth lines. - nativeScaling: 1 # Fixes post processing + nativeScaling: 1 # Fixes post-processing SLKA-25201: name: "Armored Core - Nexus [Disc 1]" region: "NTSC-K" @@ -31242,7 +31396,7 @@ SLKA-25205: region: "NTSC-K" gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLKA-25206: name: "Burnout 3 - Takedown" region: "NTSC-K" @@ -31296,12 +31450,15 @@ SLKA-25214: name: "Final Fantasy X - International [PlayStation 2 - Big Hit Series]" region: "NTSC-K" roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: + recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SLKA-25215: name: "Shining Wind" region: "NTSC-K" @@ -31321,8 +31478,8 @@ SLKA-25218: gsHWFixes: texturePreloading: 1 # Performs much better with partial preload. autoFlush: 1 # Fixes bloom rendering. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. roundModes: vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects. speedHacks: @@ -31336,8 +31493,12 @@ SLKA-25219: gsHWFixes: maximumBlendingLevel: 0 # Fixes unnecessary load on the GPU. SLKA-25220: - name: "Viewtiful Joe - A New Hope" + name: "뷰티플 죠 새로운 희망" + name-en: "Viewtiful Joe - A New Hope" region: "NTSC-K" + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 2 # Aligns post processing. SLKA-25221: name: "Busin 0 - Wizardry Alternative Neo" region: "NTSC-K" @@ -31349,7 +31510,7 @@ SLKA-25222: name: "Rockman X8" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing position. + halfPixelOffset: 4 # Fixes post-processing position. autoFlush: 2 # Fixes bloom. roundSprite: 1 # Fixes misaligned bloom. deinterlace: 6 # Game requires blend tff de-interlacing when auto for 'fixing' subtitles flickering or half weaved. @@ -31411,8 +31572,8 @@ SLKA-25237: name-sort: "Lord of the Rings, The - The Third Age" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 5 # Aligns post processing. - nativeScaling: 2 # Corrects post processing smoothness. + halfPixelOffset: 5 # Aligns post-processing. + nativeScaling: 2 # Corrects post-processing smoothness. SLKA-25240: name: "WWE SmackDown! Shut Your Mouth" region: "NTSC-K" @@ -31430,9 +31591,10 @@ SLKA-25243: region: "NTSC-K" gsHWFixes: recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. - halfPixelOffset: 5 # Fixes misaligned blur. nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLKA-25244: name: "WWE SmackDown! vs. Raw" region: "NTSC-K" @@ -31446,12 +31608,13 @@ SLKA-25246: gsHWFixes: textureInsideRT: 1 # Fixes half right. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLKA-25247: name: "Prince of Persia - Warrior Within" region: "NTSC-K" gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLKA-25249: name: "Ys - The Ark of Napishtim [with Guide Book]" @@ -31463,8 +31626,8 @@ SLKA-25250: region: "NTSC-K" gsHWFixes: recommendedBlendingLevel: 3 # Improves metalic shine. - halfPixelOffset: 4 # Fixes offset post processing. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 4 # Fixes offset post-processing. + nativeScaling: 2 # Fixes post-processing. SLKA-25251: name: "Metal Gear Solid 3 - Snake Eater" region: "NTSC-K" @@ -31540,7 +31703,7 @@ SLKA-25265: eeRoundMode: 0 # Fixes inability to enter door in Mission 18. gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLKA-25266: name: "Sangokushi IX [PlayStation 2 - Big Hit Series]" region: "NTSC-K" @@ -31651,7 +31814,7 @@ SLKA-25292: gsHWFixes: halfPixelOffset: 2 # Fixes lighting misalignment. autoFlush: 2 # Fixes lighting misalignment. - nativeScaling: 2 # Fixes post processing position. + nativeScaling: 2 # Fixes post-processing position. SLKA-25296: name: "Inuyasha - Feudal Combat" # Inuyasha - Ougi Ranbu region: "NTSC-K" @@ -31688,7 +31851,7 @@ SLKA-25303: region: "NTSC-K" gsHWFixes: halfPixelOffset: 2 # Fix effects upscaling. - autoFlush: 1 # Fixes broken post processing. + autoFlush: 1 # Fixes broken post-processing. nativeScaling: 2 # Fixes post effects. SLKA-25304: name: "Burnout Revenge" @@ -31708,8 +31871,12 @@ SLKA-25305: name: "Taito Memories - Gekan" region: "NTSC-K" SLKA-25306: - name: "Evil Dead - Regeneration" + name: "이블데드 - 리제너레이션" + name-en: "Evil Dead - Regeneration" region: "NTSC-K" + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 1 # Aligns post processing. SLKA-25307: name: "Dragon Ball Z - Sparking!" region: "NTSC-K" @@ -31724,8 +31891,8 @@ SLKA-25309: name: "Indigo Prophecy" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. - nativeScaling: 2 # Fixes post processing position. + halfPixelOffset: 4 # Aligns post-processing. + nativeScaling: 2 # Fixes post-processing position. SLKA-25310: name: "Musou Orochi" region: "NTSC-K" @@ -31775,7 +31942,7 @@ SLKA-25319: region: "NTSC-K" gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLKA-25320: name: "Ikusa Gami" @@ -31877,14 +32044,14 @@ SLKA-25337: autoFlush: 1 # Corrects vignette to match software. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. halfPixelOffset: 4 # Aligns blur more correctly to match software. - textureInsideRT: 1 # Fixes post processing effects. + textureInsideRT: 1 # Fixes post-processing effects. SLKA-25338: name: "The Godfather" name-sort: "Godfather, The" region: "NTSC-K" gsHWFixes: textureInsideRT: 1 # Required for complex offset shuffles. - halfPixelOffset: 2 # Fixes center line in post processing. + halfPixelOffset: 2 # Fixes center line in post-processing. SLKA-25339: name: "Jin Samguk Mussang 4" region: "NTSC-K" @@ -31900,7 +32067,7 @@ SLKA-25341: halfPixelOffset: 5 # Fixes post positioning. cpuSpriteRenderBW: 2 # Fixes some bad textures. cpuCLUTRender: 1 # Fixes the rest of the bad textures. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. preloadFrameData: 1 # Fixes road texture corruption. SLKA-25342: name: "Ryu ga Gotoku" @@ -31931,7 +32098,7 @@ SLKA-25346: region: "NTSC-K" gsHWFixes: autoFlush: 1 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLKA-25349: name: "Jacked" @@ -31989,7 +32156,7 @@ SLKA-25358: name: "Sonic Riders" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 4 # Fix post processing blur. + halfPixelOffset: 4 # Fix post-processing blur. nativeScaling: 1 # Fixes post effects. SLKA-25359: name: "위닝일레븐9 라이브웨어 에볼루션" @@ -32018,8 +32185,8 @@ SLKA-25363: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLKA-25364: name: "Mobile Suit Gundam - Climax U.C." region: "NTSC-K" @@ -32059,8 +32226,8 @@ SLKA-25372: recommendedBlendingLevel: 4 # Improves lighting on buildings and objects. autoFlush: 2 # Properly diffuses light instead of strips of light. roundSprite: 1 # Fixes lighting misalignment such as the street poles and the sun. - halfPixelOffset: 2 # Mostly aligns post processing. - nativeScaling: 2 # Improves post processing smoothness. + halfPixelOffset: 2 # Mostly aligns post-processing. + nativeScaling: 2 # Improves post-processing smoothness. getSkipCount: "GSC_BlackAndBurnoutSky" beforeDraw: "OI_BurnoutGames" SLKA-25373: @@ -32080,8 +32247,8 @@ SLKA-25375: name: "Transformers - The Game" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 2 # Fixes alignment of post processing. - nativeScaling: 1 # Fixes post processing effect. + halfPixelOffset: 2 # Fixes alignment of post-processing. + nativeScaling: 1 # Fixes post-processing effect. SLKA-25377: name: "OutRun 2006 - Coast 2 Coast" region: "NTSC-K" @@ -32188,7 +32355,7 @@ SLKA-25402: eeRoundMode: 0 # Fixes inability to enter door in Mission 18. gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLKA-25404: name: "NBA Live 08" region: "NTSC-K" @@ -32205,7 +32372,7 @@ SLKA-25407: compat: 5 gsHWFixes: halfPixelOffset: 5 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. beforeDraw: "OI_DBZBTGames" SLKA-25408: name: "FIFA '08" @@ -32245,8 +32412,8 @@ SLKA-25414: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. getSkipCount: "GSC_GuitarHero" SLKA-25417: name: "Jin Samguk Mussang 4 - Empires" @@ -32301,8 +32468,8 @@ SLKA-25434: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. getSkipCount: "GSC_GuitarHero" SLKA-25435: name: "Sengoku Basara X" @@ -32329,7 +32496,7 @@ SLKA-25441: alignSprite: 1 # Fixes vertical lines. autoFlush: 2 # Corrects jet exhaust radiosity. halfPixelOffset: 4 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing smoothness and position. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLKA-25442: name: "007 - Quantum of Solace" region: "NTSC-K" @@ -32379,20 +32546,24 @@ SLKA-25451: name: "WWE SmackDown! vs. Raw 2008" region: "NTSC-K" SLKA-25452: - name: "Viewtiful Joe - A New Hope" + name: "뷰티플 죠 새로운 희망" + name-en: "Viewtiful Joe - A New Hope [BigHit Series]" region: "NTSC-K" + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 2 # Aligns post processing. SLKA-25453: name: "Shin Onimusha - Dawn of Dreams [Disc 1 of 2]" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLKA-25454: name: "Shin Onimusha - Dawn of Dreams [Disc 2 of 2]" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLKA-25455: name: "World Soccer Winning Eleven 2009" region: "NTSC-K" @@ -32413,8 +32584,8 @@ SLKA-25459: compat: 5 gsHWFixes: cpuSpriteRenderBW: 2 # Fixes textures. - halfPixelOffset: 4 # Aligns post processing, needed for below, but does cause a line around the edge, can be cropped out with 3 px left and top. - nativeScaling: 2 # Fixes post processing smoothness, causes edge bleed without Align to Native. + halfPixelOffset: 4 # Aligns post-processing, needed for below, but does cause a line around the edge, can be cropped out with 3 px left and top. + nativeScaling: 2 # Fixes post-processing smoothness, causes edge bleed without Align to Native. autoFlush: 2 # Fixes soft shadows. patches: 9E36E023: @@ -32514,6 +32685,8 @@ SLKA-35004: name: "Sakura Wars 5 So Long My Love" region: "NTSC-K" compat: 5 + gsHWFixes: + halfPixelOffset: 5 # Fixes recrusive drawing to the top left. SLKA-35005: name: "Jin Samguk Mussang 5 - Special" region: "NTSC-K" @@ -32524,7 +32697,7 @@ SLKA-90502: recommendedBlendingLevel: 4 # Fixes missing lighting and makes snow not look like snow sludge. textureInsideRT: 1 # Fixes rainbow effect in the pause menu before a jump. halfPixelOffset: 2 # Fixes depth lines. - nativeScaling: 1 # Fixes post processing + nativeScaling: 1 # Fixes post-processing SLKA-90503: name: "Need for Speed - Underground" region: "NTSC-K" @@ -32734,7 +32907,7 @@ SLPM-55034: name-en: "Battlefield 2 - Modern Combat [EA:SY! 1980]" region: "NTSC-J" gsHWFixes: - minimumBlendingLevel: 4 # Fixes ground texture rendering. + recommendedBlendingLevel: 4 # Fixes ground texture rendering. autoFlush: 1 # Post-processing. halfPixelOffset: 2 # Offset post-processing. texturePreloading: 1 # Improves performance. @@ -32768,9 +32941,10 @@ SLPM-55037: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. - halfPixelOffset: 5 # Fixes misaligned blur. nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLPM-55038: name: "グランド・セフト・オート:Liberty City Stories [Best Price]" name-sort: "ぐらんど・せふと・おーと3.3 りばてぃしてぃー すとーりーず [Best Price]" @@ -32889,7 +33063,7 @@ SLPM-55061: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. memcardFilters: - "SLPM-55061" @@ -32961,8 +33135,11 @@ SLPM-55076: name-en: "Medal of Honor - Vanguard [EA:SY! 1980]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 2 # Fixes lighting misalignment. - mergeSprite: 1 # Removes occasional vertical lines. + recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. + autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. + nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLPM-55077: name: "SSX3 [EA:SY! 1980]" name-sort: "SSX3 [EA:SY! 1980]" @@ -32972,7 +33149,7 @@ SLPM-55077: recommendedBlendingLevel: 4 # Fixes missing lighting and makes snow not look like snow sludge. textureInsideRT: 1 # Fixes rainbow effect in the pause menu before a jump. halfPixelOffset: 2 # Fixes depth lines. - nativeScaling: 1 # Fixes post processing + nativeScaling: 1 # Fixes post-processing SLPM-55079: name: "Scarlett ~日常の境界線~ [通常版]" name-sort: "すかーれっと ~にちじょうのきょうかいせん~ [つうじょうばん]" @@ -33050,7 +33227,7 @@ SLPM-55092: gsHWFixes: recommendedBlendingLevel: 2 # Fixes blocky heat haze effect. halfPixelOffset: 5 # Helps align radiosity closer to native. - autoFlush: 1 # Fixes post processing. + autoFlush: 1 # Fixes post-processing. SLPM-55093: name: "ギャラクシーエンジェルⅡ 無限回廊の鍵 [ディスク1/2]" name-sort: "ぎゃらくしーえんじぇる2 むげんかいろうのかぎ [でぃすく1/2]" @@ -33120,7 +33297,7 @@ SLPM-55107: gsHWFixes: halfPixelOffset: 2 # Fixes ghosting of characters. autoFlush: 2 # Fixes missing glow. - nativeScaling: 2 # Fixes post processing alignment. + nativeScaling: 2 # Fixes post-processing alignment. SLPM-55108: name: "フェイト/アンリミテッドコード" name-sort: "ふぇいと/あんりみてっどこーど" @@ -33307,7 +33484,7 @@ SLPM-55141: gsHWFixes: recommendedBlendingLevel: 3 # Improves metal sheen and reflections. halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. autoFlush: 1 # Fixes sun occlusion and brightness. textureInsideRT: 1 # Fixes shadow maps. SLPM-55143: @@ -34031,7 +34208,7 @@ SLPM-55292: gsHWFixes: recommendedBlendingLevel: 2 # Fixes blocky heat haze effect. halfPixelOffset: 5 # Helps align radiosity closer to native. - autoFlush: 1 # Fixes post processing. + autoFlush: 1 # Fixes post-processing. SLPM-55293: name: "グランド・セフト・オートⅢ [ROCKSTAR CLASSICS]" name-sort: "ぐらんど・せふと・おーと3 [ROCKSTAR CLASSICS]" @@ -34091,7 +34268,7 @@ SLPM-60109: vuClampMode: 2 # Fixes texture rendering in the intro. gsHWFixes: textureInsideRT: 1 # Fixes post effects - halfPixelOffset: 2 # Fixes title screen and some intro post processing alignment. + halfPixelOffset: 2 # Fixes title screen and some intro post-processing alignment. roundSprite: 1 # Fixes ui and hud alignment. gpuPaletteConversion: 2 # Lots of CLUTs in large textures. cpuSpriteRenderBW: 1 # Fixes car textures. @@ -34308,7 +34485,7 @@ SLPM-60149: mergeSprite: 1 # Fixes vertical lines. cpuSpriteRenderBW: 1 # Fixes missing sun sprite. cpuSpriteRenderLevel: 0 # Needed for above. - nativeScaling: 2 # Smooths post processing. + nativeScaling: 2 # Smooths post-processing. SLPM-60150: name: "玉繭物語2 ~滅びの蟲~ MOVIE DISC [体験版]" name-sort: "たままゆものがたり2 ほろびのむし MOVIE DISC [たいけんばん]" @@ -34585,8 +34762,9 @@ SLPM-60214: name-en: "Shadow Hearts II [Trial]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes shadow positioning. + halfPixelOffset: 5 # Fixes shadow positioning. autoFlush: 2 # Makes the shadow monsters appear. + nativeScaling: 2 # Aligns post processing and bloom. SLPM-60215: name: "電撃PS2 / 電撃PlayStation D63" name-sort: "でんげき PS2 でんげきPlayStation D63" @@ -34606,8 +34784,8 @@ SLPM-60217: region: "NTSC-J" gsHWFixes: texturePreloading: 0 # Performs much better with no preload. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. SLPM-60218: name: "GUNGRAVE O.D. [体験版]" name-sort: "がんぐれいぶ おーでぃー [たいけんばん]" @@ -34619,8 +34797,9 @@ SLPM-60219: name-en: "Shadow Hearts II [Appendix Version]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes shadow positioning. + halfPixelOffset: 5 # Fixes shadow positioning. autoFlush: 2 # Makes the shadow monsters appear. + nativeScaling: 2 # Aligns post processing and bloom. SLPM-60220: name: "はじめの一歩2 VICTORIOUS ROAD [体験版]" name-sort: "はじめのいっぽ2 VICTORIOUS ROAD [たいけんばん]" @@ -34637,8 +34816,9 @@ SLPM-60226: name-en: "Shadow Hearts II [Trial]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes shadow positioning. + halfPixelOffset: 5 # Fixes shadow positioning. autoFlush: 2 # Makes the shadow monsters appear. + nativeScaling: 2 # Aligns post processing and bloom. SLPM-60228: name: "街道バトル2 CHAIN REACTION [体験版]" name-sort: "かいどうばとる2 CHAIN REACTION [たいけんばん]" @@ -34737,7 +34917,7 @@ SLPM-60251: eeRoundMode: 0 # Fixes inability to enter door in Mission 18. gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLPM-60252: name: "双恋—フタコイ— [体験版]" name-sort: "ふたこい [たいけんばん]" @@ -34749,7 +34929,7 @@ SLPM-60253: name-en: "Zettai Zetsumei Toshi 2 - Itetsuita Kioutachi [Trial Type-B]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. getSkipCount: "GSC_ZettaiZetsumeiToshi2" SLPM-60254: @@ -34758,7 +34938,7 @@ SLPM-60254: name-en: "Zettai Zetsumei Toshi 2 - Itetsuita Kioutachi [Trial Type-A]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. getSkipCount: "GSC_ZettaiZetsumeiToshi2" SLPM-60255: @@ -34818,11 +34998,17 @@ SLPM-60264: name-sort: "しゃどうはーつ ふろむ・ざ・にゅー・わーるど [たいけんばん]" name-en: "Shadow Hearts - From the New World [Trial]" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 5 # Fixes shadow positioning. + nativeScaling: 2 # Aligns post processing and bloom. SLPM-60265: name: "スチームボーイ [体験版]" name-sort: "すちーむぼーい [たいけんばん]" name-en: "Steamboy [Trial]" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 5 # Reduces post misalignment. + autoFlush: 1 # Fixes post alignment. SLPM-60266: name: "ポンコツ浪漫大活劇バンピートロット [体験版]" name-sort: "ぽんこつろまんだいかつげきばんぴーとろっと [たいけんばん]" @@ -34911,6 +35097,9 @@ SLPM-60279: name-en: "Kamen Rider Kabuto [Trial]" region: "NTSC-J" gsHWFixes: + halfPixelOffset: 5 # Fixes post-processing alignment. + nativeScaling: 1 # Fixes post-processing alignment. + textureInsideRT: 1 # Fixes garbage and missing effects. autoFlush: 1 # Fixes garbage corruptions on the bottom of the screen. SLPM-60280: name: "電撃PS2 PlayStation 2 SAVE DATA COLLECTION 2007" @@ -35127,7 +35316,7 @@ SLPM-61039: halfPixelOffset: 5 # Fixes character offset with flashlight and blurriness. Fixes water lines. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes light bloom intensity. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLPM-61041: name: "バーチャファイター4 エボリューション [体験版]" name-sort: "ばーちゃふぁいたー4 えぼりゅーしょん [たいけんばん]" @@ -35446,7 +35635,7 @@ SLPM-61111: region: "NTSC-J" gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLPM-61112: name: "天星 ソード オブ デスティニー [体験版]" name-sort: "てんせい そーど おぶ ですてぃにー [たいけんばん]" @@ -35664,8 +35853,8 @@ SLPM-61142: name-en: "Shin Onimusha - Dawn of Dreams / Ookami [Trial]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLPM-61144: name: "任侠伝 渡世人一代記 [体験版]" name-sort: "にんきょうでん とせいにんいちだいき [たいけんばん]" @@ -35685,6 +35874,7 @@ SLPM-61147: autoFlush: 1 # Fixes shadows. halfPixelOffset: 4 # Fixes lighting misalignment. nativeScaling: 2 # Fixes lighting smoothness. + textureInsideRT: 1 # Fixes broken crystalline surface textures. SLPM-61148: name: "グローランサーⅤ ジェネレーションズ [体験版]" name-sort: "ぐろーらんさー5 じぇねれーしょんず [たいけんばん]" @@ -35728,11 +35918,11 @@ SLPM-61155: gameFixes: - SoftwareRendererFMVHack # Fixes broken FMVs on repeat plays. gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. + textureInsideRT: 1 # Needed for post-processing effects. autoFlush: 1 # Fixes bloom intensity. minimumBlendingLevel: 4 # Fixes multiple lighting effects from lights, computers, cave walls and more. - nativeScaling: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes offset post processing. + nativeScaling: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes offset post-processing. SLPM-61156: name: "電撃PS2 / 電撃PlayStation D93" name-sort: "でんげき PS2 でんげきPlayStation D93" @@ -35758,7 +35948,7 @@ SLPM-61158: region: "NTSC-J" gsHWFixes: halfPixelOffset: 4 # Fixes blooming and lighting offset. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLPM-61161: name: "ゴッド・オブ・ウォーⅡ 終焉への序曲 [体験版]" name-sort: "ごっど・おぶ・うぉー2 しゅうえんへのじょきょく [たいけんばん]" @@ -36937,16 +37127,15 @@ SLPM-62240: name: "The Sims" region: "NTSC-C" SLPM-62241: - name: "ハリー・ポッターと秘密の部屋" - name-sort: "はりーぽったーとひみつのへや" + name: "哈利波特 - 消失的密室" name-en: "Harry Potter and the Chamber of Secrets" - region: "NTSC-J" + region: "NTSC-C" gameFixes: - EETimingHack # Fixes flickering textures. gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLPM-62242: name: "撞球 ビリヤードマスター2" name-sort: "どうきゅう びりやーどますたー2" @@ -37173,6 +37362,8 @@ SLPM-62286: name-sort: "もんすたーばす" name-en: "Monster Bass" region: "NTSC-J" + gsHWFixes: + getSkipCount: "GSC_SandGrainGames" SLPM-62287: name: "ファイヤープロレスリングZ 闘辞苑 同梱BOX" name-sort: "ふぁいやーぷろれすりんぐZ とうじえん どうこんBOX" @@ -37793,7 +37984,7 @@ SLPM-62408: region: "NTSC-J" gsHWFixes: halfPixelOffset: 4 # Fixes post alignment. - nativeScaling: 1 # Fixes post processing smoothness. + nativeScaling: 1 # Fixes post-processing smoothness. recommendedBlendingLevel: 4 # Fixes missing lighting. SLPM-62409: name: "ウィザードリィ エンパイアⅢ ~覇王の系譜~" @@ -38358,7 +38549,7 @@ SLPM-62513: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLPM-62514: name: "シムピープル ~お茶の間劇場~ [EA BEST HITS]" name-sort: "しむぴーぷる おちゃのまげきじょう [EA BEST HITS]" @@ -38792,6 +38983,8 @@ SLPM-62598: name-sort: "さくらたいせん5 さらばいとしきひとよ [たいけんばん]" name-en: "Sakura Taisen V - Saraba Itoshiki Hito yo [Trial]" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 5 # Fixes recrusive drawing to the top left. SLPM-62599: name: "ボンバーマンカートDX [HUDSON THE BEST]" name-sort: "ぼんばーまんかーとDX [HUDSON THE BEST]" @@ -39789,7 +39982,7 @@ SLPM-64528: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLPM-64532: name: "Digital Holmes" region: "NTSC-K" @@ -39800,7 +39993,7 @@ SLPM-64533: - BlitInternalFPSHack # Fixes internal FPS detection. gsHWFixes: halfPixelOffset: 4 # Fixes post positioning. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLPM-64534: name: "Psyvariar - Complete Edition" region: "NTSC-K" @@ -40467,8 +40660,8 @@ SLPM-65100: name-en: "Onimusha 2 [Limited Edition]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. roundSprite: 2 # Fixes text. SLPM-65101: name: "鬼武者 2" @@ -40476,8 +40669,8 @@ SLPM-65101: name-en: "Onimusha 2" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. roundSprite: 2 # Fixes text. memcardFilters: - "SLPM-65100" @@ -40529,12 +40722,15 @@ SLPM-65115: name-en: "Final Fantasy X International" region: "NTSC-J" roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: + recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SLPM-65116: name: "リリーのアトリエ プラス ~ザールブルグの錬金術士3~" name-sort: "りりーのあとりえ ぷらす ~ざーるぶるぐのれんきんじゅつし3~" @@ -41301,7 +41497,7 @@ SLPM-65245: halfPixelOffset: 5 # Fixes character offset with flashlight and blurriness. Fixes water lines. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes light bloom intensity. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLPM-65246: name: "街道バトル ~日光・榛名・六甲・箱根~" name-sort: "かいどうばとる にっこう はるな ろっこう はこね" @@ -41330,7 +41526,7 @@ SLPM-65249: clampModes: vuClampMode: 2 # Fixes SPS in item menu. gsHWFixes: - halfPixelOffset: 5 # Aligns post processing. + halfPixelOffset: 5 # Aligns post-processing. roundSprite: 2 # Fixes vertical lines and some font artifacts but not completely fixed. textureInsideRT: 1 # Fixes rainbow shadow of legions. SLPM-65250: @@ -42257,8 +42453,8 @@ SLPM-65413: - "SLPM-65411" - "SLPM-65413" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. disablePartialInvalidation: 1 # Fixes textureless graphics ingame. bilinearUpscale: 2 # Gets rid of center vertical line when upscaling. SLPM-65414: @@ -42309,7 +42505,7 @@ SLPM-65422: name-en: "Tom Clancy's Splinter Cell" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. recommendedBlendingLevel: 4 # Fixes lighting effects but has high barrier count. SLPM-65423: @@ -42475,7 +42671,7 @@ SLPM-65449: recommendedBlendingLevel: 4 # Fixes missing lighting and makes snow not look like snow sludge. textureInsideRT: 1 # Fixes rainbow effect in the pause menu before a jump. halfPixelOffset: 2 # Fixes depth lines. - nativeScaling: 1 # Fixes post processing + nativeScaling: 1 # Fixes post-processing SLPM-65450: name: "探偵学園Q ~奇翁館の殺意~ [初回生産分]" name-sort: "たんていがくえんQ ~きおきなかんのさつい~ [しょかいせいさんぶん]" @@ -42597,7 +42793,7 @@ SLPM-65470: name-en: "Firefighter F.D.18" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. roundSprite: 1 # Fixes sprite misaligment. SLPM-65471: name: "ニード・フォー・スピード アンダーグラウンド" @@ -43053,6 +43249,8 @@ SLPM-65555: name-en: "Dragon Quest V - Tenkuu no Hanayome" region: "NTSC-J" compat: 5 + roundModes: + eeDivRoundMode: 3 # Fixes camera issues at the top of mount evil. SLPM-65556: name: "信長の野望・天下創世" name-sort: "のぶながのやぼう てんかそうせい" @@ -43278,11 +43476,15 @@ SLPM-65599: name-sort: "げんそうすいこでん4 [げんていばん]" name-en: "Gensou Suikoden 4 [Limited Edition]" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 5 # Fixes grid-like patterns in water. SLPM-65600: name: "幻想水滸伝Ⅳ" name-sort: "げんそうすいこでん4" name-en: "Gensou Suikoden 4" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 5 # Fixes grid-like patterns in water. SLPM-65601: name: "SuperLite 2000 恋愛アドベンチャー 想い出にかわる君 ~Memories Off~" name-sort: "すーぱーらいと 2000 れんあいあどべんちゃー おもいでにかわるきみ めもりーず おふ" @@ -43563,6 +43765,8 @@ SLPM-65648: name-sort: "めだる・おぶ・おなー しじょうさいだいのさくせん [EA BEST HITS]" name-en: "Medal of Honor - Frontline [EA Best Hits]" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 2 # Fixes misaligned blur. SLPM-65649: name: "NBA STREET2 ダンク天国 [EA BEST HITS]" name-sort: "NBA すとりーと2 だんくてんごく [EA BEST HITS]" @@ -43633,7 +43837,7 @@ SLPM-65662: autoFlush: 2 # Fixes the position of the shadow and makes it not blocky. halfPixelOffset: 2 # Fixes shadows. gpuPaletteConversion: 0 # Stops potential crashes from too many palette textures. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLPM-65663: name: "ツヴァイ!!" name-sort: "つゔぁい!!" @@ -43771,8 +43975,8 @@ SLPM-65687: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves reflections on certain characters and objects on certain levels. - halfPixelOffset: 4 # Corrects post processing positioning. - nativeScaling: 2 # Smooths post processing. + halfPixelOffset: 4 # Corrects post-processing positioning. + nativeScaling: 2 # Smooths post-processing. SLPM-65688: name: "ベルセルク 千年帝国の鷹篇 聖魔戦記の章 [通常版]" name-sort: "べるせるく みれにあむ ふぁるこんへん せいませんきのしょう [つうじょうばん]" @@ -43866,6 +44070,9 @@ SLPM-65699: name-en: "Viewtiful Joe - Aratanaru Kibo" region: "NTSC-J" compat: 5 + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 2 # Aligns post processing. SLPM-65700: name: "剣豪3" name-sort: "けんごう3" @@ -44032,7 +44239,7 @@ SLPM-65730: name-en: "Rockman X8" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing position. + halfPixelOffset: 4 # Fixes post-processing position. autoFlush: 2 # Fixes bloom. roundSprite: 1 # Fixes misaligned bloom. deinterlace: 6 # Game requires blend tff de-interlacing when auto for 'fixing' subtitles flickering or half weaved. @@ -44125,7 +44332,7 @@ SLPM-65744: name-en: "Firefighter F.D.18 [KONAMI The BEST]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. roundSprite: 1 # Fixes sprite misaligment. SLPM-65745: name: "ときめきメモリアル Girl's Side [コナミ殿堂セレクション]" @@ -44249,8 +44456,8 @@ SLPM-65763: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves metalic shine. - halfPixelOffset: 4 # Fixes offset post processing. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 4 # Fixes offset post-processing. + nativeScaling: 2 # Fixes post-processing. SLPM-65764: name: "メンアットワーク!3 愛と青春のハンター学園 [初回限定版]" name-sort: "めんあっとわーく!3 あいとせいしゅんのはんたーがくえん [しょかいげんていばん]" @@ -44412,7 +44619,7 @@ SLPM-65793: recommendedBlendingLevel: 4 # Fixes missing lighting and makes snow not look like snow sludge. textureInsideRT: 1 # Fixes rainbow effect in the pause menu before a jump. halfPixelOffset: 2 # Fixes depth lines. - nativeScaling: 1 # Fixes post processing + nativeScaling: 1 # Fixes post-processing SLPM-65794: name: "カプコン ファイティング ジャム" name-sort: "かぷこん ふぁいてぃんぐ じゃむ" @@ -44513,7 +44720,7 @@ SLPM-65807: region: "NTSC-J" gsHWFixes: halfPixelOffset: 2 # Fixes upscaling lines. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLPM-65808: name: "ダビつく4 ダービー馬をつくろう!" name-sort: "だびつく4 だーびーばをつくろう!" @@ -44724,16 +44931,17 @@ SLPM-65845: compat: 5 gsHWFixes: textureInsideRT: 1 # Fixes half right. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. roundSprite: 1 # Fixes lines in sprites but still some lines left. - estimateTextureRegion: 1 # Improves performance. SLPM-65846: name: "ロード・オブ・ザ・リング / 中つ国第三紀" name-sort: "ろーど おぶ ざ りんぐ なかつくにだいさんき" name-en: "Lord of the Rings, The - The Third Age" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 5 # Aligns post processing. - nativeScaling: 2 # Corrects post processing smoothness. + halfPixelOffset: 5 # Aligns post-processing. + nativeScaling: 2 # Corrects post-processing smoothness. SLPM-65847: name: "空色の風琴 ~Remix~ [初回限定版]" name-sort: "そらいろのおるがん Remix [しょかいげんていばん]" @@ -44908,7 +45116,7 @@ SLPM-65880: eeRoundMode: 0 # Fixes inability to enter door in Mission 18. gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLPM-65881: name: "エキサイティングプロレス 6 - WWE SMACKDOWN! vs. RAW" name-sort: "えきさいてぃんぐぷろれす6 - WWE SMACKDOWN! vs. RAW" @@ -45106,7 +45314,7 @@ SLPM-65913: gsHWFixes: halfPixelOffset: 5 # Reduces blurriness. bilinearUpscale: 1 # Smooths out fire textures. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. textureInsideRT: 1 # Fixes post effects. SLPM-65914: name: "NANA" @@ -45121,7 +45329,8 @@ SLPM-65915: region: "NTSC-J" gsHWFixes: textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance and reduces hash cache size when moving. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. roundSprite: 1 # Fixes HUD garbage. SLPM-65916: name: "遙かなる時空の中で ~八葉抄~" @@ -45270,6 +45479,8 @@ SLPM-65943: name-sort: "えんじぇるずふぇざー くろのざんえい" name-en: "Angel's Feather" region: "NTSC-J" + gsHWFixes: + cpuCLUTRender: 1 # Fixes rendering. SLPM-65944: name: "探偵 神宮寺三郎 KIND OF BLUE [ワークジャム ベストコレクション Vol.2 ]" name-sort: "たんてい じんぐうじさぶろう KIND OF BLUE [わーくじゃむ べすとこれくしょん Vol.2]" @@ -45515,7 +45726,7 @@ SLPM-65984: gsHWFixes: recommendedBlendingLevel: 2 # Fixes blocky heat haze effect. halfPixelOffset: 5 # Helps align radiosity closer to native. - autoFlush: 1 # Fixes post processing. + autoFlush: 1 # Fixes post-processing. SLPM-65985: name: "イリスのアトリエ エターナルマナ2" name-sort: "いりすのあとりえ えたーなるまな2" @@ -45623,7 +45834,7 @@ SLPM-66002: region: "NTSC-J" gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLPM-66003: name: "遙かなる時空の中で ~八葉抄~ [History Box]" @@ -45704,7 +45915,7 @@ SLPM-66017: name-en: "Firefighter F.D.18 [KONAMI Dendou Selection]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. roundSprite: 1 # Fixes sprite misaligment. SLPM-66018: name: "サイレントヒル3 [コナミ殿堂セレクション]" @@ -46019,7 +46230,8 @@ SLPM-66070: name-en: "Shadow Hearts - From the New World [PREMIUM BOX]" region: "NTSC-J" gsHWFixes: - roundSprite: 2 # Fixes font artifacts and reduces text box artifacts. + halfPixelOffset: 5 # Fixes shadow positioning. + nativeScaling: 2 # Aligns post processing and bloom. SLPM-66071: name: "シャドウハーツ フロム・ザ・ニュー・ワールド" name-sort: "しゃどうはーつ ふろむ・ざ・にゅー・わーるど" @@ -46027,7 +46239,8 @@ SLPM-66071: region: "NTSC-J" compat: 5 gsHWFixes: - roundSprite: 2 # Fixes font artifacts and reduces text box artifacts. + halfPixelOffset: 5 # Fixes shadow positioning. + nativeScaling: 2 # Aligns post processing and bloom. SLPM-66072: name: "ファイトナイト ラウンド2" name-sort: "ふぁいとないと らうんど2" @@ -46089,9 +46302,10 @@ SLPM-66079: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. - halfPixelOffset: 5 # Fixes misaligned blur. nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLPM-66080: name: "Generation of Chaos Ⅲ ~時の封印~ [IFコレクション]" name-sort: "じぇねれーしょんおぶかおす 3 ときのふういん [あいであふぁくとりーこれくしょん]" @@ -46387,7 +46601,7 @@ SLPM-66121: autoFlush: 2 # Fixes the position of the shadow and makes it not blocky. halfPixelOffset: 2 # Fixes shadows. gpuPaletteConversion: 0 # Stops potential crashes from too many palette textures. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLPM-66122: name: "キングダム ハーツ [Ultimate Hits]" name-sort: "きんぐだむ はーつ [Ultimate Hits]" @@ -46406,14 +46620,15 @@ SLPM-66124: gameFixes: - SoftwareRendererFMVHack # Fixes interlacing. roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. - vu0ClampMode: 2 # Fixes SPS. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SLPM-66125: name: "ファイナルファンタジーⅩ-2 [Ultimate Hits]" name-sort: "ふぁいなるふぁんたじー10-2 [Ultimate Hits]" @@ -46546,8 +46761,8 @@ SLPM-66145: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves metalic shine. - halfPixelOffset: 4 # Fixes offset post processing. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 4 # Fixes offset post-processing. + nativeScaling: 2 # Fixes post-processing. SLPM-66146: name: "Memories Off #5 とぎれたフィルム [初回限定版]" name-sort: "めもりーず おふ #5 とぎれたふぃるむ [しょかいげんていばん]" @@ -46565,8 +46780,8 @@ SLPM-66148: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves reflections on certain characters and objects on certain levels. - halfPixelOffset: 4 # Corrects post processing positioning. - nativeScaling: 2 # Smooths post processing. + halfPixelOffset: 4 # Corrects post-processing positioning. + nativeScaling: 2 # Smooths post-processing. SLPM-66149: name: "しろがねの鳥籠 [限定版]" name-sort: "しろがねのとりかご [げんていばん]" @@ -46636,7 +46851,7 @@ SLPM-66160: eeRoundMode: 0 # Fixes inability to enter door in Mission 18. gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLPM-66161: name: "Kokoro no Tobira" region: "NTSC-J" @@ -46742,7 +46957,7 @@ SLPM-66177: region: "NTSC-J" gsHWFixes: halfPixelOffset: 2 # Fix effects upscaling. - autoFlush: 1 # Fixes broken post processing. + autoFlush: 1 # Fixes broken post-processing. nativeScaling: 2 # Fixes post effects. SLPM-66178: name: "ポップンミュージック 7 [KONAMI The BEST]" @@ -46840,8 +47055,8 @@ SLPM-66190: name-en: "Star Wars - Battlefront II" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Corrects post processing positioning. - nativeScaling: 2 # Smooths post processing. + halfPixelOffset: 4 # Corrects post-processing positioning. + nativeScaling: 2 # Smooths post-processing. autoFlush: 1 # Fixes missing lights. SLPM-66191: name: "タイガー・ウッズ PGA TOUR 06" @@ -46861,8 +47076,8 @@ SLPM-66193: name-en: "Fahrenheit" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. - nativeScaling: 2 # Fixes post processing position. + halfPixelOffset: 4 # Aligns post-processing. + nativeScaling: 2 # Fixes post-processing position. SLPM-66194: name: "おとなのギャル雀2 ~恋して倍満!~" name-sort: "おとなのぎゃるじゃん2 ~こいしてばいまん!~" @@ -46920,7 +47135,7 @@ SLPM-66206: name-en: "Battlefield 2 - Modern Combat" region: "NTSC-J" gsHWFixes: - minimumBlendingLevel: 4 # Fixes ground texture rendering. + recommendedBlendingLevel: 4 # Fixes ground texture rendering. autoFlush: 1 # Post-processing. halfPixelOffset: 2 # Offset post-processing. texturePreloading: 1 # Improves performance. @@ -46958,7 +47173,7 @@ SLPM-66211: autoFlush: 1 # Corrects vignette to match software. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. halfPixelOffset: 4 # Aligns blur more correctly to match software. - textureInsideRT: 1 # Fixes post processing effects. + textureInsideRT: 1 # Fixes post-processing effects. SLPM-66212: name: "SEGA RALLY 2006" name-sort: "せが らりー 2006" @@ -47371,7 +47586,7 @@ SLPM-66271: gsHWFixes: autoFlush: 1 # Fixes lighting. halfPixelOffset: 5 # Fixes ghosting. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. recommendedBlendingLevel: 4 # Fixes missing light brightness. SLPM-66272: name: "I/O" @@ -47395,8 +47610,10 @@ SLPM-66275: region: "NTSC-J" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. + bilinearUpscale: 2 # Attempts to sharpen blurry text in menus. SLPM-66276: name: "新 鬼武者 DAWN OF DREAMS [ディスク2/2]" name-sort: "しん おにむしゃ DAWN OF DREAMS [でぃすく2/2]" @@ -47404,8 +47621,10 @@ SLPM-66276: region: "NTSC-J" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. + bilinearUpscale: 2 # Attempts to sharpen blurry text in menus. memcardFilters: - "SLPM-66275" SLPM-66277: @@ -47454,7 +47673,7 @@ SLPM-66281: name-en: "Sonic Riders" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fix post processing blur. + halfPixelOffset: 4 # Fix post-processing blur. nativeScaling: 1 # Fixes post effects. SLPM-66282: name: "SuperLite 2000 恋愛アドベンチャー Memories Off AfterRain Vol.2 ~想演~" @@ -47907,8 +48126,8 @@ SLPM-66354: gsHWFixes: recommendedBlendingLevel: 4 # Improves lighting on buildings and objects. autoFlush: 2 # Properly diffuses light instead of strips of light. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Improves post processing smoothness. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Improves post-processing smoothness. getSkipCount: "GSC_BlackAndBurnoutSky" beforeDraw: "OI_BurnoutGames" patches: @@ -48104,7 +48323,7 @@ SLPM-66391: region: "NTSC-J" gsHWFixes: autoFlush: 1 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLPM-66393: name: "ファイナルファンタジーⅪ オールインワンパック2006 [プレイオンライン]" @@ -48272,7 +48491,7 @@ SLPM-66419: textureInsideRT: 1 # Required for swirl battle transition. nativeScaling: 2 # Fixes depth of field effects and bloom. roundSprite: 1 # Fixes lines in transitions. - cpuSpriteRenderBW: 1 # Fixes upscaled FMV lines. + autoFlush: 2 # Fixes shadow rendering in certain scenarios when using DirectX. SLPM-66420: name: "フロントミッション4 [Ultimate Hits]" name-sort: "ふろんとみっしょん4 [Ultimate Hits]" @@ -48330,7 +48549,7 @@ SLPM-66430: gsHWFixes: recommendedBlendingLevel: 3 # Improves metal sheen and reflections. halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. autoFlush: 1 # Fixes sun occlusion and brightness. textureInsideRT: 1 # Fixes shadow maps. SLPM-66431: @@ -48423,8 +48642,8 @@ SLPM-66444: gameFixes: - EETimingHack # Fixes garbage textures flashing on the character model. gsHWFixes: - autoFlush: 1 # Fixes missing post processing. - halfPixelOffset: 5 # Aligns post processing. + autoFlush: 1 # Fixes missing post-processing. + halfPixelOffset: 5 # Aligns post-processing. nativeScaling: 1 # Fixes post effects. SLPM-66445: name: "ペルソナ3" @@ -48696,6 +48915,8 @@ SLPM-66480: name-en: "Dragon Quest V - Tenkuu no Hanayome [Ultimate Hits]" region: "NTSC-J" compat: 5 + roundModes: + eeDivRoundMode: 3 # Fixes camera issues at the top of mount evil. SLPM-66481: name: "ドラゴンクエストⅧ 空と海と大地と呪われし姫君 [Ultimate Hits]" name-sort: "どらごんくえすと8 そらとうみとだいちとのろわれしひめぎみ [Ultimate Hits]" @@ -48860,8 +49081,8 @@ SLPM-66504: name-en: "Onimusha 2 [MEGA HITS!]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. roundSprite: 2 # Fixes text. SLPM-66505: name: "真・三國無双2 [MEGA HITS!]" @@ -48919,9 +49140,10 @@ SLPM-66514: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. - halfPixelOffset: 5 # Fixes misaligned blur. nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLPM-66515: name: "スター・ウォーズ - エピソードⅢ シスの復讐 - [EA BEST HITS]" name-sort: "すたーうぉーず えぴそーど3 しすのふくしゅう [EA BEST HITS]" @@ -48937,13 +49159,13 @@ SLPM-66516: region: "NTSC-J" gsHWFixes: halfPixelOffset: 2 # Fixes upscaling lines. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLPM-66517: name: "The Urbz - Sims in the City" region: "NTSC-J" gsHWFixes: halfPixelOffset: 2 # Fixes upscaling lines. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLPM-66518: name: "帝国千戦記 [ベスト版]" name-sort: "ていこくせんせんき [べすとばん]" @@ -49139,11 +49361,11 @@ SLPM-66558: gameFixes: - SoftwareRendererFMVHack # Fixes broken FMVs on repeat plays. gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. + textureInsideRT: 1 # Needed for post-processing effects. autoFlush: 1 # Fixes bloom intensity. minimumBlendingLevel: 4 # Fixes multiple lighting effects from lights, computers, cave walls and more. - nativeScaling: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes offset post processing. + nativeScaling: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes offset post-processing. SLPM-66559: name: "Winning Post6 [コーエー定番シリーズ]" name-sort: "うぃにんぐぽすと6 [こーえーていばんしりーず]" @@ -49218,7 +49440,7 @@ SLPM-66567: halfPixelOffset: 5 # Fixes post positioning. cpuSpriteRenderBW: 2 # Fixes some bad textures. cpuCLUTRender: 1 # Fixes the rest of the bad textures. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. preloadFrameData: 1 # Fixes road texture corruption. SLPM-66568: name: "ブラザー イン アームズ ロード トゥ ヒル サーティ [UBISOFT BEST]" @@ -49252,8 +49474,8 @@ SLPM-66572: name-en: "LEGO Star Wars II - The Original Trilogy" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 1 # Aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 1 # Aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. memcardFilters: - "SLPM-66572" - "SLPS-20423" @@ -49528,7 +49750,7 @@ SLPM-66617: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. memcardFilters: - "SLPM-66617" @@ -49609,7 +49831,7 @@ SLPM-66629: gsHWFixes: autoFlush: 1 # Fixes lighting. halfPixelOffset: 5 # Fixes ghosting. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. recommendedBlendingLevel: 4 # Fixes missing light brightness. SLPM-66630: name: "メルヘヴン ARM FIGHT DREAM [KONAMI the Best]" @@ -49663,7 +49885,7 @@ SLPM-66638: gsHWFixes: halfPixelOffset: 5 # Reduces blurriness. bilinearUpscale: 1 # Smooths out fire textures. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. textureInsideRT: 1 # Fixes post effects. SLPM-66639: name: "ストリートファイターⅢ 3rd STRIKE Fight for the future [カプコレ]" @@ -49708,7 +49930,7 @@ SLPM-66645: region: "NTSC-J" gsHWFixes: halfPixelOffset: 2 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and position. + nativeScaling: 2 # Fixes post-processing and position. SLPM-66646: name: "シャイニング・フォース イクサ" name-sort: "しゃいにんぐ・ふぉーす いくさ" @@ -49730,7 +49952,7 @@ SLPM-66651: name-en: "Battlefield 2 - Modern Combat [EA Best Hits]" region: "NTSC-J" gsHWFixes: - minimumBlendingLevel: 4 # Fixes ground texture rendering. + recommendedBlendingLevel: 4 # Fixes ground texture rendering. autoFlush: 1 # Post-processing. halfPixelOffset: 2 # Offset post-processing. texturePreloading: 1 # Improves performance. @@ -49868,8 +50090,8 @@ SLPM-66671: gameFixes: - DMABusyHack SLPM-66672: - name: "スプリンターセル 二重スパイ" - name-sort: "すぷりんたーせる にじゅうすぱい" + name: "トム・クランシーシリーズ スプリンターセル 二重スパイ" + name-sort: "とむくらんしーしりーず すぷりんたーせる にじゅうすぱい" name-en: "Tom Clancy's Splinter Cell - Double Agent" region: "NTSC-J" gsHWFixes: @@ -49882,7 +50104,7 @@ SLPM-66673: region: "NTSC-J" gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLPM-66674: name: "タイガー・ウッズ PGA TOUR(R)07" @@ -49924,12 +50146,15 @@ SLPM-66677: name-en: "Final Fantasy X - International [Ultimate Hits]" region: "NTSC-J" roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: + recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SLPM-66678: name: "ファイナルファンタジーⅩ-2 インターナショナル+ラストミッション [Ultimate Hits]" name-sort: "ふぁいなるふぁんたじー10-2 いんたーなしょなる+らすとみっしょん [Ultimate Hits]" @@ -50129,7 +50354,7 @@ SLPM-66710: region: "NTSC-J" gsHWFixes: textureInsideRT: 1 # Required for complex offset shuffles. - halfPixelOffset: 2 # Fixes center line in post processing. + halfPixelOffset: 2 # Fixes center line in post-processing. SLPM-66712: name: "ローゼンメイデン ゲベートガルデン [通常版]" name-sort: "ろーぜんめいでん げべーとがるでん [つうじょうばん]" @@ -50247,8 +50472,8 @@ SLPM-66731: gsHWFixes: recommendedBlendingLevel: 4 # Improves lighting on buildings and objects. autoFlush: 2 # Properly diffuses light instead of strips of light. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Improves post processing smoothness. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Improves post-processing smoothness. getSkipCount: "GSC_BlackAndBurnoutSky" beforeDraw: "OI_BurnoutGames" SLPM-66732: @@ -50364,7 +50589,7 @@ SLPM-66747: gsHWFixes: halfPixelOffset: 2 # Fixes ghosting of characters. autoFlush: 2 # Fixes missing glow. - nativeScaling: 2 # Fixes post processing alignment. + nativeScaling: 2 # Fixes post-processing alignment. SLPM-66748: name: "マナケミア ~学園の錬金術師たち~" name-sort: "まなけみあ がくえんのれんきんじゅつしたち" @@ -50400,8 +50625,11 @@ SLPM-66752: name-en: "Medal of Honor - Vanguard" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 2 # Fixes lighting misalignment. - mergeSprite: 1 # Removes occasional vertical lines. + recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. + autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. + nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLPM-66753: name: "月面兎兵器ミーナ -ふたつのPROJECT M- [限定版]" name-sort: "げつめんとへいきみーな -ふたつのPROJECT M- [げんていばん]" @@ -50481,9 +50709,9 @@ SLPM-66767: name-en: "Urban Chaos - Riot Response" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes edge garbage thin lines and post processing alignment. + halfPixelOffset: 4 # Fixes edge garbage thin lines and post-processing alignment. autoFlush: 1 # Fixes misaligned lights at native resolution. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLPM-66768: name: "ミッシングパーツ side A the TANTEI stories [nice price!]" name-sort: "みっしんぐぱーつ さいど A ざ たんてい すとーりーず [nice price!]" @@ -50582,7 +50810,7 @@ SLPM-66782: textureInsideRT: 1 # Required for swirl battle transition. nativeScaling: 2 # Fixes depth of field effects and bloom. roundSprite: 1 # Fixes lines in transitions. - cpuSpriteRenderBW: 1 # Fixes upscaled FMV lines. + autoFlush: 2 # Fixes shadow rendering in certain scenarios when using DirectX. SLPM-66783: name: "アイドル雀士 スーチーパイⅣ 「完全限定版・コレクターズエディション」" name-sort: "あいどるじゃんし すーちーぱい4 [かんぜんげんていばん・これくたーずえでぃしょん]" @@ -50618,7 +50846,7 @@ SLPM-66788: gsHWFixes: recommendedBlendingLevel: 2 # Fixes blocky heat haze effect. halfPixelOffset: 5 # Helps align radiosity closer to native. - autoFlush: 1 # Fixes post processing. + autoFlush: 1 # Fixes post-processing. SLPM-66789: name: "グランド・セフト・オートⅢ [Best Price]" name-sort: "ぐらんど・せふと・おーと3 [Best Price]" @@ -50865,8 +51093,11 @@ SLPM-66829: SLPM-66830: name: "ルイスと未来泥棒" name-sort: "るいすとみらいどろぼう" - name-en: "Lewis and the Future Thief" + name-en: "Walt Disney Pictures Presents Lewis to Mirai Dorobou - Wilbur no Kiken na Jikan Ryokou" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 5 # Fixes bloom alignment. + nativeScaling: 1 # Fixes bloom effects. SLPM-66832: name: "テニスの王子様 ドキドキサバイバル 海辺のSecret [KONAMI The Best]" name-sort: "てにすのおうじさま どきどきさばいばる うみべのしーくれっと [KONAMI The Best]" @@ -51063,8 +51294,8 @@ SLPM-66867: name-en: "MotoGP '07" region: "NTSC-J" SLPM-66868: - name: "スプリンターセル 二重スパイ [UBISOFT BEST]" - name-sort: "すぷりんたーせる にじゅうすぱい [UBISOFT BEST]" + name: "トム・クランシーシリーズ スプリンターセル 二重スパイ [UBISOFT BEST]" + name-sort: "とむくらんしーしりーず すぷりんたーせる にじゅうすぱい [UBISOFT BEST]" name-en: "Tom Clancy's Splinter Cell - Double Agent [Ubisoft Best]" region: "NTSC-J" gsHWFixes: @@ -51078,7 +51309,7 @@ SLPM-66869: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. memcardFilters: - "SLPM-66869" @@ -51594,8 +51825,8 @@ SLPM-66961: gsHWFixes: recommendedBlendingLevel: 4 # Improves lighting on buildings and objects. autoFlush: 2 # Properly diffuses light instead of strips of light. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Improves post processing smoothness. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Improves post-processing smoothness. getSkipCount: "GSC_BlackAndBurnoutSky" beforeDraw: "OI_BurnoutGames" SLPM-66962: @@ -51619,6 +51850,8 @@ SLPM-66963: name-sort: "めだる・おぶ・おなー しじょうさいだいのさくせん [EA:SY! 1980]" name-en: "Medal of Honor - Frontline [EA:SY! 1980]" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 2 # Fixes misaligned blur. SLPM-66964: name: "GUILTY GEAR XX Λ CORE PLUS [アペンド版]" name-sort: "ぎるてぃぎあ いぐぜくす あくせんと こあ ぷらす [あぺんどばん]" @@ -51637,7 +51870,7 @@ SLPM-66966: region: "NTSC-J" gsHWFixes: textureInsideRT: 1 # Required for complex offset shuffles. - halfPixelOffset: 2 # Fixes center line in post processing. + halfPixelOffset: 2 # Fixes center line in post-processing. SLPM-66967: name: "ARIA the NATURAL ~遠い記憶のミラージュ~ [アルケベスト]" name-sort: "ありあ ざ なちゅらる とおいきおくのみらーじゅ [あるけべすと]" @@ -51864,6 +52097,8 @@ SLPM-67009: name-sort: "さくらたいせん5 ~さらばいとしきひとよ~" name-en: "Sakura Taisen V - Saraba Itoshiki Hito Yo" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 5 # Fixes recrusive drawing to the top left. SLPM-67010: name: "ゴッド・オブ・ウォー" name-sort: "ごっど・おぶ・うぉー" @@ -51977,12 +52212,15 @@ SLPM-67513: name: "Final Fantasy X International" region: "NTSC-K" roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: + recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SLPM-67514: name: "Kessen" region: "NTSC-K" @@ -52006,8 +52244,8 @@ SLPM-67518: name: "Onimusha 2 - Samurai's Destiny" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. roundSprite: 2 # Fixes text. SLPM-67519: name: "Rayman 2 Revolution" @@ -52040,6 +52278,8 @@ SLPM-67524: SLPM-67525: name: "Medal of Honor - Frontline" region: "NTSC-K" + gsHWFixes: + halfPixelOffset: 2 # Fixes misaligned blur. SLPM-67526: name: "Ghost Vibration" region: "NTSC-K" @@ -52144,7 +52384,7 @@ SLPM-68005: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLPM-68007: name: "カラオケレボリューション用マイク同梱お試しディスク" name-sort: "からおけれぼりゅーしょんようまいくどうこんおためしでぃすく" @@ -52173,7 +52413,7 @@ SLPM-68016: gsHWFixes: autoFlush: 1 # Fixes lighting. halfPixelOffset: 5 # Fixes ghosting. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. recommendedBlendingLevel: 4 # Fixes missing light brightness. SLPM-68017: name: "新 鬼武者 DAWN OF DREAMS [最強セーブデータ]" @@ -52181,8 +52421,8 @@ SLPM-68017: name-en: "Shin Onimusha - Dawn of Dreams [Saikyou Save Data]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. memcardFilters: - "SLPM-66275" SLPM-68018: @@ -52255,7 +52495,7 @@ SLPM-68513: region: "NTSC-J" gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLPM-68514: name: "Front Mission Online" region: "NTSC-J" @@ -52480,6 +52720,8 @@ SLPM-74213: name-sort: "げんそうすいこでん4 [PlayStation2 the Best]" name-en: "Gensou Suikoden IV [PlayStation2 the Best]" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 5 # Fixes grid-like patterns in water. SLPM-74214: name: "電車でGO!FINAL [PlayStation2 the Best]" name-sort: "でんしゃでごーFINAL [PlayStation2 the Best]" @@ -52595,8 +52837,10 @@ SLPM-74232: gameFixes: - SoftwareRendererFMVHack # Wrong white textures in FMV. gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. + bilinearUpscale: 2 # Attempts to sharpen blurry text in menus. memcardFilters: - "SLPM-66275" SLPM-74233: @@ -52605,8 +52849,10 @@ SLPM-74233: name-en: "Shin Onimusha - Dawn of Dreams [PlayStation2 the Best] [Disc 2 of 2]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. + bilinearUpscale: 2 # Attempts to sharpen blurry text in menus. memcardFilters: - "SLPM-74232" SLPM-74234: @@ -52668,7 +52914,7 @@ SLPM-74242: eeRoundMode: 0 # Fixes inability to enter door in Mission 18. gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLPM-74243: name: "トゥルー・クライム~ニューヨークシティ~ [PlayStation2 the Best]" name-sort: "とぅるー くらいむ にゅーよーくしてぃ [PlayStation2 the Best]" @@ -52754,8 +53000,10 @@ SLPM-74251: name-en: "Shin Onimusha - Dawn of Dreams [PlayStation 2 the Best - Reprint Disc 1]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. + bilinearUpscale: 2 # Attempts to sharpen blurry text in menus. memcardFilters: - "SLPM-66275" SLPM-74252: @@ -52764,8 +53012,10 @@ SLPM-74252: name-en: "Shin Onimusha - Dawn of Dreams [PlayStation 2 the Best - Reprint Disc 2]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. + bilinearUpscale: 2 # Attempts to sharpen blurry text in menus. memcardFilters: - "SLPM-74251" SLPM-74253: @@ -52885,7 +53135,7 @@ SLPM-74268: region: "NTSC-J" gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLPM-74269: name: "龍が如く [PlayStation2 the Best - 2nd Reprint]" name-sort: "りゅうがごとく [PlayStation2 the Best - 2nd Reprint]" @@ -53037,6 +53287,10 @@ SLPM-74406: eeRoundMode: 0 # Fixes crash when using the Subaru. gameFixes: - XGKickHack # Fixes SPS while ingame. + gsHWFixes: + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Aligns distant blur layer. + autoFlush: 1 # Better aligns car shadows. SLPM-74407: name: "ジェットでGO!2 [PlayStation2 the Best]" name-sort: "じぇっとでGO!2 [PlayStation2 the Best]" @@ -53151,7 +53405,7 @@ SLPS-20001: vuClampMode: 2 # Fixes texture rendering in the intro. gsHWFixes: textureInsideRT: 1 # Fixes post effects - halfPixelOffset: 2 # Fixes title screen and some intro post processing alignment. + halfPixelOffset: 2 # Fixes title screen and some intro post-processing alignment. roundSprite: 1 # Fixes ui and hud alignment. gpuPaletteConversion: 2 # Lots of CLUTs in large textures. cpuSpriteRenderBW: 1 # Fixes car textures. @@ -53736,7 +53990,7 @@ SLPS-20113: name-en: "Time Crisis II [with Guncon 2]" region: "NTSC-J" gsHWFixes: - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SLPS-20114: name: "TVware情報革命シリーズ 家庭の医学" name-sort: "TVうぇあじょうほうかくめいしりーず かていのいがく" @@ -53766,7 +54020,7 @@ SLPS-20120: - BlitInternalFPSHack # Fixes internal FPS detection. gsHWFixes: halfPixelOffset: 4 # Fixes post positioning. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLPS-20121: name: "Kanon" name-sort: "かのん" @@ -53778,7 +54032,7 @@ SLPS-20122: name-en: "Time Crisis II" region: "NTSC-J" gsHWFixes: - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SLPS-20123: name: "頭文字D 高橋涼介のタイピング最速理論 [キーボード同梱版]" name-sort: "いにしゃるD たかはしりょうすけのたいぴんぐさいそくりろん [きーぼーどどうこんばん]" @@ -54125,7 +54379,7 @@ SLPS-20199: - BlitInternalFPSHack # Fixes internal FPS detection. gsHWFixes: halfPixelOffset: 4 # Fixes post positioning. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLPS-20200: name: "ファイナルファンタジーⅪ [ディスク2/2]" name-sort: "ふぁいなるふぁんたじー11 [でぃすく2/2]" @@ -54295,7 +54549,7 @@ SLPS-20234: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLPS-20237: name: "Saikyou Toudai Shougi 3" region: "NTSC-J" @@ -54570,7 +54824,7 @@ SLPS-20295: - BlitInternalFPSHack # Fixes internal FPS detection. gsHWFixes: halfPixelOffset: 4 # Fixes post positioning. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLPS-20296: name: "プロ野球シミュレーション ダグアウト'03-the TURNING POINT-" name-sort: "ぷろやきゅうしみゅれーしょん だぐあうと'03-the TURNING POINT-" @@ -54970,7 +55224,7 @@ SLPS-20380: region: "NTSC-J" gsHWFixes: halfPixelOffset: 4 # Fixes ghosting. - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SLPS-20381: name: "モンキーターンV" name-sort: "もんきーたーんV" @@ -55514,6 +55768,9 @@ SLPS-20483: name-en: "Kamen Rider Kabuto" region: "NTSC-J" gsHWFixes: + halfPixelOffset: 5 # Fixes post-processing alignment. + nativeScaling: 1 # Fixes post-processing alignment. + textureInsideRT: 1 # Fixes garbage and missing effects. autoFlush: 1 # Fixes garbage corruptions on the bottom of the screen. SLPS-20484: name: "SIMPLE2000シリーズ Ultimate Vol.34 魁!!男塾" @@ -56002,14 +56259,15 @@ SLPS-25050: gameFixes: - SoftwareRendererFMVHack # Fixes interlacing. roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. - vu0ClampMode: 2 # Fixes SPS. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SLPS-25051: name: "Missing Blue [通常版]" name-sort: "みっしんぐ ぶるー [つうじょうばん]" @@ -56033,7 +56291,7 @@ SLPS-25052: mergeSprite: 1 # Fixes vertical lines. cpuSpriteRenderBW: 1 # Fixes missing sun sprite. cpuSpriteRenderLevel: 0 # Needed for above. - nativeScaling: 2 # Smooths post processing. + nativeScaling: 2 # Smooths post-processing. SLPS-25053: name: "栄冠は君に ~甲子園の覇者" name-sort: "えいかんはきみに こうしえんのはしゃ" @@ -56080,11 +56338,15 @@ SLPS-25060: name-sort: "きどうせんしがんだむ めぐりあいそら [げんていばん]" name-en: "Mobile Suit Gundam - Meguriai Sora [Limited Edition]" region: "NTSC-J" + memcardFilters: + - "SLPS-25062" SLPS-25061: name: "機動戦士ガンダムVer.1.5 [限定版]" name-sort: "きどうせんしがんだむVer.1.5 [げんていばん]" name-en: "Mobile Suit Gundam Ver.1.5 [Limited Edition]" region: "NTSC-J" + memcardFilters: + - "SLPS-25063" SLPS-25062: name: "機動戦士ガンダム めぐりあい宇宙 [DVD同梱版]" name-sort: "きどうせんしがんだむ めぐりあいそら [DVDどうこんばん]" @@ -56230,12 +56492,15 @@ SLPS-25088: region: "NTSC-J" compat: 5 roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: + recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SLPS-25089: name: "SALT LAKE 2002" name-sort: "そるとれいく 2002" @@ -56282,8 +56547,9 @@ SLPS-25099: gameFixes: - XGKickHack # Fixes SPS while ingame. gsHWFixes: - halfPixelOffset: 2 # Aligns Depth of Field. - nativeScaling: 2 # Fixes Depth of Field effect. + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Aligns distant blur layer. + autoFlush: 1 # Better aligns car shadows. SLPS-25100: name: "鉄拳4" name-sort: "てっけん4" @@ -56501,18 +56767,20 @@ SLPS-25139: region: "NTSC-J" compat: 5 gsHWFixes: - textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance. roundSprite: 1 # Fixes lines in menus. + textureInsideRT: 1 # Fixes half right. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLPS-25140: name: "Baldur's Gate - DARK ALLIANCE - [通常版]" name-sort: "ばるだーずげーと だーくあらいあんす [つうじょうばん]" name-en: "Baldur's Gate - Dark Alliance [Standard Edition]" region: "NTSC-J" gsHWFixes: - textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance. roundSprite: 1 # Fixes lines in menus. + textureInsideRT: 1 # Fixes half right. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLPS-25141: name: "パックマンワールド2" name-sort: "ぱっくまんわーるど2" @@ -56587,6 +56855,8 @@ SLPS-25151: name-sort: "めだる・おぶ・おなー しじょうさいだいのさくせん" name-en: "Medal of Honor - Shijou Saidai no Sakusen" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 2 # Fixes misaligned blur. SLPS-25153: name: "Lilo & StitcH -スティッチの大冒険" name-sort: "りろ & すてぃっち すてぃっちのだいぼうけん" @@ -56722,7 +56992,7 @@ SLPS-25174: region: "NTSC-J" gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLPS-25175: name: "A列車でいこう2001" name-sort: "Aれっしゃでいこう 2001" @@ -57063,8 +57333,8 @@ SLPS-25235: compat: 5 gsHWFixes: autoFlush: 2 # Fixes double image. - halfPixelOffset: 2 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 2 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLPS-25236: name: "ファンタスティックフォーチュン2" name-sort: "ふぁんたすてぃっくふぉーちゅん2" @@ -57349,8 +57619,8 @@ SLPS-25289: region: "NTSC-J" gsHWFixes: texturePreloading: 0 # Performs much better with no preload. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. SLPS-25290: name: "タイムクライシス3 [ソフト単体]" name-sort: "たいむくらいしす3 [そふとたんたい]" @@ -57358,8 +57628,8 @@ SLPS-25290: region: "NTSC-J" gsHWFixes: texturePreloading: 0 # Performs much better with no preload. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. SLPS-25291: name: "Baldur's Gate - DARK ALLIANCE - [PCCW Japan The BEST]" name-sort: "ばるだーずげーと だーくあらいあんす [PCCW Japan The BEST]" @@ -57367,9 +57637,10 @@ SLPS-25291: region: "NTSC-J" compat: 5 gsHWFixes: + roundSprite: 1 # Fixes lines in menus. textureInsideRT: 1 # Fixes half right. - texturePreloading: 1 # Performs much better with partial preload. - estimateTextureRegion: 1 # Improves performance. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLPS-25292: name: "D→A:BLACK [通常版]" name-sort: "D→A:BLACK [つうじょうばん]" @@ -57515,16 +57786,18 @@ SLPS-25317: name-en: "Shadow Hearts II [Deluxe Pack] [Disc 1 of 2]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes shadow positioning. + halfPixelOffset: 5 # Fixes shadow positioning. autoFlush: 2 # Makes the shadow monsters appear. + nativeScaling: 2 # Aligns post processing and bloom. SLPS-25318: name: "シャドウハーツⅡ [DXパック] [ディスク2/2]" name-sort: "しゃどうはーつ2 [DXぱっく] [でぃすく2/2]" name-en: "Shadow Hearts II [Deluxe Pack] [Disc 2 of 2]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes shadow positioning. + halfPixelOffset: 5 # Fixes shadow positioning. autoFlush: 2 # Makes the shadow monsters appear. + nativeScaling: 2 # Aligns post processing and bloom. memcardFilters: - "SLPS-25317" SLPS-25319: @@ -57583,7 +57856,7 @@ SLPS-25330: region: "NTSC-J" gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLPS-25332: name: "SNOW [初回限定版]" name-sort: "SNOW [しょかいげんていばん]" @@ -57602,16 +57875,18 @@ SLPS-25334: name-en: "Shadow Hearts II [Standard Edition] [Disc 1 of 2]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes shadow positioning. + halfPixelOffset: 5 # Fixes shadow positioning. autoFlush: 2 # Makes the shadow monsters appear. + nativeScaling: 2 # Aligns post processing and bloom. SLPS-25335: name: "シャドウハーツⅡ [通常版] [ディスク2/2]" name-sort: "しゃどうはーつ2 [つうじょうばん] [でぃすく2/2]" name-en: "Shadow Hearts II [Standard Edition] [Disc 2 of 2]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes shadow positioning. + halfPixelOffset: 5 # Fixes shadow positioning. autoFlush: 2 # Makes the shadow monsters appear. + nativeScaling: 2 # Aligns post processing and bloom. memcardFilters: - "SLPS-25334" SLPS-25336: @@ -58083,8 +58358,8 @@ SLPS-25406: gsHWFixes: texturePreloading: 1 # Performs much better with partial preload. autoFlush: 1 # Fixes bloom rendering. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. roundModes: vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects. speedHacks: @@ -58423,7 +58698,7 @@ SLPS-25460: region: "NTSC-J" gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLPS-25461: name: "アーマード・コア フォーミュラフロント" name-sort: "あーまーどこあ ふぉーみゅらふろんと" @@ -58659,6 +58934,9 @@ SLPS-25502: name-en: "Steamboy" region: "NTSC-J" compat: 5 + gsHWFixes: + halfPixelOffset: 5 # Reduces post misalignment. + autoFlush: 1 # Fixes post alignment. SLPS-25503: name: "NEOGEOオンラインコレクション Vol.2 幕末浪漫 月華の剣士 1・2" name-sort: "ねおじおおんらいんこれくしょん Vol. 2 ばくまつろまん げっかのけんし 1・2" @@ -58940,7 +59218,7 @@ SLPS-25553: name-en: "The Story of Hero Yoshitsune Shura" region: "NTSC-J" gsHWFixes: - nativeScaling: 2 # Fixes post processing alignment. + nativeScaling: 2 # Fixes post-processing alignment. SLPS-25554: name: "エウレカセブン TR1:NEW WAVE" name-sort: "えうれかせぶん TR1:にゅー うぇーぶ" @@ -58995,8 +59273,8 @@ SLPS-25563: gsHWFixes: texturePreloading: 1 # Performs much better with partial preload. autoFlush: 1 # Fixes bloom rendering. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. roundModes: vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects. speedHacks: @@ -59270,7 +59548,7 @@ SLPS-25606: region: "NTSC-J" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. getSkipCount: "GSC_ZettaiZetsumeiToshi2" SLPS-25607: @@ -59363,7 +59641,7 @@ SLPS-25623: region: "NTSC-J" compat: 5 gsHWFixes: - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SLPS-25624: name: "双恋 [双恋COLLECTION] [電撃SP]" name-sort: "ふたこい [ふたこいCOLLECTION] [でんげきSP]" @@ -59478,6 +59756,7 @@ SLPS-25640: autoFlush: 1 # Fixes shadows. halfPixelOffset: 4 # Fixes lighting misalignment. nativeScaling: 2 # Fixes lighting smoothness. + textureInsideRT: 1 # Fixes broken crystalline surface textures. memcardFilters: # Allows import of Xenosaga II save data. - "SLPS-25640" - "SLPS-25368" @@ -59491,6 +59770,7 @@ SLPS-25641: autoFlush: 1 # Fixes shadows. halfPixelOffset: 4 # Fixes lighting misalignment. nativeScaling: 2 # Fixes lighting smoothness. + textureInsideRT: 1 # Fixes broken crystalline surface textures. memcardFilters: - "SLPS-25640" - "SLPS-25368" @@ -60143,7 +60423,7 @@ SLPS-25744: region: "NTSC-J" gsHWFixes: halfPixelOffset: 4 # Fixes blooming and lighting offset. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLPS-25745: name: "必勝パチンコ★パチスロ攻略シリーズ Vol.1 CR新世紀エヴァンゲリオン [スペシャルプライス版]" name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol. 1 CRしんせいきえゔぁんげりおん [すぺしゃるぷらいすばん]" @@ -60549,7 +60829,7 @@ SLPS-25815: region: "NTSC-J" gsHWFixes: halfPixelOffset: 5 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. beforeDraw: "OI_DBZBTGames" SLPS-25816: name: "山佐DigiワールドコラボレーションSP パチスロ リッジレーサー" @@ -60630,7 +60910,7 @@ SLPS-25827: alignSprite: 1 # Fixes vertical lines. halfPixelOffset: 4 # Fixes blooming and lighting offset. autoFlush: 1 # Improves lighting brightness. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLPS-25828: name: "パチってちょんまげ達人13 ~ ぱちんこ必殺仕事人Ⅲ" name-sort: "ぱちってちょんまげたつじん13 ~ ぱちんこひっさつしごとにん3" @@ -60642,7 +60922,7 @@ SLPS-25829: name-en: "Another Century's Episode 2 [Special Vocal Version]" region: "NTSC-J" gsHWFixes: - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. memcardFilters: - "SLPS-25394" - "SLPS-25623" @@ -60672,8 +60952,8 @@ SLPS-25834: name-en: "Transformers - The Game" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 2 # Fixes alignment of post processing. - nativeScaling: 1 # Fixes post processing effect. + halfPixelOffset: 2 # Fixes alignment of post-processing. + nativeScaling: 1 # Fixes post-processing effect. SLPS-25835: name: "スーパーロボット大戦OG外伝 [限定版]" name-sort: "すーぱーろぼっとたいせんOGがいでん [げんていばん]" @@ -60717,8 +60997,8 @@ SLPS-25840: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. getSkipCount: "GSC_GuitarHero" SLPS-25841: name: "テイルズ オブ デスティニー ディレクターズカット [プレミアムBOX]" @@ -60787,7 +61067,7 @@ SLPS-25851: name-en: "Zettai Zetsumei Toshi 2 - Itetsuita Kioku Tachi [Irem Collection]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. getSkipCount: "GSC_ZettaiZetsumeiToshi2" SLPS-25852: @@ -60823,10 +61103,10 @@ SLPS-25856: name-en: "Tomb Raider - Anniversary" region: "NTSC-J" gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. - halfPixelOffset: 2 # Fixes offset post processing. + textureInsideRT: 1 # Needed for post-processing effects. + halfPixelOffset: 2 # Fixes offset post-processing. autoFlush: 1 # Fixes bloom intensity. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLPS-25858: name: "灼眼のシャナ [電撃SP]" name-sort: "しゃくがんのしゃな [でんげきSP]" @@ -60973,8 +61253,8 @@ SLPS-25885: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLPS-25886: name: "ギターヒーロー エアロスミス [コントローラ同梱版]" name-sort: "ぎたーひーろー えあろすみす [こんとろーらどうこんばん]" @@ -60985,8 +61265,8 @@ SLPS-25886: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. getSkipCount: "GSC_GuitarHero" SLPS-25887: name: "スーパーロボット大戦Z" @@ -61022,8 +61302,8 @@ SLPS-25889: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. getSkipCount: "GSC_GuitarHero" SLPS-25890: name: "ギターヒーロー3 レジェンドオブロック [ソフト単体]" @@ -61035,8 +61315,8 @@ SLPS-25890: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. getSkipCount: "GSC_GuitarHero" SLPS-25891: name: "乃木坂春香の秘密 こすぷれ、はじめました♥ [限定版]" @@ -61089,7 +61369,7 @@ SLPS-25900: alignSprite: 1 # Fixes vertical lines. autoFlush: 2 # Corrects jet exhaust radiosity. halfPixelOffset: 4 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing smoothness and position. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLPS-25902: name: "純情ロマンチカ ~恋のドキドキ大作戦" name-sort: "じゅんじょうろまんちか こいのどきどきだいさくせん" @@ -61129,8 +61409,8 @@ SLPS-25908: name-en: "LEGO Batman - The Videogame" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLPS-25909: name: "必勝パチンコ★パチスロ攻略シリーズ Vol.13 新世紀エヴァンゲリオン~約束の時~" name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol.13 しんせいきえヴぁんげりおん~やくそくのとき~" @@ -61182,7 +61462,7 @@ SLPS-25917: gsHWFixes: cpuSpriteRenderBW: 1 # Fixes half screen effects. cpuSpriteRenderLevel: 1 # Needed for above. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. getSkipCount: "GSC_SacredBlaze" SLPS-25918: name: "アマガミ" @@ -61240,10 +61520,10 @@ SLPS-25927: name-en: "Tomb Raider - Underworld" region: "NTSC-J" gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. + textureInsideRT: 1 # Needed for post-processing effects. autoFlush: 1 # Fixes missing blur layer. - nativeScaling: 1 # Fixes post processing. - halfPixelOffset: 4 # Fixes offset post processing. + nativeScaling: 1 # Fixes post-processing. + halfPixelOffset: 4 # Fixes offset post-processing. SLPS-25928: name: "リトルアンカー [限定版]" name-sort: "りとるあんかー [げんていばん]" @@ -61347,21 +61627,21 @@ SLPS-25945: gameFixes: - SoftwareRendererFMVHack # Fixes broken FMVs on repeat plays. gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. + textureInsideRT: 1 # Needed for post-processing effects. autoFlush: 1 # Fixes bloom intensity. minimumBlendingLevel: 4 # Fixes multiple lighting effects from lights, computers, cave walls and more. - nativeScaling: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes offset post processing. + nativeScaling: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes offset post-processing. SLPS-25946: name: "トゥームレイダー アニバーサリー [Spike the Best]" name-sort: "とぅーむれいだー あにばーさりー [Spike the Best]" name-en: "Tomb Raider - Anniversary [Spike the Best]" region: "NTSC-J" gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. - halfPixelOffset: 2 # Fixes offset post processing. + textureInsideRT: 1 # Needed for post-processing effects. + halfPixelOffset: 2 # Fixes offset post-processing. autoFlush: 1 # Fixes bloom intensity. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLPS-25947: name: "サモンナイトグランテーゼ 滅びの剣と約束の騎士" name-sort: "さもんないとぐらんてーぜ ほろびのけんとやくそくのきし" @@ -61436,7 +61716,7 @@ SLPS-25962: alignSprite: 1 # Fixes vertical lines. autoFlush: 2 # Corrects jet exhaust radiosity. halfPixelOffset: 4 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing smoothness and position. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLPS-25971: name: "NEOGEOオンラインコレクション COMPLETE BOX 下巻 幕末浪漫 月華の剣士 1・2" name-sort: "ねおじおおんらいんこれくしょん こんぷりーとぼっくす 02 げかん ばくまつろまん げっかのけんし 1・2" @@ -61508,10 +61788,10 @@ SLPS-25986: name-en: "Tomb Raider - Underworld [Spike The Best]" region: "NTSC-J" gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. + textureInsideRT: 1 # Needed for post-processing effects. autoFlush: 1 # Fixes missing blur layer. - nativeScaling: 1 # Fixes post processing - halfPixelOffset: 4 # Fixes offset post processing. + nativeScaling: 1 # Fixes post-processing + halfPixelOffset: 4 # Fixes offset post-processing. SLPS-25987: name: "アマガミ [eb!コレ+]" name-sort: "あまがみ [eb!これ+]" @@ -61625,7 +61905,7 @@ SLPS-71502: region: "NTSC-J" gsHWFixes: textureInsideRT: 1 # Fixes post effects - halfPixelOffset: 2 # Fixes title screen and some intro post processing alignment. + halfPixelOffset: 2 # Fixes title screen and some intro post-processing alignment. roundSprite: 1 # Fixes ui and hud alignment. gpuPaletteConversion: 2 # Lots of CLUTs in large textures. cpuSpriteRenderBW: 1 # Fixes car textures. @@ -61638,14 +61918,15 @@ SLPS-72501: gameFixes: - SoftwareRendererFMVHack # Fixes interlacing. roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. - vu0ClampMode: 2 # Fixes SPS. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SLPS-72502: name: "テイルズ オブ デスティニー2 [MEGA HITS!]" name-sort: "ているず おぶ ですてぃにー2 [MEGA HITS!]" @@ -61684,7 +61965,7 @@ SLPS-73006: name-en: "Time Crisis II [PlayStation2 the Best]" region: "NTSC-J" gsHWFixes: - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SLPS-73007: name: "かまいたちの夜2 ~監獄島のわらべ唄~ [スペシャル映像]" name-sort: "かまいたちのよる2 かんごくじまのわらべうた [すぺしゃるえいぞう]" @@ -61811,7 +62092,7 @@ SLPS-73205: mergeSprite: 1 # Fixes vertical lines. cpuSpriteRenderBW: 1 # Fixes missing sun sprite. cpuSpriteRenderLevel: 0 # Needed for above. - nativeScaling: 2 # Smooths post processing. + nativeScaling: 2 # Smooths post-processing. SLPS-73206: name: "第2次スーパーロボット大戦α [PlayStation2 the Best]" name-sort: "だい2じすーぱーろぼっとたいせんあるふぁ [PlayStation2 the Best]" @@ -61824,7 +62105,7 @@ SLPS-73207: region: "NTSC-J" gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLPS-73208: name: "ドラゴンボールZ2 [PlayStation2 the Best]" name-sort: "どらごんぼーるZ2 [PlayStation2 the Best]" @@ -61832,7 +62113,7 @@ SLPS-73208: region: "NTSC-J" gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLPS-73209: name: "鉄拳4 [PlayStation2 the Best]" name-sort: "てっけん4 [PlayStation2 the Best]" @@ -61873,16 +62154,18 @@ SLPS-73214: name-en: "Shadow Hearts II [Director's Cut] [PlayStation2 the Best] [Disc 1 of 2]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes shadow positioning. + halfPixelOffset: 5 # Fixes shadow positioning. autoFlush: 2 # Makes the shadow monsters appear. + nativeScaling: 2 # Aligns post processing and bloom. SLPS-73215: name: "シャドウハーツⅡ ディレクターズカット [PlayStation2 the Best] [ディスク2/2]" name-sort: "しゃどうはーつ2 でぃれくたーずかっと [PlayStation2 the Best] [でぃすく2/2]" name-en: "Shadow Hearts II [Director's Cut] [PlayStation2 the Best] [Disc 2 of 2]" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes shadow positioning. + halfPixelOffset: 5 # Fixes shadow positioning. autoFlush: 2 # Makes the shadow monsters appear. + nativeScaling: 2 # Aligns post processing and bloom. memcardFilters: - "SLPS-73214" SLPS-73216: @@ -62091,7 +62374,7 @@ SLPS-73235: region: "NTSC-J" gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLPS-73236: name: "ヴィーナスアンドブレイブス~魔女と女神と滅びの予言~ [PlayStation2 the Best]" name-sort: "ゔぃーなすあんどぶれいぶす まじょとめがみとほろびのよげん [PlayStation2 the Best]" @@ -62426,7 +62709,7 @@ SLPS-73410: mergeSprite: 1 # Fixes vertical lines. cpuSpriteRenderBW: 1 # Fixes missing sun sprite. cpuSpriteRenderLevel: 0 # Needed for above. - nativeScaling: 2 # Smooths post processing. + nativeScaling: 2 # Smooths post-processing. SLPS-73411: name: "アーマード・コア 2 アナザーエイジ [PlayStation2 the Best]" name-sort: "あーまーどこあ 2 あなざーえいじ [PlayStation2 the Best]" @@ -62571,7 +62854,7 @@ SLUS-20002: vuClampMode: 2 # Fixes texture rendering in the intro. gsHWFixes: textureInsideRT: 1 # Fixes post effects - halfPixelOffset: 2 # Fixes title screen and some intro post processing alignment. + halfPixelOffset: 2 # Fixes title screen and some intro post-processing alignment. roundSprite: 1 # Fixes ui and hud alignment. gpuPaletteConversion: 2 # Lots of CLUTs in large textures. cpuSpriteRenderBW: 1 # Fixes car textures. @@ -62687,9 +62970,10 @@ SLUS-20035: gameFixes: - SoftwareRendererFMVHack # Fixes FMVs. gsHWFixes: - textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance. roundSprite: 1 # Fixes lines in menus. + textureInsideRT: 1 # Fixes half right. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLUS-20037: name: "Run Like Hell - Hunt or Be Hunted" region: "NTSC-U" @@ -62832,6 +63116,8 @@ SLUS-20074: name: "Summoner" region: "NTSC-U" compat: 5 + clampModes: + eeClampMode: 2 # Fixes missing shadows and indicators. SLUS-20075: name: "Disney's Jungle Book - Rhythm & Groove" region: "NTSC-U" @@ -63139,7 +63425,7 @@ SLUS-20152: mergeSprite: 1 # Fixes vertical lines. cpuSpriteRenderBW: 1 # Fixes missing sun sprite. cpuSpriteRenderLevel: 0 # Needed for above. - nativeScaling: 2 # Smooths post processing. + nativeScaling: 2 # Smooths post-processing. patches: A32F7CD0: content: |- @@ -63432,7 +63718,7 @@ SLUS-20219: region: "NTSC-U" compat: 5 gsHWFixes: - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SLUS-20220: name: "Dead to Rights" region: "NTSC-U" @@ -63632,7 +63918,7 @@ SLUS-20264: - BlitInternalFPSHack # Fixes internal FPS detection. gsHWFixes: halfPixelOffset: 4 # Fixes post positioning. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLUS-20265: name: "007 - Agent Under Fire" region: "NTSC-U" @@ -63860,14 +64146,15 @@ SLUS-20312: gameFixes: - SoftwareRendererFMVHack # Fixes interlacing. roundModes: - eeRoundMode: 2 # Fixes reverse control and boss in some places. + eeRoundMode: 2 # Fixes cutscene animations while slightly dislocating a few select meshes. Setting round mode to Chop/Zero or Nearest fixes the issues with meshes at the cost of breaking important cutscenes. clampModes: - eeClampMode: 3 # Fixes animations. - vu0ClampMode: 2 # Fixes SPS. + eeClampMode: 3 # Fixes reverse controls as well as bosses and characters facing the wrong way during certain battles. + vu0ClampMode: 2 # Fixes Yojimbo's flickering cloak issue caused by EE Full Clamping. gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing effect on the magus sisters. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes blur effect on attacks. + preloadFrameData: 1 # Fixes an issue that causes FMVs to flicker black when subtitles appear on screen. SLUS-20313: name: "Wave Rally" region: "NTSC-U" @@ -63965,9 +64252,10 @@ SLUS-20331: region: "NTSC-U" compat: 5 gsHWFixes: - gpuTargetCLUT: 1 # Fixes light bleed through objects. + gpuTargetCLUT: 2 # Fixes light bleed through objects. halfPixelOffset: 1 # Fixes light bleed through objects. autoFlush: 1 # Fixes light bloom intensity. + bilinearUpscale: 2 # Fixes jagged light bloom. SLUS-20332: name: "NCAA March Madness 2002" region: "NTSC-U" @@ -63976,7 +64264,9 @@ SLUS-20333: region: "NTSC-U" compat: 5 gsHWFixes: + halfPixelOffset: 2 # Fixes depth/fog lines. textureInsideRT: 1 # Fixes underwater levels. + getSkipCount: "GSC_Turok" SLUS-20334: name: "Kelly Slater's Pro Surfer" region: "NTSC-U" @@ -64150,6 +64440,8 @@ SLUS-20368: name: "Medal of Honor - Frontline" region: "NTSC-U" compat: 5 + gsHWFixes: + halfPixelOffset: 2 # Fixes misaligned blur. SLUS-20369: name: "Knockout Kings 2002" region: "NTSC-U" @@ -64287,8 +64579,8 @@ SLUS-20393: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLUS-20394: name: "Ecco the Dolphin - Defender of the Future" region: "NTSC-U" @@ -64367,7 +64659,7 @@ SLUS-20409: region: "NTSC-U" compat: 5 gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. + textureInsideRT: 1 # Needed for post-processing effects. roundSprite: 1 # Fixes upscaling lines. SLUS-20412: name: "Hot Wheels - Velocity X" @@ -64429,6 +64721,10 @@ SLUS-20419: eeRoundMode: 0 # Fixes crash when using the Subaru. gameFixes: - XGKickHack # Fixes SPS while ingame. + gsHWFixes: + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Aligns distant blur layer. + autoFlush: 1 # Better aligns car shadows. SLUS-20420: name: "Star Wars - Bounty Hunter" region: "NTSC-U" @@ -64613,7 +64909,7 @@ SLUS-20455: - BlitInternalFPSHack # Fixes internal FPS detection. gsHWFixes: halfPixelOffset: 4 # Fixes post positioning. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLUS-20456: name: "Soccer Mania" region: "NTSC-U" @@ -64885,7 +65181,7 @@ SLUS-20505: region: "NTSC-U" compat: 5 gsHWFixes: - recommendedBlendingLevel: 3 # Improves lighting. + minimumBlendingLevel: 3 # Fixes missing lighting. SLUS-20506: name: "Black & Bruised" region: "NTSC-U" @@ -65049,7 +65345,8 @@ SLUS-20539: compat: 5 gsHWFixes: textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance and reduces hash cache size when moving. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. roundSprite: 1 # Fixes HUD garbage. SLUS-20540: name: "Evolution Skateboarding" @@ -65204,7 +65501,8 @@ SLUS-20565: - BlitInternalFPSHack # Fixes internal fps detection in some areas. gsHWFixes: textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLUS-20566: name: "Buffy the Vampire Slayer - Chaos Bleeds" region: "NTSC-U" @@ -65262,7 +65560,7 @@ SLUS-20576: gsHWFixes: recommendedBlendingLevel: 4 # Fixes missing lighting effects. textureInsideRT: 1 # Fixes right side shadow lookup. - halfPixelOffset: 2 # Fixes misaligned lighting and other effects. + halfPixelOffset: 4 # Fixes misaligned lighting and other effects. SLUS-20577: name: "Drome Racers" region: "NTSC-U" @@ -65355,7 +65653,7 @@ SLUS-20591: compat: 5 gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLUS-20592: name: "HyperSonic Xtreme - HSX" region: "NTSC-U" @@ -65470,6 +65768,8 @@ SLUS-20615: name: "Fantastic 4" region: "NTSC-U" compat: 5 + gsHWFixes: + halfPixelOffset: 5 # Fixes large depth line. SLUS-20616: name: "Virtua Fighter 4 - Evolution" region: "NTSC-U" @@ -65484,6 +65784,8 @@ SLUS-20619: name: "Starsky & Hutch" region: "NTSC-U" compat: 5 + gsHWFixes: + halfPixelOffset: 5 # Aligns shadows better. SLUS-20620: name: "Smash Cars" region: "NTSC-U" @@ -65579,7 +65881,7 @@ SLUS-20636: compat: 5 gsHWFixes: autoFlush: 2 # Fixes debris and blending on lower part of screen during monster transformation. - halfPixelOffset: 4 # Aligns post processing, might sometimes cause edge bleed which must be cropped. + halfPixelOffset: 4 # Aligns post-processing, might sometimes cause edge bleed which must be cropped. nativeScaling: 2 # Fixes post effects like lights. SLUS-20637: name: "Chessmaster" @@ -65631,8 +65933,8 @@ SLUS-20645: compat: 5 gsHWFixes: texturePreloading: 0 # Performs much better with no preload. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. SLUS-20646: name: "Mark Davis Pro Bass Challenge" region: "NTSC-U" @@ -65672,7 +65974,7 @@ SLUS-20652: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. recommendedBlendingLevel: 4 # Fixes lighting effects but has high barrier count. SLUS-20653: @@ -65748,7 +66050,7 @@ SLUS-20669: halfPixelOffset: 5 # Fixes character offset with flashlight and blurriness. Fixes water lines. roundSprite: 2 # Fixes font artifacts. autoFlush: 1 # Fixes light bloom intensity. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLUS-20670: name: "The Great Escape" name-sort: "Great Escape, The" @@ -65800,8 +66102,9 @@ SLUS-20675: - SoftwareRendererFMVHack # Fixes FMVs. gsHWFixes: textureInsideRT: 1 # Fixes half right. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. roundSprite: 1 # Fixes lines in sprites but still some lines left. - estimateTextureRegion: 1 # Improves performance. SLUS-20676: name: "Lowrider" region: "NTSC-U" @@ -65892,7 +66195,7 @@ SLUS-20693: - BlitInternalFPSHack # Fixes internal FPS detection. gsHWFixes: halfPixelOffset: 4 # Fixes post positioning. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLUS-20694: name: "Onimusha 3 - Demon Siege" region: "NTSC-U" @@ -65903,8 +66206,8 @@ SLUS-20694: - "SLUS-20694" - "SLUS-20710" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. disablePartialInvalidation: 1 # Fixes textureless graphics ingame. bilinearUpscale: 2 # Gets rid of center vertical line when upscaling. SLUS-20695: @@ -65914,7 +66217,7 @@ SLUS-20695: clampModes: vuClampMode: 2 # Fixes SPS in item menu. gsHWFixes: - halfPixelOffset: 5 # Aligns post processing. + halfPixelOffset: 5 # Aligns post-processing. roundSprite: 2 # Fixes vertical lines and some font artifacts but not completely fixed. textureInsideRT: 1 # Fixes rainbow shadow of legions. SLUS-20696: @@ -65994,15 +66297,16 @@ SLUS-20715: name: "Combat Elite - WWII Paratroopers" region: "NTSC-U" gsHWFixes: - estimateTextureRegion: 1 # Improves performance. + textureInsideRT: 1 # Fixes half right. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. halfPixelOffset: 5 # Fixes effect alignment. - textureInsideRT: 1 # Fixes half screen issue. SLUS-20716: name: "Teenage Mutant Ninja Turtles" region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 2 # Fixes post processing alignment. + halfPixelOffset: 2 # Fixes post-processing alignment. nativeScaling: 2 # Fixes post effects. autoFlush: 1 # Fixes sun intensity. SLUS-20718: @@ -66042,7 +66346,7 @@ SLUS-20724: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. roundSprite: 1 # Fixes sprite misaligment. SLUS-20725: name: "Call of Duty - Finest Hour" @@ -66096,8 +66400,8 @@ SLUS-20731: vu1RoundMode: 0 # Crashes without. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLUS-20732: name: "Drakengard" @@ -66157,7 +66461,7 @@ SLUS-20743: compat: 5 gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLUS-20744: name: "EverQuest Online Adventures - Frontiers" @@ -66337,7 +66641,7 @@ SLUS-20769: compat: 5 gsHWFixes: halfPixelOffset: 4 # Fixes post alignment. - nativeScaling: 1 # Fixes post processing smoothness. + nativeScaling: 1 # Fixes post-processing smoothness. recommendedBlendingLevel: 4 # Fixes missing lighting. SLUS-20770: name: "The Lord of the Rings - The Return of the King" @@ -66361,7 +66665,7 @@ SLUS-20772: recommendedBlendingLevel: 4 # Fixes missing lighting and makes snow not look like snow sludge. textureInsideRT: 1 # Fixes rainbow effect in the pause menu before a jump. halfPixelOffset: 2 # Fixes depth lines. - nativeScaling: 1 # Fixes post processing + nativeScaling: 1 # Fixes post-processing SLUS-20773: name: "Legacy of Kain - Defiance" region: "NTSC-U" @@ -66380,7 +66684,7 @@ SLUS-20776: autoFlush: 2 # Fixes the position of the shadow and makes it not blocky. halfPixelOffset: 2 # Fixes shadows. gpuPaletteConversion: 0 # Stops potential crashes from too many palette textures. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLUS-20777: name: "Obscure" region: "NTSC-U" @@ -66390,7 +66694,7 @@ SLUS-20779: region: "NTSC-U" gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLUS-20780: name: "R-Type Final" region: "NTSC-U" @@ -66499,6 +66803,7 @@ SLUS-20803: gsHWFixes: textureInsideRT: 1 # Fixes half right. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLUS-20804: name: "Forgotten Realms - Demon Stone" region: "NTSC-U" @@ -66557,8 +66862,8 @@ SLUS-20817: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLUS-20818: name: "Bionicle" region: "NTSC-U" @@ -66614,7 +66919,7 @@ SLUS-20828: - IbitHack # Reduces VU recompilation. gsHWFixes: roundSprite: 1 # Fixes slight blur. - halfPixelOffset: 2 # Aligns sun post processing. + halfPixelOffset: 2 # Aligns sun post-processing. nativeScaling: 2 # Fixes sun lines. SLUS-20830: name: "Intellivision Lives!" @@ -66676,8 +66981,8 @@ SLUS-20843: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Fixes offset post processing. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 4 # Fixes offset post-processing. + nativeScaling: 2 # Fixes post-processing. SLUS-20845: name: "Cold Winter" region: "NTSC-U" @@ -66912,8 +67217,8 @@ SLUS-20882: gsHWFixes: texturePreloading: 1 # Performs much better with partial preload. autoFlush: 1 # Fixes bloom rendering. - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + textureInsideRT: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. roundModes: vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects. speedHacks: @@ -66927,7 +67232,7 @@ SLUS-20884: region: "NTSC-U" compat: 5 gsHWFixes: - nativeScaling: 2 # Fixes post processing smoothness and position. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLUS-20885: name: "The Red Star" name-sort: "Red Star, The" @@ -67019,8 +67324,8 @@ SLUS-20898: compat: 5 gsHWFixes: recommendedBlendingLevel: 3 # Improves reflections on certain characters and objects on certain levels. - halfPixelOffset: 4 # Corrects post processing positioning. - nativeScaling: 2 # Smooths post processing. + halfPixelOffset: 4 # Corrects post-processing positioning. + nativeScaling: 2 # Smooths post-processing. SLUS-20899: name: "Samurai Jack - The Shadow of Aku" region: "NTSC-U" @@ -67051,7 +67356,7 @@ SLUS-20904: compat: 5 gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLUS-20905: name: "Disney/Pixar The Incredibles" @@ -67223,7 +67528,7 @@ SLUS-20929: compat: 5 gsHWFixes: halfPixelOffset: 4 # Improves clarity of the UI when upscaling. - nativeScaling: 1 # Fixes post processing and lighting smoothness and position. + nativeScaling: 1 # Fixes post-processing and lighting smoothness and position. SLUS-20930: name: "ChoroQ" region: "NTSC-U" @@ -67312,7 +67617,7 @@ SLUS-20945: gsHWFixes: recommendedBlendingLevel: 3 # Improves metal sheen and reflections. halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. autoFlush: 1 # Fixes sun occlusion and brightness. textureInsideRT: 1 # Fixes shadow maps. SLUS-20946: @@ -67324,7 +67629,7 @@ SLUS-20946: gsHWFixes: recommendedBlendingLevel: 2 # Fixes blocky heat haze effect. halfPixelOffset: 5 # Helps align radiosity closer to native. - autoFlush: 1 # Fixes post processing. + autoFlush: 1 # Fixes post-processing. SLUS-20947: name: "WinBack 2 - Project Poseidon" region: "NTSC-U" @@ -67348,6 +67653,9 @@ SLUS-20951: name: "Viewtiful Joe" region: "NTSC-U" compat: 5 + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 2 # Aligns post processing. SLUS-20952: name: "Tak 2 - The Staff of Dreams" region: "NTSC-U" @@ -67376,7 +67684,7 @@ SLUS-20957: eeRoundMode: 2 # Fixes missing text. gsHWFixes: autoFlush: 1 # Fixes player shadow. - nativeScaling: 2 # Fixes post processing position. + nativeScaling: 2 # Fixes post-processing position. SLUS-20958: name: "Tom Clancy's Splinter Cell - Pandora Tomorrow" region: "NTSC-U" @@ -67401,7 +67709,7 @@ SLUS-20960: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Fixes post processing position. + halfPixelOffset: 4 # Fixes post-processing position. autoFlush: 2 # Fixes bloom. roundSprite: 1 # Fixes misaligned bloom. deinterlace: 6 # Game requires blend tff de-interlacing when auto for 'fixing' subtitles flickering or half weaved. @@ -67437,7 +67745,7 @@ SLUS-20964: eeRoundMode: 0 # Fixes inability to enter door in Mission 18. gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLUS-20965: name: "Tony Hawk's Underground 2" region: "NTSC-U" @@ -67447,8 +67755,8 @@ SLUS-20965: gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. preloadFrameData: 1 # Fixes missing loading screens. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLUS-20966: name: "State of Emergency 2" @@ -67495,7 +67803,8 @@ SLUS-20973: compat: 5 gsHWFixes: textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. roundSprite: 1 # Fixes lines in menus HUD and in game. halfPixelOffset: 2 # Fixes erroneous line in menus. memcardFilters: @@ -67539,7 +67848,7 @@ SLUS-20979: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 1 # Fixes black squares in water. + halfPixelOffset: 5 # Fixes grid-like patterns in water. SLUS-20980: name: "Ys - The Ark of Napishtim" region: "NTSC-U" @@ -67649,7 +67958,7 @@ SLUS-20998: compat: 5 gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLUS-20999: name: "Sega Superstars" region: "NTSC-U" @@ -67828,7 +68137,7 @@ SLUS-21022: compat: 5 gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLUS-21025: name: "Madden NFL 2005 [Special Collectors Edition]" @@ -67840,7 +68149,7 @@ SLUS-21026: region: "NTSC-U" compat: 5 gsHWFixes: - minimumBlendingLevel: 4 # Fixes ground texture rendering. + recommendedBlendingLevel: 4 # Fixes ground texture rendering. autoFlush: 1 # Post-processing. halfPixelOffset: 2 # Offset post-processing. texturePreloading: 1 # Improves performance. @@ -67852,8 +68161,8 @@ SLUS-21027: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 5 # Aligns post processing. - nativeScaling: 2 # Corrects post processing smoothness. + halfPixelOffset: 5 # Aligns post-processing. + nativeScaling: 2 # Corrects post-processing smoothness. SLUS-21028: name: "World Championship Poker" region: "NTSC-U" @@ -67927,9 +68236,9 @@ SLUS-21037: region: "NTSC-U" compat: 5 gsHWFixes: - autoFlush: 1 # Fixes the post processing positioning. - textureInsideRT: 1 # Fixes post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + autoFlush: 1 # Fixes the post-processing positioning. + textureInsideRT: 1 # Fixes post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. halfPixelOffset: 5 # Makes bloom alignment slightly less awful. SLUS-21038: name: "Pinball Hall of Fame - The Gottlieb Collection" @@ -67955,8 +68264,9 @@ SLUS-21041: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Fixes shadow positioning. + halfPixelOffset: 5 # Fixes shadow positioning. autoFlush: 2 # Makes the shadow monsters appear. + nativeScaling: 2 # Aligns post processing and bloom. SLUS-21042: name: "Darkwatch" region: "NTSC-U" @@ -67972,8 +68282,9 @@ SLUS-21044: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Fixes shadow positioning. + halfPixelOffset: 5 # Fixes shadow positioning. autoFlush: 2 # Makes the shadow monsters appear. + nativeScaling: 2 # Aligns post processing and bloom. memcardFilters: - "SLUS-21041" SLUS-21045: @@ -67994,6 +68305,9 @@ SLUS-21048: name: "Evil Dead - Regeneration" region: "NTSC-U" compat: 5 + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 1 # Aligns post processing. SLUS-21049: name: "Outlaw Volleyball Remixed" region: "NTSC-U" @@ -68083,8 +68397,8 @@ SLUS-21064: compat: 5 gsHWFixes: recommendedBlendingLevel: 3 # Improves metalic shine. - halfPixelOffset: 4 # Fixes offset post processing. - nativeScaling: 2 # Fixes post processing. + halfPixelOffset: 4 # Fixes offset post-processing. + nativeScaling: 2 # Fixes post-processing. SLUS-21065: name: "Need for Speed - Underground 2" region: "NTSC-U" @@ -68099,7 +68413,7 @@ SLUS-21066: compat: 5 gsHWFixes: halfPixelOffset: 2 # Fixes upscaling lines. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLUS-21067: name: "Digimon Rumble Arena 2" region: "NTSC-U" @@ -68139,7 +68453,7 @@ SLUS-21075: gsHWFixes: halfPixelOffset: 5 # Reduces blurriness. bilinearUpscale: 1 # Smooths out fire textures. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. textureInsideRT: 1 # Fixes post effects. SLUS-21076: name: "Atari Anthology" @@ -68232,7 +68546,7 @@ SLUS-21095: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 5 # Fixes post processing position. + halfPixelOffset: 5 # Fixes post-processing position. nativeScaling: 2 # Fixes post effects. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. gpuPaletteConversion: 2 # Improves performance and reduces hash cache size. @@ -68325,10 +68639,9 @@ SLUS-21108: vuClampMode: 0 # Fixes bump mapping issues gsHWFixes: minimumBlendingLevel: 4 # Fixes various rendering errors that appear as large black patches throughout levels. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing. autoFlush: 1 # Fixes sun intensity. - textureInsideRT: 1 # Fixes post processing. - getSkipCount: "GSC_HitmanBloodMoney" + textureInsideRT: 1 # Fixes post-processing. SLUS-21109: name: "Drive to Survive" region: "NTSC-U" @@ -68344,11 +68657,11 @@ SLUS-21111: gameFixes: - IbitHack gsHWFixes: - autoFlush: 2 # Fixes post processing overlay. + autoFlush: 2 # Fixes post-processing overlay. roundSprite: 1 # Greatly reduces chromatic effect when upscaling. forceEvenSpritePosition: 1 # Fixes chromatic fringing. - halfPixelOffset: 2 # Fixes post processing position. - nativeScaling: 1 # Fixes post processing effect and position. + halfPixelOffset: 2 # Fixes post-processing position. + nativeScaling: 1 # Fixes post-processing effect and position. SLUS-21112: name: "L.A. Rush" region: "NTSC-U" @@ -68410,7 +68723,7 @@ SLUS-21123: region: "NTSC-U" gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLUS-21124: name: "Delta Force - Black Hawk Down" region: "NTSC-U" @@ -68419,7 +68732,7 @@ SLUS-21124: autoFlush: 1 # Fixes bloom misalignment. halfPixelOffset: 4 # Fixes bloom misalignment. textureInsideRT: 1 # Fixes sky bloom. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLUS-21125: name: "Airborne Troops - Countdown to D-Day" region: "NTSC-U" @@ -68646,7 +68959,7 @@ SLUS-21165: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Fixes post processing alignment. + halfPixelOffset: 4 # Fixes post-processing alignment. nativeScaling: 1 # Fixes depth blur intensity. textureInsideRT: 1 # Fixes on screen garbage. SLUS-21166: @@ -68725,8 +69038,10 @@ SLUS-21180: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. + bilinearUpscale: 2 # Attempts to sharpen blurry text in menus. SLUS-21181: name: "D.I.C.E. - DNA Integrated Cybernetic Enterprises" region: "NTSC-U" @@ -68779,7 +69094,7 @@ SLUS-21189: instantVU1: 1 # Fixes SPS. gsHWFixes: autoFlush: 2 # Fixes debris and blending on lower part of screen during monster transformation. - halfPixelOffset: 4 # Aligns post processing, might sometimes cause edge bleed which must be cropped. + halfPixelOffset: 4 # Aligns post-processing, might sometimes cause edge bleed which must be cropped. nativeScaling: 2 # Fixes post effects like lights. memcardFilters: - "SLUS-21189" @@ -68821,8 +69136,8 @@ SLUS-21196: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. - nativeScaling: 2 # Fixes post processing position. + halfPixelOffset: 4 # Aligns post-processing. + nativeScaling: 2 # Fixes post-processing position. SLUS-21197: name: "DreamWorks Shrek - SuperSlam" region: "NTSC-U" @@ -68836,16 +69151,17 @@ SLUS-21198: gsHWFixes: halfPixelOffset: 2 # Fixes lighting misalignment. autoFlush: 2 # Fixes lighting misalignment. - nativeScaling: 2 # Fixes post processing position. + nativeScaling: 2 # Fixes post-processing position. SLUS-21199: name: "Medal of Honor - European Assault" region: "NTSC-U" compat: 5 gsHWFixes: recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. - halfPixelOffset: 5 # Fixes misaligned blur. nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLUS-21200: name: "Armored Core - Nine Breaker" region: "NTSC-U" @@ -68884,11 +69200,11 @@ SLUS-21203: gameFixes: - SoftwareRendererFMVHack # Fixes broken FMVs on repeat plays. gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. + textureInsideRT: 1 # Needed for post-processing effects. autoFlush: 1 # Fixes bloom intensity. minimumBlendingLevel: 4 # Fixes multiple lighting effects from lights, computers, cave walls and more. - nativeScaling: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes offset post processing. + nativeScaling: 1 # Fixes post-processing. + halfPixelOffset: 5 # Fixes offset post-processing. SLUS-21204: name: "Victorious Boxers 2 - Fighting Spirit" region: "NTSC-U" @@ -68918,8 +69234,8 @@ SLUS-21208: vu1RoundMode: 0 # Crashes without. gsHWFixes: recommendedBlendingLevel: 3 # Fixes water and grass textures. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Improves post-processing rendering. preloadFrameData: 1 # Fixes missing loading screens. SLUS-21209: @@ -68939,8 +69255,8 @@ SLUS-21212: gameFixes: - EETimingHack # Fixes garbage textures flashing on the character model. gsHWFixes: - autoFlush: 1 # Fixes missing post processing. - halfPixelOffset: 5 # Aligns post processing. + autoFlush: 1 # Fixes missing post-processing. + halfPixelOffset: 5 # Aligns post-processing. nativeScaling: 1 # Fixes post effects. SLUS-21213: name: "Madden NFL '06" @@ -69031,7 +69347,7 @@ SLUS-21227: compat: 5 gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLUS-21228: name: "Call of Duty 2 - Big Red One" region: "NTSC-U" @@ -69075,7 +69391,7 @@ SLUS-21231: gsHWFixes: halfPixelOffset: 5 # Fixes bloom misalignment. autoFlush: 2 # Fixes bloom misalignment. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. textureInsideRT: 1 # Fixes sky bloom. SLUS-21232: name: "College Hoops 2K6" @@ -69143,8 +69459,8 @@ SLUS-21240: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Corrects post processing positioning. - nativeScaling: 2 # Smooths post processing. + halfPixelOffset: 4 # Corrects post-processing positioning. + nativeScaling: 2 # Smooths post-processing. autoFlush: 1 # Fixes missing lights. SLUS-21241: name: "NHL 06" @@ -69239,7 +69555,7 @@ SLUS-21252: compat: 4 gsHWFixes: recommendedBlendingLevel: 3 # Fixes missing lights. - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. memcardFilters: - "SLUS-21218" @@ -69304,7 +69620,7 @@ SLUS-21260: roundModes: eeRoundMode: 2 # Fixes missing text. gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLUS-21261: name: "Shadow the Hedgehog" @@ -69396,7 +69712,7 @@ SLUS-21271: halfPixelOffset: 5 # Fixes post positioning. cpuSpriteRenderBW: 2 # Fixes some bad textures. cpuCLUTRender: 1 # Fixes the rest of the bad textures. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. preloadFrameData: 1 # Fixes road texture corruption. SLUS-21272: name: "Super Monkey Ball Adventure" @@ -69413,7 +69729,7 @@ SLUS-21273: compat: 5 gsHWFixes: halfPixelOffset: 2 # Fix effects upscaling. - autoFlush: 1 # Fixes broken post processing. + autoFlush: 1 # Fixes broken post-processing. nativeScaling: 2 # Fixes post effects. SLUS-21274: name: "OutRun 2006 - Coast 2 Coast" @@ -69507,8 +69823,8 @@ SLUS-21283: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLUS-21284: name: "Nicktoons Unite!" region: "NTSC-U" @@ -69544,7 +69860,7 @@ SLUS-21287: compat: 5 gsHWFixes: autoFlush: 1 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLUS-21288: name: "American Chopper 2 - Full Throttle" @@ -69555,8 +69871,12 @@ SLUS-21289: region: "NTSC-U" compat: 5 gsHWFixes: + recommendedBlendingLevel: 2 # Improves overall brightness. + halfPixelOffset: 5 # Fixes depth alignment. + nativeScaling: 1 # Fixes depth intensity. textureInsideRT: 1 # Fixes depth blur. - estimateTextureRegion: 1 # Massively improves performance. + estimateTextureRegion: 1 # Massively improves performance in certain situations. + getSkipCount: "GSC_SandGrainGames" SLUS-21290: name: "Ford Street Racing" region: "NTSC-U" @@ -69593,8 +69913,8 @@ SLUS-21295: vu1RoundMode: 0 # Crashes without. gsHWFixes: recommendedBlendingLevel: 3 # Fixes water and grass textures. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Improves post-processing rendering. preloadFrameData: 1 # Fixes missing loading screens. memcardFilters: # Game saves use the normal edition serial. @@ -69641,11 +69961,12 @@ SLUS-21304: name: "Justice League Heroes" region: "NTSC-U" compat: 5 - gsHWFixes: - textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance. clampModes: vuClampMode: 2 # Ingame capes become SPS mess with lower than extra VU clamp. + gsHWFixes: + textureInsideRT: 1 # Fixes half right. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLUS-21305: name: "Arthur and the Invisibles - The Game" region: "NTSC-U" @@ -69692,7 +70013,7 @@ SLUS-21311: autoFlush: 1 # Corrects vignette to match software. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. halfPixelOffset: 4 # Aligns blur more correctly to match software. - textureInsideRT: 1 # Fixes post processing effects. + textureInsideRT: 1 # Fixes post-processing effects. SLUS-21312: name: "Wallace & Gromit - The Curse of the Were-Rabbit" region: "NTSC-U" @@ -69754,7 +70075,7 @@ SLUS-21320: compat: 5 gsHWFixes: halfPixelOffset: 4 # Fixes edge garbage and misaligned bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness and alignment. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and alignment. autoFlush: 1 # Fixes bloom alignment. SLUS-21321: name: "Squadra Course Alfa Romeo" @@ -69767,7 +70088,7 @@ SLUS-21322: clampModes: vuClampMode: 3 # Fixes SPS and spawn issues. gsHWFixes: - halfPixelOffset: 2 # Fixes post processing misalignment. + halfPixelOffset: 2 # Fixes post-processing misalignment. recommendedBlendingLevel: 4 # Improves reflection quality and terrain lighting. SLUS-21323: name: "Rampage - Total Destruction" @@ -69795,7 +70116,8 @@ SLUS-21326: region: "NTSC-U" compat: 5 gsHWFixes: - roundSprite: 2 # Fixes font artifacts and reduces text box artifacts. + halfPixelOffset: 5 # Fixes shadow positioning. + nativeScaling: 2 # Aligns post processing and bloom. SLUS-21327: name: "Atelier Iris 2 - The Azoth of Destiny" region: "NTSC-U" @@ -69810,7 +70132,7 @@ SLUS-21328: clampModes: vuClampMode: 3 # Fixes bad geometry. gsHWFixes: - halfPixelOffset: 2 # Fixes depth line. + halfPixelOffset: 5 # Fixes depth line. patches: default: content: |- @@ -69833,7 +70155,7 @@ SLUS-21331: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Fix post processing blur. + halfPixelOffset: 4 # Fix post-processing blur. nativeScaling: 1 # Fixes post effects. SLUS-21332: name: "Real World Golf" @@ -69870,6 +70192,11 @@ SLUS-21338: halfPixelOffset: 2 # Corrects shadow alignment and reduces blurriness. recommendedBlendingLevel: 3 # Fixes level and map menu brightness. preloadFrameData: 1 # Fixes glowing emblems. + memcardFilters: # Convert savegames from AC: Nexus and AC: Nine Breaker. + - "SLUS-21338" + - "SLUS-21200" + - "SLUS-20986" + - "SLUS-21079" SLUS-21339: name: "Puzzle Challenge - Crosswords and More!" region: "NTSC-U" @@ -69882,6 +70209,8 @@ SLUS-21341: name: "Stuart Little 3 - Big Photo Adventure" region: "NTSC-U" compat: 5 + gameFixes: + - InstantDMAHack # Fixes loading screen corruption. gsHWFixes: autoFlush: 2 # Fixes missing effects. SLUS-21342: @@ -69945,7 +70274,7 @@ SLUS-21348: - EETimingHack # Fixes flickering. gsHWFixes: alignSprite: 1 # Helps align bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness. + nativeScaling: 2 # Fixes post-processing and lighting smoothness. SLUS-21349: name: "Taito Legends 2" region: "NTSC-U" @@ -70053,14 +70382,16 @@ SLUS-21361: eeRoundMode: 0 # Fixes inability to enter door in Mission 18. gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. SLUS-21362: name: "Onimusha - Dawn of Dreams [Disc 2 of 2]" region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + recommendedBlendingLevel: 2 # Improves brightness. + halfPixelOffset: 5 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. + bilinearUpscale: 2 # Attempts to sharpen blurry text in menus. memcardFilters: - "SLUS-21180" SLUS-21363: @@ -70154,8 +70485,8 @@ SLUS-21376: gsHWFixes: recommendedBlendingLevel: 4 # Improves lighting on buildings and objects. autoFlush: 2 # Properly diffuses light instead of strips of light. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Improves post processing smoothness. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Improves post-processing smoothness. getSkipCount: "GSC_BlackAndBurnoutSky" beforeDraw: "OI_BurnoutGames" patches: @@ -70175,6 +70506,8 @@ SLUS-21379: name: "Cabela's African Safari" region: "NTSC-U" compat: 5 + gsHWFixes: + getSkipCount: "GSC_SandGrainGames" SLUS-21380: name: "Snoopy vs. the Red Baron" region: "NTSC-U" @@ -70220,7 +70553,7 @@ SLUS-21385: compat: 5 gsHWFixes: textureInsideRT: 1 # Required for complex offset shuffles. - halfPixelOffset: 2 # Fixes center line in post processing. + halfPixelOffset: 2 # Fixes center line in post-processing. nativeScaling: 2 # Fixes post effects. SLUS-21386: name: "Tales of the Abyss" @@ -70252,6 +70585,7 @@ SLUS-21389: autoFlush: 1 # Fixes shadows. halfPixelOffset: 4 # Fixes lighting misalignment. nativeScaling: 2 # Fixes lighting smoothness. + textureInsideRT: 1 # Fixes broken crystalline surface textures. memcardFilters: # Allows import of Xenosaga II save data. - "SLUS-21389" - "SLUS-20892" @@ -70260,9 +70594,9 @@ SLUS-21390: region: "NTSC-U" compat: 4 gsHWFixes: - halfPixelOffset: 4 # Fixes edge garbage thin lines and post processing alignment. + halfPixelOffset: 4 # Fixes edge garbage thin lines and post-processing alignment. autoFlush: 1 # Fixes misaligned lights at native resolution. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLUS-21391: name: "Nickelodeon SpongeBob SquarePants - Creature from the Krusty Krab" region: "NTSC-U" @@ -70312,7 +70646,7 @@ SLUS-21399: halfPixelOffset: 5 # Fixes post positioning. cpuSpriteRenderBW: 2 # Fixes some bad textures. cpuCLUTRender: 1 # Fixes the rest of the bad textures. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. preloadFrameData: 1 # Fixes road texture corruption. SLUS-21400: name: "Monster House" @@ -70349,7 +70683,7 @@ SLUS-21406: region: "NTSC-U" gsHWFixes: textureInsideRT: 1 # Required for complex offset shuffles. - halfPixelOffset: 2 # Fixes center line in post processing. + halfPixelOffset: 2 # Fixes center line in post-processing. nativeScaling: 2 # Fixes post effects. SLUS-21407: name: "NFL Head Coach" @@ -70367,8 +70701,8 @@ SLUS-21409: name: "LEGO Star Wars II - The Original Trilogy" region: "NTSC-U" gsHWFixes: - halfPixelOffset: 1 # Aligns post processing. - nativeScaling: 2 # Fixes post processing smoothness and position. + halfPixelOffset: 1 # Aligns post-processing. + nativeScaling: 2 # Fixes post-processing smoothness and position. memcardFilters: - "SLUS-21409" - "SLUS-21083" @@ -70395,7 +70729,7 @@ SLUS-21413: gsHWFixes: minimumBlendingLevel: 2 # Improves banding. halfPixelOffset: 1 # Fixes misaligned bloom effects. - nativeScaling: 2 # Corrects post processing. + nativeScaling: 2 # Corrects post-processing. SLUS-21414: name: "Delta Force - Black Hawk Down - Team Sabre" region: "NTSC-U" @@ -70421,6 +70755,7 @@ SLUS-21417: autoFlush: 1 # Fixes shadows. halfPixelOffset: 4 # Fixes lighting misalignment. nativeScaling: 2 # Fixes lighting smoothness. + textureInsideRT: 1 # Fixes broken crystalline surface textures. memcardFilters: - "SLUS-21389" - "SLUS-20892" @@ -70455,11 +70790,14 @@ SLUS-21419: gsHWFixes: autoFlush: 1 # Fixes lighting. halfPixelOffset: 5 # Fixes ghosting. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. recommendedBlendingLevel: 4 # Fixes missing light brightness. SLUS-21420: name: "Disney's Chicken Little - Ace in Action" region: "NTSC-U" + gsHWFixes: + halfPixelOffset: 5 # Fixes post processing alignment. + nativeScaling: 1 # Aligns post processing. SLUS-21421: name: "Spy Hunter - Nowhere to Run" region: "NTSC-U" @@ -70519,7 +70857,7 @@ SLUS-21428: compat: 5 gsHWFixes: halfPixelOffset: 2 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and position. + nativeScaling: 2 # Fixes post-processing and position. SLUS-21430: name: "IGPX - Immortal Grand Prix" region: "NTSC-U" @@ -70581,7 +70919,7 @@ SLUS-21439: gsHWFixes: recommendedBlendingLevel: 3 # Improves metal sheen and reflections. halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. autoFlush: 1 # Fixes sun occlusion and brightness. textureInsideRT: 1 # Fixes shadow maps. SLUS-21440: @@ -70593,7 +70931,7 @@ SLUS-21441: compat: 5 gsHWFixes: halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. beforeDraw: "OI_DBZBTGames" SLUS-21442: name: "Super Dragon Ball Z" @@ -70612,8 +70950,8 @@ SLUS-21444: vu1RoundMode: 0 # Fixes invalid VU size spam and likely SPS. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLUS-21445: name: "Ar tonelico - Melody of Elemia" @@ -70666,11 +71004,14 @@ SLUS-21452: textureInsideRT: 1 # Required for swirl battle transition. nativeScaling: 2 # Fixes depth of field effects and bloom. roundSprite: 1 # Fixes lines in transitions. - cpuSpriteRenderBW: 1 # Fixes upscaled FMV lines. + autoFlush: 2 # Fixes shadow rendering in certain scenarios when using DirectX. SLUS-21453: - name: "Meet the Robinsons" + name: "Walt Disney Pictures Presents Meet the Robinsons" region: "NTSC-U" compat: 5 + gsHWFixes: + halfPixelOffset: 5 # Fixes bloom alignment. + nativeScaling: 1 # Fixes bloom effects. SLUS-21454: name: "DreamWorks Shrek the Third" region: "NTSC-U" @@ -70681,7 +71022,7 @@ SLUS-21454: eeClampMode: 3 # Fixes objects spawning. gsHWFixes: halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SLUS-21455: name: "Happy Feet" region: "NTSC-U" @@ -70697,8 +71038,8 @@ SLUS-21456: vu1RoundMode: 0 # Crashes without. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLUS-21457: name: "World Championship Paintball" @@ -70819,7 +71160,7 @@ SLUS-21479: gsHWFixes: halfPixelOffset: 2 # Fixes ghosting. textureInsideRT: 1 # Fixes bottom half screen issues. - nativeScaling: 1 # Fixes post processing. + nativeScaling: 1 # Fixes post-processing. SLUS-21480: name: ".hack//G.U. Volume 1 - Rebirth - Terminal Disc" region: "NTSC-U" @@ -70914,11 +71255,11 @@ SLUS-21492: gameFixes: - IbitHack gsHWFixes: - autoFlush: 2 # Fixes post processing overlay. + autoFlush: 2 # Fixes post-processing overlay. roundSprite: 1 # Greatly reduces chromatic effect when upscaling. forceEvenSpritePosition: 1 # Fixes chromatic fringing. - halfPixelOffset: 2 # Fixes post processing position. - nativeScaling: 1 # Fixes post processing effect and position. + halfPixelOffset: 2 # Fixes post-processing position. + nativeScaling: 1 # Fixes post-processing effect and position. SLUS-21493: name: "Need for Speed - Carbon" region: "NTSC-U" @@ -70926,7 +71267,7 @@ SLUS-21493: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. memcardFilters: - "SLUS-21493" @@ -70942,7 +71283,7 @@ SLUS-21494: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. memcardFilters: - "SLUS-21494" @@ -70984,7 +71325,7 @@ SLUS-21501: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. SLUS-21503: name: "God Hand" @@ -71106,10 +71447,10 @@ SLUS-21555: region: "NTSC-U" compat: 5 gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. - halfPixelOffset: 2 # Fixes offset post processing. + textureInsideRT: 1 # Needed for post-processing effects. + halfPixelOffset: 2 # Fixes offset post-processing. autoFlush: 1 # Fixes bloom intensity. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLUS-21556: name: "Konami Kids Playground - Dinosaur Shapes & Colors" region: "NTSC-U" @@ -71260,8 +71601,8 @@ SLUS-21586: roundModes: vu1RoundMode: 0 # Massages the Z on the score meter for hardware mode, software doesn't really need this. gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLUS-21587: name: "Made Man - Confessions of the Family Blood" region: "NTSC-U" @@ -71332,8 +71673,11 @@ SLUS-21597: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 2 # Fixes lighting misalignment. - mergeSprite: 1 # Removes occasional vertical lines. + recommendedBlendingLevel: 3 # Fixes banding and level lighting. + halfPixelOffset: 2 # Fixes misaligned blur. + autoFlush: 1 # Fixes sun shinging through surfaces and graphical corruptions. + nativeScaling: 2 # Fixes bloom misaligment. + mipmap: 0 # Fixes corrupted textures. SLUS-21598: name: "Digimon World - Data Squad" region: "NTSC-U" @@ -71373,8 +71717,8 @@ SLUS-21602: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 2 # Fixes alignment of post processing. - nativeScaling: 1 # Fixes post processing effect. + halfPixelOffset: 2 # Fixes alignment of post-processing. + nativeScaling: 1 # Fixes post-processing effect. SLUS-21603: name: "Soul Nomad & the World Eaters" region: "NTSC-U" @@ -71471,8 +71815,8 @@ SLUS-21616: vu1RoundMode: 0 # Fixes SPS and VU size spam. gsHWFixes: minimumBlendingLevel: 3 # Fixes broken lighting on ground and buildings. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. autoFlush: 1 # Fixes bloom positioning. SLUS-21617: name: "Spider-Man 3" @@ -71526,10 +71870,14 @@ SLUS-21624: name: "Cabela's Trophy Bucks" region: "NTSC-U" compat: 5 + gsHWFixes: + getSkipCount: "GSC_SandGrainGames" SLUS-21625: name: "Cabela's Big Game Hunter [2007]" region: "NTSC-U" compat: 5 + gsHWFixes: + getSkipCount: "GSC_SandGrainGames" SLUS-21626: name: "Stuntman - Ignition" region: "NTSC-U" @@ -71797,8 +72145,8 @@ SLUS-21672: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. getSkipCount: "GSC_GuitarHero" SLUS-21673: name: "College Hoops 2K8" @@ -71826,21 +72174,25 @@ SLUS-21677: name-sort: "Golden Compass, The" region: "NTSC-U" compat: 5 + gsHWFixes: + halfPixelOffset: 4 # Aligns post processing. + autoFlush: 1 # Fixes light penetrating objects and intensity. + nativeScaling: 2 # Aligns post processing. SLUS-21678: name: "Dragon Ball Z - Budokai Tenkaichi 3" region: "NTSC-U" compat: 5 gsHWFixes: halfPixelOffset: 5 # Aligns post effects. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. beforeDraw: "OI_DBZBTGames" SLUS-21679: name: "Power Rangers - Super Legends" region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Fixes post processing position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Fixes post-processing position. SLUS-21680: name: "Harvey Birdman - Attorney at Law" region: "NTSC-U" @@ -72000,7 +72352,12 @@ SLUS-21712: region: "NTSC-U" compat: 5 gsHWFixes: + minimumBlendingLevel: 2 # Fixes rendering in DirectX 11/12. + recommendedBlendingLevel: 4 # Fixes shine on guns and missing lighting on grass and trees. + halfPixelOffset: 5 # Fixes depth alignment. + nativeScaling: 1 # Fixes depth intensity. textureInsideRT: 1 # Fixes depth blur. + getSkipCount: "GSC_SandGrainGames" SLUS-21713: name: "Winter Sports 2008 - The Ultimate Challenge" region: "NTSC-U" @@ -72013,11 +72370,13 @@ SLUS-21714: gsHWFixes: halfPixelOffset: 2 # Fixes ghosting of characters. autoFlush: 2 # Fixes missing glow. - nativeScaling: 2 # Fixes post processing alignment. + nativeScaling: 2 # Fixes post-processing alignment. SLUS-21715: name: "Cabela's Monster Bass" region: "NTSC-U" compat: 5 + gsHWFixes: + getSkipCount: "GSC_SandGrainGames" SLUS-21716: name: "The Spiderwick Chronicles" name-sort: "Spiderwick Chronicles, The" @@ -72119,6 +72478,7 @@ SLUS-21732: region: "NTSC-U" gsHWFixes: halfPixelOffset: 2 # Corrects most vertical lines. + getSkipCount: "GSC_BlueTongueGames" # Mipmap rendering on CPU. SLUS-21733: name: "Sega Superstars Tennis" region: "NTSC-U" @@ -72175,8 +72535,8 @@ SLUS-21740: gsHWFixes: textureInsideRT: 1 # Crowd textures. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. getSkipCount: "GSC_GuitarHero" SLUS-21741: name: "Sea Monsters - A Prehistoric Adventure" @@ -72194,7 +72554,7 @@ SLUS-21743: gsHWFixes: deinterlace: 9 # Game requires adaptive bff de-interlacing instead of auto for the UI at native. halfPixelOffset: 5 # Reduces ghosting effects. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. SLUS-21744: name: "NASCAR 09" region: "NTSC-U" @@ -72263,7 +72623,7 @@ SLUS-21756: compat: 5 gsHWFixes: halfPixelOffset: 2 # Reduces ghosting but on normal vertex is less ghosting but causes corruption at the sides. - nativeScaling: 1 # Fixes post processing position. + nativeScaling: 1 # Fixes post-processing position. SLUS-21757: name: "DreamWorks Kung Fu Panda" region: "NTSC-U" @@ -72271,8 +72631,8 @@ SLUS-21757: gsHWFixes: cpuSpriteRenderBW: 1 # Fixes textures. cpuSpriteRenderLevel: 1 # Needed for above. - halfPixelOffset: 4 # Aligns post processing. - autoFlush: 1 # Fixes post processing. + halfPixelOffset: 4 # Aligns post-processing. + autoFlush: 1 # Fixes post-processing. SLUS-21758: name: "Rock Band - Track Pack Vol.1" region: "NTSC-U" @@ -72297,7 +72657,7 @@ SLUS-21761: gsHWFixes: autoFlush: 1 # Fixes lighting. halfPixelOffset: 4 # Aligns post effects. - nativeScaling: 1 # Fixes post processing position. + nativeScaling: 1 # Fixes post-processing position. SLUS-21763: name: "NHL 2K9" region: "NTSC-U" @@ -72337,7 +72697,7 @@ SLUS-21769: compat: 5 gsHWFixes: alignSprite: 1 # Helps align bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness. + nativeScaling: 2 # Fixes post-processing and lighting smoothness. memcardFilters: # Allows import of Yakuza 1 data. - "SLUS-21769" - "SLUS-21348" @@ -72417,8 +72777,8 @@ SLUS-21781: roundModes: vu1RoundMode: 0 # Fixes graphical issues ingame. gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLUS-21782: name: "Shin Megami Tensei - Persona 4" region: "NTSC-U" @@ -72436,8 +72796,8 @@ SLUS-21785: region: "NTSC-U" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLUS-21786: name: "Summer Athletics - The Ultimate Challenge" region: "NTSC-U" @@ -72460,6 +72820,8 @@ SLUS-21789: name: "Cabela's Legendary Adventures" region: "NTSC-U" compat: 5 + gsHWFixes: + getSkipCount: "GSC_SandGrainGames" SLUS-21790: name: "DreamWorks Shrek's Carnival Craze - Party Games" region: "NTSC-U" @@ -72472,7 +72834,7 @@ SLUS-21793: region: "NTSC-U" compat: 3 gsHWFixes: - halfPixelOffset: 2 # Fixes post processing position. + halfPixelOffset: 2 # Fixes post-processing position. nativeScaling: 2 # Fixes post effects. estimateTextureRegion: 1 # Improves performance and reduces hash cache size. gpuPaletteConversion: 2 # Improves performance and reduces hash cache size. @@ -72702,8 +73064,8 @@ SLUS-21843: vu1RoundMode: 0 # Crashes without. gsHWFixes: cpuCLUTRender: 1 # Fixes bad colours during play. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLUS-21844: name: "Bolt" region: "NTSC-U" @@ -72770,10 +73132,10 @@ SLUS-21858: region: "NTSC-U" compat: 5 gsHWFixes: - textureInsideRT: 1 # Needed for post processing effects. + textureInsideRT: 1 # Needed for post-processing effects. autoFlush: 1 # Fixes missing blur layer. - nativeScaling: 1 # Fixes post processing. - halfPixelOffset: 4 # Fixes offset post processing. + nativeScaling: 1 # Fixes post-processing. + halfPixelOffset: 4 # Fixes offset post-processing. SLUS-21860: name: "The Bigs 2" name-sort: "Bigs 2, The" @@ -72807,8 +73169,8 @@ SLUS-21865: roundModes: vu1RoundMode: 0 # Fixes SPS and VU size spam. gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLUS-21866: name: "Guitar Hero - Smash Hits" region: "NTSC-U" @@ -72816,8 +73178,8 @@ SLUS-21866: roundModes: vu1RoundMode: 0 # Fixes VU size spam and potential graphical issues with GH3 engine. gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLUS-21867: name: "Guitar Hero - Van Halen" region: "NTSC-U" @@ -72825,8 +73187,8 @@ SLUS-21867: gsHWFixes: preloadFrameData: 1 # Fixes icons. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. roundModes: vu1RoundMode: 0 # Fixes VU size spam and potential graphical issues with GH3 engine. SLUS-21868: @@ -72900,8 +73262,8 @@ SLUS-21881: compat: 5 gsHWFixes: cpuSpriteRenderBW: 2 # Fixes textures. - halfPixelOffset: 4 # Aligns post processing, needed for below, but does cause a line around the edge, can be cropped out with 3 px left and top. - nativeScaling: 2 # Fixes post processing smoothness, causes edge bleed without Align to Native. + halfPixelOffset: 4 # Aligns post-processing, needed for below, but does cause a line around the edge, can be cropped out with 3 px left and top. + nativeScaling: 2 # Fixes post-processing smoothness, causes edge bleed without Align to Native. autoFlush: 2 # Fixes soft shadows. patches: 137C792E: @@ -72917,7 +73279,7 @@ SLUS-21883: name: "Disney/Pixar Cars - Race-O-Rama" region: "NTSC-U" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. autoFlush: 1 # Fixes sun penetrating walls and buildings. patches: E4278493: @@ -72961,7 +73323,7 @@ SLUS-21891: compat: 5 gsHWFixes: halfPixelOffset: 5 # Fixes bloom misaligment. - nativeScaling: 2 # Fixes post processing smoothness and position. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLUS-21892: name: "NCAA Football 10" region: "NTSC-U" @@ -73110,8 +73472,8 @@ SLUS-21924: gsHWFixes: preloadFrameData: 1 # Fixes icons. autoFlush: 1 # Fixes bloom intensity. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. roundModes: vu1RoundMode: 0 # Fixes VU size spam and potential graphical issues with GH3 engine. SLUS-21926: @@ -73121,6 +73483,8 @@ SLUS-21927: name: "Sakura Wars - So Long, My Love [English - Disc 1]" region: "NTSC-U" compat: 5 + gsHWFixes: + halfPixelOffset: 5 # Fixes recrusive drawing to the top left. SLUS-21928: name: "Scooby-Doo! and the Spooky Swamp" region: "NTSC-U" @@ -73137,6 +73501,8 @@ SLUS-21930: name: "Sakura Wars - So Long, My Love [Japanese - Disc 2]" region: "NTSC-U" compat: 5 + gsHWFixes: + halfPixelOffset: 5 # Fixes recrusive drawing to the top left. SLUS-21931: name: "Disney/Pixar Toy Story 3" region: "NTSC-U" @@ -73426,9 +73792,10 @@ SLUS-28054: name: "Combat Elite - WWII Paratroopers [Trade Demo]" region: "NTSC-U" gsHWFixes: - estimateTextureRegion: 1 # Improves performance. + textureInsideRT: 1 # Fixes half right. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. halfPixelOffset: 5 # Fixes effect alignment. - textureInsideRT: 1 # Fixes half screen issue. SLUS-28056: name: "State of Emergency 2 [Trade Demo]" region: "NTSC-U" @@ -73627,7 +73994,7 @@ SLUS-29048: name: "Tom Clancy's Splinter Cell [Demo]" region: "NTSC-U" gsHWFixes: - halfPixelOffset: 4 # Aligns post processing. + halfPixelOffset: 4 # Aligns post-processing. nativeScaling: 2 # Fixes post effects. recommendedBlendingLevel: 4 # Fixes lighting effects but has high barrier count. SLUS-29049: @@ -73696,7 +74063,7 @@ SLUS-29069: region: "NTSC-U" gsHWFixes: autoFlush: 2 # Reduces post-processing misalignment. - halfPixelOffset: 4 # Fixes post positioning. + halfPixelOffset: 5 # Fixes post positioning. nativeScaling: 2 # Fixes post effects. SLUS-29070: name: "XIII [Demo]" @@ -73753,10 +74120,12 @@ SLUS-29084: name: ".hack Quarantine Part 4 [Demo]" region: "NTSC-U" SLUS-29085: - name: "Champions of Norrath - Realms of EverQuest" + name: "Champions of Norrath - Realms of EverQuest [Public Beta Volume 1.0]" region: "NTSC-U" gsHWFixes: textureInsideRT: 1 # Fixes half right. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLUS-29086: name: "FIFA Soccer 2004 [Demo]" region: "NTSC-U" @@ -73778,7 +74147,8 @@ SLUS-29088: - BlitInternalFPSHack # Fixes internal fps detection in some areas. gsHWFixes: textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. SLUS-29089: name: "Resident Evil Outbreak [Public Beta 1.0]" region: "NTSC-U" @@ -73867,7 +74237,7 @@ SLUS-29117: name: "Battlefield 2 - Modern Combat [Public Beta Vol.1.0]" region: "NTSC-U" gsHWFixes: - minimumBlendingLevel: 4 # Fixes ground texture rendering. + recommendedBlendingLevel: 4 # Fixes ground texture rendering. autoFlush: 1 # Post-processing. halfPixelOffset: 2 # Offset post-processing. texturePreloading: 1 # Improves performance. @@ -73903,7 +74273,8 @@ SLUS-29126: compat: 4 gsHWFixes: textureInsideRT: 1 # Fixes half right. - estimateTextureRegion: 1 # Improves performance. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. + gpuPaletteConversion: 1 # Reduces hashcache size and improves performance. roundSprite: 1 # Fixes lines in menus HUD and in game. halfPixelOffset: 2 # Fixes erroneous line in menus. SLUS-29127: @@ -73930,10 +74301,10 @@ SLUS-29131: name: "Project - Snowblind [Public Beta Vol.1.0]" region: "NTSC-U" gsHWFixes: - autoFlush: 1 # Fixes the post processing positioning. - textureInsideRT: 1 # Fixes post processing. + autoFlush: 1 # Fixes the post-processing positioning. + textureInsideRT: 1 # Fixes post-processing. halfPixelOffset: 5 # Aligns bloom effect. - nativeScaling: 2 # Fixes post processing smoothness and position. + nativeScaling: 2 # Fixes post-processing smoothness and position. SLUS-29132: name: "S.L.A.I. - Steel Lancer Arena International - Phantom Crash [Public Beta Vol.1.0]" region: "NTSC-U" @@ -74012,7 +74383,7 @@ SLUS-29150: gsHWFixes: recommendedBlendingLevel: 3 # Improves metal sheen and reflections. halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. autoFlush: 1 # Fixes sun occlusion and brightness. textureInsideRT: 1 # Fixes shadow maps. SLUS-29151: @@ -74022,7 +74393,7 @@ SLUS-29152: name: "Battlefield 2 - Modern Combat [Regular Demo]" region: "NTSC-U" gsHWFixes: - minimumBlendingLevel: 4 # Fixes ground texture rendering. + recommendedBlendingLevel: 4 # Fixes ground texture rendering. autoFlush: 1 # Post-processing. halfPixelOffset: 2 # Offset post-processing. texturePreloading: 1 # Improves performance. @@ -74097,8 +74468,8 @@ SLUS-29164: name: "Star Wars - Battlefront II [Online Public Beta]" region: "NTSC-U" gsHWFixes: - halfPixelOffset: 4 # Corrects post processing positioning. - nativeScaling: 2 # Smooths post processing. + halfPixelOffset: 4 # Corrects post-processing positioning. + nativeScaling: 2 # Smooths post-processing. autoFlush: 1 # Fixes missing lights. SLUS-29167: name: "007 - From Russia with Love, Need for Speed - Most Wanted, SSX World Tour [Demo]" @@ -74127,8 +74498,8 @@ SLUS-29170: name: "Total Overdose - A Gunslinger's Tale in Mexico [Demo]" region: "NTSC-U" gsHWFixes: - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 1 # Fixes post processing smoothness and position. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 1 # Fixes post-processing smoothness and position. SLUS-29171: name: "Final Fantasy XII [Demo]" region: "NTSC-U" @@ -74139,7 +74510,7 @@ SLUS-29172: name: "Battlefield 2 - Modern Combat [Demo]" region: "NTSC-U" gsHWFixes: - minimumBlendingLevel: 4 # Fixes ground texture rendering. + recommendedBlendingLevel: 4 # Fixes ground texture rendering. autoFlush: 1 # Post-processing. halfPixelOffset: 2 # Offset post-processing. texturePreloading: 1 # Improves performance. @@ -74176,7 +74547,7 @@ SLUS-29179: name: "Sonic Riders [Demo]" region: "NTSC-U" gsHWFixes: - halfPixelOffset: 4 # Fix post processing blur. + halfPixelOffset: 4 # Fix post-processing blur. nativeScaling: 1 # Fixes post effects. SLUS-29180: name: "Black [Demo]" @@ -74186,8 +74557,8 @@ SLUS-29180: gsHWFixes: recommendedBlendingLevel: 4 # Improves lighting on buildings and objects. autoFlush: 2 # Properly diffuses light instead of strips of light. - halfPixelOffset: 4 # Mostly aligns post processing. - nativeScaling: 2 # Improves post processing smoothness. + halfPixelOffset: 4 # Mostly aligns post-processing. + nativeScaling: 2 # Improves post-processing smoothness. getSkipCount: "GSC_BlackAndBurnoutSky" beforeDraw: "OI_BurnoutGames" SLUS-29183: @@ -74202,7 +74573,7 @@ SLUS-29185: halfPixelOffset: 5 # Fixes post positioning. cpuSpriteRenderBW: 2 # Fixes some bad textures. cpuCLUTRender: 1 # Fixes the rest of the bad textures. - nativeScaling: 1 # Fixes post processing smoothness and position. + nativeScaling: 1 # Fixes post-processing smoothness and position. preloadFrameData: 1 # Fixes road texture corruption. SLUS-29188: name: "Steambot Chronicles [Regular Demo]" @@ -74221,9 +74592,9 @@ SLUS-29191: clampModes: vuClampMode: 0 # Fixes bump mapping issues gsHWFixes: - textureInsideRT: 1 # Fixes post processing. - halfPixelOffset: 5 # Fixes alignment of shuffles and post processing in Hitman. - getSkipCount: "GSC_HitmanBloodMoney" + textureInsideRT: 1 # Fixes post-processing. + autoFlush: 1 # Fixes sun intensity in Hitman. + halfPixelOffset: 5 # Fixes alignment of shuffles and post-processing in Hitman. SLUS-29192: name: "Test Drive Unlimited [Public Beta Vol.1.0]" region: "NTSC-U" @@ -74237,7 +74608,7 @@ SLUS-29193: clampModes: eeClampMode: 3 # Fixes game hang after opening intro. gsHWFixes: - recommendedBlendingLevel: 3 # Fixes car headlights. + recommendedBlendingLevel: 3 # Fixes car headlights and persistent trails. halfPixelOffset: 2 # Fixes depth line. SLUS-29194: name: "FIFA 07 [Demo]" @@ -74253,14 +74624,14 @@ SLUS-29195: - EETimingHack # Fixes flickering. gsHWFixes: alignSprite: 1 # Helps align bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness. + nativeScaling: 2 # Fixes post-processing and lighting smoothness. SLUS-29196: name: "Destroy All Humans! 2 [Demo]" region: "NTSC-U" gsHWFixes: recommendedBlendingLevel: 3 # Improves metal sheen and reflections. halfPixelOffset: 2 # Fixes misaligned bloom. - nativeScaling: 2 # Fixes post processing and lighting smoothness and position. + nativeScaling: 2 # Fixes post-processing and lighting smoothness and position. autoFlush: 1 # Fixes sun occlusion and brightness. textureInsideRT: 1 # Fixes shadow maps. SLUS-29197: @@ -74456,7 +74827,7 @@ TCPS-10092: autoFlush: 2 # Fixes the position of the shadow and makes it not blocky. halfPixelOffset: 2 # Fixes shadows. gpuPaletteConversion: 0 # Stops potential crashes from too many palette textures. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. TCPS-10094: name: "イースⅢ ~ワンダラーズフロムイース~" name-sort: "いーす3 わんだらーずふろむいーす" @@ -74532,7 +74903,7 @@ TCPS-10127: autoFlush: 2 # Fixes the position of the shadow and makes it not blocky. halfPixelOffset: 2 # Fixes shadows. gpuPaletteConversion: 0 # Stops potential crashes from too many palette textures. - nativeScaling: 2 # Fixes post processing. + nativeScaling: 2 # Fixes post-processing. TCPS-10128: name: "アルティメット プロ ピンボール" name-sort: "あるてぃめっと ぷろ ぴんぼーる" diff --git a/app/src/main/assets/resources/RedumpDatabase.yaml b/app/src/main/assets/resources/RedumpDatabase.yaml index 020eb84..967364e 100644 --- a/app/src/main/assets/resources/RedumpDatabase.yaml +++ b/app/src/main/assets/resources/RedumpDatabase.yaml @@ -327,7 +327,7 @@ - hashes: - md5: e79f63598f32f67b3bc30f4dfd3ec663 size: 3978690560 - name: Medal of Honor - Frontline (Europe) (En,Es,It) + name: Medal of Honor - Frontline (Europe, Australia) (En,Es,It) serial: SLES-50684 version: '1.01' - hashes: @@ -1233,7 +1233,7 @@ - hashes: - md5: 68a9853389e7677c6574e2396b038fe3 size: 4272881664 - name: Stuart Little 3 - Big Photo Adventure (Europe) (En,Fr,De,Es,It,Nl,Pt,Fi,Pl) + name: Stuart Little 3 - Big Photo Adventure (Europe, Australia) (En,Fr,De,Es,It,Nl,Pt,Fi,Pl) serial: SCES-53422 version: '1.02' - hashes: @@ -4358,7 +4358,7 @@ - hashes: - md5: 698ee0ee3ffe442511a2e7e7ad30626e size: 719930736 - name: Official PlayStation 2 Magazine Demo 5 (Europe) (En,Fr,De,Es,It) + name: Official PlayStation 2 Magazine Demo 5 (Europe, Australia) (En,Fr,De,Es,It) serial: SCED-50140 version: '1.00' - hashes: @@ -4462,7 +4462,7 @@ - md5: 5cb34ceaf73704e33fcfd2c4622e9243 size: 2924806144 name: WRC 3 - The Official Game of the FIA World Rally Championship (Europe, Australia) - (En,Fr,De,Es,It,Pt,No,Fi) + (En,Fr,De,Es,It,Pt,No,Fi) (v1.01) serial: SCES-51684 version: '1.01' - hashes: @@ -6764,7 +6764,7 @@ - hashes: - md5: b71463d48214beed3ec0d24f37c756b6 size: 2870149120 - name: Jet Li - Rise to Honor (USA) (En,Zh) + name: Jet Li - Rise to Honor (USA) serial: SCUS-97279 version: '1.00' - hashes: @@ -7886,8 +7886,8 @@ - hashes: - md5: dd543253482ba3afcc9804027b9266cb size: 4411981824 - name: ESPN NHL 2K5 (USA) - serial: SLUF-20921 + name: ESPN NHL 2K5 (USA, Canada) + serial: SLUS-20921 version: '1.03' - hashes: - md5: 4fcedb228c7cbe43a263dfda7ce45f75 @@ -8366,7 +8366,7 @@ - hashes: - md5: 524b19c6c6ed025e42acc952d70bfc49 size: 4450287616 - name: Cabela's Outdoor Adventures 2010 (USA) + name: Cabela's Outdoor Adventures (USA) (2009) serial: SLUS-21906 version: '1.00' - hashes: @@ -10566,7 +10566,7 @@ - hashes: - md5: 36972b62c4a4b45417a632f4134efd5b size: 4134502400 - name: Spider-Man 2 (Europe) (En,Fr,De,Es,It) + name: Spider-Man 2 (Europe) (Fr,De,Es) serial: SLES-52372 version: '1.01' - hashes: @@ -11245,7 +11245,7 @@ - hashes: - md5: 96b5a25f925f2e760c9270c049cec930 size: 957743104 - name: Official PlayStation 2 Magazine Demo 8 (Europe) (En,Fr,De,Es,It) + name: Official PlayStation 2 Magazine Demo 8 (Europe, Australia) (En,Fr,De,Es,It) serial: SCED-50143 version: '1.00' - hashes: @@ -11299,7 +11299,7 @@ - hashes: - md5: 5ff7095b81b9fa6026edc5a0455ce7a4 size: 1735163904 - name: Colin McRae Rally 04 (Europe) (En,Fr,De,Es,It) + name: Colin McRae Rally 04 (Europe, Australia) (En,Fr,De,Es,It) serial: SLES-51824 version: '1.02' - hashes: @@ -12384,19 +12384,19 @@ - hashes: - md5: 319f1ea771ee50cf7aead9d568545941 size: 3628662784 - name: Disney High School Musical 3 - Senior Year Dance! (USA) + name: Disney High School Musical 3 - Senior Year Dance! (USA) (En,Fr,Es) serial: SLUS-21819 version: '1.00' - hashes: - md5: 7deeeaa49e44c8cb95121c816c4c3c90 size: 2520711168 - name: Disney Sing It (USA) + name: Disney Sing It (USA) (En,Fr,Es) serial: SLUS-21826 version: '1.00' - hashes: - md5: f05ee3df6cd2c96f46c1009c25f77510 size: 2376499200 - name: Disney High School Musical - Sing It! (USA) + name: Disney High School Musical - Sing It! (USA) (En,Fr) serial: SLUS-21599 version: '1.02' - hashes: @@ -13181,7 +13181,7 @@ - hashes: - md5: 55e2d06653611e70fdb430b1bafa6a56 size: 1475772416 - name: Buzz! The Music Quiz (UK) + name: Buzz! The Music Quiz (Europe) serial: SCES-53304 version: '2.00' - hashes: @@ -13385,7 +13385,7 @@ - hashes: - md5: e6236ccd2a6d2ef6723518f2557e63a3 size: 728195664 - name: Steambot Chronicles (USA) (Demo 1) + name: Steambot Chronicles (USA) (Demo) serial: SLUS-29188 version: '1.00' - hashes: @@ -14592,7 +14592,6 @@ - md5: 8a3ce7327fd044bfbaf93da80093c95f size: 3868295168 name: DTM Race Driver (Europe) (En,Fr,De) (v1.01) - serial: SLES-50816 version: '1.01' - hashes: - md5: fd732882aa7386457f515e7cb1a868d6 @@ -14711,7 +14710,7 @@ - hashes: - md5: e58babcdce8287e8ce7524d1f729a1be size: 1571586048 - name: Hummer Badlands (Europe) + name: Hummer Badlands (Europe, Australia) serial: SLES-54158 version: '1.01' - hashes: @@ -15706,7 +15705,7 @@ - hashes: - md5: e19bea8b89489556541503f29e163825 size: 4495048704 - name: Spy vs. Spy (Europe) (En,Fr,De,Es) + name: Spy vs. Spy (Europe, Australia) (En,Fr,De,Es) serial: SLES-53078 version: '1.01' - hashes: @@ -19905,7 +19904,7 @@ - hashes: - md5: 4762db29b98ace50cb37085ab50598b5 size: 4056645632 - name: Jet Li - Rise to Honour (Europe) (En,Fr,De,Es,It,Zh) + name: Jet Li - Rise to Honour (Europe) (En,Fr,De,Es,It) serial: SCES-51971 version: '1.00' - hashes: @@ -24323,7 +24322,7 @@ - hashes: - md5: e52df86f4d4f4a3c7c7043a2e44211fb size: 2434629632 - name: This Is Football 2005 (Europe) (Sv,No,Da,Fi) + name: This Is Football 2005 (Scandinavia) (Sv,No,Da,Fi) serial: SCES-52429 version: '1.00' - hashes: @@ -24347,7 +24346,7 @@ - hashes: - md5: 6c442ed1e16115913a175dffc9401cac size: 1848639488 - name: Bansuk Yeongung vs. 3D (Korea) + name: Soft Boiled Hero vs. 3D (Korea) serial: SLKA-25091 version: '1.01' - hashes: @@ -25182,7 +25181,7 @@ - hashes: - md5: eda88b6247f04275b5975d39644d012f size: 2228944896 - name: Disney-Pixar Finding Nemo (Europe) + name: Disney-Pixar Finding Nemo (Europe, Australia) serial: SLES-51755 version: '1.00' - hashes: @@ -26029,7 +26028,7 @@ - hashes: - md5: e419661ac9eebf75874787197059c728 size: 3524820992 - name: Disney Hannah Montana - Spotlight World Tour (Europe) (En,Fr,De,Es,It) + name: Disney Hannah Montana - Spotlight World Tour (Europe, Australia) (En,Fr,De,Es,It) serial: SLES-55293 version: '1.00' - hashes: @@ -30640,7 +30639,7 @@ - hashes: - md5: f282248d0ebf8ee417f787d4bd201407 size: 4691623936 - name: Mercenaries 2 - World in Flames (Europe) + name: Mercenaries 2 - World in Flames (Europe, Australia) serial: SLES-54997 version: '1.01' - hashes: @@ -34078,7 +34077,7 @@ - hashes: - md5: fb93d72a734ab52c692d0f7e963cbfd9 size: 1521876992 - name: Spider-Man - Web of Shadows - Amazing Allies Edition (USA) + name: Spider-Man - Web of Shadows - Amazing Allies Edition (USA) (En,Fr) serial: SLUS-21822 version: '1.01' - hashes: @@ -35811,13 +35810,13 @@ - hashes: - md5: 48443b81f0f57aa72ba86ab299e16bb9 size: 6711050240 - name: Si Hun Qu (Asia) + name: Siren (Asia) serial: SCAJ-30003 version: '1.03' - hashes: - md5: 292f08c47de403cf6e9307574fe370c6 size: 4458545152 - name: Si Hun Qu 2 (Asia) + name: Siren 2 (Asia) serial: SCAJ-20167 version: '1.01' - hashes: @@ -37180,7 +37179,7 @@ - hashes: - md5: 26a800e80840d476dfbd9d967b7d0cd6 size: 4295655424 - name: Disney G-Force (USA) + name: Disney G-Force (USA) (En,Fr,Es) serial: SLUS-21891 version: '1.00' - hashes: @@ -38178,7 +38177,7 @@ - hashes: - md5: 51f75c09645d90a2d6abc8a7a8eef142 size: 2072805376 - name: Disney Sing It - Pop Hits (USA) + name: Disney Sing It - Pop Hits (USA) (En,Fr,Es) serial: SLUS-21920 version: '1.00' - hashes: @@ -38640,7 +38639,7 @@ - hashes: - md5: 4c8c0dcfd58aa7b38aefa928256bc399 size: 4698734592 - name: FIFA Street (USA) + name: FIFA Street (USA) (En,Es) serial: SLUS-21147 version: '1.00' - hashes: @@ -38652,7 +38651,7 @@ - hashes: - md5: d736df5036b90b37a247315564d61ef4 size: 4697882624 - name: TOCA Race Driver 3 - The Ultimate Racing Simulator (USA) + name: TOCA Race Driver 3 (USA) serial: SLUS-21182 version: '1.02' - hashes: @@ -38730,7 +38729,7 @@ - hashes: - md5: 8ffddd05c5d6ff23ed4782e05efa3a52 size: 4698734592 - name: UEFA Euro 2008 - Austria-Switzerland (USA) + name: UEFA Euro 2008 - Austria-Switzerland (USA) (En,Fr) serial: SLUS-21699 version: '1.00' - hashes: @@ -39330,7 +39329,7 @@ - hashes: - md5: 4d8d32f42bbae626d55486e5e4792e62 size: 2768535552 - name: Disney Sing It - High School Musical 3 - Senior Year (USA) + name: Disney Sing It - High School Musical 3 - Senior Year (USA) (En,Fr,Es) serial: SLUS-21861 version: '1.01' - hashes: @@ -40136,7 +40135,7 @@ - hashes: - md5: 31a6c6a95bb7bd1e1051d183caa387db size: 1814003712 - name: Zhen Sanguo Wushuang 2 (Asia) + name: Zhen Sanguo Wushuang 2 (Taiwan) serial: SLAJ-25036 version: '1.00' - hashes: @@ -40462,7 +40461,7 @@ - md5: 08a63db4f248acdc24cdaa0b9507b854 size: 2205908992 name: Umishou (Japan) - serial: FVGK-0001 + serial: SLPM-66864 version: '1.01' - hashes: - md5: d3b19450aea4a9688e876fa71830aa77 @@ -40497,7 +40496,7 @@ - hashes: - md5: 7e2c03a0d41990f6477e906a37de287f size: 1228832768 - name: Crash Twinsanity + Spyro - A Hero's Tail (Europe) (Demo) + name: Crash Twinsanity & Spyro - A Hero's Tail (Europe) (Demo) serial: SLED-52574 version: '1.01' - hashes: @@ -41436,7 +41435,7 @@ - hashes: - md5: 21bffd6263462a6025f2ba5fdbd905fa size: 1362231296 - name: Winning Post 7 (Japan) (v1.03) + name: Winning Post 7 (Japan) serial: SLPM-66087 version: '1.03' - hashes: @@ -43161,7 +43160,7 @@ - hashes: - md5: 1a2996d4ccf6531f58c33a3dae74c822 size: 211919904 - name: Boboboubo Boubobo - Atsumare!! Taikan Boubobo (Japan) + name: Bobobo-bo Bo-bobo - Atsumare!! Taikan Bo-bobo (Japan) serial: SLPM-62572 version: '1.00' - hashes: @@ -43833,7 +43832,7 @@ - hashes: - md5: 7b36cbd87a6c20fe9cc612800cf1c226 size: 211919904 - name: Boboboubo Boubobo - Atsumare!! Taikan Boubobo (Japan) (Doukonban) + name: Bobobo-bo Bo-bobo - Atsumare!! Taikan Bo-bobo (Japan) (Doukonban) serial: SLPM-62565 version: '1.00' - hashes: @@ -44118,8 +44117,8 @@ - hashes: - md5: e150e8b907874cc4582b961cb6a282db size: 4561010688 - name: Jissen Pachi-Slot Hisshouhou! Hokuto no Ken 2 - Ransei Haouden - Tenha no - Shou (Japan) + name: Jissen Pachi-Slot Hisshouhou! Hokuto no Ken 2 - Ranse Haouden - Tenha no Shou + (Japan) serial: SLPM-66866 version: '1.02' - hashes: @@ -44269,7 +44268,7 @@ - hashes: - md5: c9f1e4d62b6e51f6eaf583ec142180c2 size: 2033745920 - name: Boboboubo Boubobo - Hajike Matsuri (Japan) + name: Bobobo-bo Bo-bobo - Hajike Matsuri (Japan) serial: SLPM-65262 version: '1.02' - hashes: @@ -47449,7 +47448,7 @@ - hashes: - md5: fad9a0f310368a02082617ee3de2d14e size: 633339904 - name: Tekken 4 (USA) (Demo 2) + name: Tekken 4 (USA) (Demo) serial: SLUS-29034 version: '1.00' - hashes: @@ -47829,7 +47828,7 @@ - hashes: - md5: b9d40db1c85c74e742116e974f5660e4 size: 484834224 - name: All-Star Baseball 2003 featuring Derek Jeter (USA) (Demo) + name: All-Star Baseball 2003 featuring Derek Jeter (USA) (Trade Demo) serial: SLUS-28007 version: '1.00' - hashes: @@ -48365,7 +48364,7 @@ - hashes: - md5: 9e48777997eb76ea6afa60e9a9888ce0 size: 3892019200 - name: Combat Elite - WWII Paratroopers (USA) (Demo) + name: Combat Elite - WWII Paratroopers (USA) (Trade Demo) serial: SLUS-28054 version: '1.00' - hashes: @@ -48690,7 +48689,7 @@ - hashes: - md5: 460a492c2c3c672790394e80d9da32c3 size: 434289744 - name: Transformers (USA) (Demo 1) + name: Transformers (USA) (Demo) serial: SLUS-29107 version: '1.00' - hashes: @@ -48812,7 +48811,7 @@ - hashes: - md5: 69b65d4c88253189e4218801f5daf971 size: 439565280 - name: Test Drive - Eve of Destruction (USA) (Demo) + name: Test Drive - Eve of Destruction (USA) (Trade Demo) serial: SLUS-28043 version: '1.00' - hashes: @@ -49940,7 +49939,7 @@ - hashes: - md5: 755d3e7b0984d7865296a3f26a9a7940 size: 4669145088 - name: TOCA Race Driver 3 - The Ultimate Racing Simulator (Japan) (En,Ja) + name: TOCA Race Driver 3 (Japan) (En,Ja) serial: SLPM-66881 version: '1.02' - hashes: @@ -50261,7 +50260,7 @@ - hashes: - md5: 5acb3714208e7507f242fae77c5f9c8a size: 4575035392 - name: Muinga (Korea) + name: Bujingai (Korea) serial: SLKA-25150 version: '1.01' - hashes: @@ -50442,7 +50441,7 @@ - md5: cdff4537b7245bfa42b0bb77896539cf size: 1843331072 name: Kidou Senshi Gundam - Gihren no Yabou - Axis no Kyoui V (Japan) - serial: SLPS-25959 + serial: SLPS-25914 version: '1.02' - hashes: - md5: a835e954febd5aed353aaa396d33fe52 @@ -51583,8 +51582,8 @@ - hashes: - md5: 02e1fe2a578573f7b37e307ba6c1b0b6 size: 4620189696 - name: Namco 50 Anniversary - namCollection (Japan) - serial: SLPS-25500 + name: Namco 50 Anniversary - namCollection (Japan, Asia) + serial: SCAJ-20131 version: '1.00' - hashes: - md5: 7376777d43a8a3fef99f69a36274d85c @@ -51696,7 +51695,7 @@ - hashes: - md5: 8191fa8441cd8c947ab80b9db6de0ce3 size: 4583129088 - name: Official PlayStation 2 Magazine - Special Edition 2005-03 (Germany) + name: Official PlayStation 2 Magazine - Special Edition 2005-03 (Germany) (En,Fr,De,Es,It) serial: SCED-53938 version: '1.00' - hashes: @@ -52247,7 +52246,7 @@ - hashes: - md5: b2ae23ef20bf7575cb51f8c4b2a9fb92 size: 2754347008 - name: State of Emergency 2 (USA) (Demo) + name: State of Emergency 2 (USA) (Trade Demo) serial: SLUS-28056 version: '1.00' - hashes: @@ -52271,7 +52270,7 @@ - hashes: - md5: 22782dba3a168495b117e2d209911d28 size: 383808768 - name: Kya - Dark Lineage (USA) (Demo) + name: Kya - Dark Lineage (USA) (Trade Demo) version: '1.00' - hashes: - md5: f9e3336f1ae89a7e9a790eb43a0bdac1 @@ -52330,7 +52329,7 @@ - hashes: - md5: 5d4cbc4bd219ad1d0849f30169af55e1 size: 2971107328 - name: Dot Hack Part 1 - Infection (USA) (Demo 2) + name: Dot Hack Part 1 - Infection (USA) (Demo) serial: SLUS-29042 version: '1.00' - hashes: @@ -52725,7 +52724,7 @@ - hashes: - md5: 056a0c6aa128f2a4b90d1d74b645ebc2 size: 4698734592 - name: FIFA 14 (Brazil) (En,Fr,Es) + name: FIFA 14 (Latin America) (En,Fr,Es) serial: SLUS-27093 version: '1.00' - hashes: @@ -52942,7 +52941,7 @@ - hashes: - md5: 13e289c824380e48efb4e11f2e93bac7 size: 946307072 - name: SkyGunner (USA) (Demo 2) + name: SkyGunner (USA) (Trade Demo) serial: SLUS-28008 version: '1.00' - hashes: @@ -53008,7 +53007,7 @@ - hashes: - md5: ab14ea4484d28abfaa9d462096cc5102 size: 2544467968 - name: Dot Hack Part 2 - Mutation (USA) (Demo 2) + name: Dot Hack Part 2 - Mutation (USA) (Demo) serial: SLUS-29055 version: '1.00' - hashes: @@ -53211,7 +53210,7 @@ - hashes: - md5: ac2861ceb95b142de9077354dffb49a6 size: 3556343808 - name: Magna Carta - Tears of Blood (USA) (Demo) + name: Magna Carta - Tears of Blood (USA) (Trade Demo) serial: SLUS-28053 version: '1.01' - hashes: @@ -53895,80 +53894,80 @@ - hashes: - md5: 07829efde87b883c320485329a30c78a size: 3484385280 - name: Odin Sphere (USA) (Demo) + name: Odin Sphere (USA) (Trade Demo) serial: SLUS-28065 version: '1.00' - hashes: - md5: e85d66a6f2b3b55a651a1fb249550ac8 size: 4501733376 - name: Shin Megami Tensei - Persona 3 (USA) (Demo) + name: Shin Megami Tensei - Persona 3 (USA) (Trade Demo) serial: SLUS-28067 version: '1.00' - hashes: - md5: e306554145f20d81d7f233ece382d66d size: 4411817984 - name: Shin Megami Tensei - Persona 4 (USA) (Demo) + name: Shin Megami Tensei - Persona 4 (USA) (Trade Demo) serial: SLUS-28069 version: '1.00' - hashes: - md5: bb2584383dabcf2e3fa7b905e0776606 size: 4677500928 - name: Shin Megami Tensei - Digital Devil Saga 2 (USA) (Demo) + name: Shin Megami Tensei - Digital Devil Saga 2 (USA) (Trade Demo) serial: SLUS-28052 version: '1.00' - hashes: - md5: 8f20da5cb9b768ad10f9a332262f9620 size: 3186098176 name: Shin Megami Tensei - Devil Summoner - Raidou Kuzunoha vs. the Soulless Army - (USA) (Demo) + (USA) (Trade Demo) serial: SLUS-28064 version: '1.00' - hashes: - md5: 0bb61cdce8d06f645843fb8320ae4430 size: 2616360960 - name: Steambot Chronicles (USA) (Demo 2) + name: Steambot Chronicles (USA) (Trade Demo) serial: SLUS-28061 version: '1.00' - hashes: - md5: 4e2b10f45919602edeebab674e364d92 size: 3502080000 - name: Samurai Western (USA) (Demo) + name: Samurai Western (USA) (Trade Demo) serial: SLUS-28051 version: '1.00' - hashes: - md5: a483f40aa37828bad75a32cec638b98c size: 1725431808 - name: Metal Saga (USA) (Demo) + name: Metal Saga (USA) (Trade Demo) serial: SLUS-28059 version: '1.00' - hashes: - md5: bf0b45496fe1d62f3faa5ae3327b2785 size: 1236893696 - name: Disgaea - Hour of Darkness (USA) (Demo) + name: Disgaea - Hour of Darkness (USA) (Trade Demo) serial: SLUS-28034 version: '1.00' - hashes: - md5: b80ad23b4844049ea598106c7215c462 size: 3610214400 - name: Choro Q (USA) (Demo) + name: Choro Q (USA) (Trade Demo) serial: SLUS-28044 version: '1.00' - hashes: - md5: 8e3f88686f8d8d67931b5c11f05915e5 size: 4270227456 - name: Shin Megami Tensei - Nocturne (USA) (Demo) + name: Shin Megami Tensei - Nocturne (USA) (Trade Demo) serial: SLUS-28045 version: '1.00' - hashes: - md5: b227831dcf7b86e03581c036f65c1678 size: 3748528128 - name: Stella Deus - The Gate of Eternity (USA) (Demo) + name: Stella Deus - The Gate of Eternity (USA) (Trade Demo) serial: SLUS-28050 version: '1.00' - hashes: - md5: e6746c676486d48cd49f7e3147000ee6 size: 4565598208 - name: Shin Megami Tensei - Digital Devil Saga (USA) (Demo) + name: Shin Megami Tensei - Digital Devil Saga (USA) (Trade Demo) serial: SLUS-28049 version: '1.00' - hashes: @@ -54004,7 +54003,7 @@ - hashes: - md5: 10b1fd0e747c37f73f136c81c32f0dfd size: 4594302976 - name: Shin Megami Tensei - Persona 3 FES (USA) (Demo) + name: Shin Megami Tensei - Persona 3 FES (USA) (Trade Demo) serial: SLUS-28068 version: '1.00' - hashes: @@ -54083,7 +54082,7 @@ - hashes: - md5: a8d201bc3f3db148c3abd9c697b9be82 size: 3381657600 - name: Rule of Rose (USA) (Demo) + name: Rule of Rose (USA) (Trade Demo) serial: SLUS-28063 version: '1.00' - hashes: @@ -54233,7 +54232,7 @@ - hashes: - md5: fda9f37bede2191accc35941b2e31a39 size: 723557520 - name: Dual Hearts (USA) (Demo 1) + name: Dual Hearts (USA) (Demo) serial: SLUS-29033 version: '1.00' - hashes: @@ -54257,7 +54256,7 @@ - hashes: - md5: 586d749d1fe0b36e43240896b2b301ee size: 364388304 - name: SkyGunner (USA) (Demo 1) + name: SkyGunner (USA) (Demo) serial: SLUS-29020 version: '1.00' - hashes: @@ -54317,19 +54316,19 @@ - hashes: - md5: 5fcbd75355a7332db5e0b9a6e909bfe7 size: 2601484288 - name: Dot Hack Part 1 - Infection (USA) (Demo 1) + name: Dot Hack Part 1 - Infection (USA) (Trade Demo) serial: SLUS-28023 version: '1.00' - hashes: - md5: f3a724a114f5e2c4bd6fd7add4d158a0 size: 3201400832 - name: Dot Hack Part 2 - Mutation (USA) (Demo 1) + name: Dot Hack Part 2 - Mutation (USA) (Trade Demo) serial: SLUS-28032 version: '1.00' - hashes: - md5: 585fe25fc11a472d235854ab6d4c496c size: 434289744 - name: Transformers (USA) (Demo 2) + name: Transformers (USA) (Trade Demo) serial: SLUS-28040 version: '1.00' - hashes: @@ -54614,7 +54613,7 @@ - hashes: - md5: 03cbcfdc4892e7df0f563e29cdad2c30 size: 1229062144 - name: Champions of Norrath (USA) (Demo) + name: Champions of Norrath - Realms of EverQuest (USA) (Demo) serial: SLUS-29088 version: '1.02' - hashes: @@ -54735,7 +54734,7 @@ - hashes: - md5: c8aa63393ea8bff6a9d259b738b6a95c size: 2987786240 - name: Rogue Ops (USA) (Demo) + name: Rogue Ops (USA) (Trade Demo) serial: SLUS-28039 version: '1.00' - hashes: @@ -54789,7 +54788,7 @@ - hashes: - md5: 128396ef21e30023c2c4407971ff3a7a size: 592313568 - name: Gungrave (USA) (Demo) + name: Gungrave (USA) (Trade Demo) serial: SLUS-28015 version: '1.00' - hashes: @@ -54801,13 +54800,13 @@ - hashes: - md5: 74715ca70acc014d7f0a3b2df4c5545e size: 1839792128 - name: Shinobi (USA) (Demo) + name: Shinobi (USA) (Trade Demo) serial: SLUS-28016 version: '1.00' - hashes: - md5: 150dd690f43d7606c35277654d8dd504 size: 633339904 - name: Tekken 4 (USA) (Demo 1) + name: Tekken 4 (USA) (Trade Demo) serial: SLUS-28012 version: '1.00' - hashes: @@ -55094,7 +55093,7 @@ - hashes: - md5: 64c9e541a45a7bd176ba3520ce831d2e size: 1506410496 - name: Dual Hearts (USA) (Demo 2) + name: Dual Hearts (USA) (Trade Demo) serial: SLUS-28013 version: '1.00' - hashes: @@ -57445,7 +57444,7 @@ - hashes: - md5: 205ae1f105b037567fe20a4033402464 size: 718702992 - name: PS Mania 2.0 Spaccacodici - Burnout 3 (Italy) (Unl) + name: Playable Cheats Vol. 22 (Europe) (Unl) version: 1.00 (European) - hashes: - md5: 860baacda89179f11eb8502350d05f3a @@ -57455,7 +57454,7 @@ - hashes: - md5: 2d62c85d4b25beda2b0000e045adaff6 size: 718702992 - name: Playable Cheats Vol. 26 (Europe) (Unl) (2005-01-24) + name: Playable Cheats Vol. 26 (Play 126) (Europe) (Unl) version: 1.00 (European) - hashes: - md5: 682cd8fc66fce36c9d5f38fa1d18c699 @@ -57523,7 +57522,7 @@ - hashes: - md5: 589472cb3632b4a754d5fa4f4f3f6c13 size: 574972272 - name: Disaster Report (USA) (Demo) + name: Disaster Report (USA) (Trade Demo) serial: SLUS-28025 version: '1.00' - hashes: @@ -58033,7 +58032,7 @@ - md5: 58585812bb33b99065c0f3289047d36d size: 8455979008 name: God of War - Yeonghonui Banyeokja (Korea) - serial: SCKA-30003 + serial: SCKA-30002 version: '1.01' - hashes: - md5: 2799914a6c209928a9f0acb4623f0889 @@ -58882,7 +58881,7 @@ size: 36479520 - md5: 40da8b0082b370acd6c420c23bf60665 size: 65402064 - name: Dance Factory (USA) (Demo) + name: Dance Factory (USA) (Trade Demo) serial: SLUS-28062 version: '1.00' - hashes: @@ -59108,7 +59107,7 @@ - hashes: - md5: 80e79b0504fe145e2a4481e9de4a020a size: 718702992 - name: PS Mania 2.0 Spaccacodici - Shadow of Rome (Italy) (Unl) + name: Playable Cheats Vol. 26 (Play 127) (Europe) (Unl) version: 1.00 (European) - hashes: - md5: cec6feb2f41fa7a9e29a3ecdf7432c08 @@ -60055,7 +60054,7 @@ - hashes: - md5: 81b5e0add3f2a6b466a3673f13df6d3a size: 751990848 - name: Jin Hondura (Korea) (En,Fr,De,Es,It) + name: Shin Contra (Korea) (En,Fr,De,Es,It) serial: SLPM-64551 version: '1.00' - hashes: @@ -61290,7 +61289,7 @@ - hashes: - md5: 9773fac6eca21fd2bb74a30beeb0b13c size: 652807008 - name: Pai Chanjong (Japan) + name: Pai Chenjan (Japan) serial: SLPS-20135 version: '1.02' - hashes: @@ -61991,7 +61990,7 @@ - hashes: - md5: 0376e0535d87b74af4cebd53613b715b size: 761692848 - name: Game Studio Version 1.03a (Europe) (Unl) + name: Game Studio (Europe) (Unl) version: '1.30' - hashes: - md5: 2f07f4a2e510783dc2ffca516e65f76e @@ -62219,25 +62218,25 @@ - hashes: - md5: 7611ab3863be53d5ba02a64d6684fcac size: 761692848 - name: CD avec les Codes Action Replay Exclusivement pour les Jeux Grand Theft Auto + name: CD avec les codes Action Replay exclusivement pour les jeux Grand Theft Auto III et Grand Theft Auto - Vice City (France) (Unl) version: GTAS_FR EUROPE - hashes: - md5: 692e543ad2a0f29df7cfd4aaa7ed9a31 size: 718702992 - name: CD avec les Codes Action Replay Exclusivement pour le Jeu Driver 3 (France) + name: CD avec les codes Action Replay exclusivement pour le jeu Driver 3 (France) (Unl) version: 1.00 (European) - hashes: - md5: b76d95fae2a9f2621e7f5aa2c61782d4 size: 761692848 - name: CD avec les Codes Action Replay Exclusivement pour le Jeu Lara Croft Tomb + name: CD avec les codes Action Replay exclusivement pour le jeu Lara Croft Tomb Raider - The Angel of Darkness (France) (Unl) version: 1.00 (European) - hashes: - md5: c7e0334820da25e0bd9141780b83139d size: 718702992 - name: CD avec les Codes Action Replay Exclusivement pour le Jeu True Crime - Streets + name: CD avec les codes Action Replay exclusivement pour le jeu True Crime - Streets of LA (France) (Unl) version: 1.00 (European) - hashes: @@ -62267,7 +62266,7 @@ - hashes: - md5: 67a28c8fc41d835edfd801bab4b5f37f size: 761692848 - name: CD avec les Codes Exclusifs et Inedits de Dragon Ball Z - Budokai (France) + name: CD avec les codes exclusifs et inedits de Dragon Ball Z - Budokai (France) (Unl) version: DBZ_01 EUROPE - hashes: @@ -63981,7 +63980,7 @@ name: Action Replay 2 (Germany) (Disc 1) (German Edition) (Unl) version: '1.92' - hashes: - - md5: ef5cf1e0c1de482ac8fe1ac0ea60598b + - md5: 79283e70a549c8193d97ac489e795377 size: 718702992 name: Playable Cheats Vol. 21 (UK) (Unl) (04090801) version: 1.00 (European) @@ -64388,7 +64387,7 @@ - hashes: - md5: 300b47f659e37245f408283118e00150 size: 4542038016 - name: Persona 3 (Korea) + name: Yeosin Jeonsaeng Persona 3 (Korea) serial: SCKA-20099 version: '1.00' - hashes: @@ -64560,7 +64559,7 @@ - hashes: - md5: 90e36ba24ba255c6c05fc70fca1e0f0a size: 316480416 - name: Jonny Moseley Mad Trix (Europe) (Pre-Alpha) (2001-09-17) + name: Jonny Moseley Mad Trix (Europe) (Beta) (2001-09-17) version: '1.00' - hashes: - md5: cff4fdc98e99c6b0331718a323947fe1 @@ -66355,7 +66354,7 @@ - hashes: - md5: 1fc07f5521f30fa73306c90cb365707d size: 3477733376 - name: Gran Turismo 4 - Lupo Cup Training Version (Japan) + name: Gran Turismo Concept - Lupo Cup Training Version (Japan) serial: PAPX-90508 version: '1.01' - hashes: @@ -67475,7 +67474,7 @@ - hashes: - md5: a8877badbf7bf70c71f57e7ac6898d3c size: 1362231296 - name: Winning Post 7 (Japan) (v1.00) + name: Winning Post 7 (Japan) (Koei the Best) serial: SLPM-66811 version: '1.00' - hashes: @@ -68023,11 +68022,6 @@ name: Jonny Moseley Mad Trix (Europe) (Beta) (2001-12-17) serial: SLES-50362 version: '1.00' -- hashes: - - md5: f8256d93fb1431ed8c333b5dcbb5d318 - size: 718702992 - name: Playable Cheats Vol. 22 (UK) (Unl) - version: 1.00 (European) - hashes: - md5: d75499d47ef6ff77a4b811934c37248d size: 3570860032 @@ -68581,7 +68575,7 @@ - hashes: - md5: e840ca26a64331d1fcaeda1eedd20822 size: 761692848 - name: GamePro Action Disc Dec 2003 - The Making of Dragon Ball Z (USA) + name: GamePro Action Disc Dec 2003 - The Making of Dragon Ball Z (USA) (Unl) version: 1.00 (American) - hashes: - md5: f395565e4845d0164e3376dd5692902b @@ -68664,7 +68658,7 @@ - hashes: - md5: 8ab277db647ba82d40267cd213fc3f9b size: 761692848 - name: CD avec les Codes Action Replay Exclusivement pour le Jeu Tom Clancy's Splinter + name: CD avec les codes Action Replay exclusivement pour le jeu Tom Clancy's Splinter Cell (France) (Unl) version: SPLINTER EUROPE - hashes: @@ -68675,7 +68669,7 @@ - hashes: - md5: f6d8b98b72d9e890c6ee3e051a53ab9a size: 761692848 - name: CD avec les Codes Exclusifs et Inedits de Harry Potter et la Chambre des Secrets + name: CD avec les Codes Exclusifs et inedits de Harry Potter et la Chambre des Secrets (France) (Unl) version: '1.30' - hashes: @@ -68691,7 +68685,7 @@ - hashes: - md5: 8b05a780a33223fa68e5f666a86766c4 size: 718702992 - name: CD avec les Codes Action Replay Exclusivement pour le Jeu Gran Turismo 4 (France) + name: CD avec les codes Action Replay exclusivement pour le Jeu Gran Turismo 4 (France) (Unl) version: 1.00 beta (European) - hashes: @@ -68756,11 +68750,6 @@ size: 761692848 name: Karat PS2-you Pro Action Replay 2 (Japan) (Unl) (v2.25) version: 2.25 JAPAN -- hashes: - - md5: 649a3b03008e36f6efc7548b89a9607a - size: 646524816 - name: CodeBreaker (USA) (Unl) (v9.3) - version: '9.3' - hashes: - md5: 9042831ec817b742ec951089843bd1ec size: 2882240512 @@ -68852,7 +68841,7 @@ - hashes: - md5: fc5904cdf8c55e89de1191a326ed9ae1 size: 761692848 - name: CD avec les Codes Exclusifs et Inedits de Grand Theft Auto - Vice City (France) + name: CD avec les Codes Exclusifs et inedits de Grand Theft Auto - Vice City (France) (Unl) version: '1.30' - hashes: @@ -69184,6 +69173,7 @@ size: 3725557760 name: Third Plac3, The - Demo 2002 (Europe) serial: SCED-50943 + version: '1.00' - hashes: - md5: ffcdb29fd218555e2b377091c000323e size: 2532507648 @@ -69388,12 +69378,12 @@ - hashes: - md5: b0a2a871249538d80b92e7ef837f20dd size: 761692848 - name: CD avec les Codes Action Replay Exclusivement pour le Jeu Enter the Matrix - (France) + name: CD avec les codes Action Replay exclusivement pour le jeu Enter the Matrix + (France) (Unl) version: 1.01 (European) - hashes: - - md5: db0c13bd5bddb659d563b4e2c0fcd5e8 - size: 226549344 + - md5: 26016b1a7581a535b409906a74e7178d + size: 761692848 name: Action Replay Ultimate Cheats for Use with Grand Theft Auto - Vice City (UK) (Unl) version: '1.30' @@ -69458,7 +69448,7 @@ - hashes: - md5: 2d91ab06f6fc0f918c9389990df71a63 size: 1378156544 - name: This Is Football 2004 (Belgium) (Demo) + name: This Is Football 2004 (Belgium) (Fr,Nl) (Demo) serial: SCED-52321 version: '1.01' - hashes: @@ -69466,6 +69456,7 @@ size: 3448471552 name: Official PlayStation 2 Magazine Demo 10 (Spain) serial: SCED-50406 + version: '1.00' - hashes: - md5: e1615a414d9b561e70b395155edb7e39 size: 4697686016 @@ -69521,7 +69512,7 @@ serial: SCES-54506 version: '1.00' - hashes: - - md5: f543c17d10aa576cc4ea74622a7050ee + - md5: 1272f072f00cd1ac7ef4a1fc4476a473 size: 750130416 name: Code Breaker (USA) (Unl) (v4.0) version: '4.0' @@ -69540,7 +69531,7 @@ - hashes: - md5: fd46dd639a28f9f8ec7475f999d8b653 size: 2786852864 - name: Call of Duty - World at War - Final Fronts (Korea) + name: Call of Duty - World at War - Final Fronts (Korea) (En,Fr) serial: SLKA-25449 version: '1.00' - hashes: @@ -69567,5 +69558,466 @@ - hashes: - md5: ecb58db2de607ed68a215d052381a83b size: 245814576 - name: Taz - Wanted (Europe) (2001-05-31) - version: Beta + name: Taz - Wanted (Europe) (Beta) (2001-05-31) +- hashes: + - md5: 8bbba1ff646e860ec130369020936056 + size: 128640288 + name: Taz - Wanted (Europe) (Beta) (2001-01-26) + version: '1.00' +- hashes: + - md5: 6a6c830627eeda7557b314e40d6282a5 + size: 307246464 + name: Taz - Wanted (Europe) (Beta) (2001-09-30) + version: '1.00' +- hashes: + - md5: aeff7e130bad49db38b73599920984c3 + size: 212032800 + name: Taz - Wanted (Europe) (Beta) (2001-04-03) +- hashes: + - md5: 1dd4760abec402e57fdb407b7d4ef058 + size: 224418432 + name: Taz - Wanted (Europe) (Beta) (2001-08-01) + version: '1.00' +- hashes: + - md5: c3c825c1db87e3ea84584879ea3c777a + size: 573796272 + name: Taz - Wanted (Europe) (Beta) (2001-11-15) +- hashes: + - md5: 6815ca4b67ef192bb39e58a7a12cc1e2 + size: 264757584 + name: Taz - Wanted (Europe) (Beta) (2001-03-10) + version: '1.00' +- hashes: + - md5: b8640032ceae0c467763f5df8decac90 + size: 234214512 + name: Taz - Wanted (Europe) (Beta) (2001-09-03) + version: '1.00' +- hashes: + - md5: 22a4c4bda54fba3c9fb77819f8e3a62b + size: 218211504 + name: Taz - Wanted (Europe) (Beta) (2001-02-19) + version: '1.00' +- hashes: + - md5: 72199e6e7b3d029636d991d5403aae98 + size: 106870176 + name: Taz - Wanted (USA) (Beta) (2000-12-22) + version: '1.00' +- hashes: + - md5: d9aae083b46f2477ae31579ae180088f + size: 685189344 + name: Taz - Wanted (Europe) (Beta) (2002-02-18) +- hashes: + - md5: 77153a7746f32f5b6e2a4a40c0ced4da + size: 238236432 + name: Taz - Wanted (Europe) (Beta) (2001-06-30) + version: '1.00' +- hashes: + - md5: b659ba5faaa4cc38ab11ced8a8865780 + size: 267723456 + name: Taz - Wanted (Europe) (Beta) (2001-09-17) +- hashes: + - md5: e256d1bf6eac2085249bce9373d9459c + size: 36173760 + name: Taz - Wanted (Europe) (Beta) (2000-10-31) + version: '1.00' +- hashes: + - md5: 69dd016cb0d0148f6eb840697c8884f0 + size: 226260048 + name: Taz - Wanted (Europe) (Beta) (2001-05-04) + version: '1.00' +- hashes: + - md5: da7c96e8949d89fe6987dde2f09b7074 + size: 393531936 + name: Taz - Wanted (Europe) (Beta) (2001-10-25) +- hashes: + - md5: 818730a5b560e4362d65bd22d9b3e4ac + size: 449895264 + name: Taz - Wanted (Europe) (Beta) (2001-10-31) +- hashes: + - md5: fb513a89a46758f414bb6ffca21bc04d + size: 761692848 + name: Playcodes Disc01 (France) (Unl) + version: '1.30' +- hashes: + - md5: a828235a9ad6bf76fa3fab38c5588561 + size: 2249392128 + name: Ever 17 - The Out of Infinity (Japan) + serial: SLPS-25149 + version: '1.02' +- hashes: + - md5: c039e696dc8797bb7a80cf4b46b8e13f + size: 33824112 + name: AR3 V1.1 (China) (Unl) + serial: JKL-25 +- hashes: + - md5: ce28e5c1c832acbeb5837e6a9623b096 + size: 4625367040 + name: Phantom - Phantom of Inferno (Japan) + serial: SLPM-65204 + version: '1.01' +- hashes: + - md5: 7a07c3d25dfe47b6bd47d286c8e3ad6d + size: 1229389824 + name: This Is Football 2004 (Europe) (En,Es,Pt,Ar) (Demo) + serial: SCED-52496 + version: '1.00' +- hashes: + - md5: 51f52f21343cebe2a4f68d766f590a2e + size: 646524816 + name: Code Breaker (USA) (Unl) (v8.0) + version: '8.0' +- hashes: + - md5: 8096b7750d1e41dbaec17c0aa65869b8 + size: 750130416 + name: GameShark 2 (USA) (Unl) (v1.1) + version: '1.1' +- hashes: + - md5: 2702606b4e32e7991a4cf1c4c039c460 + size: 750130416 + name: DVD Region Free (Europe) (Unl) (v1) + version: '1.00' +- hashes: + - md5: e73d9947f3d6ff5c70c7665762be162b + size: 750130416 + name: GameShark 2 - Video Game Enhancer - Version 3 (USA) (Unl) + version: '1.00' +- hashes: + - md5: 83ff81b930cfae80c01bf75b007a50e2 + size: 750130416 + name: GameShark - Game Codes (USA) (Unl) (v5.5) + version: '5.5' +- hashes: + - md5: 7ace03f2f609387f4876eccfe7ea5c6e + size: 750130416 + name: GameShark 2 (USA) (Unl) (v1.2) + version: '1.2' +- hashes: + - md5: 7483ee18bd13f94e22a14cf87f05e6fb + size: 750130416 + name: GameShark Media Player for Networked PlayStation 2 (USA) (Disc 2) (Play Disk) + (Unl) + version: '1.00' +- hashes: + - md5: 5b55e38bed9ced07c1f68bc6cc3f7afd + size: 750130416 + name: GameShark Greatest Hits - 2005 Volume 1 (USA) (Unl) + version: '1.00' +- hashes: + - md5: d02671450c70754f2b0273e24a46d4f5 + size: 750130416 + name: GameShark 2 - Game Codes & Media Player (USA) (Unl) + version: '1.00' +- hashes: + - md5: 3e74f25108ff23131663a42e20719775 + size: 750130416 + name: GTA Cheat Master - III & Vice City (USA) (Unl) + version: '1.00' +- hashes: + - md5: 4c865b0e9784c7b7246c5451f4216ffd + size: 750130416 + name: SharkByte GameShark 2 - Official Cheat Codes for Splinter Cell (USA) (Unl) + version: '1.00' +- hashes: + - md5: fd824b0814fa8d83d69887ec9555ff97 + size: 750130416 + name: Race Master GT - Cheat System (USA) (Unl) + version: '1.00' +- hashes: + - md5: ec6134a5129ca49290a7aa226800e83e + size: 750130416 + name: HDTV Player (USA) (Unl) + version: '1.00' +- hashes: + - md5: 58f080339bfdad7f5623319d624cbbc7 + size: 750130416 + name: DVD Zone Free (Europe) (Unl) +- hashes: + - md5: a1ea5b90d304815137610a8e2e49ce7d + size: 750130416 + name: Xtreme Sports Master (USA) (Unl) +- hashes: + - md5: ebce80a16dd4559f2f13ea330ad318c1 + size: 750130416 + name: Xploder V5 Media Centre (Europe) (En,Fr,De,Es,It) (Unl) + version: '5.2' +- hashes: + - md5: 2e5a3f56ca52591ef3da1ae4fa4d3312 + size: 750130416 + name: QCast Tuner - Digital Media Player Software for PlayStation 2 (USA) (For PlayStation + 2) (Unl) +- hashes: + - md5: ca4d1ec3ed87d0c75315b5c2e14cff95 + size: 750130416 + name: GameShark 2 - Game Codes (USA) (Unl) +- hashes: + - md5: df9b6c65d7db9ec9f91b46dcafdbd54a + size: 750130416 + name: Fantasy Master - Cheat CD System (USA) (Unl) + version: '1.00' +- hashes: + - md5: b84d6f6cf747a8988dca6e58dea56c78 + size: 750130416 + name: DVD Region Free (USA) (Unl) + version: '1.00' +- hashes: + - md5: 23603f51e707900ebbc4b4626fedded0 + size: 750130416 + name: Parental GameLock (USA) (Unl) +- hashes: + - md5: bf580bb3212d102447f412871868fb03 + size: 750130416 + name: GameShark 2 - GS2Lite (USA) (Unl) (D2A16C26) +- hashes: + - md5: ed755f23d320606f0d2b13f91a6da0fe + size: 750130416 + name: Xploder V2 (Europe) (En,De,Es,It) (Unl) + version: '1.00' +- hashes: + - md5: 66f87ec37d0795ef4c2dd5d4acab3dfe + size: 3221389312 + name: Chronicles of Narnia, The - The Lion, the Witch and the Wardrobe (Korea) + serial: SLKA-25382 + version: '1.00' +- hashes: + - md5: a29ab6fc13df2fd149bef9f0c8b93970 + size: 750130416 + name: Xploder Cheat System for PlayStation 2 (Europe) (Unl) (v1.0, build 0180) + version: 1.0, build 0180 +- hashes: + - md5: e0645d0ecab2564da3b4056b34a1320e + size: 761692848 + name: Action Replay 2 V2 (Germany) (En,Fr,De,It) (Disc 1) (Unl) (v2.12) + version: '2.12' +- hashes: + - md5: b7f7abd9d9e57bb718f7679613c9f8dd + size: 750130416 + name: HDTV Player (Europe) (Unl) + version: 1.00 PAL +- hashes: + - md5: 9de7eea1dbb60d8c37fcc1134dfd1e3c + size: 2855731200 + name: Buzz! The Sports Quiz (Europe) (Beta) (2006-09-07) + serial: SCES-54258 + version: '1.00' +- hashes: + - md5: b247f5316a8a0dddfc53c09b0c7a6ae6 + size: 750130416 + name: Xploder V4 (Europe) (En,Fr,De,Es,It) (Unl) (v4.2) + serial: SLES-50215 + version: '4.2' +- hashes: + - md5: 953a0a5773732d122adb1b1d353aabb3 + size: 34111056 + name: Action Replay Ultimate Cheats pour Final Fantasy X (France) (Unl) + version: '1.4' +- hashes: + - md5: 49f314fd6894e9d93a712e3919dbdeb5 + size: 588421008 + name: Xploder Cheat System for PlayStation 2 (UK) (Unl) (v1.0, build 0173) + version: 1.0, build 0173 +- hashes: + - md5: 55614f9d4f5f181c5db45ac984790677 + size: 646524816 + name: Code Breaker (USA) (Unl) (v8.1) + version: '8.1' +- hashes: + - md5: b39fa4c6f058640b8246e7c607a70449 + size: 4140924928 + name: Urban Reign (Asia) + serial: SCAJ-20152 + version: '1.00' +- hashes: + - md5: c91ebaa73fbb2f62f3eebb1196aece2c + size: 4698734592 + name: FIFA Soccer 2005 (Asia) + serial: SLAJ-25044 + version: '1.00' +- hashes: + - md5: 2ccfc3fb5210bc8f55c5e8a04a14af6b + size: 2728132608 + name: FIFA Soccer 2003 (Asia) (En,Es) + serial: SLPM-65193 + version: '1.01' +- hashes: + - md5: f952270d7ef80fc64373db8f44efb7d3 + size: 646524816 + name: Code Breaker (USA) (Unl) (v9.0) + version: '9.0' +- hashes: + - md5: cee7a3d6ca0eba60b1ac7c3c549043e2 + size: 750130416 + name: Cheat Code Demon - Zone Free DVD Software (UK) (Unl) + version: '1.00' +- hashes: + - md5: 27893929063e4643c4aa2de18977735b + size: 646524816 + name: Code Breaker (USA) (Unl) (v9.3) + version: '9.3' +- hashes: + - md5: 8e2dd0834f4fc8b15ad4e7953e30ef17 + size: 98370048 + name: XGIII - Extreme G Racing (Europe) (Demo) + serial: SLED-50476 + version: '1.00' +- hashes: + - md5: ef84626d3b9cf32edf9870cf4cfd89bb + size: 646524816 + name: Code Breaker - Redline Racing (USA) (Unl) +- hashes: + - md5: af989e087f4a2548d049d5944aeac00f + size: 2621210624 + name: Armored Core - Nexus (Korea) (Evolution) + serial: SLKA-25178 + version: '1.01' +- hashes: + - md5: 7bcf55e3f13c78869d0ff9b7b99d108c + size: 761692848 + name: CD avec les codes Action Replay exclusivement pour le jeu Soul Calibur II + (France) (Unl) + version: 1.00 (European) +- hashes: + - md5: 91bb9e5ce63c9a39883a907da70b7907 + size: 761692848 + name: CD avec les Codes Exclusifs et inedits de le Seigneur des Anneaux - Les Deux + Tours (France) (Unl) + version: '1.30' +- hashes: + - md5: 1fc5827dbaf25a0fb496289a899161c7 + size: 469929600 + name: PlayStation BB Navigator - Version 0.10 (Prerelease) (Japan) (Disc 2) (SCPN-60109) + serial: SCPN-60109 +- hashes: + - md5: 874c2468efcdde4f71a974014b715aa8 + size: 750130416 + name: DVD Region Free (Europe) (En,De,Es,It) (Unl) (v2) + version: '1.00' +- hashes: + - md5: 6ed61abc4eb30d2cf2bdef6aa499ffd0 + size: 750130416 + name: Xploder V5 - Mega Cheats (Europe) (Unl) (v1.0) + version: '1.00' +- hashes: + - md5: fa4d585fe3231581d9c27f71a1e3b228 + size: 718702992 + name: Action Replay Ultimate Cheats for Use with Metal Gear Solid 3 - Snake Eater + (UK) (Unl) + version: 1.00 (European) +- hashes: + - md5: 4f4ae31c21ea5e0f8b8a6f1ec2970ac4 + size: 761692848 + name: Memory Manager Plus (UK) (Unl) + version: '1.30' +- hashes: + - md5: 0cf476bd34f7d98780848669768d53ba + size: 750130416 + name: Xploder V4 - Trial Disc - Volume 4 (UK) (Unl) + version: '1.00' +- hashes: + - md5: 4bd98f613e47838eed148436db85db3b + size: 761692848 + name: Action Replay Ultimate Update for Pro Evolution Soccer 2 (UK) (Unl) + version: '1.30' +- hashes: + - md5: 867951db02fe8815386995f3e9eb191f + size: 750130416 + name: Xploder V4 - Trial Disc - Volume 5 (UK) (Unl) + version: '1.00' +- hashes: + - md5: 647c5f84b0706073cc51bc1a46dac32f + size: 750130416 + name: Xploder V4 - Trial Disc - Volume 2 (UK) (Unl) + version: '1.00' +- hashes: + - md5: 4caf2bf55fe504f96061dd6171e7a3b8 + size: 750130416 + name: Cheat Master - Race Master GT & Xtreme Sports Master (Europe) (Unl) + version: '1.00' +- hashes: + - md5: 294c91e9750561aa01f28dce5ef139c8 + size: 761692848 + name: Xtreme Cheats (UK) (Unl) (02091801) + version: '1.30' +- hashes: + - md5: b072043417270bcc07ac8232620d02f5 + size: 750130416 + name: Xploder V5 - Lite (UK) (Unl) + version: '1.00' +- hashes: + - md5: 03ffd6c13154096604ef3f1ef26678df + size: 718702992 + name: Action Replay Ultimate Cheats for True Crime - Streets of LA (UK) (Unl) + version: 1.00 (European) +- hashes: + - md5: 8f704eadf2ee45603d5c76044c0222a3 + size: 761692848 + name: Best Cheat Disc in the World..., The (UK) (Unl) + version: BCDITWE EUROPE +- hashes: + - md5: bb6b704a83178dd2c072be169556b6f0 + size: 761692848 + name: 'Action Replay 2 V2 (Europe) (Disc 1) (Unl) ' + version: v2.24 +- hashes: + - md5: 57d0ee9f80fba12ee1ae2eefcfb459d3 + size: 718702992 + name: Action Replay Max (Europe) (Unl) (v3.36) + version: 3.36 (European) +- hashes: + - md5: 36e0c89bfa338d000462ede9420d72de + size: 660855552 + name: Wave Rally (Japan) (Taikenban) + serial: SLPM-60170 + version: '1.00' +- hashes: + - md5: f0c4ff7a677f1c8bccf83c9b32706a3d + size: 1250852864 + name: Metal Gear Solid 3 - Snake Eater (Europe) (En,Fr) (Demo) + serial: SLED-53105 + version: '1.00' +- hashes: + - md5: 05f4f3686fd3afbd48d837faff50e8c1 + size: 1292500992 + name: Sports Extremes (France) (En,Fr,De,Es,It) + serial: SCED-51609 + version: '1.01' +- hashes: + - md5: e4327fddc123f72fbc05ad3e71e40f30 + size: 718702992 + name: CD avec les codes Action Replay exclusivement pour le jeu Grand Theft Auto + - San Andreas (France) (Unl) + version: 1.00 (European) +- hashes: + - md5: 0f9de5dc8d7fcb414a031c64fe60ac96 + size: 718702992 + name: Playcodes Disc07 (France) (Unl) + version: 1.00 (European) +- hashes: + - md5: 7a2b8b23e72dd0f826c74993a650075d + size: 2159280128 + name: Buzz! The Sports Quiz (Europe) (SCES-54269) + serial: SCES-54269 + version: '1.00' +- hashes: + - md5: 0effe5983ce91aa0b90f570da73f0880 + size: 4434505728 + name: TimeSplitters - Future Perfect (Europe) (En,Fr,De,Es,It) (Beta) (2005-02-15) + serial: SLES-52993 + version: '1.00' +- hashes: + - md5: 437f6733d442549c845153891eec1d23 + size: 469929600 + name: PlayStation BB Navigator - Version 0.10 (Prerelease) (Japan) (Disc 2) (SCPN-60102) + serial: SCPN-60102 +- hashes: + - md5: 882fca4f156239a0c0844abfa37d23b3 + size: 1259470848 + name: EyeToy Series de Asobou! Otameshi Disc (Japan) + serial: PCPX-96644 + version: '1.01' +- hashes: + - md5: 76afa371eeddb4bc079712331fe2c2b7 + size: 2924806144 + name: WRC 3 - The Official Game of the FIA World Rally Championship (Europe) (En,Fr,De,Es,It,Pt,No,Fi) + (v2.00) + serial: SCES-51684 + version: '2.00' diff --git a/app/src/main/assets/resources/game_controller_db.txt.disabled b/app/src/main/assets/resources/game_controller_db.txt similarity index 98% rename from app/src/main/assets/resources/game_controller_db.txt.disabled rename to app/src/main/assets/resources/game_controller_db.txt index 42e9cb6..5f8cbb0 100644 --- a/app/src/main/assets/resources/game_controller_db.txt.disabled +++ b/app/src/main/assets/resources/game_controller_db.txt @@ -10,6 +10,7 @@ 03000000d0160000060d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows, 03000000d0160000070d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows, 03000000d0160000600a000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows, +03000000c82d00001930000000000000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b11,platform:Windows, 03000000c82d00000031000000000000,8BitDo Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, 03000000c82d00000531000000000000,8BitDo Adapter 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, 03000000c82d00000951000000000000,8BitDo Dogbone,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a2,rightx:a3,righty:a5,start:b11,platform:Windows, @@ -50,6 +51,7 @@ 03000000c82d00000360000000000000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, 03000000c82d00000361000000000000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, 03000000c82d00000660000000000000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000960000000000000,8BitDo Pro 3,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b17,paddle2:b16,paddle3:b2,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, 03000000c82d00000131000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, 03000000c82d00000231000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, 03000000c82d00000331000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, @@ -112,6 +114,7 @@ 03000000020500000913000000000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a5,start:b11,x:b3,y:b4,platform:Windows, 03000000373500000710000000000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, 03000000373500004610000000000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000190e00000110000000000000,Aquaplus Piece,a:b1,b:b0,back:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b2,platform:Windows, 03000000830500000160000000000000,Arcade,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b3,x:b4,y:b4,platform:Windows, 03000000120c0000100e000000000000,Armor 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, 03000000490b00004406000000000000,ASCII Seamic Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, @@ -137,13 +140,13 @@ 030000000d0500000208000000000000,Belkin Nostromo N40,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows, 03000000bc2000006012000000000000,Betop 2126F,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, 03000000bc2000000055000000000000,Betop BFM,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000790000000700000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000808300000300000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, 03000000bc2000006312000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, 03000000bc2000006321000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, 03000000bc2000006412000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, 03000000c01100000555000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, 03000000c01100000655000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, -03000000790000000700000000000000,Betop Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, -03000000808300000300000000000000,Betop Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, 030000006f0e00006401000000000000,BF One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Windows, 03000000300f00000202000000000000,Bigben,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a5,righty:a2,start:b7,x:b2,y:b3,platform:Windows, 030000006b1400000209000000000000,Bigben,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, @@ -231,7 +234,8 @@ 03000000ac0500005b05000000000000,GameSir G3w,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, 03000000ac0500002d02000000000000,GameSir G4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, 03000000ac0500004d04000000000000,GameSir G4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, -03000000ac0500001a06000000000000,GameSir-T3 2.02,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000ac0500001a06000000000000,GameSir T3 2.02,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000373500009410000000000000,GameSir Tegenaria Lite,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, 030000004c0e00001035000000000000,Gamester,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, 030000000d0f00001110000000000000,GameStick Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, 0300000047530000616d000000000000,GameStop,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, @@ -260,6 +264,8 @@ 030000008f0e00000610000000000000,GreenAsia,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a5,righty:a2,start:b11,x:b3,y:b0,platform:Windows, 03000000ac0500006b05000000000000,GT2a,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, 03000000341a00000302000000000000,Hama Scorpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000008a2e0000dd10000000000000,Hand Held Legend GC Ultimate,a:b0,b:b2,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,misc2:b24,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b1,y:b3,platform:Windows, +030000008a2e0000df10000000000000,Hand Held Legend ProGCC,a:b1,b:b0,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b3,y:b2,platform:Windows, 030000000d0f00004900000000000000,Hatsune Miku Sho PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, 030000001008000001e1000000000000,Havit HV G60,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b0,platform:Windows, 030000000d0f00000c00000000000000,HEXT,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, @@ -329,6 +335,7 @@ 030000000d0f0000ee00000000000000,Horipad Mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, 030000000d0f0000c100000000000000,Horipad Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, 030000000d0f0000f600000000000000,Horipad Nintendo Switch Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000000d0f00000202000000000000,Horipad O Nintendo Switch 2 Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,misc2:b14,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, 030000000d0f00006700000000000000,Horipad One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, 030000000d0f00009601000000000000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc2:b2,paddle1:b5,paddle2:b15,paddle3:b18,paddle4:b19,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, 030000000d0f0000dc00000000000000,Horipad Switch,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, @@ -339,6 +346,7 @@ 03000000242f00000a20000000000000,Hyperkin Scout,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows, 03000000242e00000a20000000000000,Hyperkin Scout Premium SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows, 03000000242e00006a38000000000000,Hyperkin Trooper 2,a:b0,b:b1,back:b4,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b3,start:b5,platform:Windows, +03000000f00300008d04000000000000,HyperX Clutch,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:-a2,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:+a5,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, 03000000d81d00000e00000000000000,iBuffalo AC02 Arcade Joystick,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b11,righttrigger:b3,rightx:a2,righty:a5,start:b8,x:b4,y:b5,platform:Windows, 03000000d81d00000f00000000000000,iBuffalo BSGP1204 Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, 03000000d81d00001000000000000000,iBuffalo BSGP1204P Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, @@ -816,7 +824,7 @@ 030000005e040000e302000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, 030000005e040000ea02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, 030000005e040000fd02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, -030000005e040000ff02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000ff02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, 030000006f0e0000a802000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, 030000006f0e0000c802000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, 03000000c62400003a54000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, @@ -837,6 +845,8 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, # Mac OS X 030000008f0e00000300000009010000,2 In 1 Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000c82d00001930000000020000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Mac OS X, +03000000c82d00001930000001000000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Mac OS X, 03000000c82d00000031000001000000,8BitDo Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, 03000000c82d00000531000000020000,8BitDo Adapter 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, 03000000c82d00000951000000010000,8BitDo Dogbone,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Mac OS X, @@ -890,8 +900,8 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 03000000c82d00001630000001000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, 03000000c82d00001730000001000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, 03000000c82d00001130000000020000,8BitDo Ultimate Wired,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b24,paddle2:b25,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001330000000020000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, 03000000c82d00001330000001000000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, -03000000c82d00001330000000020000,8BitDo Ultimate Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, 03000000a00500003232000008010000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, 03000000a00500003232000009010000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, 03000000c82d00001890000001000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, @@ -929,7 +939,8 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 03000000b40400001124000001040000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b14,paddle1:b2,paddle2:b5,paddle3:b16,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, 03000000b40400001224000003030000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b2,paddle1:b16,paddle2:b17,paddle3:b14,paddle4:b15,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, 03000000790000004618000000010000,GameCube Controller Adapter,a:b4,b:b0,dpdown:b56,dpleft:b60,dpright:b52,dpup:b48,lefttrigger:a12,leftx:a0,lefty:a4,rightshoulder:b28,righttrigger:a16,rightx:a20,righty:a8,start:b36,x:b8,y:b12,platform:Mac OS X, -03000000ac0500001a06000002020000,GameSir-T3 2.02,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000ac0500001a06000002020000,GameSir T3 2.02,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000373500000411000023000000,GameSir X4A Xbox Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, 03000000ad1b000001f9000000000000,Gamestop BB070 X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, 0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, 03000000c01100000140000000010000,GameStop PS4 Fun Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, @@ -1125,6 +1136,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 030000005e040000e302000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, 030000005e040000ea02000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, 030000005e040000fd02000003090000,Xbox One Controller,a:b0,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000220b000013050000,Xbox One Elite 2 Controller,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,paddle1:b11,paddle2:b13,paddle3:b12,paddle4:b14,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Mac OS X, 03000000c62400003a54000000000000,Xbox One PowerA Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, 030000005e040000130b000001050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, 030000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, @@ -1140,6 +1152,8 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 03000000120c0000101e000000010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, # Linux +03000000c82d00001930000011010000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Linux, +05000000c82d00001930000001000000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Linux, 03000000c82d00000031000011010000,8BitDo Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 03000000c82d00000631000000010000,8BitDo Adapter 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 03000000c82d00000951000000010000,8BitDo Dogbone,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Linux, @@ -1209,10 +1223,10 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 03000000c82d00001730000011010000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 03000000c82d00001130000011010000,8BitDo Ultimate Wired,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b24,paddle2:b25,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 03000000c82d00000631000010010000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00000631000014010000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 03000000c82d00000760000011010000,8BitDo Ultimate Wireless,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, 03000000c82d00001230000011010000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b2,paddle2:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 03000000c82d00001330000011010000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, -03000000c82d00000631000014010000,8BitDo Ultimate Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 03000000c82d00000121000011010000,8BitDo Xbox One SN30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 05000000c82d00000121000000010000,8BitDo Xbox One SN30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 05000000a00500003232000001000000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux, @@ -1234,6 +1248,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 03000000020500000913000010010000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 03000000373500000710000010010000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 05000000373500004610000001000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000190e00000110000010010000,Aquaplus Piece,a:b1,b:b0,back:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b2,platform:Linux, 03000000790000003018000011010000,Arcade Fightstick F300,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, 03000000a30c00002700000011010000,Astro City Mini,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, 03000000a30c00002800000011010000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, @@ -1301,8 +1316,9 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 05000000ac0500002d0200001b010000,GameSir G4s,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b33,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 03000000ac0500007a05000011010000,GameSir G5,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b16,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 03000000373500009710000001020000,GameSir Kaleid Flux,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000ac0500001a06000011010000,GameSir T3 2.02,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 03000000bc2000005656000011010000,GameSir T4w,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, -03000000ac0500001a06000011010000,GameSir-T3 2.02,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000373500009410000010010000,GameSir Tegenaria Lite,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, 030000006f0e00000104000000010000,Gamestop Logic3 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 030000008f0e00000800000010010000,Gasia PlayStation Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, @@ -1322,6 +1338,8 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 030000008f0e00001200000010010000,GreenAsia Joystick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, 0500000047532067616d657061640000,GS gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, 03000000f0250000c383000010010000,GT VX2,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000008a2e0000dd10000011010000,Hand Held Legend GC Ultimate,a:b0,b:b2,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,misc2:b24,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b1,y:b3,platform:Linux, +030000008a2e0000df10000011010000,Hand Held Legend ProGCC,a:b1,b:b0,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b3,y:b2,platform:Linux, 06000000adde0000efbe000002010000,Hidromancer Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 03000000d81400000862000011010000,HitBox PS3 PC Analog Mode,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b12,x:b0,y:b3,platform:Linux, 03000000c9110000f055000011010000,HJC Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, @@ -1499,7 +1517,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 050000007e0500000720000001800000,Nintendo Switch Right Joy-Con,a:b1,b:b2,back:b9,leftshoulder:b4,leftstick:b10,leftx:a1~,lefty:a0,rightshoulder:b6,start:b8,x:b0,y:b3,platform:Linux, 05000000010000000100000003000000,Nintendo Wii Remote,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, 050000007e0500003003000001000000,Nintendo Wii U Pro Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux, -050000005a1d00000218000003000000,Nokia GC 5000,a:b9,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005a1d00000218000003000000,Nokia GC 5000,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 030000000d0500000308000010010000,Nostromo n45 Dual Analog,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b12,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b2,y:b3,platform:Linux, 030000007e0500007320000011010000,NSO GameCube Controller,a:b1,b:b3,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b13,lefttrigger:b12,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b4,rightx:a2,righty:a3~,start:b6,x:b0,y:b2,platform:Linux, 030000007e0500001920000011810000,NSO N64 Controller,+rightx:b2,+righty:b3,-rightx:b4,-righty:b10,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b5,rightshoulder:b7,righttrigger:b9,start:b11,platform:Linux, @@ -1613,7 +1631,9 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 0300132d9b2800006500000001010000,Raphnet GameCube Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux, 030000009b2800003200000001010000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux, 030000009b2800006000000001010000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux, +030000009b2800003c00000001010000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Linux, 030000009b2800006100000001010000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Linux, +030000009b2800006300000001010000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Linux, 030000009b2800006400000001010000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Linux, 030000009b2800008000000020020000,Raphnet Wii Classic Adapter,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Linux, 030000009b2800008000000001010000,Raphnet Wii Classic Adapter V3,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Linux, @@ -1671,10 +1691,10 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 03000000790000001100000011010000,Sega Saturn,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b4,start:b9,x:b0,y:b3,platform:Linux, 03000000790000002201000011010000,Sega Saturn,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux, 03000000b40400000a01000000010000,Sega Saturn,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Linux, -03000000632500002305000010010000,ShanWan Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000632500002305000010010000,Shanwan Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, 03000000632500002605000010010000,Shanwan Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 03000000632500007505000010010000,Shanwan Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, -03000000bc2000000055000010010000,Shanwan Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000bc2000000055000010010000,Shanwan Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 03000000f025000021c1000010010000,Shanwan Gioteck PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, 03000000341a00000908000010010000,SL6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, 030000004b2900000430000011000000,Snakebyte Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, @@ -1786,6 +1806,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 050000005e040000050b000002090000,Xbox One Elite Series 2,a:b0,b:b1,back:b136,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 030000005e040000ea02000011050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 030000005e040000ea02000015050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea02000017050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 060000005e040000ea0200000b050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 060000005e040000ea0200000d050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 060000005e040000ea02000016050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, @@ -1812,8 +1833,10 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 060000005e040000120b00000d050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 060000005e040000120b00000f050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 050000005e040000130b000022050000,Xbox Series X Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +060000005e040000120b000011050000,Xbox Series X Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 050000005e040000200b000013050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 050000005e040000200b000017050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000200b000023050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 050000005e040000220b000017050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 03000000450c00002043000010010000,XEOX SL6556 BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, 05000000172700004431000029010000,XiaoMi Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Linux, @@ -1822,4 +1845,5 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 03000000120c0000100e000011010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, 03000000120c0000101e000011010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000120c0000182e000011010000,Zeroplus PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, diff --git a/app/src/main/assets/resources/patches.zip b/app/src/main/assets/resources/patches.zip index c2e815b73a8939dd5391328bc9f0e164b11ceb8d..4d2e3cb5b1d78edb879c69e3c107742f3e67df1e 100644 GIT binary patch delta 243312 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 AR{#J2 diff --git a/app/src/main/java/com/izzy2lost/psx2/MainActivity.java b/app/src/main/java/com/izzy2lost/psx2/MainActivity.java index ad54ba9..bb81698 100644 --- a/app/src/main/java/com/izzy2lost/psx2/MainActivity.java +++ b/app/src/main/java/com/izzy2lost/psx2/MainActivity.java @@ -13,6 +13,7 @@ import android.os.Bundle; import android.text.TextUtils; import android.net.Uri; import android.view.InputDevice; +import android.hardware.input.InputManager; import android.view.InputEvent; import android.view.KeyEvent; import android.view.MotionEvent; @@ -58,6 +59,7 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF private ControllerInputHandler mControllerInputHandler; private Thread mEmulationThread = null; private boolean mHudVisible = false; + private InputManager mInputManager; // Track joystick directional pressed state to avoid duplicate down events @@ -65,6 +67,7 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF private boolean joyDownPressed = false; private boolean joyLeftPressed = false; private boolean joyRightPressed = false; + private boolean controllerUiApplied = false; private AlertDialog mBiosPromptDialog = null; private boolean isThread() { @@ -160,8 +163,11 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF lp.bottomToBottom = ConstraintLayout.LayoutParams.UNSET; lp.topToTop = ConstraintLayout.LayoutParams.UNSET; lp.topToBottom = ConstraintLayout.LayoutParams.UNSET; - lp.setMargins(dp(0), dp(0), dp(0), dp(orientation == Configuration.ORIENTATION_LANDSCAPE ? 2 : 0)); + // Shift the whole D-pad slightly to the right with a small start margin + lp.setMargins(dp(48), dp(0), dp(0), dp(orientation == Configuration.ORIENTATION_LANDSCAPE ? 2 : 0)); llDpad.setLayoutParams(lp); + // Nudge D-pad downward a little + llDpad.setTranslationY(dp(14)); } if (llRight != null) { @@ -388,6 +394,24 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF // Prompt for BIOS if missing maybePromptForBios(); + + // Listen for controller attach/detach and update UI accordingly + mInputManager = (InputManager) getSystemService(Context.INPUT_SERVICE); + if (mInputManager != null) { + mInputManager.registerInputDeviceListener(mInputDeviceListener, null); + } + updateUiForControllerPresence(); + } + + // Public method to open the games covers dialog via controller quick actions + public void openGamesDialog() { + SharedPreferences prefs = getSharedPreferences("app_prefs", MODE_PRIVATE); + String folderUri = prefs.getString("games_folder_uri", null); + if (TextUtils.isEmpty(folderUri)) { + pickGamesFolder(); + } else { + showGamesListOrReselect(Uri.parse(folderUri)); + } } private void setupBackPressedHandler() { @@ -453,6 +477,8 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF }); } + // Games button handled above + // Settings button opens dialog MaterialButton btn_settings = findViewById(R.id.btn_settings); if (btn_settings != null) { @@ -804,6 +830,7 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF private void toggleAllUIVisibility() { allUIHidden = !allUIHidden; int vis = allUIHidden ? View.GONE : View.VISIBLE; + boolean hasController = isAnyControllerConnected(); // Hide/show all UI elements except the toggle button itself View btnSettings = findViewById(R.id.btn_settings); @@ -829,8 +856,8 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF // Hide/show on-screen controls if (!allUIHidden) { - // When showing UI again, restore controls to their previous state - setControlsVisible(true); // You might want to remember the previous state + // When showing with a controller connected, keep touch controls hidden + setControlsVisible(!hasController); } else { // When hiding all UI, also hide controls setControlsVisible(false); @@ -846,6 +873,87 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF if (!allUIHidden) updateRendererButtonLabel(); } + // --- Controller presence handling --- + private final InputManager.InputDeviceListener mInputDeviceListener = new InputManager.InputDeviceListener() { + @Override public void onInputDeviceAdded(int deviceId) { updateUiForControllerPresence(); } + @Override public void onInputDeviceRemoved(int deviceId) { updateUiForControllerPresence(); } + @Override public void onInputDeviceChanged(int deviceId) { updateUiForControllerPresence(); } + }; + + private boolean isControllerDevice(InputDevice device) { + if (device == null) return false; + + // Filter out virtual/built-in devices which can falsely report DPAD sources + try { + if (device.isVirtual()) return false; + } catch (Throwable ignored) {} + + // Heuristic: devices with both vendor and product = 0 are often virtual + try { + if (device.getVendorId() == 0 && device.getProductId() == 0) return false; + } catch (Throwable ignored) {} + + // Filter by name for common virtual/built-in inputs + String name = device.getName(); + if (name != null) { + String lower = name.toLowerCase(); + if (lower.contains("virtual") || lower.contains("uinput") || lower.contains("touch") + || lower.contains("keyboard") || lower.contains("keypad") || lower.contains("gpio")) { + return false; + } + } + + int sources = device.getSources(); + boolean gamepad = (sources & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD; + boolean joystick = (sources & InputDevice.SOURCE_JOYSTICK) == InputDevice.SOURCE_JOYSTICK; + boolean dpad = (sources & InputDevice.SOURCE_DPAD) == InputDevice.SOURCE_DPAD; + + // Consider DPAD-only devices as controllers only if they are external (heuristic above) + return gamepad || joystick || dpad; + } + + private boolean isAnyControllerConnected() { + try { + int[] ids = InputDevice.getDeviceIds(); + for (int id : ids) { + InputDevice dev = InputDevice.getDevice(id); + if (isControllerDevice(dev)) return true; + } + } catch (Throwable ignored) {} + return false; + } + + private void updateUiForControllerPresence() { + boolean hasController = isAnyControllerConnected(); + // Show all UI when no controller; hide UI when a controller is connected. + int vis = hasController ? View.GONE : View.VISIBLE; + + View btnSettings = findViewById(R.id.btn_settings); + View btnFile = findViewById(R.id.btn_file); + View btnBios = findViewById(R.id.btn_bios); + View btnSaves = findViewById(R.id.btn_saves); + View btnHideUI = findViewById(R.id.btn_hide_ui); + MaterialButton btnToggle = findViewById(R.id.btn_toggle_controls); + View llQuickActions = findViewById(R.id.ll_quick_actions); + + if (btnSettings != null) btnSettings.setVisibility(vis); + if (btnFile != null) btnFile.setVisibility(vis); + if (btnBios != null) btnBios.setVisibility(vis); + if (btnSaves != null) btnSaves.setVisibility(vis); + if (btnHideUI != null) btnHideUI.setVisibility(vis); + if (llQuickActions != null) llQuickActions.setVisibility(vis); + if (btnToggle != null) btnToggle.setVisibility(View.VISIBLE); // always visible + // Set toggle icon and internal state + if (btnToggle != null) { + int iconRes = hasController ? R.drawable.visibility_off_24px : R.drawable.visibility_24px; + btnToggle.setIcon(ContextCompat.getDrawable(this, iconRes)); + } + allUIHidden = hasController; + + // Hide on-screen touch controls when a physical controller is connected + setControlsVisible(!hasController); + } + private int getCurrentRendererPref() { SharedPreferences prefs = getSharedPreferences("app_prefs", MODE_PRIVATE); return prefs.getInt("renderer", 14); @@ -1256,6 +1364,7 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF } // Re-assert full screen when returning to the activity hideStatusBar(); + updateUiForControllerPresence(); } @Override @@ -1267,6 +1376,10 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF HIDDeviceManager.release(mHIDDeviceManager); mHIDDeviceManager = null; } + if (mInputManager != null) { + try { mInputManager.unregisterInputDeviceListener(mInputDeviceListener); } catch (Exception ignored) {} + mInputManager = null; + } //// if (mEmulationThread != null) { try { @@ -1376,13 +1489,29 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF @Override public boolean dispatchKeyEvent(KeyEvent event) { - // Intercept controller DPAD/gamepad keys before focused views consume them - if (mControllerInputHandler != null && mControllerInputHandler.handleKeyEvent(event)) { - return true; + // Allow dialogs to receive DPAD navigation when visible + if (!isAnyAppDialogShowing()) { + // Intercept controller DPAD/gamepad keys before focused views consume them + if (mControllerInputHandler != null && mControllerInputHandler.handleKeyEvent(event)) { + return true; + } } return super.dispatchKeyEvent(event); } + private boolean isAnyAppDialogShowing() { + try { + java.util.List frags = getSupportFragmentManager().getFragments(); + for (androidx.fragment.app.Fragment f : frags) { + if (f instanceof androidx.fragment.app.DialogFragment) { + android.app.Dialog d = ((androidx.fragment.app.DialogFragment) f).getDialog(); + if (d != null && d.isShowing()) return true; + } + } + } catch (Throwable ignored) {} + return false; + } + @Override public boolean onKeyDown(int p_keyCode, KeyEvent p_event) { // Use only our controller handler - disable SDL fallback to avoid conflicts @@ -1509,11 +1638,14 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF @Override public void onControllerButtonPressed(int controllerId, int button, boolean pressed) { android.util.Log.d("Controller", "Controller " + controllerId + " button " + button + " (" + getButtonName(button) + ") " + (pressed ? "pressed" : "released")); - + // Send controller input to native code using existing setPadButton method // Range 255 for pressed, 0 for released (matching PS2 button range) int range = pressed ? 255 : 0; NativeApp.setPadButton(button, range, pressed); + + // Hide touch controls as soon as controller activity is detected + maybeActivateControllerUi(); } private String getButtonName(int button) { @@ -1541,9 +1673,21 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF @Override public void onControllerAnalogInput(int controllerId, int axis, float value) { android.util.Log.d("Controller", "Controller " + controllerId + " axis " + axis + " (" + getAxisName(axis) + ") value " + value); - + // Send analog input to native code using setPadButton handleAnalogInput(axis, value); + + // Hide touch controls on analog movement as well + if (Math.abs(value) > 0.1f) { + maybeActivateControllerUi(); + } + } + + private void maybeActivateControllerUi() { + if (!controllerUiApplied) { + controllerUiApplied = true; + runOnUiThread(() -> setControlsVisible(false)); + } } @Override diff --git a/app/src/main/java/com/izzy2lost/psx2/QuickActionsDialogFragment.java b/app/src/main/java/com/izzy2lost/psx2/QuickActionsDialogFragment.java index 493c185..dab6480 100644 --- a/app/src/main/java/com/izzy2lost/psx2/QuickActionsDialogFragment.java +++ b/app/src/main/java/com/izzy2lost/psx2/QuickActionsDialogFragment.java @@ -19,11 +19,22 @@ public class QuickActionsDialogFragment extends DialogFragment { public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { View view = LayoutInflater.from(requireContext()).inflate(R.layout.dialog_quick_actions, null, false); + MaterialButton btnOpenGames = view.findViewById(R.id.btn_open_games); MaterialButton btnExitToMenu = view.findViewById(R.id.btn_exit_to_menu); MaterialButton btnRestartGame = view.findViewById(R.id.btn_restart_game); MaterialButton btnQuitApp = view.findViewById(R.id.btn_quit_app); MaterialButton btnCancel = view.findViewById(R.id.btn_cancel); + // Open Games/Covers dialog + if (btnOpenGames != null) { + btnOpenGames.setOnClickListener(v -> { + if (requireActivity() instanceof MainActivity) { + ((MainActivity) requireActivity()).openGamesDialog(); + } + dismissAllowingStateLoss(); + }); + } + // Exit to Menu - not implemented yet, show placeholder if (btnExitToMenu != null) { btnExitToMenu.setOnClickListener(v -> { @@ -98,4 +109,4 @@ public class QuickActionsDialogFragment extends DialogFragment { // As a fallback ensure process exit System.exit(0); } -} \ No newline at end of file +} diff --git a/app/src/main/res/layout-land/activity_main.xml b/app/src/main/res/layout-land/activity_main.xml index 7fe3454..330953a 100644 --- a/app/src/main/res/layout-land/activity_main.xml +++ b/app/src/main/res/layout-land/activity_main.xml @@ -348,6 +348,7 @@ android:visibility="visible" app:layout_constraintBottom_toTopOf="@id/ll_pad_joy" app:layout_constraintStart_toStartOf="parent" + android:layout_marginStart="12dp" android:layout_marginBottom="2dp"> + + - \ No newline at end of file + diff --git a/gradle.properties b/gradle.properties index 3e927b1..c47c57e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,4 +18,5 @@ android.useAndroidX=true # Enables namespacing of each library's R class so that its R class includes only the # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library -android.nonTransitiveRClass=true \ No newline at end of file +android.nonTransitiveRClass=true +android.suppressUnsupportedCompileSdk=36 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index dedd5d1..7705927 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME