Hi
I need help with codetype 48.
for example:
Mario Size (1 Button=Big 2 Button=Small 1+2 Button=Normal)
28750A02 00000200
48000000 807ECEF8
DE000000 80008180
4A100000 0000002C
14000000 40800000
14000004 40800000
14000008 40800000
E0000000 80008000
28750A02 00000100
48000000 807ECEF8
DE000000 80008180
4A100000 0000002C
14000000 3F000000
14000004 3F000000
14000008 3F000000
E0000000 80008000
28750A02 00000300
48000000 807ECEF8
DE000000 80008180
4A100000 0000002C
14000000 3F800000
14000004 3F800000
14000008 3F800000
E0000000 80008000
CST5 : Set Pointer to
4ATYZ00N XXXXXXXX :
4A000 : po = XXXXXXXX
4A010 : po = ba+XXXXXXXX
5A010 : po = po+XXXXXXXX
4A001 : po = grN+XXXXXXXX
4A011 : po = ba+grN+XXXXXXXX
5A011 : po = po+grN+XXXXXXXX
4A100 : po += XXXXXXXX
4A110 : po += ba+XXXXXXXX
5A110 : po += po+XXXXXXXX
4A101 : po += grN+XXXXXXXX
4A111 : po += ba+grN+XXXXXXXX
5A111 : po += po+grN+XXXXXXXX
[0000002C]<-- that's the pointer?
4A100000 - + 00000002C = 40800000??
and what does the codetype 48 do!?
[[btw sorry for my bad english]]
thanks alot :-[
48000000 807ECEF8 #1
DE000000 80008180
4A100000 0000002C #2
#1; PO = 807ECEF8
#2; Add 0x2C to PO; PO = 807ECEF8 + 2C = 807ECF24
okay thanks and what about this?
48000000 815E7624
DE000000 80008180
140001DC 00000000
140001E0 00000000
E0000000 80008000
48000000 807ECEF8
DE000000 80008180
4A100000 0000002C
14000000 40800000
14000004 40800000
14000008 40800000
E0000000 80008000
lol it points to 811F796C 3F800000
811F7970 3F800000
811F7970 3F800000
Quote from: dcx2 on May 23, 2010, 11:43:12 PM
48000000 807ECEF8 #1
DE000000 80008180
4A100000 0000002C #2
#1; PO = 807ECEF8
#2; Add 0x2C to PO; PO = 807ECEF8 + 2C = 807ECF24
no that's not how 48 works
say the value at 807ECEF8 is 81389600 it would be
#1; PO = [807ECEF8]
#2; Add 0x2C to PO; PO = [807ECEF8] + 2C = 8138962C
Dammit, I always get "Load" and "Set" confused.
48 = "load" = go through the pointer located at PO
4A = "set" = write value directly to PO
Quote from: wiiztec on May 24, 2010, 01:49:14 AM
Quote from: dcx2 on May 23, 2010, 11:43:12 PM
48000000 807ECEF8 #1
DE000000 80008180
4A100000 0000002C #2
#1; PO = 807ECEF8
#2; Add 0x2C to PO; PO = 807ECEF8 + 2C = 807ECF24
no that's not how 48 works
say the value at 807ECEF8 is 81389600 it would be
#1; PO = [807ECEF8]
#2; Add 0x2C to PO; PO = [807ECEF8] + 2C = 8138962C
[807ECEF8] + 2C = 8138962C?
it's 807ECF24
[807ECEF8] means the value in that address.
So "[807ECEF8] + 2C" means, the value at 807ECEF8 + 2C
And in that example, the value in 807ECEF8 is 81389600
48000000 807ECEF8
DE000000 80008180
4A100000 0000002C
14000000 40800000
14000004 40800000
14000008 40800000
E0000000 80008000
=
48000000 807ECEF8
DE000000 80008180
1400002C 40800000
14000030 40800000
14000034 40800000
E0000000 80008000
O0
haha I don't understand it and it doesn't work for me :D
it points to 812737AC.
what's going on???
wait it points every to XC X0 and X4
48000000 807ECEF8
DE000000 80008180
1400002C 40800000
14000030 40800000
14000034 40800000
E0000000 80008000
but why 2C 30 and 34
and why 807ECEF8?
value at 807ECEF8 is 81273780.
a search code!?
He is just using an example.
1400002C -> 32-bit write to PO + 2C
14000030 -> 32-bit write to PO + 30
14000034 -> 32-bit write to PO + 34
You can do this instead.
4A100000 0000002C -> newPO = oldPO + 2C
14000000 -> 32-bit write to newPO + 0 (oldPO + 2C + 0)
14000004 -> 32-bit write to newPO + 4 (oldPO + 2C + 4)
14000008 -> 32-bit write to newPO + 8 (oldPO + 2C + 8 )
They are both the same.
allright but why 807ECEF8 :'(
it's not a F6 search code but how did the code find it?
You can use any pointer. ZiT used 807ECEF8 because you chose 807ECEF8 in your original example.
Quote from: Deathwolf on May 23, 2010, 10:59:31 PM
Mario Size (1 Button=Big 2 Button=Small 1+2 Button=Normal)
28750A02 00000200
48000000 807ECEF8
DE000000 80008180
4A100000 0000002C
14000000 40800000
14000004 40800000
14000008 40800000
E0000000 80008000
28750A02 00000100
48000000 807ECEF8
DE000000 80008180
4A100000 0000002C
14000000 3F000000
14000004 3F000000
14000008 3F000000
E0000000 80008000
28750A02 00000300
48000000 807ECEF8
DE000000 80008180
4A100000 0000002C
14000000 3F800000
14000004 3F800000
14000008 3F800000
E0000000 80008000
so you mean I can use a pointer like this?
48000000 807ECE70
DE000000 80008180
1400002C 40800000
14000030 40800000
14000034 40800000
E0000000 80008000
and I can set my own value XC X0 X4?
it freez
Yes. It's just like the 04 code type. With 04______, the ______ is added to BA. With 14______, the ______ is added to PO.
Look at 807ECE70 in Memory Viewer. Pretend the value there is 81389600. Pretend we want to write 40800000 to 8138962C, 81389630, 81389634
# PO = 80000000
48000000 807ECE70 # PO = [807ECE70] = 81389600
DE000000 80008180 # Verify PO >= 80000000 and PO < 81800000
1400002C 40800000 # 32-bit write to 81389600 + 2C = 8138962C
14000030 40800000 # 32-bit write to 81389600 + 30 = 81389630
14000034 40800000 # 32-bit write to 81389600 + 34 = 81389634
E0000000 80008000 # PO = 80000000
I think I got it.
is it right?
48000000 807ECE70 value 8077E8D8
DE000000 80008180
1400016C 40800000
14000170 40800000
14000174 40800000
E0000000 80008000
That would write 40800000 to the addresses 8077EA44, 8077EA48, and 8077EA4C.
value 8077E8D8 to 8077E900 is 28
XC is 34
38 and 3C
28 is not a valid address
and then it freez :'(
but 8077E8D8 to 8077E900 is 28
Then 28 is the offset
yes 28 is 900.
What?
I want to change the value 8077E8D8 to 8077E900 and the different is 28!
then I want to make a pointer for XC, X0 and X4
Those are also offsets
What addresses do you want to poke? (pretend [807ECE70] = 8077E8D8) then you want to poke [807ECE70] + 28 = 8077E900, [807ECE70] + 2C = 8077E904, [807ECE70] + 30 = 8077E908?
What value do you poke? 40800000?
XC, X0, X4 is confusing. ???
Quote from: dcx2 on May 25, 2010, 10:17:17 PM
What addresses do you want to poke? (pretend [807ECE70] = 8077E8D8) then you want to poke [807ECE70] + 28 = 8077E900, [807ECE70] + 2C = 8077E904, [807ECE70] + 30 = 8077E908?
What value do you poke? 40800000?
XC, X0, X4 is confusing. ???
yes 40800000
48000000 YYYYYYYY
DE000000 80008180 <- address range check
14XXXXXX VVVVVVVV
Y=pointer
X=offset
V=value
(http://img411.imageshack.us/img411/2431/98509971.jpg)
the blue value is the original but I want use the green value..
no, it's okay.
I don't understand it because I'm too stupid.
thanks for your help guys!
I think after a long time I got it.
48000000 807ECEF8 <--- value 81273780 <- pointer
DE000000 80008180
1400002C 40800000
14000030 40800000
14000034 40800000
E0000000 80008000
81273780 + 2C = 812737AC
81273780 + 30 = 812737B0
81273780 + 34 = 812737B4
example new pointer:
04E43A20 81182610
48000000 80E43A20
DE000000 80008180
4A100000 0000006C
14000000 00000063
E0000000 80008000
=
047ECE40 81273730
48000000 807ECE40
DE000000 80008180
1400007C 40800000
14000080 40800000
14000084 40800000
E0000000 80008000
another code:
infinity lifes
04347348 80E40000
48000000 80347348
DE000000 80008180
4A100000 00000E78
14000000 63000061
E0000000 80008000
=
04347348 80E40000
48000000 80347348
DE000000 80008180
14000E78 63000061
E0000000 80008000
Quote from: Deathwolf on May 26, 2010, 10:59:09 AM
another code:
infinity lifes
04347348 80E40000
48000000 80347348
DE000000 80008180
4A100000 00000E78
14000000 63000061
E0000000 80008000
=
04347348 80E40000
48000000 80347348
DE000000 80008180
14000E78 63000061
E0000000 80008000
Yes, that looks correct.
yep it also works.
thanks for your help guys!