Jump to content

Fluttering: Difference between revisions

From Yoshi's Island Speedrunning Wiki
 
(157 intermediate revisions by 3 users not shown)
Line 1: Line 1:
__FORCETOC__
=Auto-Flutter=
Hold B after doing any the following actions to flutter automatically:
* Jumping.
* Bonking your head on a ceiling.
* Transforming from Super Baby Mario back to Yoshi.
* Bouncing on a spring.
* Bouncing on an enemy or Koopa Shell, with the exception of bandits, big chickens, frogs, snowmen, and non-skeleton Goonies. <br>


==How To Flutter==
You can also flutter infinitely while under a falling rock like the ones in [https://youtu.be/c-uYd9NuyFc?si=2c3cKERDURlU6dyq&t=24 2-1] and [https://youtu.be/dHtcEMa0_IA?si=pK96jvqjtKME4dKc&t=20 2-7]
In a video uploaded by Trix, he discusses how to do perfect flutters,sustained flutters and the visual cue that he uses. [https://youtu.be/uuZCZO0fUj8 Fluttering tutorial].


==Perfect Flutter==
=Perfect Flutter=
{{#ev:youtube|8ldUbaN9tvs|240x240|right|2-4 Perfect Flutter Example|frame}}
'''[[File: Perfectflutter.gif|right|thumb|250px|Auto-Flutter then a Perfect Flutter]]'''


Normally, a flutter is done by simply pushing the jump button and holding it until a flutter begins, however, this method does not give you maximum height. What you want to do instead is, release B at the '''peak''' of your jump and then, as quickly as possible, repress it to do a perfect flutter. Doing this will allow you to gain a few extra pixels of height. You have a '''3 frame''' window to do a perfect flutter.
Normally, a flutter is done by simply pushing the jump button and holding it until a flutter begins, however, this method does not give you maximum height. What you want to do instead is, release B at the peak of your jump and then, as quickly as possible, repress it to do a perfect flutter. Doing this will allow you to gain a few extra pixels of height. You have a 3 frame window to do a perfect flutter, assuming that when you release B, you repress it on the next frame. Some places are more lenient, like 2-4 for example, where you have 5 frames and some may be more strict. (more testing needs to be done)


They can be used to access several areas that are otherwise too high to reach, such as:
They can be used to access several areas that are otherwise too high to reach, such as:
*The area above the !switch in [[Any%25_2-4|2-4]].
*The area above the !switch in [[2-4_Any%25|2-4]].
*The last room of the bottom-right room in [[Any%25_4-4|4-4]]. [https://youtu.be/M8HQWV7Y3bI?t=1m52s]
*The last room of the bottom-right room in [[4-4_Any%25|4-4]]. [https://youtu.be/M8HQWV7Y3bI?t=1m52s]
*Traveling over the stone column in [[Any%25_6-4|6-4]]. [https://youtu.be/K1qSJ23mQ7k?t=1s]
*Traveling over the stone column in [[6-4_Any%25|6-4]]. [https://youtu.be/K1qSJ23mQ7k?t=1s]
*After obtaining the key in [[Any%25_6-6|6-6]]. [https://youtu.be/mMUuLs5EDo0?t=33s]
*After obtaining the key in [[6-6_Any%25|6-6]]. [https://youtu.be/mMUuLs5EDo0?t=33s]


The video demonstrates how a normal flutter does not give you enough height to reach the ledge and then how a perfect flutter allows you to just barely make it with the extra height.
The gif demonstrates how a normal flutter does not give you enough height to reach the ledge and then how a perfect flutter allows you to just barely make it with the extra height.


==Extended Flutter==
=Extended Flutter=
{{#ev:youtube|K1qSJ23mQ7k|240x160|right|6-4 Key Skip: https://www.youtube.com/watch?v=K1qSJ23mQ7k|frame}}
[[File: Extendedflutter.gif|right|thumb|250px|'''Extended Flutter]]
[how much height does it gain?]


An extended flutter is performed by bouncing on an enemy and then holding B. There are a couple ways to get the most height out of an extended flutter:
An extended flutter is typically performed by bouncing on an enemy but you can also get one by:
* Getting flung upward by a spinning switch platform [image]
* Touching the boss Salvo The Slime
* Getting hit from below by an egg
* Jumping into the side of a big chicken [image]
* Getting hit by a falling mace ball [https://youtu.be/72j-O_0fI5Y?si=k8nTqc2VtOyPDQp5&t=7]
* Getting flung upward by spinning log


*Hold B just before bouncing on the enemy to get a big bounce. Not holding B results in a much smaller bounce.
bounce on enemy -> bonk -> no ext. flutter [4-4]
*Release B and manually initiate the flutter around the peak of the bounce, rather than just waiting for an automatic flutter. This is sort of the same idea as the [[Fluttering#Perfect Flutter|perfect flutter.]]
*You can also follow the extended flutter up with a manual flutter to gain a bit more height.


Extended flutters are used in many levels to reach otherwise unreachable areas like in [[Any%25_1-1|1-1]] to [https://youtu.be/ICAg6VxRvs0?t=15s skip the beanstalk] or in 6-4 to travel over the stone column, skipping the need for a key. <br />
There are a couple ways to get the most height out of an extended flutter:


The video demonstrates an extended flutter, followed by a perfect flutter, as part of the Warpless route in 6-4.
1. Hold B just before bouncing on the enemy to get a big bounce. Not holding B results in a much smaller bounce. <br/>
2. Release B and manually initiate the flutter around the peak of the bounce, rather than just waiting for an automatic flutter. This is sort of the same idea as the [[Fluttering#Perfect Flutter|perfect flutter.]] <br/>
3. Follow the extended flutter up with a manual flutter to gain a bit more height.


==Sustained Flutter==
*Extended flutters are used in many levels to reach otherwise unreachable areas like in [[1-1_Any%25|1-1]] to [https://youtu.be/ICAg6VxRvs0?t=15s skip the beanstalk] or in [[6-4_Any%25|6-4]] to travel over the stone column, skipping the need for a key.
{{#ev:youtube|XP2Sxh82sMw|240x160|right|6-4 Lava skip: https://www.youtube.com/watch?v=XP2Sxh82sMw|frame}}
*Extended flutters can also be stored via a [[Movement#Perfect_Jumps|perfect jump]] [https://youtu.be/7H8h1W9dZAk?t=9] or by bouncing on a !switch to allow for extra height [https://youtu.be/HnOY2wMhhoI?t=4164]
{{#ev:youtube|KOiRNhk_l4U|240x160|right|Optimized lava skip: https://www.youtube.com/watch?v=KOiRNhk_l4U|frame}}
Flutters can be chained together indefinitely so that Yoshi does not lose height. This is only used when needed such as the [https://youtu.be/MUYwwBLRSQg?t=34s water section] in [[Any%25_3-4|3-4]], the [https://youtu.be/LBjPnYz26m0?t=1m25s platform skip] in [[Any%25_5-4|5-4]] or the [https://youtu.be/4ZW8iCoN1qA?t=1m36s lava skip] in [[Any%25_6-4|6-4]]. Since fluttering is slower than running at full speed, you only want to flutter when it's necessary. You have a '''9 frame''' window to reflutter to not lose height.


===Lava Skip===
The gif demonstrates an extended flutter, followed by a manual flutter as part of the Warpless route in 6-4.
Lava skip saves about '''3 seconds''' over riding the log. For some people, it's too risky to do, especially with late game nerves and how little time it saves. If you skipped both mid-rings up to this point, dying means you'll have to replay the entire level resulting in '''multiple minutes''' lost. Even if you get the mid-ring just before this room you'll still lose '''20-40s''' depending on where you fall in the lava. <br/>
==Flutter Storage==
You can store (save) an extended flutter for later use by doing a frame perfect jump [1-1] or jumping on a !switch [5-5] to delay it. <br>
Even though the jump is frame perfect, you do ''not'' need to release and repress B.
For most platforms you have to essentially clip onto the side of it so that you're never moving downward, but for certain types of platform sprites it just always works, like the pinwheel in 1-1.


Doing multiple flutters over a long distance and maintaining height takes a lot of practice, but you know the saying, practice makes perfect! [[File:Flutter.gif]]
=Sustained Fluttering=
{{#ev:youtube|OiOUKrAizpA|250x170|right|'''6-4 Lava skip |frame}}
Flutters can be chained together indefinitely so that Yoshi does not lose height. This is only used when needed such as in the [https://youtu.be/MUYwwBLRSQg?t=34s water section] in [[3-4_Any%25|3-4]], the [https://youtu.be/LBjPnYz26m0?t=1m25s platform skip] in [[5-4_Any%25|5-4]], or the [https://youtu.be/4ZW8iCoN1qA?t=1m36s lava skip] in [[6-4_Any%25|6-4]]. Since fluttering is slower than running at full speed, you only want to flutter when it's necessary. You have a 9 frame window to maintain height but you also need to release and repress B within 1 frame.


===5-4 Skip===
Doing multiple flutters over a long distance and maintaining height takes a lot of practice, but you know the saying, practice makes perfect! [[File:Flutter.gif]]
<br clear=all>


The notorious 5-4 skip is by far the hardest trick in the entire game, way harder than lava skip in fact. It can take upwards of 1000 attempts to even land it once, but the time it saves is huge, making it totally worth learning. Failing the skip results in losing around '''25-70s''' depending on where you fall. The time lost is even greater in 100% due to collectibles ('''30-90s'''). <br/>
=Fluttering Frame Data=


There are 4 ways to do the skip, each one a little bit tougher than the last. (Half skip is a lot more manageable though). <br />
andy_kuma, Brooklyn9d5 & Thurler investigated the frame data for fluttering. First we did some manual testing. The results can be found in this [https://docs.google.com/spreadsheets/d/1I4aXRm97Hz8FmVk4NMe1EWfWFM2wdbOoPcaVSHXCOcw speadsheet!]


'''Time save comparison for Any%: <br />'''
Later we did automated/scripted testing via [[DLC|Lua and an emulator]]. The results are as follows:
- No skip (using platform): 2:27 <br />
- Half skip (w/ shy guy): 1:31 (-56s) <br />
- Half skip (no shy guy): 1:24 (-63s) <br />
- Full skip (w/ shy guy): 1:10 (-77s) <br />
- Full skip (no shy guy): 1:03 (-84s) <br />


Full skip saves over 1 minute in 100% and half skip saves about 40s. <br />
==Perfect Flutter From A Regular Jump==
[[File: Perfectflutter_data.png|||1000px|Perfect Flutter]]


''There is also an [https://imgur.com/a/UdwUQ image gallery] that shows how to do 5-4 skip.  
'''• Delta/frame''': the length of time that the button was not pressed.
'''• Green values''': an increase in height (in pixels).
'''• Dark green values''': enough height for the perfect flutter in '''2-4''' if you were against the wall (doing a left->right will improve your chances at getting it).'''
'''• Blue values''': no height lost or gained.
'''• Red values''': loss of height.


{{#ev:youtube|3CnmRBnr1gI|320x180|left|5-4 Full Skip vs. Platform Any%: https://www.youtube.com/watch?v=3CnmRBnr1gI|frame}}
==Refluttering==
[[File: Reflutter_data.png|||1000px|Reflutter]]
* You need a 1 frame repress to not lose height during reflutters!
* There are 6 frames where you can gain height.
* And  frames where you can keep your height.
* For the first and last 2 working frames, the height loss is greater if you miss the 1 frame repress.
* It's better to aim for the middle of the working frames because 2 frame repress reflutters wont lose as much height.
* DROP means that no reflutter will be initiated.


{{#ev:youtube|lDNDGFJjWo0|320x180|right|5-4 Half vs. Full Skip 100%: https://www.youtube.com/watch?v=lDNDGFJjWo0|frame}}
==Extended Flutter==
[[File: Extended_flutter_chart.png|||1000px|Extended Flutter]]

Latest revision as of 18:55, 4 June 2026

Auto-Flutter

Hold B after doing any the following actions to flutter automatically:

  • Jumping.
  • Bonking your head on a ceiling.
  • Transforming from Super Baby Mario back to Yoshi.
  • Bouncing on a spring.
  • Bouncing on an enemy or Koopa Shell, with the exception of bandits, big chickens, frogs, snowmen, and non-skeleton Goonies.

You can also flutter infinitely while under a falling rock like the ones in 2-1 and 2-7

Perfect Flutter

Auto-Flutter then a Perfect Flutter

Normally, a flutter is done by simply pushing the jump button and holding it until a flutter begins, however, this method does not give you maximum height. What you want to do instead is, release B at the peak of your jump and then, as quickly as possible, repress it to do a perfect flutter. Doing this will allow you to gain a few extra pixels of height. You have a 3 frame window to do a perfect flutter, assuming that when you release B, you repress it on the next frame. Some places are more lenient, like 2-4 for example, where you have 5 frames and some may be more strict. (more testing needs to be done)

They can be used to access several areas that are otherwise too high to reach, such as:

  • The area above the !switch in 2-4.
  • The last room of the bottom-right room in 4-4. [1]
  • Traveling over the stone column in 6-4. [2]
  • After obtaining the key in 6-6. [3]

The gif demonstrates how a normal flutter does not give you enough height to reach the ledge and then how a perfect flutter allows you to just barely make it with the extra height.

Extended Flutter

Extended Flutter

[how much height does it gain?]

An extended flutter is typically performed by bouncing on an enemy but you can also get one by:

  • Getting flung upward by a spinning switch platform [image]
  • Touching the boss Salvo The Slime
  • Getting hit from below by an egg
  • Jumping into the side of a big chicken [image]
  • Getting hit by a falling mace ball [4]
  • Getting flung upward by spinning log

bounce on enemy -> bonk -> no ext. flutter [4-4]

There are a couple ways to get the most height out of an extended flutter:

1. Hold B just before bouncing on the enemy to get a big bounce. Not holding B results in a much smaller bounce.
2. Release B and manually initiate the flutter around the peak of the bounce, rather than just waiting for an automatic flutter. This is sort of the same idea as the perfect flutter.
3. Follow the extended flutter up with a manual flutter to gain a bit more height.

  • Extended flutters are used in many levels to reach otherwise unreachable areas like in 1-1 to skip the beanstalk or in 6-4 to travel over the stone column, skipping the need for a key.
  • Extended flutters can also be stored via a perfect jump [5] or by bouncing on a !switch to allow for extra height [6]

The gif demonstrates an extended flutter, followed by a manual flutter as part of the Warpless route in 6-4.

Flutter Storage

You can store (save) an extended flutter for later use by doing a frame perfect jump [1-1] or jumping on a !switch [5-5] to delay it.
Even though the jump is frame perfect, you do not need to release and repress B. For most platforms you have to essentially clip onto the side of it so that you're never moving downward, but for certain types of platform sprites it just always works, like the pinwheel in 1-1.

Sustained Fluttering

6-4 Lava skip

Flutters can be chained together indefinitely so that Yoshi does not lose height. This is only used when needed such as in the water section in 3-4, the platform skip in 5-4, or the lava skip in 6-4. Since fluttering is slower than running at full speed, you only want to flutter when it's necessary. You have a 9 frame window to maintain height but you also need to release and repress B within 1 frame.

Doing multiple flutters over a long distance and maintaining height takes a lot of practice, but you know the saying, practice makes perfect!

Fluttering Frame Data

andy_kuma, Brooklyn9d5 & Thurler investigated the frame data for fluttering. First we did some manual testing. The results can be found in this speadsheet!

Later we did automated/scripted testing via Lua and an emulator. The results are as follows:

Perfect Flutter From A Regular Jump

Perfect Flutter

• Delta/frame: the length of time that the button was not pressed.
• Green values: an increase in height (in pixels).
• Dark green values: enough height for the perfect flutter in 2-4 if you were against the wall (doing a left->right will improve your chances at getting it).
• Blue values: no height lost or gained.
• Red values: loss of height.

Refluttering

Reflutter

  • You need a 1 frame repress to not lose height during reflutters!
  • There are 6 frames where you can gain height.
  • And frames where you can keep your height.
  • For the first and last 2 working frames, the height loss is greater if you miss the 1 frame repress.
  • It's better to aim for the middle of the working frames because 2 frame repress reflutters wont lose as much height.
  • DROP means that no reflutter will be initiated.

Extended Flutter

Extended Flutter