Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]: Ratchet: Deadlocked tutorial isn't finishable on interpreted EE #12160

Open
TheTechnician27 opened this issue Jan 5, 2025 · 2 comments

Comments

@TheTechnician27
Copy link
Contributor

Describe the Bug

There are two scripted events in the tutorial which interpreted EE breaks. Firstly, you're supposed to jump to the top of a ledge, after which Clank gives you coordinates for three holo-targets you need to shoot before progressing. The game never registers you've reached the top of the ledge and thus fails to spawn the target or mini-map. Second, in the next stage of the tutorial, immediately after using the teleporter, a cutscene is supposed to begin featuring the game's main antagonist before a bridge activates that allows you to advance to a small arena. This cutscene does not trigger; thus the bridge does not activate, and you can (not) progress.

Interpreted EE also causes issues with shadows which I have not been able to repro by messing around with rounding settings. Interpreted EE + Interpreted VU0 (both combined) additionally cause issues with the positioning of objects: enemies' legs are missing, Ratchet's left handgun is placed incorrectly, and Ratchet makes a weird jittering motion at the start of his jump before self-correcting. Examples shown below of proper vs. improper shadows as well as the missing legs.

Reproduction Steps

Boot into Ratchet: Deadlocked, start a new game, enter the tutorial, disable recompiled EE (and recompiled VU0 to see the object positioning issues). Jump to the top of the ledge when prompted; the game when working normally should immediately trigger dialogue. If you re-enable recompiled EE, this should immediately trigger now as long as you're still anywhere above the ledge.

Expected Behavior

  • Ratchet's positioning should be normal as he jumps
  • Enemy shadows should be normal
  • The game should trigger the scripted sequences

PCSX2 Revision

v2.3.88

Operating System

Linux (64bit) - Specify distro below

If Linux - Specify Distro

Manjaro

CPU

Ryzen 7 5800X

GPU

GTX 1070

GS Settings

  • Full blend

Emulation Settings

  • Interpreted EE
  • Interpreted VU0/Recompiled VU0 (large object positioning differences, not game-breaking ones)
  • Interpreted VU1/Recompiled VU1 (no ostensible difference)
  • Otherwise default EE settings including clock speed (I tried enabling and then disabling the cache, which unsurprisingly froze the game except the music)

GS Window Screenshots

The scene correctly rendered

Bad enemy shadow

Enemy missing legs

Logs & Dumps

During a jump followed by a hyperstrike, a verbose log spits out the following:

microVU1 stall.txt

@chaoticgd
Copy link
Contributor

chaoticgd commented Jan 5, 2025

I'm having a look at this since I'm familiar with these games. Here are some helpful addresses, all for the UK black label version (Ratchet: Gladiator):

What appears to be the state machine for the tutorial: 00454c98
Help message function: 005729d0
Call to the help message function that isn't happening on the interpreter: 00455b88
Call to check if the player is in cuboid 771: 00455af0

Cuboid 771:
Image

@chaoticgd
Copy link
Contributor

chaoticgd commented Jan 5, 2025

It's looking like the cuboid checking function is the culprit. The algorithm the game uses is to multiply the point to test with the inverse model matrix of the cuboid and then it uses the vclip instruction to test if the transformed point is inside the unit cube (actually a 2x2x2 cube centred on the origin).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants