PCSX2 / pcsx2

PCSX2 - The Playstation 2 Emulator
https://pcsx2.net
Other
10.92k stars 1.56k forks source link

[BUG]: Star Wars - The Clone Wars - Republic Heroes: Bugged intro FMV. #5369

Open ghost opened 2 years ago

ghost commented 2 years ago

Describe the Bug

In the game "Star Wars - The Clone Wars - Republic Heroes", there is a bug where the intro movie will start glitching out at a precise point during the FMV sequence.

I tested all the way down to 1.4, the problem was still there.

Reproduction Steps

Load the blockdump and savestate in order to see the FMV glitching out by itself during the playback.

Expected Behavior

The FMV should work all the way up to the end.

PCSX2 Revision

v1.7.2254 and QT part 4 PR

Operating System

Windows 11

If Linux - Specify Distro

No response

CPU

I9 9900K

GPU

RTX 3070

GS Settings

No response

Emulation Settings

No response

GS Window Screenshots

The bug in action:

Capture d’écran 2022-01-21 205520

Logs & Dumps

Blockdump + savestate: https://drive.google.com/file/d/1V8DVXdrh0-OOcMIhDSg4JWdq1VNgPtub/view?usp=sharing

refractionpcsx2 commented 2 years ago

This can be "fixed" by increasing the EE Cycle rate.

Goatman13 commented 2 years ago

This is not IPU related issue. Game use BINK decoder, which use own codec that is not running on IPU at all. Game setup custom INTC handler for counting Vblank starts, and when video play nothing is done unless at least 2 vblanks passed. Removing that check allow videos to play correctly, so is most likely timing related. Specially that increasing cycles helps too. This is probably optimization for real hardware to not overuse EE resources.

refractionpcsx2 commented 2 years ago

oh is it another one of these games which loops on checking the INTC_STAT for VBlanks but misses them because they get absorbed before it see it, cos this is a common problem (Since we fire interrupts wihtin 4 cycles, which is shorter than the usual loop)?

Goatman13 commented 2 years ago

Yeah, can be. Game custom handler add 1 to counter only if vblank is detected, so missing few can be issue here.

refractionpcsx2 commented 2 years ago

I tried delaying it 16 cycles instead of 4 and it didn't make any difference :( So I guess something else is going on

TheTechnician27 commented 5 months ago

I can confirm this is still an issue on v1.7.5540 (Manjaro Flatpak; NTSC-U; GTX 1070; Vulkan renderer).