Kill an enemy to restore health super mario galaxy.

Started by toonlink444, December 22, 2011, 12:29:47 AM

Previous topic - Next topic

toonlink444

So I have determined the best way to do this is to do a 16 bit unknown search. Then hit the enemy (or jump on it) then do less then. If it's still alive another less then search. When it's dead do a not equal search. Then reload the area and repeat it on the same enemy. I get results but none show any sign of enemy health change. So would this be a good way or is this a bad search tactic?
In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

Stuff

In MH3 when a minion dies the MID shows another monster take it's place. Also when a boss spawns it sometimes takes a minion's spot. Sometimes it doesn't even should, but that's probably a online side effect...

Anyway, maybe it's the same in smg with the baddies. They most likely have 1, 2, or 3 hp. Unless mario gets stronger. Try a equal search to eliminate some stuff before doing any damage. then less than and some more equals. You could also try you luck with specific searches. 3, 2, 1, and 0 before they disappear. Or maybe if there's already a ohko code, you can find out where the hp is at but looking at the asm.
.make Stuff happen.
Dropbox. If you don't have one, get it NOW! +250MB free if you follow my link :p.

Mod code Generator ~50% complete but very usable:
http://dl.dropbox.com/u/24514984/modcodes/modcodes.htm

toonlink444

alright that helps. I didn't think of a specific value to put in.
In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

Bully@Wiiplaza

#3
Quote from: toonlink444 on December 22, 2011, 12:29:47 AM
So I have determined the best way to do this is to do a 16 bit unknown search. Then hit the enemy (or jump on it) then do less then. If it's still alive another less then search. When it's dead do a not equal search. Then reload the area and repeat it on the same enemy. I get results but none show any sign of enemy health change. So would this be a good way or is this a bad search tactic?
that´s a bad approach because addresses will change each time the chosen enemy was killed or if you restart the level.
Hehe, try on a strong enemy so that you have many opportunities to search.
I did it like this on ssbb (tabuu battle) and conduit 2 (using a weak weapon). Find the enemies health bar and set a BP write on it.
Write some ASM that makes it always return value 0 and it will be a one hit kill for enemies.
It doesn´t affect yourself, because you´ve a different way of storing health than the enemies.
I´m sure that it will be like this on SMG aswell.

Here are my two example codes:
[spoiler]
One Hit Kill Enemies -TC2- [Bully@Wiiplaza]
C20F102C 00000004
2C0600BD 40820010
39800000 91980000
48000008 D0180000
60000000 00000000

One Hit Kill Enemies -SSBB- [Bully@Wiiplaza]
C31B6A08 00000002
39800000 7D83012E
60000000 00000000[/spoiler]Btw. I don´t think that it will be easy to do on SMG since there´s no common enemy that can take many hits...
maybe you wanna try on Zelda games. There´s still some games who could´ve an easy one hit kill code. :P
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully

toonlink444

Yeah I figured that it would be hard in SMG1 I tried in zelda but my problem was enemy's die to fast. Is there a pointer that has a health value for all enemy's?
In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

Stuff

oh how about koopas? They might have health. Maybe. Hit them in their shell and do less than. Lets them get up and do greater than. Do some equal searches in between while moving around pushing buttons to eliminate nonsense/movement/buttons.

Or go do a boss fight that takes a few hits.
.make Stuff happen.
Dropbox. If you don't have one, get it NOW! +250MB free if you follow my link :p.

Mod code Generator ~50% complete but very usable:
http://dl.dropbox.com/u/24514984/modcodes/modcodes.htm

toonlink444

Hmmm what would be best 8, 16, or 32 bit search. 32 seems a little to much for enemy health but the characters health is usually 32 bit. So what's best 8, 16, or 32?
In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

Stuff

probably 16bit. Since they take such little hits to die. Is Mario's hp 32 bit? It's like 8hp. I say 16 because in MH3 player hp is 16 bit even though 0x96 is the normal max. And I've seen very small digits being 16 bit too. On the other hand, monster hp can be 32 bit even though the highest normal hp was 0x3A98. You could probably do 32 bit search anyway. Max hp is likely to be right next to it so doing damage it would still be a good less than search. Hopefully.

Make sure that when you find hp, you do a few Read/Write BP and take note of the asm that runs for it. Since it's so difficult to find, if the hp moves, at least you know what asm to BP at to find it.
.make Stuff happen.
Dropbox. If you don't have one, get it NOW! +250MB free if you follow my link :p.

Mod code Generator ~50% complete but very usable:
http://dl.dropbox.com/u/24514984/modcodes/modcodes.htm

toonlink444

Here's my code for a  one hit kill in twilight princess
[spoiler]C20848FC 00000002
38000000 B01C0566
60000000 00000000[/spoiler]
How would I had on the refill health piece. I have that address.
In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

Bully@Wiiplaza

Quote from: toonlink444 on December 24, 2011, 04:45:33 AM
Here's my code for a  one hit kill in twilight princess
[spoiler]C20848FC 00000002
38000000 B01C0566
60000000 00000000[/spoiler]
How would I had on the refill health piece. I have that address.
great :cool:
now you need to include the rest into your assembly.
"Each time it executes, restore health".
Find the position in RAM where health is stored and write some assembly that one hit kills enemies AND also adds 1 heart to your health by loading the health address into a register.
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully

toonlink444

In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

matt123337

#11
to load the address, yeah lis & ori

Example:

lis rX,0x8000 # upper half of address (first four digits)
ori rX,rX,0x1337 # lower half of address (last four digits)
lwz rY,0(rX) # read data from memory (rX + 0), and store it in rY

you could also just store it into rX (instead of rY) after loading the address into the register, if you don't need to use the address again.

Stuff

you could also just load without ori:

lis rX,0x8000 # upper half of address (first four digits)
lwz rY,0x1337(rX)

I guess for restoring hp, you want to load the current and add some to it. So it'd be good to load into rY instead of rX so that you can
stw rY, 0x1337(rX)

You could also use the whatever they're called to declare the address as a variable so pyiiasmh can take care of the rest.

Quote from: dcx2 on September 30, 2011, 05:35:11 PM
.set CC_ADDR, 0x806593DC

lis r12,CC_ADDR@ha
lhz r12,CC_ADDR@l(r12)
andi. r12,r12,0x800
# cmpwi here if you mask multiple buttons to make sure they are all held
beq- _NO_HACK

# do hack stuff here

_NO_HACK:

---

That will circumvent the sign extension problem in PyiiASMH.
.make Stuff happen.
Dropbox. If you don't have one, get it NOW! +250MB free if you follow my link :p.

Mod code Generator ~50% complete but very usable:
http://dl.dropbox.com/u/24514984/modcodes/modcodes.htm

megazig

careful stuff. lwz takes a SIMM. so lower half >= 0x8000 will actually change your upper half

Stuff

ah yeah. I didn't know how to word it. >.< That's why I just quoted the .set, @ha, @l stuff.

if the lower half >= 0x8000, -1 from upper half. So:

lis rX, 0x8066
lwz rY, 0x8000(rX)

this will load from 80658000 because 0x8000 is -something. But if you use the variables, Pyiiasmh knows what to do with it.
.make Stuff happen.
Dropbox. If you don't have one, get it NOW! +250MB free if you follow my link :p.

Mod code Generator ~50% complete but very usable:
http://dl.dropbox.com/u/24514984/modcodes/modcodes.htm