Project

General

Profile

Emulator Issues #12388

JitArm64: Sonic Colors breaks when moving along walls in Spike form

Added by JosJuice about 1 month ago. Updated about 1 month ago.

Status:
Fix pending
Priority:
Normal
Assignee:
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Game Name?

Sonic Colours

Game ID? (right click the game in the game list, Properties, Info tab)

SNCP8P

MD5 Hash? (right click the game in the game list, Properties, Verify tab, Verify Integrity button)

977ACAB35B84CE8B0E3420574A8ACDE5

What's the problem? Describe what went wrong.

Occasionally when moving along walls (moving around corners?) in Spike form, the 3D portions of the screen will become black and gameplay will stop functioning but music keeps playing. Presumably Sonic's position is becoming invalid.

What steps will reproduce the problem?

This video (not made by me) shows a way to reproduce the problem in Planet Wisp Act 1: https://streamable.com/rcgifn

If you are downloading a 100% completed save file to try this out, make sure to disable Super Sonic in the settings before entering the level. (The settings can be accessed from the bottom-left part of the map screen.)

Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.

Yes, 5.0-13493.

Is the issue present in the latest stable version?

Not tested, but the issue has been around for a while.

What are your PC specifications? (CPU, GPU, Operating System, more)

Snapdragon 855, Android 10


Related issues

Related to Emulator - Emulator Issues #3471: Black screen issues on Sonic ColoursFixed

History

#1 Updated by JosJuice about 1 month ago

  • Assignee set to JosJuice
  • Status changed from New to Work started

I'm submitting this only to better document the issue – I'm already working on a fix. The problem is that denormals are not being flushed to zero despite fpscr.NI being set. Just like with issue 11530, FALLBACK_IF(!upper && singles && d != c) in ps_sumX avoids the issue.

#2 Updated by JosJuice about 1 month ago

#3 Updated by JosJuice about 1 month ago

  • Status changed from Work started to Fix pending

Also available in: Atom PDF