Project

General

Profile

Actions

Emulator Issues #9680

open

Rayman Arena Cup 1 Round 2 Freeze

Added by JMC4789 over 7 years ago. Updated over 2 years ago.

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

Rayman Arena - GRYE41

MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)

(I have the right md5, I just dumped it, trust me. And I confirmed it, I just don't feel like copying it from one computer to another.)

What's the problem? Describe what went wrong.

When playing the Total Battle mode, the game will crash on Cup 1, Round 2

What steps will reproduce the problem?

Start up the game and navigate the menus. Go to Single Player, Total Battle, Select any character, and play through the first round of the cup. If you're having trouble, just hold R to lock-on and fire at your opponent. Once I realized you could lock-on it was easy.

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?

I tested a whole bunch of PRs and builds to see if this ever worked. I tried Dynamic BATs, Single Core SyncGPU timings, Add EFB Copy timings to SyncGPU and of course a recent 5.0 build (5.0-108)

None of the builds worked.

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

Intel Core i5-3570K, GTX 760, Windows 10

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

Interestingly enough, the first time I ran into this bug I saw an unknown fifo opcode error. Every other time I've run it, so I actually haven't recorded it. I tried using pretty much every setting you could imagine to work around the bug, but I can't. CPU under/overclock, MMU, LLE audio, etc. There's nothing in the logs that look out of place vs loading other levels either.

The hang at the end of the loading screen has a last bit of audio play, but the graphics for the level never load. This is 100% consistent.


Files

RACrash.png (556 KB) RACrash.png RibShark, 05/21/2017 08:48 PM
Actions #1

Updated by RibShark over 7 years ago

The Unknown FIFO Opcode error dialogs I receive when attempting to reproduce are:

GFX FIFO: Unknown Opcode (0x0a @ 0000000180965345, preprocess=false).
This means one of the following:
* The emulated GPU got desynced, disabling dual core can help
* Command stream corrupted by some spurious memory bug
* This really is an unknown opcode (unlikely)
* Some other sort of bug

Further errors will be sent to the Video Backend log and
Dolphin will now likely crash or hang. Enjoy.

and

Illegal command 0a
CPBase: 0x013d7e00
CPEnd: 0x01417de0
CPHiWatermark: 0x0003c000
CPLoWatermark: 0x00020000
CPReadWriteDistance: 0x00000020
CPWritePointer: 0x013f6a00
CPReadPointer: 0x013f69e0
CPBreakpoint: 0x00000000
bFF_GPReadEnable: true
bFF_BPEnable: false
bFF_BPInt: false
bFF_Breakpoint: false
bFF_GPLinkEnable: true
bFF_HiWatermarkInt: true
bFF_LoWatermarkInt: false

Not sure if these will help at all, but as they weren't recorded I thought I may as well provide them.

Actions #2

Updated by Filipianosol over 7 years ago

It was originally found out by Rayman forum's members. You have to keep pressing A fast during the loading screen before this round starts, then this stage will load, at least on Direct3D 11 after removing the cache files from ShaderCache.

Versions not working:
4.0-5908 and older, 4.0-5971-5.0-633
Versions working:
Earlier versions, maybe from 2012, which is around the time this work-around was discovered, and newer versions 4.0-5915-5964

This work-around stopped working again since 4.0-5971, PR #2172: Block gpu thread.
It sounds like that PR might be causing what's described in FIFO error's first point.
I get the error posted by RibShark when I try to reproduce this with disabled Dual-Core on D3D11 in 5.0-633.

Actions #3

Updated by RibShark over 7 years ago

Interestingly, if the prototype version of the game is used (which would be quite hard to find as I can't imagine there are too many discs in existence), this stage works flawlessly. I don't know whether this could be used to narrow down what could be causing this, but I thought it would be worth a mention. One thing I did notice is that on the prototype, the cutscene before the "3... 2... 1..." countdown is missing. Given that the workaround to this bug (on some builds at least) is to spam the A button (which would skip the cutscene on the final), I think it's likely that the bug is triggered by the cutscene in some way.

Actions #4

Updated by RibShark almost 7 years ago

If you make a savestate anywhere before the freeze, get to where the game freezes, pause the emulator (Emulation > Pause), load the savestate, then frame advance once (Emulation > Frame Advance) you will able to see the level that you are meant to play after the crash. The camera is at the same angle it usually is in at the very start of the level (though it switches after 8 frames or so), but there are no black bars covering parts of the image, which would normally be there (each level starts with some black bars sliding away to reveal the gameplay). Maybe this could reveal at which point Dolphin stops being able to render?

Actions #5

Updated by RibShark over 6 years ago

Setting the Emulated CPU Clock to around 150% will let the game advance about a second further before it crashes, which is enough time to press the A button to skip the cutscene and avoid the crash.

Actions #6

Updated by JMC4789 over 6 years ago

  • Status changed from New to Accepted
Actions #7

Updated by RibShark over 2 years ago

ICUP321 alerted me today that the 16:9 aspect ratio fix he created (to disable frustrum culling) (https://wiki.dolphin-emu.org/index.php?title=Rayman_Arena#16:9_Aspect_Ratio_Fix) also happens to completely fix this hang. Only the second part of the code is needed to fix it:

0405EF08 38600001
0405EF0C 4E800020

In fact, any value for 3860000x seems to fix the crash. Hopefully this is useful information as to finding the original cause.

Actions #8

Updated by RibShark over 2 years ago

In addition, console footage (https://www.youtube.com/watch?v=5-_T6a22KYM&t=429s) seems to show the geometry being culled at the start of the introduction (probably the game is changing the frustrum width/height during the transition), though this happens for other levels too, it does suggest that something is going awry with culling enabled in this level.

Actions

Also available in: Atom PDF