Project

General

Profile

Actions

Emulator Issues #9203

closed

Opening Wii Home Menu in Prince of Persia: Rival Swords causes Unknown Opcode (in Single Core too)

Added by JMC4789 over 8 years ago. Updated about 2 years 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-16027

Description

Game Name?

Prince of Persia: Rival Swords - RPPE41

What's the problem? Describe what went wrong.

When opening the home menu during the opening FMV (even in single core) an unknown opcode will pop up. This is reflected in the logs:
FIFO: Unknown Opcode(0x3f @ 0000000024DAF8F1, preprocessing = no)

The hex at the end changes, but the 0x3f is constant.

What steps will reproduce the problem?

Start a new game and open up the home menu. You have to do this during the opening FMV or else it won't happen.

Which versions of Dolphin did you test on? Does using an older version of Dolphin solve your issue? If yes, which versions of Dolphin used to work?

4.0-8400, 4.0.2

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

Core i5 3570K, GTX 760, Windows 7

Is there any other relevant information? (e.g. logs, screenshots,
configuration files)

FIFO: Unknown Opcode(0x3f @ 0000000024DAF8F1, preprocessing = no)


Files

RivalSwordsUnknown.7z (1.38 MB) RivalSwordsUnknown.7z pokechu22, 02/04/2022 04:06 AM
Actions #1

Updated by JMC4789 over 6 years ago

  • Status changed from New to Accepted
Actions #2

Updated by pokechu22 about 2 years ago

I've attached a 20-frame fifolog. The unknown opcode happens in frame 15, which is the first frame the screen went black. (I started recording this fifolog while paused, then held down home while unpausing; there seem to have been 15 frames of delay before the game started opening the home menu.)

Here's the actual raw data along with my attempt at interpreting where the unknown opcode came from:

000000ff:  PRIMITIVE GX_DRAW_QUADS (0) (80)  4 vertices 12 bytes/vertex 48 total bytes
Primitive GX_DRAW_QUADS (0) VAT 0

00000000 (0) 00000000 (0) 00000000 (0)  
00000000 (0) 00000000 (0) 3f800000 (1)  
00000000 (0) 00000000 (0) 3f800000 (1)  
3f800000 (1) 00000000 (0) 00000000 (0)  

00000132:  Unknown opcode 3f
3f

00000133:  PRIMITIVE GX_DRAW_QUADS (0) (80)  0 vertices 12 bytes/vertex 0 total bytes
  800000

00000136:  NOP (12x)
             00000000     00000000
00000000

To me, this looks like another case of the game providing more vertex data than it said it would, and it getting parsed in weird ways, but I'd need to look at the actual game code to verify that (it's less obvious here than in Mario Party 5). (Note that the draw command includes the number of vertices as a 2-byte value after it; I've omitted it for the first one, but included it for the second one where 0 vertices are drawn. 3f800000 is the floating-point number 1.0.)

Actions #3

Updated by pokechu22 about 2 years ago

  • Status changed from Accepted to Fixed
  • Fixed in set to 5.0-16027

The panic alert has been converted to a log message by https://github.com/dolphin-emu/dolphin/pull/10448.

Actions

Also available in: Atom PDF