Project

General

Profile

Emulator Issues #8721

Memory checks don't work, or make Dolphin crash

Added by bubu19990316 almost 6 years ago.

Status:
New
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?
Any game

Game ID?
*

What's the problem? Describe what went wrong in few words.
When a memory value being checked is changed, nothing happens. In 4.0-6866 if the Interpreter is used, Dolphin crashes when a memory breakpoint is added.

What did you expect to happen instead?
The game to pause if a value being checked is changed. In case of 4.0-6866 with Interpreter: no crash when adding a memory breakpoint.

What steps will reproduce the problem?
1. Add a memory breakpoint
If we're using 4.0-6866 with Interpreter, we've already crashed. Otherwise:
2. Induce a change in the memory value being checked

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?
* 4.0-6866
* 4.0-? (found here: http://smashboards.com/threads/dolphin-debugfast-4-0-emulator-memory-breakpoints-download-links-32-64-bit.354071/)
* 3.0-865 (found here: https://forums.dolphin-emu.org/Thread-break-points-memory-editor-and-debug-mode?pid=252104#pid252104)

Does using an older version of Dolphin solve your issue? If yes, which
versions of Dolphin used to work?
No.

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

Computer 1:

Windows 7 x64 / Lubuntu 15.04
AMD Athlon II X3 450 @ 3.2 GHz
Nvidia GeForce GT 440
3 GB RAM

Computer 2:

Windows 7 x64
AMD A4-330M @ 1.9 GHz
ATI AMD Radeon HD 6480G
4 GB RAM

Is there any other relevant information? (e.g. logs, screenshots,
configuration files)
I tracked down the 4.0-6866 Interpreter crash to this line:
memset(region, 0xCC, region_size);
in x64Emitter.PoisonMemory(). JIT -> Clear JIT Cache works without problems otherwise.

I've tried disabling JIT Cache (JIT -> Disable JIT Cache) to see if it helps, but the games just give me a black screen, stuck at "Clearing code cache".

The games I used to test are Paper Mario: The Thousand Year Door (NTSC) (I set a breakpoint at 0x003E1B88, the selected save file), Super Smash Bros Brawl (PAL) (0x0136C4E3, selected menu option in the main menu) and Super Paper Mario (0x004D05AF, selected save file).

History

#1 Updated by bubu19990316 almost 6 years ago

I got a friend to test 4.0-6866 and 4.0-?, and he got the same results: 4.0-6866 crashed and 4.0-? didn't do anything when a memory breakpoint was modified.

His specs:
Windows 7 x64
Intel Core i5-2500K @ 3.3 GHz
Nvidia GeForce GTX 560
8 GB RAM

#2 Updated by bubu19990316 almost 6 years ago

I found an ugly solution by using Cheat Engine to freeze dolphin when a memory address (gamecube memory addresses are offset by 2fff0003, and wii ones by 2ffff0000) is changed, then looking at the value of the Program Counter (found at FA5200 in 4.0-6891 and 4.0-? (it feels really bad to type 4.0-?. I feel as if someone drops an ice cream every time I write that. 4.0-? 4.0-? 4.0-?)).

But this isn't a very good solution, because the address is inaccurate and it feels clumsy to keep setting the memory breakpoint and unfreezing dolphin in Cheat Engine all the time. It's better than nothing though, I suppose...

#3 Updated by bubu19990316 almost 6 years ago

Minor correction: the Program Counter is at 013C2B00 now, so never mind that part, it doesn't seem to be permanent.

Also available in: Atom PDF