I set a breakpoint (BP Type: Write) at 0x809CEB88 in the 8th mission BLOOD & IRON. When the value at that address decreased, WiiRD didn't suspend the game and returned a disassembler address. However I changed to BP Type Read WiiRD suspended the game. I don't know why. :confused:
BTW: 0x809CEB88 is the fake address of Tank Health.
maybe it's the wrong RAM address of health?
If you set the breakpoint from the mem viewer then make sure that you clicked the START of the address for health:
if the address is 0x809CEB8 then make sure that you didn't accidentally right-click when over 0x809CEB9. That would make the breakpoint not work since it's checking 0x809CEB9 and not 0x809CEB8.
Might seem odd, I know, but I had a similar problem with a breakpoint not working on write. I was right-clicking the cell in mem viewer and it would use the current address under the cursor.
Just double check that the address the BP is set on is, in fact, the correct address for the health. If it still doesn't work then it could be an incorrect address like Deathwolf said. Try poking the address and see if it alters your health.
I've tried to set bp on 0x809CEB88 to 0x809CEB8B but none of them suspended the game even if the value changed. Is there any other assembler instructions besides store types can change the value in the memories?
Quote from: Mathew_Wi on July 27, 2010, 12:25:32 AM
Quote from: AlexWong on July 26, 2010, 08:26:25 PM
I've tried to set bp on 0x809CEB88 to 0x809CEB8B but none of them suspended the game even if the value changed. Is there any other assembler instructions besides store types can change the value in the memories?
is the exact match box checked?
Both checked and unchecked I tried but neither worked. If someone have the game can try the address himself.
one fast minor note. the addresses can only end in: 0,4,8,C otherwise it is partial way through the hex values. also.. it might be just the graphical value. sometimes there are 2 values for the same thing.. and other than that you just have to guess at it.
I know it was a fake address of Tank Health. But even if it was a wrong value, when the value decreased, the breakpoint should work and return a disassemble address. I wanted to trace the true address by analysing the disassemble routines but now the bug of breakpoint standed in my way. ???
It was a same deal though "WiiRd" and "Gecko dNet" were used though also tried also by me.
help~
why not use the read data to make a ram write? It should also work on the actual data.
read is sometimes alot better than write.
just use brkirchs instruction codes.
Read type is useless in that condition. It is always that the value of the true address copy to the fake address so I must set on a Write type bp to trace the true address.
read and write are not the same.
what ever you are trying, you can every use:
lis rXX,0xXXXX
ori rXX,rXX,0xXXXX
stw rXX,XXXX(rXX)
your bp instruction.
I couldn't find the true address so use your method to lock the value of the fake address is useless. :(
okay..
the problem: there are *2* instructions.
read:
lis rXX,0xXXXX
ori rXX,rXX,0xXXXX
stw rXX,XXXX(rXX)
your bp instruction.
write:
nop