Project

General

Profile

Emulator Issues #12388

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

Added by JosJuice 4 months ago. Updated 21 days ago.

Status:
Fixed
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:
5.0-14066

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 4 months 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 4 months ago

#3 Updated by JosJuice 4 months ago

  • Status changed from Work started to Fix pending

#4 Updated by JosJuice 21 days ago

  • Fixed in set to 5.0-14066
  • Status changed from Fix pending to Fixed

Also available in: Atom PDF