Compare commits

...

11 Commits

Author SHA1 Message Date
lightningterror
a8f3ec8184 GSClut: Get rid of m_read.dirty assert in GetAlphaMinMax32.
Replace it with a log.
2025-05-21 03:40:22 +02:00
lightningterror
7796b2a12b GS/HW: Add sanity/hazard checks for DATE and Texture barriers.
When checking for full barrier, also check if texture barriers
are supported.

Get rid of preprocessSel in DX11, turn off full barrier and related
stuff when not supported in rendererhw instead.

Check if StencilDate types are actually enabled, don't want to turn
it on for any others.
2025-05-21 03:40:22 +02:00
RedDevilus
d9cffd58ba GameDB: Add missing variants + fixes
Some games are missing some gamefixes or other type of fixes. Also added comment for like Energy Airforce where a legacy code never had a comment and removed mtvu for some variant + need to check in future to amend properly. Also missing entry SLPS-25875:
  name: "xxxHolic - Shigatsu Tsuitachi no Izayoi Sowa [Best Collection]"
2025-05-21 00:56:32 +02:00
refractionpcsx2
e566386240 GS/TC: only kill old misaligned targets on preload from previous frames. 2025-05-20 20:21:05 +02:00
refractionpcsx2
45af1e172f GS/HW: Improve shuffle pre-detection 2025-05-20 20:21:05 +02:00
refractionpcsx2
768b2e52a6 GS/TC: Don't allow Tex in RT 32bit target use as 16bit if not a shuffle 2025-05-20 20:21:05 +02:00
Ziemas
7abd2009b0 debugger: fix thread view row lookup 2025-05-20 11:57:11 -04:00
chaoticgd
46f075e891 DebugTools: Fix uninitialized variable in breakpoint code 2025-05-19 22:17:54 -04:00
lightningterror
832c381ac4 GS/HW: Allow partial depth copy on dx12. 2025-05-19 22:10:42 +02:00
SquishyLeaf
e021282264 CI: Fix script building universal dependencies on macOS
- Skip arm64 binaries when looking for x86_64 binaries to merge

- Change Qt download link to archive

- Build universal binaries for libjpegturbo, PlutoVG and PlutoSVG
2025-05-19 14:21:14 -04:00
PCSX2 Bot
2a60d385c6 [ci skip] PAD: Update to latest controller database. 2025-05-19 18:42:36 +02:00
9 changed files with 227 additions and 89 deletions

View File

@@ -11,7 +11,7 @@ merge_binaries() {
"
pushd "$X86DIR"
for X86BIN in $(find . -type f \( -name '*.dylib' -o -name '*.a' -o -perm +111 \)); do
if file "$X86DIR/$X86BIN" | grep "Mach-O " >/dev/null; then
if file "$X86DIR/$X86BIN" | grep "Mach-O.*x86_64" >/dev/null; then
ARMBIN="${ARMDIR}/${X86BIN}"
echo "Merge $ARMBIN to $X86BIN..."
lipo -create "$X86BIN" "$ARMBIN" -o "$X86BIN"
@@ -112,11 +112,11 @@ curl -C - -L \
-O "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$LIBWEBP.tar.gz" \
-O "https://ffmpeg.org/releases/ffmpeg-$FFMPEG.tar.xz" \
-O "https://github.com/KhronosGroup/MoltenVK/archive/refs/tags/v$MOLTENVK.tar.gz" \
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtbase-everywhere-src-$QT.tar.xz" \
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtimageformats-everywhere-src-$QT.tar.xz" \
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere-src-$QT.tar.xz" \
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz" \
-O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qtbase-everywhere-src-$QT.tar.xz" \
-O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qtimageformats-everywhere-src-$QT.tar.xz" \
-O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere-src-$QT.tar.xz" \
-O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \
-O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz" \
-o "shaderc-$SHADERC.tar.gz" "https://github.com/google/shaderc/archive/refs/tags/v$SHADERC.tar.gz" \
-o "shaderc-glslang-$SHADERC_GLSLANG.tar.gz" "https://github.com/KhronosGroup/glslang/archive/$SHADERC_GLSLANG.tar.gz" \
-o "shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Headers/archive/$SHADERC_SPIRVHEADERS.tar.gz" \
@@ -213,8 +213,11 @@ echo "Installing libjpegturbo..."
rm -fr "libjpeg-turbo-$LIBJPEGTURBO"
tar xf "libjpeg-turbo-$LIBJPEGTURBO.tar.gz"
cd "libjpeg-turbo-$LIBJPEGTURBO"
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_ARM64" -DENABLE_STATIC=OFF -DENABLE_SHARED=ON -B build-arm64
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_X64" -DENABLE_STATIC=OFF -DENABLE_SHARED=ON -B build
make -C build "-j$NPROCS"
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_ARM64" -DENABLE_STATIC=OFF -DENABLE_SHARED=ON -B build-arm64
make -C build-arm64 "-j$NPROCS"
merge_binaries $(realpath build) $(realpath build-arm64)
make -C build install
cd ..
@@ -380,7 +383,7 @@ echo "Building PlutoVG..."
rm -fr "plutovg-$PLUTOVG"
tar xf "plutovg-$PLUTOVG.tar.gz"
cd "plutovg-$PLUTOVG"
cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DPLUTOVG_BUILD_EXAMPLES=OFF -B build
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DBUILD_SHARED_LIBS=ON -DPLUTOVG_BUILD_EXAMPLES=OFF -B build
make -C build "-j$NPROCS"
make -C build install
cd ..
@@ -389,7 +392,7 @@ echo "Building PlutoSVG..."
rm -fr "plutosvg-$PLUTOSVG"
tar xf "plutosvg-$PLUTOSVG.tar.gz"
cd "plutosvg-$PLUTOSVG"
cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DPLUTOSVG_ENABLE_FREETYPE=ON -DPLUTOSVG_BUILD_EXAMPLES=OFF -B build
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DBUILD_SHARED_LIBS=ON -DPLUTOSVG_ENABLE_FREETYPE=ON -DPLUTOSVG_BUILD_EXAMPLES=OFF -B build
make -C build "-j$NPROCS"
make -C build install
cd ..

View File

@@ -818,6 +818,10 @@ PCPX-96310:
name-sort: "えくすとりーむ れーしんぐ SSX [たいけんばん]"
name-en: "X-treme Racing SSX [Trial]"
region: "NTSC-J"
roundModes:
eeRoundMode: 0 # Fixes riders vanishing into the floor.
gsHWFixes:
recommendedBlendingLevel: 4 # Fixes missing lighting.
PCPX-96311:
name: "GRAN TURISMO 3 [店頭試遊ディスク Vol.1]"
name-sort: "ぐらんつーりすも 3 てんとうしゆうでぃすくVol.1"
@@ -1291,6 +1295,8 @@ SCAJ-20001:
SCAJ-20002:
name: "Gallop Racer 6 - Revolution"
region: "NTSC-Unk"
gsHWFixes:
recommendedBlendingLevel: 2 # Improves lighting, maximum blending is needed for full accuracy.
SCAJ-20003:
name: "アルゴスの戦士"
name-sort: "あるごすのせんし"
@@ -1441,7 +1447,7 @@ SCAJ-20025:
name: "Grand Prix Challenge"
region: "NTSC-Unk"
gameFixes:
- VIFFIFOHack
- VIFFIFOHack # TODO check what this fixes.
SCAJ-20026:
name: "Generation of Chaos 3"
region: "NTSC-Unk"
@@ -1500,8 +1506,10 @@ SCAJ-20040:
SCAJ-20041:
name: "Energy Airforce - Aim Strike!"
region: "NTSC-Unk"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding.
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SCAJ-20043:
name: "Chain Dive"
@@ -10390,6 +10398,11 @@ SCPS-55044:
name-sort: "えなじーえあふぉーす [Asiaばん]"
name-en: "Energy Airforce [Asia Version]"
region: "NTSC-J"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SCPS-55045:
name: "ポイニーポイン"
name-sort: "ぽいにーぽいん"
@@ -17182,7 +17195,7 @@ SLES-51296:
region: "PAL-M5"
compat: 5
gameFixes:
- VIFFIFOHack
- VIFFIFOHack # TODO check what this fixes.
SLES-51298:
name: "Jimmy Neutron - Boy Genius"
region: "PAL-E"
@@ -17857,9 +17870,19 @@ SLES-51646:
name: "Energy Airforce"
region: "PAL-M4"
compat: 5
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SLES-51647:
name: "Energy Airforce"
region: "PAL-I"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SLES-51649:
name: "Judge Dredd - Dredd vs. Death"
region: "PAL-M4"
@@ -19363,20 +19386,26 @@ SLES-52259:
SLES-52265:
name: "Energy Airforce - Aim Strike!"
region: "PAL-E"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding.
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SLES-52266:
name: "Energy Airforce - Aim Strike!"
region: "PAL-F"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding.
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SLES-52267:
name: "Energy Airforce - Aim Strike!"
region: "PAL-I"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding.
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SLES-52275:
name: "Way of the Samurai 2"
@@ -19521,6 +19550,11 @@ SLES-52309:
SLES-52310:
name: "Energy Airforce"
region: "PAL-E"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SLES-52312:
name: "World Championship Rugby"
region: "PAL-E-F"
@@ -21873,7 +21907,7 @@ SLES-53079:
name: "Ys - The Ark of Napishtim"
region: "PAL-M5"
gameFixes:
- EETimingHack
- EETimingHack # TODO check what this fixes.
SLES-53080:
name: "Extreme Sprint 3010"
region: "PAL-E"
@@ -30318,6 +30352,11 @@ SLKA-25001:
SLKA-25002:
name: "Energy Airforce"
region: "NTSC-K"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SLKA-25003:
name: "Herdy Gerdy"
region: "NTSC-K"
@@ -30500,6 +30539,8 @@ SLKA-25053:
SLKA-25054:
name: "Grand Prix Challenge"
region: "NTSC-K"
gameFixes:
- VIFFIFOHack # TODO check what this fixes.
SLKA-25055:
name: "Hitman 2 - Silent Assassin"
region: "NTSC-K"
@@ -30996,8 +31037,10 @@ SLKA-25180:
SLKA-25181:
name: "Energy Airforce Aim Strike!"
region: "NTSC-K"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding.
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SLKA-25182:
name: "Hajime no Ippo2 Victorious Road"
@@ -31095,6 +31138,9 @@ SLKA-25204:
SLKA-25205:
name: "Dragon Ball Z 3"
region: "NTSC-K"
gsHWFixes:
halfPixelOffset: 4 # Aligns post effects.
nativeScaling: 2 # Fixes post processing and lighting smoothness and position.
SLKA-25206:
name: "Burnout 3 - Takedown"
region: "NTSC-K"
@@ -31308,7 +31354,7 @@ SLKA-25249:
name: "Ys - The Ark of Napishtim [with Guide Book]"
region: "NTSC-K"
gameFixes:
- EETimingHack
- EETimingHack # TODO check what this fixes.
SLKA-25250:
name: "GoldenEye - Rogue Agent"
region: "NTSC-K"
@@ -34290,6 +34336,11 @@ SLPM-60183:
name-sort: "えなじーえあふぉーす TRIAL VERSION [たいけんばん]"
name-en: "Energy Airforce TRIAL VERSION [Trial]"
region: "NTSC-J"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SLPM-60184:
name: "GUNGRAVE [体験版]"
name-sort: "がんぐれいぶ [たいけんばん]"
@@ -35289,6 +35340,9 @@ SLPM-61111:
name-sort: "どらごんぼーるZ3 [たいけんばん]"
name-en: "Dragon Ball Z 3 [Trial]"
region: "NTSC-J"
gsHWFixes:
halfPixelOffset: 4 # Aligns post effects.
nativeScaling: 2 # Fixes post processing and lighting smoothness and position.
SLPM-61112:
name: "天星 ソード オブ デスティニー [体験版]"
name-sort: "てんせい そーど おぶ ですてぃにー [たいけんばん]"
@@ -40690,6 +40744,11 @@ SLPM-65177:
name-en: "Energy Airforce"
region: "NTSC-J"
compat: 5
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SLPM-65178:
name: "Ferrari F355 challenge"
name-sort: "ふぇらーり F355 ちゃれんじ"
@@ -41333,7 +41392,7 @@ SLPM-65276:
name-en: "Grand Prix Challenge"
region: "NTSC-J"
gameFixes:
- VIFFIFOHack
- VIFFIFOHack # TODO check what this fixes.
SLPM-65277:
name: "DDRMAX2 Dance Dance Revolution 7th Mix"
name-sort: "だんすだんすれぼりゅーしょん まっくす2 Dance Dance Revolution 7th Mix"
@@ -41869,10 +41928,9 @@ SLPM-65374:
name-en: "Energy Airforce - Aim Strike!"
region: "NTSC-J"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame.
mtvu: 0
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding.
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SLPM-65375:
name: "真・三國無双3 & 真・三國無双3 猛将伝 [ディスク 1] [プレミアムパック]"
@@ -44462,14 +44520,14 @@ SLPM-65829:
name-en: "Ys - The Ark of Napishtim [Limited Edition]"
region: "NTSC-J"
gameFixes:
- EETimingHack
- EETimingHack # TODO check what this fixes.
SLPM-65830:
name: "イース ~ナピシュテムの匣~ [初回生産版]"
name-sort: "いーす6 なぴしゅてむのはこ [しょかいせいさんばん]"
name-en: "Ys - The Ark of Napishtim [Limited Edition]"
region: "NTSC-J"
gameFixes:
- EETimingHack
- EETimingHack # TODO check what this fixes.
SLPM-65831:
name: "ハローキティのピコピコ大作戦!"
name-sort: "はろーきてぃのぴこぴこだいさくせん!"
@@ -44501,7 +44559,7 @@ SLPM-65836:
name-en: "Ys - The Ark of Napishtim"
region: "NTSC-J"
gameFixes:
- EETimingHack
- EETimingHack # TODO check what this fixes.
SLPM-65837:
name: "ターミネーター3: ザ・レデンプション"
name-sort: "たーみねーたー 3: ざ れでんぷしょん"
@@ -47556,6 +47614,8 @@ SLPM-66326:
name-sort: "いーす なぴしゅてむのはこ [KONAMI The BEST]"
name-en: "Ys - The Ark of Napishtim [KONAMI The BEST]"
region: "NTSC-J"
gameFixes:
- EETimingHack # TODO check what this fixes.
SLPM-66327:
name: "ウォレスとグルミット野菜畑で大ピンチ!"
name-sort: "うぉれすとぐるみっとやさいはたけでだいぴんち!"
@@ -50342,6 +50402,11 @@ SLPM-66774:
name-sort: "えなじーえあーふぉーす [Eternal Hits]"
name-en: "Energy Airforce [Eternal Hits]"
region: "NTSC-J"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SLPM-66775:
name: "タイトーメモリーズ 上巻 [Eternal Hits]"
name-sort: "たいとーめもりーず 01 じょうかん [Eternal Hits]"
@@ -52881,6 +52946,11 @@ SLPM-74414:
name-sort: "えなじーえあーふぉーす [PlayStation2 The Best]"
name-en: "Energy Airforce [PlayStation2 The Best]"
region: "NTSC-J"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
SLPM-74415:
name: "忍 -Shinobi- [PlayStation2 the Best]"
name-sort: "しのび [PlayStation2 the Best]"
@@ -58218,6 +58288,9 @@ SLPS-25460:
name-sort: "どらごんぼーるZ3"
name-en: "Dragon Ball Z 3"
region: "NTSC-J"
gsHWFixes:
halfPixelOffset: 4 # Aligns post effects.
nativeScaling: 2 # Fixes post processing and lighting smoothness and position.
SLPS-25461:
name: "アーマード・コア フォーミュラフロント"
name-sort: "あーまーどこあ ふぉーみゅらふろんと"
@@ -59036,6 +59109,8 @@ SLPS-25602:
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol. 2 ぼんばーぱわふる&ゆめゆめわーるどDX"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol. 2 - Bomber Powerfull & Yume Yume World DX"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25603:
name: "天星 SWORDS OF DESTINY Best Collection"
name-sort: "てんせい SWORDS OF DESTINY Best Collection"
@@ -59134,6 +59209,8 @@ SLPS-25620:
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol. 3 CRまりりん・もんろー"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol. 3 - CR Marilyn Monroe"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25621:
name: "かしまし ~ガールミーツガール~「初めての夏物語。」限定版"
name-sort: "かしまし がーるみーつがーる「はじめてのなつものがたり」げんていばん"
@@ -59322,6 +59399,8 @@ SLPS-25648:
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol. 5 CRしんせいきえゔぁんげりおん せかんどいんぱくと&ぱちすろしんせいきえゔぁんげりおん"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol. 5 - CR Shinseiki Evangelion Second Impact & Pachisuro Shinseiki Evangelion"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25649:
name: "宇宙刑事魂"
name-sort: "うちゅうけいじたましい"
@@ -59504,6 +59583,8 @@ SLPS-25672:
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol. 6 7Cafe けいしきめいぼんばーぱわふる2"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol. 6 7Cafe - Katashiki Mei Bomber Powerfull 2"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25673:
name: "ラスト・エスコート~黒蝶スペシャルナイト~"
name-sort: "らすと・えすこーと くろちょうすぺしゃるないと"
@@ -59659,6 +59740,8 @@ SLPS-25699:
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol. 8 CRまつうらあや"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol. 8 CR Matsuura Aya"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25700:
name: "蒼い海のトリスティア ~ナノカ・フランカ発明工房記~ The Best Price"
name-sort: "あおいうみのとりすてぃあ なのかふらんかはつめいこうぼうき The Best Price"
@@ -59931,11 +60014,15 @@ SLPS-25745:
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol. 1 CRしんせいきえゔぁんげりおん [すぺしゃるぷらいすばん]"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol. 1 - CR Shinseiki Evangelion [Special Price Edition]"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25746:
name: "必勝パチンコ★パチスロ攻略シリーズ Vol.9 CRフィーバー キャプテンハーロック"
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol. 9 CRふぃーばー きゃぷてんはーろっく"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol. 9 CR Fever Captain Harlock"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25747:
name: "餓狼伝 Breakblow Fist or Twist"
name-sort: "がろうでん Breakblow Fist or Twist"
@@ -60276,6 +60363,8 @@ SLPS-25806:
name-en: "Katekyoo Hitman Reborn! Dream Hyper Battle - Shinuki no Honoo to Kuroki Kioku"
region: "NTSC-J"
compat: 5
gsHWFixes:
roundSprite: 2 # Reduces font artifacts but characters still have major artifacts.
SLPS-25807:
name: "セイント・ビースト ~螺旋の章~ [限定版]"
name-sort: "せいんと びーすと らせんのしょう [げんていばん]"
@@ -60311,6 +60400,8 @@ SLPS-25813:
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol.11 しんせいきえゔぁんげりおん まごころをきみに"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol.11 - Shinseiki Evangelion - Magokoro o, Kimi ni"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25814:
name: "新世紀GPX サイバーフォーミュラ Road To The INFINITY 4"
name-sort: "しんせいきGPX さいばーふぉーみゅら Road To The INFINITY 4"
@@ -60618,11 +60709,15 @@ SLPS-25861:
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol.10 CRしんせいきえゔぁんげりおん きせきのかちは [すぺしゃるぷらいすばん]"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol.10 CR Neon Genesis Evangelion Kiseki no Kachi wa [Special Price Edition]"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25862:
name: "必勝パチンコ★パチスロ攻略シリーズ Vol.5 CR新世紀エヴァンゲリオンセカンドインパクト [スペシャルプライス版]"
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol. 5 CRしんせいきえゔぁんげりおん せかんどいんぱくと [すぺしゃるぷらいすばん]"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol.5 - CR Neon Genesis Evangelion Sekandoinpakuto & Pachislot Neon Genesis Evangelion [Special Price Edition]"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25863:
name: "NEOGEOオンラインコレクション THE BEST 餓狼伝説 バトルアーカイブズ1"
name-sort: "ねおじおおんらいんこれくしょん THE BEST がろうでんせつ ばとるあーかいぶず1"
@@ -60658,6 +60753,8 @@ SLPS-25869:
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol.12 CRしんせいきえゔぁんげりおん しと ふたたび"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol.12 CR Shinseiki Evangelion - Shito, Futatabi"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25871:
name: "ドラスティックキラー"
name-sort: "どらすてぃっくきらー"
@@ -60673,6 +60770,11 @@ SLPS-25874:
name-sort: "しんぷる2000しりーず Vol.123 THEおふぃすらぶじけんぼ れいじょうたんてい"
name-en: "Simple 2000 Series Vol. 123 - The Office Love Jikenbo - Reijou Tantei"
region: "NTSC-J"
SLPS-25875:
name: "xxxHolic - Shigatsu Tsuitachi no Izayoi Sowa [Best Collection]"
name-sort: "ほりっく わたぬきのいざよいそうわ [Best Collection]"
name-en: "xxxHolic - Shigatsu Tsuitachi no Izayoi Sowa [Best Collection]"
region: "NTSC-J"
SLPS-25876:
name: "新牧場物語 ピュア イノセントライフ [Best Collection]"
name-sort: "しんぼくじょうものがたり ぴゅあ いのせんとらいふ [Best Collection]"
@@ -60865,6 +60967,8 @@ SLPS-25904:
name-sort: "かてきょーひっとまんりぼーん! きんだんのやみのでるた"
name-en: "Katekyoo Hitman Reborn! Dream Hyper Battle - Kindan no Yami no Delta"
region: "NTSC-J"
gsHWFixes:
roundSprite: 2 # Reduces font artifacts but characters still have major artifacts.
SLPS-25905:
name: "ドラゴンボールZ インフィニットワールド"
name-sort: "どらごんぼーるZ いんふぃにっとわーるど"
@@ -60894,16 +60998,22 @@ SLPS-25909:
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol.13 しんせいきえヴぁんげりおん~やくそくのとき~"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol.13 - Shin Seiki Evangelion - Yakusoku no Toki"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25910:
name: "家庭教師ヒットマンREBORNドリームハイパーバトル死ぬ気の炎と黒き記憶 [Best Collection]"
name-sort: "かてきょーひっとまんりぼーん! どりーむはいぱーばとる!しぬきのほのおとくろききおく [Best Collection]"
name-en: "Katekyoo Hitman Reborn! Dream Hyper Battle - Shinuki no Honoo to Kuroki Kioku [Best Collection]"
region: "NTSC-J"
gsHWFixes:
roundSprite: 2 # Reduces font artifacts but characters still have major artifacts.
SLPS-25911:
name: "必勝パチンコ★パチスロ攻略シリーズ Vol.11 新世紀エヴァンゲリオン~まごころを、君に~ [スペシャルプライス版]"
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol.11 しんせいきえゔぁんげりおん まごころを、きみに [すぺしゃるぷらいすばん]"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol.11 - Shinseiki Evangelion - Magokoro wo, Kimi ni [Special Price Edition]"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25912:
name: "ソウルイーター バトルレゾナンス"
name-sort: "そうるいーたー ばとるれぞなんす"
@@ -61076,11 +61186,15 @@ SLPS-25942:
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol.14 しんせいきえゔぁんげりおん さいごのししゃ"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol.14 - CR Shinseiki Evangelion - Saigo no Shisha"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25943:
name: "必勝パチンコ★パチスロ攻略シリーズ Vol.14 CR新世紀エヴァンゲリオン最後のシ者 [限定版]"
name-sort: "ひっしょうぱちんこぱちすろこうりゃくしりーず Vol.14 しんせいきえゔぁんげりおん さいごのししゃ [げんていばん]"
name-en: "Hisshou Pachinko Pachi-Slot Kouryaku Series Vol.14 - CR Shinseiki Evangelion - Saigo no Shisha [Limited Edition]"
region: "NTSC-J"
gameFixes:
- EETimingHack # Fixes FMV hanging.
SLPS-25944:
name: "仮面ライダー クライマックスヒーローズ"
name-sort: "かめんらいだー くらいまっくすひーろーず"
@@ -62048,6 +62162,9 @@ SLPS-73259:
name-sort: "どっとはっく G.U. Vol.1 さいたん [PlayStation2 the Best]"
name-en: ".hack//G.U. Vol.1 - Rebirth [PlayStation2 the Best]"
region: "NTSC-J"
gsHWFixes:
halfPixelOffset: 2 # Sharpens world in far distances.
roundSprite: 1 # Corrects proportions of some letters in HUD.
SLPS-73263:
name: "アルトネリコ2 世界に響く少女たちの創造詩 [PlayStation2 the Best]"
name-sort: "あるとねりこ2 せかいにひびくしょうじょたちのそうぞうし [PlayStation2 the Best]"
@@ -65288,7 +65405,7 @@ SLUS-20630:
region: "NTSC-U"
compat: 5
gameFixes:
- VIFFIFOHack
- VIFFIFOHack # TODO check what this fixes.
SLUS-20631:
name: "NFL Blitz Pro"
region: "NTSC-U"
@@ -67279,7 +67396,7 @@ SLUS-20980:
region: "NTSC-U"
compat: 5
gameFixes:
- EETimingHack
- EETimingHack # TODO check what this fixes.
SLUS-20981:
name: "Teenage Mutant Ninja Turtles 2 - Battle Nexus"
region: "NTSC-U"
@@ -70550,6 +70667,9 @@ SLUS-21480:
- "SLUS-21488"
- "SLUS-21489"
- "SLUS-21480"
gsHWFixes:
halfPixelOffset: 2 # Sharpens world in far distances.
roundSprite: 1 # Corrects proportions of some letters in HUD.
SLUS-21481:
name: "NCAA March Madness 07"
region: "NTSC-U"
@@ -74120,10 +74240,9 @@ TCPS-10073:
name-en: "Energy Airforce - Aim Strike! [TAITO 2002]"
region: "NTSC-J"
speedHacks:
instantVU1: 0 # Fixes hanging while going ingame.
mtvu: 0
instantVU1: 0 # Fixes hanging while going ingame easiest test is making a replay and load the replay once or more which gives you blackscreen and 100% EE with low performance.
gsHWFixes:
recommendedBlendingLevel: 5 # Alleviates color banding.
recommendedBlendingLevel: 5 # Alleviates color banding also the cockpit and missile shadows are darker if enabled.
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
TCPS-10074:
name: "スペースインベーダー アニバーサリー [筐体型コントローラ同梱セット]"

View File

@@ -1100,6 +1100,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
050000005769696d6f74652028303000,Wii Remote,a:b4,b:b5,back:b7,dpdown:b3,dpleft:b0,dpright:b1,dpup:b2,guide:b8,leftshoulder:b11,lefttrigger:b12,leftx:a0,lefty:a1,start:b6,x:b10,y:b9,platform:Mac OS X,
050000005769696d6f74652028313800,Wii U Pro Controller,a:b16,b:b15,back:b7,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b8,leftshoulder:b19,leftstick:b23,lefttrigger:b21,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b24,righttrigger:b22,rightx:a2,righty:a3,start:b6,x:b18,y:b17,platform:Mac OS X,
030000005e0400008e02000000000000,Xbox 360 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,
030000005e0400008e02000010010000,Xbox 360 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,
030000006f0e00000104000000000000,Xbox 360 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,
03000000c6240000045d000000000000,Xbox 360 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,
030000005e0400000a0b000000000000,Xbox Adaptive 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,
@@ -1766,6 +1767,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
050000005e040000e002000003090000,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:Linux,
050000005e040000fd02000003090000,Xbox One Controller,a:b0,b:b1,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,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,
050000005e040000fd02000030110000,Xbox One 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,
060000005e040000dd02000003020000,Xbox One 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,
050000005e040000e302000002090000,Xbox One Elite,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,
050000005e040000220b000013050000,Xbox One Elite 2 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,
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,

View File

@@ -65,16 +65,17 @@ void ThreadView::openContextMenu(QPoint pos)
void ThreadView::onDoubleClick(const QModelIndex& index)
{
auto real_index = m_proxy_model->mapToSource(index);
switch (index.column())
{
case ThreadModel::ThreadColumns::ENTRY:
{
goToInMemoryView(m_model->data(index, Qt::UserRole).toUInt(), true);
goToInDisassembler(m_model->data(real_index, Qt::UserRole).toUInt(), true);
break;
}
default: // Default to PC
{
QModelIndex pc_index = m_model->index(index.row(), ThreadModel::ThreadColumns::PC);
QModelIndex pc_index = m_model->index(real_index.row(), ThreadModel::ThreadColumns::PC);
goToInDisassembler(m_model->data(pc_index, Qt::UserRole).toUInt(), true);
break;
}

View File

@@ -33,7 +33,7 @@ struct BreakPoint
bool temporary = false;
bool stepping = false;
bool hasCond;
bool hasCond = false;
BreakPointCond cond;
BreakPointCpu cpu;

View File

@@ -462,7 +462,8 @@ void GSClut::GetAlphaMinMax32(int& amin_out, int& amax_out)
{
// call only after Read32
pxAssert(!m_read.dirty);
if (m_read.dirty)
GL_INS("GSClut: GetAlphaMinMax32 m_read.dirty");
if (m_read.adirty)
{

View File

@@ -2477,20 +2477,9 @@ D3D_SHADER_MACRO* GSDevice11::ShaderMacro::GetPtr()
return (D3D_SHADER_MACRO*)mout.data();
}
/// Checks that we weren't sent things we declared we don't support
/// Clears things we don't support that can be quietly disabled
static void preprocessSel(GSDevice11::PSSelector& sel)
{
pxAssert(sel.write_rg == 0); // Not supported, shouldn't be sent
}
void GSDevice11::RenderHW(GSHWDrawConfig& config)
{
pxAssert(!config.require_full_barrier); // We always specify no support so it shouldn't request this
preprocessSel(config.ps);
GSVector2i rtsize = (config.rt ? config.rt : config.ds)->GetSize();
const GSVector2i rtsize = (config.rt ? config.rt : config.ds)->GetSize();
GSTexture* colclip_rt = g_gs_device->GetColorClipTexture();
if (colclip_rt)
@@ -2542,7 +2531,8 @@ void GSDevice11::RenderHW(GSHWDrawConfig& config)
StretchRect(colclip_rt ? colclip_rt : config.rt, GSVector4(config.drawarea) / GSVector4(rtsize).xyxy(),
primid_tex, GSVector4(config.drawarea), m_date.primid_init_ps[static_cast<u8>(config.datm)].get(), nullptr, false);
}
else if (config.destination_alpha != GSHWDrawConfig::DestinationAlphaMode::Off)
else if (config.destination_alpha == GSHWDrawConfig::DestinationAlphaMode::Stencil ||
config.destination_alpha == GSHWDrawConfig::DestinationAlphaMode::StencilOne)
{
const GSVector4 src = GSVector4(config.drawarea) / GSVector4(config.ds->GetSize()).xyxy();
const GSVector4 dst = src * 2.0f - 1.0f;
@@ -2676,7 +2666,6 @@ void GSDevice11::RenderHW(GSHWDrawConfig& config)
if (config.alpha_second_pass.enable)
{
preprocessSel(config.alpha_second_pass.ps);
if (config.cb_ps.FogColor_AREF.a != config.alpha_second_pass.ps_aref)
{
config.cb_ps.FogColor_AREF.a = config.alpha_second_pass.ps_aref;

View File

@@ -2859,7 +2859,8 @@ void GSRendererHW::Draw()
(m_vt.m_primclass == GS_SPRITE_CLASS || (m_vt.m_primclass == GS_TRIANGLE_CLASS && (m_index.tail % 6) == 0 && TrianglesAreQuads(true) && m_index.tail > 6)))
{
// Tail check is to make sure we have enough strips to go all the way across the page, or if it's using a region clamp could be used to draw strips.
if (GSLocalMemory::m_psm[m_cached_ctx.TEX0.PSM].bpp == 16 && (m_index.tail >= (m_cached_ctx.TEX0.TBW * 2) || m_cached_ctx.CLAMP.WMS > CLAMP_CLAMP || m_cached_ctx.CLAMP.WMT > CLAMP_CLAMP))
if (GSLocalMemory::m_psm[m_cached_ctx.TEX0.PSM].bpp == 16 &&
(m_index.tail >= (m_cached_ctx.TEX0.TBW * 2) || m_cached_ctx.TEX0.TBP0 == m_cached_ctx.FRAME.Block() || m_cached_ctx.CLAMP.WMS > CLAMP_CLAMP || m_cached_ctx.CLAMP.WMT > CLAMP_CLAMP))
{
const GSVertex* v = &m_vertex.buff[0];
@@ -2883,21 +2884,40 @@ void GSRendererHW::Draw()
}
// It's possible it's writing to an old 32bit target, but is actually just a 16bit copy, so let's make sure it's actually using a mask.
if (!shuffle_target && m_cached_ctx.FRAME.FBMSK)
if (!shuffle_target)
{
// FBW is going to be wrong for channel shuffling into a new target, so take it from the source.
FRAME_TEX0.U64 = 0;
FRAME_TEX0.TBP0 = m_cached_ctx.FRAME.Block();
FRAME_TEX0.TBW = m_cached_ctx.FRAME.FBW;
FRAME_TEX0.PSM = m_cached_ctx.FRAME.PSM;
bool shuffle_channel_reads = true;
const u32 increment = (m_vt.m_primclass == GS_TRIANGLE_CLASS) ? 3 : 2;
const GSVertex* v = &m_vertex.buff[0];
GSTextureCache::Target* tgt = g_texture_cache->LookupTarget(FRAME_TEX0, GSVector2i(m_vt.m_max.p.x, m_vt.m_max.p.y), GetTextureScaleFactor(), GSTextureCache::RenderTarget, false,
fm, false, false, false, false, GSVector4i::zero(), true);
if (!m_cached_ctx.FRAME.FBMSK)
{
for (u32 i = 0; i < m_index.tail; i += increment)
{
const int first_u = (PRIM->FST ? v[i].U : static_cast<int>(v[i].ST.S / v[(increment == 2) ? i + 1 : i].RGBAQ.Q)) >> 4;
const int second_u = (PRIM->FST ? v[i + 1].U : static_cast<int>(v[i + 1].ST.S / v[i + 1].RGBAQ.Q)) >> 4;
if (std::abs((v[i + 1].XYZ.X - v[i].XYZ.X) / 16) != 8 || std::abs(second_u - first_u) != 8)
{
shuffle_channel_reads = false;
break;
}
}
}
if (m_cached_ctx.FRAME.FBMSK || shuffle_channel_reads)
{
// FBW is going to be wrong for channel shuffling into a new target, so take it from the source.
FRAME_TEX0.U64 = 0;
FRAME_TEX0.TBP0 = m_cached_ctx.FRAME.Block();
FRAME_TEX0.TBW = m_cached_ctx.FRAME.FBW;
FRAME_TEX0.PSM = m_cached_ctx.FRAME.PSM;
if (tgt)
shuffle_target = tgt->m_32_bits_fmt;
GSTextureCache::Target* tgt = g_texture_cache->FindOverlappingTarget(FRAME_TEX0.TBP0, GSLocalMemory::GetEndBlockAddress(FRAME_TEX0.TBP0, FRAME_TEX0.TBW, FRAME_TEX0.PSM, m_r));
tgt = nullptr;
if (tgt)
shuffle_target = tgt->m_32_bits_fmt;
tgt = nullptr;
}
}
}
@@ -6034,10 +6054,9 @@ void GSRendererHW::EmulateBlending(int rt_alpha_min, int rt_alpha_max, const boo
// Switch DATE_PRIMID with DATE_BARRIER in such cases to ensure accuracy.
// No mix of COLCLIP + sw blend + DATE_PRIMID, neither sw fbmask + DATE_PRIMID.
// Note: Do the swap in the end, saves the expensive draw splitting/barriers when mixed software blending is used.
if (sw_blending && DATE_PRIMID && m_conf.require_full_barrier)
if (sw_blending && DATE_PRIMID && features.texture_barrier && m_conf.require_full_barrier)
{
GL_PERF("DATE: Swap DATE_PRIMID with DATE_BARRIER");
m_conf.require_full_barrier = true;
DATE_PRIMID = false;
DATE_BARRIER = true;
}
@@ -7452,7 +7471,7 @@ __ri void GSRendererHW::DrawPrims(GSTextureCache::Target* rt, GSTextureCache::Ta
if (m_conf.destination_alpha >= GSHWDrawConfig::DestinationAlphaMode::Stencil &&
m_conf.destination_alpha <= GSHWDrawConfig::DestinationAlphaMode::StencilOne && !m_conf.ds)
{
const bool is_one_barrier = (m_conf.require_full_barrier && (m_prim_overlap == PRIM_OVERLAP_NO || m_conf.ps.shuffle || m_channel_shuffle));
const bool is_one_barrier = (features.texture_barrier && m_conf.require_full_barrier && (m_prim_overlap == PRIM_OVERLAP_NO || m_conf.ps.shuffle || m_channel_shuffle));
if ((temp_ds.reset(g_gs_device->CreateDepthStencil(m_conf.rt->GetWidth(), m_conf.rt->GetHeight(), GSTexture::Format::DepthStencil, false)), temp_ds))
{
m_conf.ds = temp_ds.get();
@@ -7628,11 +7647,17 @@ __ri void GSRendererHW::DrawPrims(GSTextureCache::Target* rt, GSTextureCache::Ta
pxAssert(!m_conf.require_full_barrier || !m_conf.ps.colclip_hw);
// Swap full barrier for one barrier when there's no overlap, or a shuffle.
if (m_conf.require_full_barrier && (m_prim_overlap == PRIM_OVERLAP_NO || m_conf.ps.shuffle || m_channel_shuffle))
if (features.texture_barrier && m_conf.require_full_barrier && (m_prim_overlap == PRIM_OVERLAP_NO || m_conf.ps.shuffle || m_channel_shuffle))
{
m_conf.require_full_barrier = false;
m_conf.require_one_barrier = true;
}
else if (!features.texture_barrier)
{
// These shouldn't be enabled if texture barriers aren't supported, make sure they are off.
m_conf.ps.write_rg = 0;
m_conf.require_full_barrier = false;
}
// rs
const GSVector4i hacked_scissor = m_channel_shuffle ? GSVector4i::cxpr(0, 0, 1024, 1024) : m_context->scissor.in;
@@ -9097,10 +9122,7 @@ void GSRendererHW::EndHLEHardwareDraw(bool force_copy_on_hazard /* = false */)
return;
}
// DX11 can't partial copy depth textures.
const GSVector4i copy_rect = (src->IsDepthStencil() && !features.test_and_sample_depth) ?
src->GetRect() :
config.drawarea.rintersect(src->GetRect());
const GSVector4i copy_rect = config.drawarea.rintersect(src->GetRect());
g_gs_device->CopyRect(src, copy, copy_rect - copy_rect.xyxy(), copy_rect.x, copy_rect.y);
config.tex = copy;
}

View File

@@ -1696,22 +1696,27 @@ GSTextureCache::Source* GSTextureCache::LookupSource(const bool is_color, const
u32 src_psm = psm;
// If the input is C16 and it's actually a shuffle of 32bits we need to correct the size.
if ((tex_color_psm & 0xF) <= PSMCT24 && (psm & 0x7) == PSMCT16 && possible_shuffle)
if ((tex_color_psm & 0xF) <= PSMCT24 && (psm & 0x7) == PSMCT16)
{
src_psm = t->m_TEX0.PSM;
// If it's taking double width for the shuffle, half that.
if (src_bw == (rt_tbw * 2))
if (possible_shuffle)
{
src_bw = rt_tbw;
src_psm = t->m_TEX0.PSM;
// If it's taking double width for the shuffle, half that.
if (src_bw == (rt_tbw * 2))
{
src_bw = rt_tbw;
rect.x /= 2;
rect.z /= 2;
}
else
{
rect.y /= 2;
rect.w /= 2;
rect.x /= 2;
rect.z /= 2;
}
else
{
rect.y /= 2;
rect.w /= 2;
}
}
else // Formats are not compatible for normal draws, only shuffles.
continue;
}
if (bp > t->m_TEX0.TBP0)
{
@@ -3285,23 +3290,19 @@ bool GSTextureCache::PreloadTarget(GIFRegTEX0 TEX0, const GSVector2i& size, cons
if (buffer_width != std::max(1U, t->m_TEX0.TBW))
{
i++;
// Check if this got messed with at some point, if it did just nuke it.
if (t->m_valid.width() == dst->m_valid.width())
if (!preserve_target && t->m_age > 0)
{
// Not correct, but it's better than a null reference.
// Probably best we don't poke the beast if it's being used as the current source.
if (src && src->m_target_direct && src->m_from_target == t)
{
DevCon.Warning("Replacing source target, texture may be invalid");
src->m_texture = dst->m_texture;
src->m_from_target = dst;
}
continue;
InvalidateSourcesFromTarget(t);
i = list.erase(j);
delete t;
}
else
i++;
continue;
}
// If the two targets are misaligned, it's likely a relocation, so we can just kill the old target.