phish-it
Smash Champion
Animation/Subaction Swapping
Something that I've been meaning to post but have been putting off for some time now. If you weren't aware already it's been established how to speed up or slow down animations, but it is also possible to swap different animations with each other, as long as it is within the same character.
Character ID's
Code:
Bowser: 00 00 00 05
Captain Falcon: 00 00 00 02
Donkey Kong: x8 00 00 03
Dr Mario: 00 00 00 15
Falco: 00 00 00 16
Fox: 00 00 00 01
Game and Watch: 00 00 00 18
Ganondorf: 00 00 00 19
Ice Climbers (Nana): 00 00 00 0B
Ice Climbers (Popo): 00 00 00 0A
Jigglypuff: 00 00 00 0F
Kirby: 00 00 00 04
Link: 00 00 00 06
Luigi: 00 00 00 11
Mario: 00 00 00 00
Marth: 00 00 00 12
Mewtwo: 00 00 00 10
Ness: 00 00 00 08
Peach: 00 00 00 09
Pichu: 00 00 00 17
Pikachu: 00 00 00 0C
Roy: 00 00 00 1A
Samus: 00 00 00 0D
Sheik: 00 00 00 07
Yoshi: 00 00 00 0E
Young Link: 00 00 00 14
Zelda: 00 00 00 13
Character Offsets
Code:
Bowser: 0x7B5C
Captain Falcon: 0x7AB4
Donkey Kong: 0x7E94
Dr Mario: 0x7280
Falco: 0x7820
Fox: 0x7738
Game and Watch: 0x7c78
Ganondorf: 0x760C
Ice Climbers (Nana): 0x4D4C *
Ice Climbers (Popo): 0x6FB4
Jigglypuff: 0x6F58
Kirby: 0xB29C
Link: 0x7DAC
Luigi: 0x6F5C
Mario: 0x6F40
Marth: 0x7D0C
Mewtwo: 0x75BC
Ness: 0x7690
Peach: 0x865C
Pichu: 0x75E4
Pikachu: 0x7610
Roy: 0x802C
Samus: 0x70C4
Sheik: 0x743C
Yoshi: 0x733C
Young Link: 0x8158
Zelda: 0x7CE4
In this example I'm going to walk through the process of changing the animation of Bowser's down air to his aerial throwing a light item down animation.
The first thing to do would be to find where both of these animations are located in the code. An easy way to search is to replacing the data in this area with 0's and viewing it in Master Hand, which will be listed as No Name.
The location for the Down Air (AttackAirLw) at x0821C
This is the ID for the animation itself. I am unsure of what everything does within it.
This is the pointer, basically where it reads in the code when you use this move. If this is replaced by the pointer data of another subaction it'll call that data when the attack is used. ie, if I changed the pointer to that of his Forward Smash and nothing else, Bowser would do the animation of his down air but with his forward smash hitbox properties.
This is the character ID. Don't change this.
This byte is important for subactions which move the character (dash attacks, some forward smashes, certain B moves etc.). You need to copy this for subactions which move the character.
for the aerial throwing a light item down (LightThrowAirLw) at x08504
Since I am swapping the Down Air animation with the item throw, I'd copy this highlighted blue data and replace the highlighted blue data for the down air.
Because I changed the animation, the old down air hitboxes data doesn't logically make sense for it. In this case I just went back to where the down air hitbox data is located and rewrote it within the same parameters.
I slowed down the end of the animation to make it less erratic and safe. When using the Animation Engine posted by Magus, you would use the Down Air ID rather than the LightThrowAirLw ID. Also, I changed the down air landing animation to to that of his forward air to make it look more natural (the arms still reverse when he lands but you won't notice it unless you play it frame by frame).
Thats basically what I've figured out about animation/subaction swapping. Maybe you guys can dig deeper into it.