Project

General

Profile

Emulator Issues #8591

Burnout 2 Unknown Pointer hardlock

Added by guitaristocrat3 over 4 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:

Description

Game Name?

Burnout 2 - Point of Impact

Game ID?

GB4E51

What's the problem? Describe what went wrong in few words.

The emulator hardlocks with error message "Unknown Pointer 0x19cda9e4 PC 0x800cec24 LR 0x800f5700" (program counter and link register can be different values) after revision ac54c6a4e2f6790f628f8a8112ff1940732f5068 by magumagu "Make address translation respect the CPU translation mode" when the second place car reaches the second checkpoint of "Airport Terminal 1 & 2" on "Rain" conditions.

What did you expect to happen instead?

I expected dolphin not to throw errors and have to be closed with system monitor.

What steps will reproduce the problem?

These are the steps I used during bisect

  1. Select single race, choose Supercar w/ automatic transmission
  2. Choose stage "Airport Terminal 1 & 2" and set conditions to "Rain"
  3. Play to the second checkpoint. I always hit the second checkpoint with boost and in first place.
  4. When the person in second place reaches the second checkpoint, the emulator throws infinite error messages and hardlocks.

Dolphin 3.5 and 3.5-367 are old versions of Dolphin that have
known issues and bugs, so don't report issues about them and test the
latest Dolphin version first.
Which versions of Dolphin did you test on?

git bisect start

bad: [474188d606c8f20301dfacb8985ffe19df8c3195] Merge pull request #2432 from lioncash/android

git bisect bad 474188d606c8f20301dfacb8985ffe19df8c3195

good: [ab87309917f7f7c10c74bf3aaf64cc36b0338289] Merge pull request #1838 from JosJuice/clearcoverinterrupt-timing

git bisect good ab87309917f7f7c10c74bf3aaf64cc36b0338289

bad: [84f85475563e2ff03010a00e175c717ad2d274dd] Merge pull request #2115 from Sonicadvance1/fix_android_cmake

git bisect bad 84f85475563e2ff03010a00e175c717ad2d274dd

good: [3274df71588640b4648628e513cc59d6bdbdae26] Merge pull request #1961 from Sonicadvance1/AArch64_game_fixes

git bisect good 3274df71588640b4648628e513cc59d6bdbdae26

bad: [e3b9be6dbb91c6cb75bf8c062bb39df7322a2fee] Core: Move several files into the correct VS directory filter

git bisect bad e3b9be6dbb91c6cb75bf8c062bb39df7322a2fee

good: [22e27ffd23ee2aa5dc1c7bf36728cc3bff4abd7e] Merge pull request #1990 from Tilka/getvertexsize

git bisect good 22e27ffd23ee2aa5dc1c7bf36728cc3bff4abd7e

good: [b79015186e548805e1d1f2a1713dd6b9f9e7f737] Merge pull request #2023 from mrgreywater/d3d-efb-ms-crash-fix

git bisect good b79015186e548805e1d1f2a1713dd6b9f9e7f737

bad: [0e0a196a1c3aefc3cd163de8d9e5636f4353a741] Merge pull request #1856 from magumagu/correct-translation-disable-2

git bisect bad 0e0a196a1c3aefc3cd163de8d9e5636f4353a741

good: [0f96a0104e60045e39d0c2a2ff34ec06bb8c3634] Merge pull request #1752 from Buddybenj/clean-up

git bisect good 0f96a0104e60045e39d0c2a2ff34ec06bb8c3634

bad: [aaee23d1b46511a937f65e507a7149ccab6ea478] Fix ARM64 build for address translation changes.

git bisect bad aaee23d1b46511a937f65e507a7149ccab6ea478

good: [d9988ee9b5d89b4ac5905dfffabb8ccae2d78a76] Merge pull request #1987 from magumagu/thread-safety

git bisect good d9988ee9b5d89b4ac5905dfffabb8ccae2d78a76

bad: [e136c8a066d5a1d9e593bfdf3296979a5a18a157] PowerPC: misc cleanup.

git bisect bad e136c8a066d5a1d9e593bfdf3296979a5a18a157

bad: [ac54c6a4e2f6790f628f8a8112ff1940732f5068] Make address translation respect the CPU translation mode.

git bisect bad ac54c6a4e2f6790f628f8a8112ff1940732f5068

first bad commit: [ac54c6a4e2f6790f628f8a8112ff1940732f5068] Make address translation respect the CPU translation mode.

What are your PC specifications? (including, but not limited to: Operating
System, CPU and GPU)

Linux Ubuntu 14.10
Intel Core i3-3220 @ 3.3GHz
NVIDIA GeForce GTX 650

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

MD5 confirmed with gametdb: http://www.gametdb.com/Wii/GB4E51
81d34a3eb120dbe3aa534d0c40af0aaf

History

#1 Updated by guitaristocrat3 over 4 years ago

From a comment on the PR, magumagu mentions that Toy Story 3 was trying to read from address 0x801fb6d4 which is very similar to, if not the exact same address I've seen before during the error while I was bisecting it. Not sure if this is particularly relevant but I thought it should be mentioned.

https://github.com/dolphin-emu/dolphin/pull/1856

#2 Updated by adiffin502 over 4 years ago

Some observations I've made:

  1. Any car with any transmission works.
  2. The same problem occurs on reverse, but at a different point on the track.
  3. The problem occurs when you reach a certain point on the track, not just when 2nd place reaches the 2nd checkpoint. In forward, it is almost exactly where the starting point for the Crash junction "Out of Control Tower" is. In reverse, it is at the end of the first bend.
  4. Happens with both Night and Rain.

#3 Updated by phire over 4 years ago

Is the Unknown Pointer always: 0x19cda9e4?

#4 Updated by guitaristocrat3 over 4 years ago

Yes, as far as I've seen that's always what it is. I just tried it again on Night conditions with a completely different car and got the same error with the same unknown pointer.

#5 Updated by JMC4789 over 4 years ago

I'll take a look at this, thanks for the information.

#6 Updated by JMC4789 over 4 years ago

  • Status changed from New to Questionable

I can't reproduce the issue. Do you have any cheat codes enabled?

#7 Updated by guitaristocrat3 over 4 years ago

I just compiled latest (4.0-6436) again and tried it. The only setting I had that wasn't default was 2x native res, but I just changed it back to native and used the same steps listed in issue report and it happened again, same hardlock and message.

#8 Updated by adiffin502 over 4 years ago

To clarify, this only happens when panic handlers are enabled.

#9 Updated by JMC4789 over 4 years ago

  • Status changed from Questionable to Accepted

Got it. Not a crash or hardlock, just dumb way of handling panic handlers. Now to figure out why it's happening.

#10 Updated by phire over 4 years ago

Reproduced.

The offending getPointer is here:
https://github.com/dolphin-emu/dolphin/blob/69963dc4b0383732b0c55787845c958033242d25/Source/Core/VideoCommon/VertexLoaderManager.cpp#L236

I suspect this game has always had a bug and provided a invalid pointer to a vertex buffer in the display list, but before that commit dolphin just ignored it.

#11 Updated by JMC4789 over 4 years ago

  • Status changed from Accepted to Fixed

Also available in: Atom PDF