Project

General

Profile

Actions

Emulator Issues #12818

open

SSX Tricky - Display GFX FIFO Warning Message

Added by ZephyrSurfer almost 3 years ago. Updated 2 months ago.

Status:
New
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?

SSX Tricky

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

GSTE69

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

47c64f8e60ecd70161b772adb7f25109

What's the problem? Describe what went wrong.

Dolphin displays a GFX FIFO warning message on starting up the game.

Warning is "GFX FIFO: Unknown Opcode (0xfe @ 0x1c2645a0643, preprocess=false)"

followed by another window

Warning is "Illegal Command fe" followed with a lot more info

What steps will reproduce the problem?

Start the game.

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-15952

Is the issue present in the latest stable version?

No, 5.0

If the issue isn't present in the latest stable version, which is the first broken version? (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)

5.0-683 -> https://dolphin-emu.org/download/dev/9525a9e048801c6dd8e8e0a10dd919c7a9114bc5/

To see that the issue starts with this build you need to use Single Core and XFB Real. Previous builds to this worked with this combination.

You will also have to use OpenGL on this old build due to another issue.

If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible. Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too. For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer

[Attach any fifologs if possible, write a description of fifologs and screenshots here to assist people unfamiliar with the game.]

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

i7-8750H
GTX 1060
Windows 10
8GB DDR4

Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)

Let me know, I'll see what else I can do.


Files

SSX_Tricky_Warning1.PNG (4.85 KB) SSX_Tricky_Warning1.PNG First Warning Window ZephyrSurfer, 01/28/2022 08:39 PM
SSX_Tricky_Warning2.PNG (3.88 KB) SSX_Tricky_Warning2.PNG Second Warning Window ZephyrSurfer, 01/28/2022 08:39 PM
Actions #1

Updated by ZephyrSurfer almost 2 years ago

I know why the Unknown Opcode is 0xfe.

It's set by TextureCacheBase::UninitializeXFBMemory. By changing the value of what the XFB is set to when the that will display instead it currently 1,254 pattern. Changing this to 1, 20 will display an error with Unknown Opcode 0x14

Hope this gives a hint to what's wrong, but maybe this is already known.

Actions #2

Updated by flacs 2 months ago

For some reason the game:

  • allocates a frame buffer according to the render mode (640x448)
  • calls GXSetDispCopySrc(0, 0, width, 480) with 480 hardcoded
  • does two identical XFB copies, this corrupts the GP fifo which was allocated right after the frame buffer
  • calls GXSetDispCopySrc(0, 0, width, height) properly

Our usual patching system is frame-driven, but this bug happens before the first frame.

Actions #3

Updated by flacs 2 months ago ยท Edited

Derp, I'm an idiot, it's GXSetDispCopySrc! Dolphin is using the EFB height (480) to uninitialize the XFB (448)!

EDIT: Except there is no destination height. It's implicit in the yscale.

Actions

Also available in: Atom PDF