So I've been trying to find random stuff in Dolphin recently, and I'm tired of having to post it in my segmented run topic when it doesn't really belong there, so yeah. New thread to put all of this in. Anyway to start off, I found what's basically your "jump/standing state" value (address 46BBD4):
- It's 0 when you're on the ground (or in Aether). While unmorphed, your vertical speed is set to 0, and you can jump.
- It's 1 during a jump, while your vertical speed is increasing.
- It's 2 when you're in midair normally, where your vertical speed is constantly decreasing and you can't jump.
- It's 3 for a couple of frames after you walk off a ledge. Seems to be mostly identical to 0, meaning you can jump (which is what allows for Aether Jumping I guess), except that if you manually edit the value to 3 it'll stay there (instead of immediately changing to 2) and you'll end up in some weird standing in midair state until you jump.
- It's 4 for about 22 frames after you go airborne while morphed, after which it'll change to 2. Now, this is functionally identical to 0, which is what allows for BSJs/roll jumps; getting an instant unmorph allows you to jump before that 22 frame window runs out. So basically, it has absolutely nothing to do with your "momentum"; it's simply jumping soon enough after you go airborne. I'm guessing the reason it does this in the first place is because it sets your vertical speed to 0, which is why you don't go crashing to the ground if you unmorph soon enough after rolling off a ledge. It also explains why you don't get any unmorph height from a 3BJ etc., as you're unmorphing too soon and your speed's set back to 0.
- Anything 5 and higher is the same as 3, though AFAIK it never goes this high unless you manually edit the value.
- It's 0 when you're on the ground (or in Aether). While unmorphed, your vertical speed is set to 0, and you can jump.
- It's 1 during a jump, while your vertical speed is increasing.
- It's 2 when you're in midair normally, where your vertical speed is constantly decreasing and you can't jump.
- It's 3 for a couple of frames after you walk off a ledge. Seems to be mostly identical to 0, meaning you can jump (which is what allows for Aether Jumping I guess), except that if you manually edit the value to 3 it'll stay there (instead of immediately changing to 2) and you'll end up in some weird standing in midair state until you jump.
- It's 4 for about 22 frames after you go airborne while morphed, after which it'll change to 2. Now, this is functionally identical to 0, which is what allows for BSJs/roll jumps; getting an instant unmorph allows you to jump before that 22 frame window runs out. So basically, it has absolutely nothing to do with your "momentum"; it's simply jumping soon enough after you go airborne. I'm guessing the reason it does this in the first place is because it sets your vertical speed to 0, which is why you don't go crashing to the ground if you unmorph soon enough after rolling off a ledge. It also explains why you don't get any unmorph height from a 3BJ etc., as you're unmorphing too soon and your speed's set back to 0.
- Anything 5 and higher is the same as 3, though AFAIK it never goes this high unless you manually edit the value.
Thread title: