Hello,
i hacked a code to fill or clear the energy bar of all characters in a required stage. In all other stages the code acts like usually. It seems to work fine. the energy bars are cleared. but the characters still get power ups anyways (if the energy bar is filled, you get a power up)
here's the code
20CBFA10 3F800000
0944FAD8 00000000
20152060 00000000
E0000000 80008000
20CBFA10 3F800000
09450B18 00000000
20152060 00000000
E0000000 80008000
i think there is a value missing. i've done some searches (an initial dump, then a greater than search after the character got a power up. next i've done some equal searches, then i ised the power up and done a less than search. i repeated these steps untill i was left with only 12 codes. i tested them, but all character's were able to reach a power up anyways.
what could i do to find the right value (if one is missing)?
Subtract 0x (-1)
Example on NSMB. If you set the coins perm. to 99 and you run into another coin then you'll get everytime +1 life added (because off 100 coins = 1 Life)
But if you set the value perm. to 98, then it will just change to 99 for one second.
yes, i know this from hacking super monkey ball step and roll.
but the energy bar only knows following values:
0x00000000, 0x3F800000, 0x3FC00000, 0x40000000, 0x40400000, 0x40800000. and i want the energy bar to be cleared permanently. should i try to use unsigned values instead?
the code i pasted in the post before clears the energy bars. but the characters still get powerups anyways
Use breakpoint write and nop to win this :p
i tryed it for many time but nothing works. I found a code that clears all energy bars and one which freezes the powerup animations, but the characters still get powerups anyways..
any idea what to do, now?
Find the power-up address and make it always empty or something like that.
i tryed it. i took the address of the powerup into the textbox of the breakpoint tab and searched for them.
as the enrgy increased the game freezed untill i clicked the "run" button. also i think i found some good values.
i put some disassembler codes to the gct codes and changed the record to 0x60000000. the only things happened were freezing the powerup animation and to clear the energy bar. but all characters still were able to get powerups anyways
You found wrong addresses. There always is a true one.
Quote from: CosmoCortney on October 31, 2012, 02:14:54 AM
0x00000000, 0x3F800000, 0x3FC00000, 0x40000000, 0x40400000, 0x40800000
Those are 32-bit single precision floats. 0, 1.0, 1.5, 2.0, 3.0, 4.0.