• Login
  • Register
  • Dolphin Forums
  • Home
  • FAQ
  • Download
  • Wiki
  • Code


Dolphin, the GameCube and Wii emulator - Forums › Dolphin Emulator Discussion and Support › Support v
« Previous 1 ... 531 532 533 534 535 ... 963 Next »

Breakpoint Implementation
View New Posts | View Today's Posts

Pages (2): 1 2 Next »
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes
Breakpoint Implementation
11-01-2011, 04:30 AM
#1
Abystus Offline
Junior Member
**
Posts: 6
Threads: 1
Joined: Nov 2011
So I fired up Dolphin yesterday in an attempt to make some ASM hacks for the Wii, but my progress was halted due to the Debug mode of Dolphin not containing working breakpoints... Why would there even be a debug mode in the release version of Dolphin if breakpoints do not work? I have read several threads on the subject of either them not working, working only after execution, people suggesting users compile their own versions (the code is commented out?), etc... but this still doesn't answer the question of why working breakpoints aren't included in the release version of Dolphin debug mode (-d or /d).

If I'm in error here please let me know as I really could not find a lot of information on the subject due to limited information being available (via this forum). Also if there is some secret I'm missing to get the breakpoints to break let me know as I've looked around the options of the emu with no luck. Outside of this issue everything else is presented well for the most part, and looks to be a very nice hacking interface overall.

Any help is appreciated.
Find
Reply
11-01-2011, 08:07 AM
#2
skid Offline
skidau / skid_au
**********
Developers (Some Administrators and Super Moderators)
Posts: 1,968
Threads: 8
Joined: Aug 2009
Do you mean memory breakpoints or execution breakpoints?

Execution breakpoints are available and working in the Release versions. Press F9 to set an execution breakpoint at the location of the cursor. Execution breakpoints work on both the JIT and Interpreter CPU modes.

Memory breakpoints are only available on the DEBUG and DEBUGFAST versions. Dolphin will have to be recompiled in this configuration. Once done, memory breakpoints for read and write will be available from the Breakpoints window. They can also be set from the margin of the Memory window in the debugger.

Memory breakpoints are not enabled on the Release versions because enabling them slows the emulator down for everyone.
Find
Reply
11-01-2011, 08:27 AM
#3
shuffle2 Offline
godisgovernment
*
Project Owner  Developers (Administrators)
Posts: 695
Threads: 17
Joined: Mar 2009
Alternatively you can click in the disasm column to the left of the instruction in order to toggle a bp, or add it in the breakpoints dialog. (I forget which of the hardcoded debug hotkeys overlap default keys...)
Find
Reply
11-01-2011, 09:02 AM
#4
Abystus Offline
Junior Member
**
Posts: 6
Threads: 1
Joined: Nov 2011
Well I was looking for break on read/write or execute. When clicking on the memory address a red square would appear next to that address, but it would never break when it was modified. I also tried the F9 method but it appears to do the exact same thing. I was using Super Mario Galaxy RMGE01 and trying to set a break on 0291F7CE which is the address I found for his star bits using the cheat search option.

This was all done under the -d option, but is there another way I should be doing this? Also breakpoints could easily be included in the release version if you use Boolean debug flag that is checked by the functions in question, and to omit them if the flag is set false (providing the desired speed to someone not interested in the debug features). Optionally you could also include a command line argument specifically for enabling the memory breakpoints (either way).

Quote:Memory breakpoints are only available on the DEBUG and DEBUGFAST versions. Dolphin will have to be recompiled in this configuration. Once done, memory breakpoints for read and write will be available from the Breakpoints window. They can also be set from the margin of the Memory window in the debugger.

Is there an already compiled version (from another user) of this somewhere? It would really suck to have to recompile the emulator just to enable simple functionality that someone else has probably done by now. If there is a direct download link available to a version with this already enabled it would be appreciated. Thanks for the information thus far.

Find
Reply
11-01-2011, 10:35 PM
#5
skid Offline
skidau / skid_au
**********
Developers (Some Administrators and Super Moderators)
Posts: 1,968
Threads: 8
Joined: Aug 2009
Here's a 32bit debugfast version from the ES_LAUNCH branch.

http://www.mediafire.com/?88e247786vvz8zr
Find
Reply
11-02-2011, 01:47 AM
#6
Abystus Offline
Junior Member
**
Posts: 6
Threads: 1
Joined: Nov 2011
(11-01-2011, 10:35 PM)skid Wrote: Here's a 32bit debugfast version from the ES_LAUNCH branch.

http://www.mediafire.com/?88e247786vvz8zr

Thanks for the link. I'll check it out when I get home from work. I appreciate all the help.
Find
Reply
11-02-2011, 02:15 PM
#7
Abystus Offline
Junior Member
**
Posts: 6
Threads: 1
Joined: Nov 2011
I have the new version you linked, but the breakpoints still don't break (when entered through the +BP/+MC,or toggling the break point manually with the red square next to the address). Am I missing something? When I hack codes using the ram search everything goes just fine, but when trying to break on one of my found cheats (Read/Write/Execute) nothing happens. I've been trying with Resident Evil 4 using the handgun ammo code (007542D7), and also tried changing the first 0 to an 8 (807542D7) as I've seen in other posts to no avail.
Find
Reply
11-02-2011, 10:42 PM (This post was last modified: 11-02-2011, 11:49 PM by skid.)
#8
skid Offline
skidau / skid_au
**********
Developers (Some Administrators and Super Moderators)
Posts: 1,968
Threads: 8
Joined: Aug 2009
Yeh, press the +MC button and in the start and end address fields, type the address 007542D7, then tick Write and tick Break. Then start the game and play it until the game changes the ammo. The game should then freeze with the debugger's code window highlighting the line which changed the value.

If that doesn't work, try 807542D7 as the start and end address.

The game might be using a value greater than 8 bit so try using a start address of 007542D0 and an end address of 007542E0. Also try their mirrored versions 807542D0 - 807542E0.

If that doesn't work, try using it in Interpreter mode.

I did some work for you and found out that it is using a 16bit value at 807542D6. Address 80035f94 writes the value and 80036430 reads the value. I had to use the Interpreter mode.
Find
Reply
11-03-2011, 09:16 AM
#9
Abystus Offline
Junior Member
**
Posts: 6
Threads: 1
Joined: Nov 2011
(11-02-2011, 10:42 PM)skid Wrote: Yeh, press the +MC button and in the start and end address fields, type the address 007542D7, then tick Write and tick Break. Then start the game and play it until the game changes the ammo. The game should then freeze with the debugger's code window highlighting the line which changed the value.

If that doesn't work, try 807542D7 as the start and end address.

The game might be using a value greater than 8 bit so try using a start address of 007542D0 and an end address of 007542E0. Also try their mirrored versions 807542D0 - 807542E0.

If that doesn't work, try using it in Interpreter mode.

I did some work for you and found out that it is using a 16bit value at 807542D6. Address 80035f94 writes the value and 80036430 reads the value. I had to use the Interpreter mode.

The interpreter mode seems to have done it. I did find different addresses (than those you posted) writing to 807542D6, so I'm wondering what range method you used above (I just put 807542D6 to 807542D6 with write/break checked). Your not lying when you say this is a very slow process (even on an I7 2600k, 8g DDR3)... Is there no way to speed things up in the structure of how its written in code? Thanks for taking the time to look into this issue.
Find
Reply
11-03-2011, 09:37 AM (This post was last modified: 11-03-2011, 09:38 AM by skid.)
#10
skid Offline
skidau / skid_au
**********
Developers (Some Administrators and Super Moderators)
Posts: 1,968
Threads: 8
Joined: Aug 2009
One easy way to cut down the time is to use save states.

In terms of the emulator code, I have a few ideas to speed it up. Just got to find the motivation to make the changes (unless you want to?)

I used the range 807542D0 to 807542E0.
Find
Reply
« Next Oldest | Next Newest »
Pages (2): 1 2 Next »


  • View a Printable Version
  • Subscribe to this thread
Forum Jump:


Users browsing this thread: 1 Guest(s)



Powered By MyBB | Theme by Fragma

Linear Mode
Threaded Mode