codetypes help!

Started by Deathwolf, February 20, 2010, 02:21:56 PM

Previous topic - Next topic

Deathwolf

80000000: 8 bit = 00
              16 bit = 02
              32 bit = 04

81000000: 8 bit = 01
              16 bit= 03
              32 bit = 05

what is 82000000, 83000000, 90000000, 91000000, 92000000 and 93000000

is 82000000 : 8 bit = 02
                  16 bit = 04
                  32 bit = 06

I don't know what is 82000000, 83000000, 90000000, 91000000, 92000000 and 93000000??

because there are some 06/07 codes.
please help thanks
         
lolz

ichfly

#1
no use this

42000000 XXXXXXXX XXXXXXXX will be added to all the next lines as ba until the codehandler will read end.

0 to 91000000 (32 Bit) is

42000000 90000000
05000000 00000000

and 0x818000000 - 0x90000000 dosn't exist normaly
sorry for bad english

working on pointer search(new version 35% ready) so I won`t make codes yet.

Deathwolf

for example:

42000000 XXXXXXXX
XXXXXXX 000000XX
E0000000 800080008

line: (90FDCCF7)

42000000 90000000
(00)FDCCF7 000000XX <-- 8 bit
E0000000 800080008

or

4A000000 90FDCCF7
14000000 000000XX
E0000000 800080008
lolz

ichfly

sorry for bad english

working on pointer search(new version 35% ready) so I won`t make codes yet.

Deathwolf

#4
and 16 bit is

42000000 90000000
02FDCCF7 0000XXXX
E0000000 80008000

Post Merge: February 20, 2010, 03:15:46 PM

90000000 - 91000000

42000000 91000000
01FDCCF7 000000XX <-- 8 bit
E0000000 80008000

42000000 91000000
03FDCCF7 0000XXXX <-- 16 bit
E0000000 80008000

42000000 91000000
05FDCCF7 XXXXXXXX <-- 32 bit
E0000000 80008000

right?
lolz

ichfly

sorry for bad english

working on pointer search(new version 35% ready) so I won`t make codes yet.

Deathwolf

#6
but what about 06/07 codes?

42000000 92000000
02FDCCF7 000000XX <-- 8 bit
E0000000 80008000

42000000 92000000
04FDCCF7 0000XXXX <-- 16 bit
E0000000 80008000

42000000 92000000
06FDCCF7 XXXXXXXX <-- 32 bit
E0000000 80008000

Post Merge: February 20, 2010, 03:21:38 PM

42000000 93000000
03FDCCF7 000000XX <-- 8 bit
E0000000 80008000

42000000 93000000
05FDCCF7 0000XXXX <-- 16 bit
E0000000 80008000

42000000 93000000
07FDCCF7 XXXXXXXX <-- 32 bit
E0000000 80008000
lolz

dcx2

Romaap pointed this out to me the other day.  When you use ba codes, the code handler masks the lower 25 bits.  That is, ba = ba & 0xFE000000, or ba must be a multiple of 0x02000000.

42000000 91000000    # Load ba with 0x91000000 (might as well be 0x90000000)
01FDCCF7 000000XX   # mask lower ba bits off, leaving ba = 0x90000000, add 0x01000000 because 01 code type, and then add 0x00FDCCF7 = 0x91FDCCF7
E0000000 80008000    # end if

Codes using po are not subject to this restriction.

Your last post is wrong, too.  00 code types are 8-bit ba writes, 02 is 16 bit ba write, 04 is 32 bit write.  01 is 8-bit ba + 0x01000000, 03 is 16-bit ba + 0x01000000, 05 is 32-bit ba + 0x01000000.

Also, only an 8-bit code could end with an odd number.  i.e. 00FDCCF7 <-- that 7 is odd, so this must be an 8-bit code.  16-bit codes must be a multiple of 2, 32-bit codes a multiple of 4.

02FDCCF6 <--- multiple of 2
04FDCCF4 <--- multiple of 4

06/07 codes are string writes, so you can write to several consecutive memory cells.  So, instead of

           v--- consecutive addresses!
04100000 12345678
04100004 9ABCDEF0
04100008 192A3B4C
0410000C 5D6E7F80

That is four lines.  Instead, you could do a string write.

06100000 00000010   # write 16 bytes
12345678 9ABCDEF
192A3B4C 5D6E7F80

Which is only 3 lines.  The benefit is much more pronounced as you add more consecutive addresses that you need to write to.

Deathwolf

#8
for example (92000000)

92000000 + 00FDCCF7 = 92FDCCF7

code: 4A000000 92FDCCF7
         14000000 000000XX
         E0000000 80008000

or
     
        4A000000 92000000
        14FDCCF7 000000XX
        E0000000 80008000

right?

lolz

dcx2

Yes, you can use the po like that, but you can't use the ba like that.

Deathwolf

okay thank you very much dcx2 and ichfly ;)
lolz

wiiztec

8 bit

00XXXXXX 000000YY 80

01XXXXXX 000000YY 81

42000000 90000000
00XXXXXX 000000YY 90
E0000000 80008000

42000000 90000000
01XXXXXX 000000YY 91
E0000000 80008000

42000000 92000000
00XXXXXX 000000YY 92
E0000000 80008000

42000000 92000000
01XXXXXX 000000YY 93
E0000000 80008000

16 bit

02XXXXXX 0000YYYY 80

03XXXXXX 0000YYYY 81

42000000 90000000
02XXXXXX 0000YYYY 90
E0000000 80008000

42000000 90000000
03XXXXXX 0000YYYY 91
E0000000 80008000

42000000 92000000
02XXXXXX 0000YYYY 92
E0000000 80008000

42000000 92000000
03XXXXXX 0000YYYY 93
E0000000 80008000

32 bit

04XXXXXX YYYYYYYY 80

05XXXXXX YYYYYYYY 81

42000000 90000000
04XXXXXX YYYYYYYY 90
E0000000 80008000

42000000 90000000
05XXXXXX YYYYYYYY 91
E0000000 80008000

42000000 92000000
04XXXXXX YYYYYYYY 92
E0000000 80008000

42000000 92000000
05XXXXXX YYYYYYYY 93
E0000000 80008000
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