Project

General

Profile

Actions

Emulator Issues #10009

closed

Memory search result does not start from 0x80000000 in debugger

Added by container1234 about 7 years ago. Updated over 1 year 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?

N/A

Game ID? (right click the game in the game list, properties, info tab)

N/A

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

N/A

What's the problem? Describe what went wrong.

When Dolphin Debugger searches memory and match found, the address displayed is 0x80000000 less than the actual address.

What steps will reproduce the problem?

  1. Run Dolphin in debug mode
  2. Start any game
  3. Search gameid (located in 0x80000000)
  4. Obtain the result of 0x00000000

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?

Dolphin 5.0-1615

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

Core i7 960 3.20GHz
GeForce GTX 1060
Windows 7 Professional 64bit

Actions #1

Updated by degasus about 7 years ago

I fear this task is a bit more complex.

tl;dr: 0x80000000 is the default mapping location of the SDK of pRAM.

The point here is that we shouldn't assume if memory translation is enabled or disabled, neither the mapping table. So a good UI would show you the mapped memory (with all kind of error states as "not mapped", "no physical range", "io"), but also the different physical ranges: pRAM, exRAM (Wii only, currently not searched at all), aRAM (not mapable by the CPU, but used as some kind of swap file), vRAM (a hack to use more memory for the default swaped region).
As those mappings are neither surjective nor injective, we need both views.

The current memory viewer displays virtual memory with lots of shared code of the CPU emulation. The memory searcher is looking only in the pRAM, and it returns the memory offset. I guess this is for performance reasons, as using the CPU emulation will likely need a few seconds. But IMO this should also be fine.

Memory fetching function of the memory view: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/DolphinWX/Debugger/MemoryView.cpp#L352
The searching function with the linear memory assumption is here: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/DolphinWX/Debugger/MemoryWindow.cpp#L373

Actions #2

Updated by JMC4789 over 1 year ago

  • Status changed from New to Won't fix
Actions #3

Updated by JMC4789 over 1 year ago

  • Status changed from Won't fix to Fixed
Actions

Also available in: Atom PDF