48 codetype

Started by Deathwolf, May 23, 2010, 10:59:31 PM

Previous topic - Next topic

Deathwolf

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 :-[
lolz

dcx2

48000000 807ECEF8 #1
DE000000 80008180
4A100000 0000002C #2


#1; PO = 807ECEF8
#2; Add 0x2C to PO; PO = 807ECEF8 + 2C = 807ECF24

Deathwolf

#2
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
lolz

wiiztec

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
If there's any code at all that you want to be button activated, or even able to toggle on & off, and I have the game, just PM me and I'll make it happen

dcx2

Dammit, I always get "Load" and "Set" confused.

48 = "load" = go through the pointer located at PO
4A = "set" = write value directly to PO

Deathwolf

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
lolz

Romaap

[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

ZiT

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

Deathwolf

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!?
lolz

dcx2

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.

Deathwolf

allright but why 807ECEF8 :'(
it's not a F6 search code but how did the code find it?
lolz

dcx2

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

Deathwolf

#12
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
lolz

dcx2

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

Deathwolf

I think I got it.

is it right?

48000000 807ECE70 value 8077E8D8
DE000000 80008180
1400016C 40800000
14000170 40800000
14000174 40800000
E0000000 80008000
lolz