Apply codes doesn't work?

Started by Goz3rr, May 31, 2010, 04:46:38 PM

Previous topic - Next topic

Goz3rr

So i got my USB Gecko today (Yay, It was one of the last one in stock at www.adictron.com they still have some there.)
I connected it right away, After some fiddling around (And finding 2010 drivers, The one on CD is from 2007 D:) i got it connected to Super mario galaxy!

I have some experience with Cheat Engine, And watched Foxx's tutorials on youtube.

Now, I've found an address that stores the fly time left, And when poking it it works!
I've moved the code to GCT Codes, And i came up with this code:

040B575C 000000B4
B4 being 180, And supposedly being the max value of the flytime, And as i said, When i keep poking it it keeps restoring to full.

And the 04______ XXXXXXXX syntax for 32bit RAM write.
Note, I didn't find the pointer out yet, This one's from the level Bee Mario Takes Flight.

Now, When i enable the code, and press apply codes, And take off, The fly time value just drains!
I'm using the Latest Drivers and USB Loader GX. Am i doing something wrong with my code, Or is there something else happening?

Goz3rr

#1
Mmmmh, After testing some codes from the code database apply codes do seem to work.
Can anyone tell me what's wrong with the code then?
As said before, Poke does work, But it gets annoying to press poke everytime the fly value almost run out.
I've looked into breakpoints: Whenever i set a breakpoint on this address, Read or write, The game just immediately freezes up.
When using exact match, I find one line with an subi, Which subtracts 1 from r3, Changing this one to nop or addi doen't have any effect.

EDIT: I set the breakpoint when the bee transform was active, Without it being active, It doesnt freeze, Neither when i pick one up

James0x57

For 32 bit write, use 05 instead of 04 for addresses 0x81000000 and over.


dcx2

You probably found a subi r0,r3,1.  Replacing this with a nop won't help.  You would need to replace it with mr r0,r3.

What address specifically are you poking?

Goz3rr

#4
Quote from: James0x57 on May 31, 2010, 08:20:08 PM
For 32 bit write, use 05 instead of 04 for addresses 0x81000000 and over.
http://wiird.l0nk.org/codetypes.html
I used this page, Shouldn't you add that there?
Quote
CST2: 32bits Write

04______ XXXXXXXX : 32bits ram write (ba) writes XXXXXXXX at ba+address

14______ XXXXXXXX : 32bits ram write (po) writes XXXXXXXX at po+address
Quote from: dcx2 on June 01, 2010, 01:08:12 AM
You probably found a subi r0,r3,1.  Replacing this with a nop won't help.  You would need to replace it with mr r0,r3.

What address specifically are you poking?
I found a subi r3,r3,1.
I understand some asm, And i know that subi r3,r3,1 subtracts 1 from register 3, Then puts it in register 3.
The address i'm poking is 810B575C

dcx2

It is, but it's difficult to understand.  The code type/subtype are the first *seven* bits.  The eighth bit of the first byte is the first bit of the address.  So there is no "05 code type", really...it's an 04 code type with an address bit set.

Quote____ : It's the address that will be used in some code. It ranges from 0x00000000 to 0x01FFFFFF. The "____" actually means the address is not complete. A part of it is also in the numbers that are surround the "____". For example, above 0x00FFFFFF, the address will modify the "look" of the sub code type, making it an odd number.

James is right, you want 05 instead of 04.