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]: Jak & Daxter/Jak 3 -- Character slides on his own | Jak 2 -- Inclined Camera Drift #5257

Open
coornio opened this issue Jan 3, 2022 · 3 comments

Comments

@coornio
Copy link
Contributor

coornio commented Jan 3, 2022

Describe the Bug

Tested on r.2187. Character very very slightly slides around on his own even on flat ground. Speed of sliding more pronounced if the surface is angled slightly.

The issue is related to EE/FPU. Setting the Round Mode to "Nearest" resolves this sliding, and the character stops shifting around on angled surfaces. The effect is more pronounced on steeper angles, but may be so marginal on flat ground that you hardly notice a pixel of movement if you don't look closely.

I found out about it by standing at the top of the tower where the final boss fight takes place. I was idling, and my character just slid off all on his own.

Setting the rounding to "Negative" appears to flip the direction of the sliding. Setting it to "Nearest" resolves it outright, but as Prafull pointed out, this mode breaks most menu text and makes it disappear.

I have discovered, however, that turning widescreen hacks on FIXES the missing text from all menus. This will need some finagling to resolve.

Recording right below. Widescreen cheat is enabled (to fix the menus and see what I'm doing). Started out with "Nearest" enabled. Then a few seconds in I changed back to "Chop/Zero".

2022-01-03.11-10-08.mp4

Savestate for those interested, slot 1. There's an issue loading savestates of others in this 1.7 version though, causes crashes, so you might not be able to use it:
SCUS-97124 (1B3976AB).01.zip

Memcard folder:
BASCUS-97124.zip

Reproduction Steps

Literally stand still somewhere and watch the screen carefully.

Expected Behavior

The character should not be defying the laws of friction.

PCSX2 Revision

v1.7.2187

Operating System

Windows 11

CPU

i7-8700K

GPU

RTX 2080

Emulation Settings

EE/FPU Round Mode: Nearest -- fixes sliding.
Widescreen cheat: fixes broken menus caused by the above fix.

@coornio
Copy link
Contributor Author

coornio commented Mar 3, 2022

Adding Jak 3 to the list of games with this issue. He also slides around with the default EE rounding mode. It requires either Positive or Nearest to stop it. It tends to break subtitles unfortunately which don't render in front of objects.

Jak 2 on the other hand doesn't have the character subtly sliding across the floor, but the camera instead. When Jak stands on inclined surfaces, the camera will very subtly start sinking for a pixel or two before it's snapped back in position. When using either Positive or Nearest, it remains perfectly in place and doesn't drift anymore.

To recap:
Jak & Daxter: Character drift. Nearest at least, but causes text and icons from menus to disappear. Requires workaround, widescreen patch fixes it somehow.
Jak 2: Camera drift on inclines. Positive at least. No discernible issues (yet).
Jak 3: Character drift. Positive at least. Causes the text on the START screen to disappear just like in Jak & Daxter. Unclear if any other text is missing yet using this method.

Here's a video of the camera drift in Jak 2. Pay close attention to the bars of the yellow vent to the bottom left of the video, or at the bars encompassing the green lights below Jak. They have the best contrast. The video starts out with rounding set to Chop/Zero, then it switches to Positive midway:

2022-03-03.22-15-56.mp4

@coornio coornio changed the title [BUG]: Jak & Daxter -- Character slides on his own [BUG]: Jak & Daxter/Jak 3 -- Character slides on his own | Jak 2 -- Inclined Camera Drift Mar 3, 2022
@ghost
Copy link

ghost commented Dec 25, 2023

Check if #10464 fixed it.

@ghost
Copy link

ghost commented Dec 25, 2023

Ok, I've tested it and it seems it's unchanged.

GitHubProUser67 added a commit to GitHubProUser67/pcsx2 that referenced this issue Nov 12, 2024
…int uint specification.

This Pull Request implements the first take ever on real Soft-Float support in PCSX2.

This work is a combination or several efforts and researches done prior.

Credits:

- https://www.gregorygaines.com/blog/emulating-ps2-floating-point-nums-ieee-754-diffs-part-1/

- https://github.com/GitHubProUser67/MultiServer3/blob/main/BackendServices/CastleLibrary/EmotionEngine.Emulator/Ps2Float.cs

- https://github.com/Goatman13/pcsx2/tree/accurate_int_add_sub

- PCSX2 Team for their help and support in this massive journey.

This pull request should be tested with every games requiring a clamping/rounding mode (cf: GameDatabase).

Currently, this PR fixes on the interpreters:

- PCSX2#354

- PCSX2#11507

- PCSX2#10519

- PCSX2#8068

- PCSX2#7642

- PCSX2#5257

This is important to note, that this implementation, while technically fixing Gran Turismo 4 and Klonoa 2, makes the games crash due to very high floats being passed in the emu code, and failing at some points later in the process. This has not yet been ironed-out.

Other than that, this sets the floor for Soft-Float in PCSX2, a long awaited contribution.
GitHubProUser67 added a commit to GitHubProUser67/pcsx2 that referenced this issue Nov 12, 2024
…oint unit specification.

This Pull Request implements the first take ever on real Soft-Float support in PCSX2.

This work is a combination or several efforts and researches done prior.

Credits:

- https://www.gregorygaines.com/blog/emulating-ps2-floating-point-nums-ieee-754-diffs-part-1/

- https://github.com/GitHubProUser67/MultiServer3/blob/main/BackendServices/CastleLibrary/EmotionEngine.Emulator/Ps2Float.cs

- https://github.com/Goatman13/pcsx2/tree/accurate_int_add_sub

- PCSX2 Team for their help and support in this massive journey.

This pull request should be tested with every games requiring a clamping/rounding mode (cf: GameDatabase).

Currently, this PR fixes on the interpreters:

- PCSX2#354

- PCSX2#11507

- PCSX2#10519

- PCSX2#8068

- PCSX2#7642

- PCSX2#5257

This is important to note, that this implementation, while technically fixing Gran Turismo 4 and Klonoa 2, makes the games crash due to very high floats being passed in the emu code, and failing at some points later in the process. This has not yet been ironed-out.

Other than that, this sets the floor for Soft-Float in PCSX2, a long awaited contribution.
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