Dantarion
Smash Champion
So yeah, Fighter.pac. We can't edit it, and even with codes, we are limited to modifying it, as inserting lines is impossible. WROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONG.
Heres how this ledgeteching code came to be.
I noticed that when moveset .pac are loaded by the game, the relative offsets in the file are replaced with global offsets in memory. Then I thought of something. What if we use ocarina codes to replace a command with a Goto command, and then point the Goto command towards extra lines of code, which ends with a Goto to get back to the original action?
Well, it works.
Heres how the code works.
It goes to 0x81061000, a spot in brawls tmp space, and writes the following information.
1. A small PSA subroutine, written in hex and taken from the place that checks if you should tech, bounce off a wall, etc. This subroutine ends with the PSA command normally at 0x80FB368C, followed by a Goto to 80FB3694, where execution would normally continue
2. Two PSA variables, one for the Goto to the custom subroutine, and one for getting back
Then, the code goes to 0x0x80FB368C, inside fighter.pac, and replaces a command with a Goto command to the previously describted subroutine.
As a result, additional lines of PSA codes are inserted inside Fighter.pac.
Now, I present to you, Ledgeteching v1
http://www.youtube.com/watch?v=tfPvPSBxW_Q
My first attempt at L-Cancel. Currently works by speeding up landng lag 2X if you are holding shield when you land. Future attempts will work by looking for shield input during an aerial, setting a bit variable, waiting X frames, then clearing it. If the aerial is interrupted by hitting the ground, the variable SHOULD still be set, and then I can check for that input during landing lag.
Anyways, L-Cancel Code by Dantarion v1
Heres how this ledgeteching code came to be.
I noticed that when moveset .pac are loaded by the game, the relative offsets in the file are replaced with global offsets in memory. Then I thought of something. What if we use ocarina codes to replace a command with a Goto command, and then point the Goto command towards extra lines of code, which ends with a Goto to get back to the original action?
Well, it works.
Heres how the code works.
It goes to 0x81061000, a spot in brawls tmp space, and writes the following information.
1. A small PSA subroutine, written in hex and taken from the place that checks if you should tech, bounce off a wall, etc. This subroutine ends with the PSA command normally at 0x80FB368C, followed by a Goto to 80FB3694, where execution would normally continue
2. Two PSA variables, one for the Goto to the custom subroutine, and one for getting back
Then, the code goes to 0x0x80FB368C, inside fighter.pac, and replaces a command with a Goto command to the previously describted subroutine.
As a result, additional lines of PSA codes are inserted inside Fighter.pac.
Now, I present to you, Ledgeteching v1
http://www.youtube.com/watch?v=tfPvPSBxW_Q
Code:
[Ledgeteching v1.1 by Dantarion]
07061000 00000038 - Write Custom PSA subroutine into tmp space
00070100 80FB3F0C - These are 3 "Run subroutine" commands run normally during tumble for teching 00070100 80FB3F14
00070100 80FB3F1C
0D000200 80FB362C - This is the PSA command that is later replaced with a Goto to this subroutine
00090100 81061028 - This is the Goto to the command normally after the replaced command
00000002 80FB3694 - This is the avriable for the Goto back to the funciton in Fighter.pac
00000002 81061000 - This is the variable for the Goto to the custom subroutine
06FB368C 00000008 - This line overwrites a command in Fighter.pac with a Goto that ends up pointing to the above subroutine.
00090100 81061030
v1 - First attempt
v1.1 - Bugfix, now the replaced PSA command is actually run.
Anyways, L-Cancel Code by Dantarion v1
Code:
[L Canceling v1, Dantarion]
07060FC0 00000050
000A0200 81060FE8
04070100 81060FF8
000F0000 00000000
02010200 80FAF3EC
00090100 81061000
00000006 00000032
00000000 00000003
00000001 0001D4C0
00000002 80FC1C18
00000002 81060FC0
06FC1C58 00000008
00090100 81061008