Mario Kart Wii Flat code(again but with ASM)

Started by toonlink444, January 27, 2011, 09:53:21 PM

Previous topic - Next topic

dcx2

You don't need the "middle" spoiler that you labeled just "disassembly".  All of that and more is in the dump from the Disassembler tab (the "third" spoiler).

Patedj, he did use Copy Function; those look simple because they're "leaf functions".  They don't call any other functions, and they don't use any local variables, so they don't need to create a stack frame, hence the lack of stwu/mflr/.../mtlr/addi/blr.

It looks to me like there are "flags" at 96(r3) and 100(r3).  The 96(r3) flag is set to 0 when you're flattened and 1 when you're unflattened.  This might be a "am I flattened" flag, which keeps you from getting flattened when you're already flat.  The 100(r3) flag is always set to 1...I dunno what that's for, maybe starts an animation or something?

The only float that's different between the two is the one stored at 112(r3).  The other float locations are loaded with the same values for both flattening and unflattening.

One thing that you might find enlightening...when you're on either of the stw r5,96(r3) breakpoints, click the Show Mem button.  It will switch to Memory Viewer.  Hit run, then check auto-update.  Then try to get flattened and look at what the values in memory are doing.  It might help to change the Memory Viewer View Mode to auto dot.

toonlink444

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

dcx2

They're like sticky notes for the CPU.

If you get flattened, and you get hit again, you don't want to get "re-flattened".  So the CPU sets a flag when you get flattened.

If you try to get flattened again while already flat, the CPU will see that the "flat flag" is already set, and it will know that it doesn't have to re-flatten you.

toonlink444

Ok, I changed mem viewer to Auto dot and when I got flatened I got,  . . . . and when big 00000001. what do the . . . .s mean?
In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

toonlink444

I got it to stay flat :D But it doesn't act flat. :-\ I got it to stay flat by making li r0,1 always be li r0,0. But in Moonview Highway(where I'm testing) You still get ran over not able to go under.
In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

dcx2

Auto Dot attempts to guess the data type for each cell in Memory Viewer.  However, the value 00000000 is ambiguous; it can be a float, an integer, etc.  So auto dot replaces 00000000 with . . . . which helps the data types stand out.

You should actually be looking at the floats just after the 1.  They should change in some predictable pattern when you get flat.  That's why I asked you to use auto dot.  1.0 probably means more to you than 3F800000.

Try changing address 805AE5E8 from li r5,0 to li r5,1 instead.  See what that does.  It might prevent you from ever going flat.

Changing the li r0,1 to li r0,0 might backfire, because both 805AE614 and 805AE640 write r0 somewhere, so you're actually changing more than one thing.  If the li r5,1 thing works as I expect, we'll see about writing you a C2 that modifies only 96(r3) and leaves 100(r3) alone.

Patedj

You can pm me, I've got time for your troubles.

toonlink444

About? Anyway If it wasn't for school :mad: and homework >:( I would have this done. Thats way they're long breaks between posts. Get back in a minute.
In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

toonlink444

your right dcx2. When you get hit you pop right back up when r5 is set to 0.
In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

toonlink444

Discovery!!!!! Value 80E92EFC stores the float that raises and lowers your hight. When set to 0.3(3E99999A) You become flat. I'm building off of that. See you guys tomorrow.
In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

Patedj

You can pm me, I've got time for your troubles.

toonlink444

Ok I'm back. I got a base for the code. Tell me if you think it might work. I have to boot up gecko dotNet first though.
In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

toonlink444

Ok it didn't work :'( I was wondering how can I put the value of address 80E92EFC into the code? 80E92EFC isn't called for(but it makes you flat) so how can I use it.
In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

toonlink444

Here's a code I just made.
28341462 FFFB0004
04E92E9C 3E99999A
E0000000 80008000
28341462 FFF70008
04E92E9C 3F7FFF4A
E0000000 80008000

It makes you flat when you hit down on the d-pad, and normal when d-pad up.
But my goal is to make it in ASM so I can learn some.
In the begining there was nothing. Then it exploded
New blog!! Check it out for hacking Smash Bros Brawl!! http://letshackblank.blogspot.com/

Patedj

You can pm me, I've got time for your troubles.