Project

General

Profile

Actions

Emulator Issues #12977

closed

Spider-Man 2 - Mismatched matrix index configuration between CP and XF stages

Added by ZephyrSurfer over 2 years ago. Updated over 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-16972

Description

Game Name?

Spider-Man 2

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

GK2E52

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

a2762a6acc32d4e523ac6848589cc147

What's the problem? Describe what went wrong.

Popup stating
"Warning: Mismatched matrix index configuration between CP and XF stages - index A: 00000000/3cf3cf00, index B 00f3cf3c/00f3cf3c. Please report on the issue tracker."

This popup appears several times.

What steps will reproduce the problem?

Start the game. A few popups appear immediately one after the other.

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

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-16461 is when the message was added

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

Mismatched_Matrix_Index.PNG (2.71 KB) Mismatched_Matrix_Index.PNG Warning About Mismatched Matrix Index ZephyrSurfer, 07/17/2022 09:58 PM
spider-man_2_broke_5_0-16831.dff (1.45 MB) spider-man_2_broke_5_0-16831.dff Fifolog recorded in 5.0-16831 ZephyrSurfer, 07/17/2022 11:55 PM
spider-man_2_broke_5_0-16831_gcmenu.dff (1.74 MB) spider-man_2_broke_5_0-16831_gcmenu.dff Fifolog recorded in 5.0-16831 W/ GC Menu ZephyrSurfer, 07/18/2022 12:23 AM

Related issues 1 (0 open1 closed)

Has duplicate Emulator - Emulator Issues #12984: Spider-Man 2 AndroidDuplicate

Actions
Actions #2

Updated by pokechu22 over 2 years ago

Do you have dual core enabled?

Actions #3

Updated by ZephyrSurfer over 2 years ago

It happens regardless of dual core enabled or disabled

Actions #4

Updated by ZephyrSurfer over 2 years ago

It seems to regardless of settings entirely.

I've tried all the accurate settings too and I'm getting the same message.

Actions #5

Updated by pokechu22 over 2 years ago

Can you record a fifolog? The following process should hopefully capture it:

  1. Ensure that on Config, under the Interface tab, "Show Debugging UI" is checked.
  2. Check Options → Boot to Pause.
  3. Start the game. A new black window should appear.
  4. Select Tools → Fifo Player.
  5. Set the number of frames to 30 (this may not be necessary).
  6. Click "Record" in the FIFO player window.
  7. Resume the game by clicking the play button in the main window.
  8. Click "Save" in the FIFO player window.
  9. Stop emulation.
  10. Uncheck Boot to Pause.
  11. In the FIFO player window, click "Load", and select the fifolog you saved before.
  12. If everything went well, the same error message should appear, in which case you can close Dolphin.
  13. You will probably need to compress the fifolog with 7-zip to fit it on the bug tracker.

The fifo recorder seems to behave a bit weirdly with "boot to pause", so there's a chance that this won't capture the needed information. If so, I'll try to come up with an alternative approach.

Actions #6

Updated by ZephyrSurfer over 2 years ago

The "Record" wasn't active when following the steps but if I had the fifolog window remaining opened from a previously running game and switching over after I could record. So I did that but otherwise followed the steps.

Here is a 30 frame fifolog. Hopefully it captures what is required.

Actions #7

Updated by ZephyrSurfer over 2 years ago

The same error messages did not reappear though.

I've tried recording a couple of times and the error messages do not reappear.

Actions #8

Updated by pokechu22 over 2 years ago

Unfortunately that one doesn't seem to have the needed info - I think the fifo recorder must lose the first frame (which contains the initialization stuff). What I should do is investigate what's going on there (and why the record button isn't consistently enabled), but instead, I've got a hacky workaround:

Try launching the game with the GameCube menu enabled. While the GameCube menu is fading to black, pause emulation, and then start recording with the FIFO player (again for 30 frames to hopefully catch the right part). This should ensure that the relevant information is captured (in addition to junk from the GameCube menu, but that's OK).

Actions #9

Updated by ZephyrSurfer over 2 years ago

I tried that and got the popup on playing back the fifolog. I'm not too sure how many frames are GC menu though.

Actions #10

Updated by pokechu22 over 2 years ago

Thanks, that one does include helpful information. The problem starts on frame 8 and continues until frame 17 (you can see this by setting the start and end to frame 8, though you can't easily check the end point because looping in the fifoplayer re-uses registers from the start of frame 0).

On frame 8, object 0, at offset 0000437, they set both the CP and XF versions of MATINDEX_A to all 60. But then at offset 00000b6d, they set the CP version to all zeros, but don't change the XF version. On frame 17, object 1, they fix this by setting the XF and CP values to 60/0/0/0 (at offsets 0000023a and 0000026d).

Unfortunately I can't determine why the game is doing this without decompiling it. I think offset 000008da of object 0 on frame 8 is the end of GXInit (specifically __GXInitGX's call to GXSetGPMetric) so the stuff after that (which includes the change of the CP MATINDEX_A without changing the XF one) is game-specific. I can change the panic alert into a warning, though.

Actions #11

Updated by pokechu22 over 2 years ago

Actions #12

Updated by pokechu22 over 2 years ago

  • Status changed from New to Fixed
  • Fixed in set to 5.0-16972

The panic alert has been changed to a warning log in 5.0-16972.

Actions

Also available in: Atom PDF