Project

General

Profile

Actions

Emulator Issues #1610

closed

Mario & Sonic at the Olympic Winter Games (PAL) - hang at loading screens

Added by DimitriPilot3 over 14 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
Category:
PPC
% 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

What steps will reproduce the problem?

  1. Launch the game (Dolphin or DolphinIL) in recompiler mode (interpretor mode works fine)
  2. After reaching the main menu, go to "Party Games", "Shopping", start any event or begin a Festival session
  3. Wait for the loading screen to come up, and PANIC messages will appear.

What is the expected output? What do you see instead?
The game should load fine instead of crashing. Examples of crashes:

  • Going to "Party Games" crashes Dolphin and DolphinIL with an invalid read at 0x7C650220
  • Going to "Shopping" crashes Dolphin and DolphinIL with an invalid read at 0x7FFFFFFC
  • The Alpine Skiing->Downhill event crashes Dolphin with "CompiledBlock - shouldn't be there!" followed with an invalid read from 7fc3f37c, and crashes DolphinIL after two "HLE system tried to call an undefined function 267284" messages
  • ...

What version of the product are you using? On what operating system?
The crash occurs in R4493,R4470,R4460, and some revisions up to R4357. The
game doesn't hang in previous revisions such as R4356.

Running the Windows x86 build on Vista Ultimate

Please provide any additional information below.
The revision that causes the issue in recompiler mode is R4357.


Related issues 2 (0 open2 closed)

Has duplicate Emulator - Emulator Issues #2262: M&S at the Olympic Winter Games IssueDuplicate

Actions
Has duplicate Emulator - Emulator Issues #2470: Mario and Sonic at the olympic games errorDuplicate

Actions
Actions #1

Updated by DimitriPilot3 over 14 years ago

I attached a ZIP containing 4 log outputs from R4356, R4357 and R4460 (regular
Dolphin, -d option): 3 attempts at starting Individual Festival mode, 1 attempt at
going to Party Games.

It seems to be compiling outdated code for some reason...

Actions #3

Updated by DimitriPilot3 over 13 years ago

Seems to have been fixed between R5849 (5848 didn't work) and R5929. The PAL game is now working.

Actions #4

Updated by Anonymous over 13 years ago

Please respond if this issue is still valid, or it will be closed.

Actions #5

Updated by DimitriPilot3 over 13 years ago

I made one try on r6546 and it crashed with a "reading opcode from 0x00000000" sort of error message, AFAIK. I thought it was a regression.
However, I just retried with r5929 and I also got JIT freezing/hanging issues. I also retested r6546 and I can confirm the issues are the same (and sometimes as random) as in r5929... Weird... Here are some examples:

  • starting Single Festival mode freezes the game (FPS drops to 0) AFTER the loading screen, with a black screen;
  • starting Multiplayer Festival mode freezes the game (FPS drops to 0) not right after the loading screen, but right after selecting the No. of players.
  • starting Winter games give different results: for example, some games such as Figure Skating go in-game fine until the "initial score table" is closed with the A button (before playable characters are loaded?)

So it seems the PAL game (still) has different JIT issues... :/

Actions #6

Updated by NeoBrainX over 13 years ago

Issue 2470 has been merged into this issue.

Actions #7

Updated by DimitriPilot3 over 13 years ago

Issue 2262 has been merged into this issue.

Actions #8

Updated by luquiboyn about 13 years ago

I have tried it in R7310 and it is still not working. Ingame menus work fine with OpenGL, but when you choose a game, it crashes. If you start it with D3D plugin, you only see some parts of the menu.

I'm running Windows XP Pro x86, with the PAL version of the game.

Actions #9

Updated by DimitriPilot3 about 13 years ago

I have tested about 20 builds of revisions after r4356 (4357, 4460, 4525, 4632, 4800, 5015, 5284M, 5430M, 5692, 5847M, 5929, 6085, 6215, 6490, 6601, 6886, 7036, 7283, 7328 and 7451M).
Since these builds all failed to get to "Party Games" under normal conditions (no code cache clearing, no savestates), it should be safe to assume that the only revision that affected/changed the main issue is r4357...

What may the issue come from? What about the assumption that games should call "icbi" when code in memory is modified? (I dunno...)

Actions #10

Updated by DimitriPilot3 about 13 years ago

  • Category set to jit
Actions #11

Updated by Anonymous almost 13 years ago

  • Status changed from New to New

Ignore this...Status:GameIssue was removed, moving to New

Actions #12

Updated by ivicamarkovic1975 over 12 years ago

Maybe it's not related but menus work in d3d11 (r7550 and 3.0), but in d3d9 you can see intro movie. Anyway, once ingame, when you select game, level loads, and when you click A to start, game crashes.

Actions #13

Updated by ivicamarkovic1975 over 12 years ago

Tested in r7714. Once ingame when you select sport and character and level loads, it gives this warnings before Dolphin crashes.

  • Backpatch: Currently only supporting reads. Attempt to write to 40b00034.
  • Backpatch write - not trough EAX.
Actions #14

Updated by DimitriPilot3 over 12 years ago

  • Status changed from New to Accepted
  • Category changed from jit to ppc
  • Issue type set to Bug

I consider those layering/projection/menu issues different from this one, as they may have to do with behavioural differences between the different backends... Though I wonder why I don't experience these issues any more, using my local build of 3.0-80 (dirty, but that's just with savestate-related changes). Maybe it was recently fixed somehow.

Either way, the JIT/JITIL crashing issue still occurs, even if I disable Dual Core and Idle Skipping, and enable the "Enable MMU", "MMU Speed Hack", "Enable BAT" per-game settings. (Also tried unticking the "MMU Speed Hack".)

SVN r4357 == GIT rb843378636c118d2e88a25e3e0661f07529af1f4

It clearly looks like it's due to running old code from the JIT cache. Repeatedly clearing the code cache (which I think can only be done in -d debugger mode), if done correctly, may bypass this problem.

For this issue to be fixed, JIT blocks which don't match with the current data in RAM should be invalidated (and later recompiled). Not sure if this is do-able without slowing down things too much; maybe do this with a per-game setting?

Actions #16

Updated by skidau over 12 years ago

Actions #17

Updated by DimitriPilot3 over 12 years ago

From what I remember (since the time I tested with the dcbz hack and other various stuff), so far nothing I had tried has affected this issue positively. Using your hack in the "PowerPC" branch resulted in the same crashing as with "master". To me, the game likely suffers from the same issue as issue 3165, but not with the same memory addresses.

Recently, I was inspired (from comwiz's test idea) to write "assertions" in Read_Opcode_JIT() to check if the contents in RAM are the same as in iCache and in the JIT cache. As a result, using the attached patch applied to "master", I see that the problem is within the JIT cache (not the iCache) at addresses starting with [816xxxxx]. Quick log to show this: http://pastebin.com/HKT090Sn
(all lines but the first one are a result from loading "Ice Hockey" in Single Player mode, which only crashes once I try to get past the 1st match's VS screen, despite all those previous "Opcode mismatch" lines)

Still, I don't really know why these mismatches occur and why they aren't fixed before execution. Is the time span between the writing of an instruction and its execution small enough? Does the JIT block remain valid somehow? Does a certain function just not have enough checks? ...

Actions #18

Updated by skidau over 12 years ago

The easiest way to take the JIT cache out of the equation is to run the game in interpreter mode. The interpreter now uses the same icache code as the JIT so that will be a pretty good test.

Actions #19

Updated by skidau over 12 years ago

  • Status changed from Accepted to Fixed

This issue was closed by revision c0498ca8314e.

Actions #20

Updated by mp4wiwi over 12 years ago

Hey! dolphin just fixed this problem!!
Now we just wait the that revision out

Actions #21

Updated by mp4wiwi over 12 years ago

When I try to use r5849 and r5929 , it still crashes.........

Actions #22

Updated by nextarif over 12 years ago

just synch from master 3.0.71-dirty. got this error still
https://min.us/mCa8RRmCV

Actions #23

Updated by mp4wiwi over 12 years ago

When I run this game in interpreter mode, I just got a black screen............

Actions #24

Updated by DavuuWartPoop over 12 years ago

Oh yeah! Great Job! =D

Actions #25

Updated by Anonymous over 12 years ago

Actions #26

Updated by skidau over 12 years ago

This issue was closed by revision c0498ca8314e.

Actions #27

Updated by skidau over 12 years ago

  • Status changed from Fixed to Accepted

Reopening as this needs more investigation.

Actions #28

Updated by skidau over 12 years ago

  • Status changed from Accepted to Work started

Have committed some changes here: re03fd9a942e9

The game now works. Let me know if there are any problems.

Actions #29

Updated by skidau over 12 years ago

  • Status changed from Work started to Fixed

Fixed by r1387da790062

Actions

Also available in: Atom PDF