Difference between revisions of "Fluttering"

From Yoshi's Island Speedrunning Wiki
Jump to navigation Jump to search
(Fluttering Frame Data)
(5-4 Skip File: 5-4skip4.png)
 
(60 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__FORCETOC__
 
__FORCETOC__
 
==How To Flutter==
 
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==
[[File: Perfectflutter.gif|right|thumb|250px|Perfect Flutter]]
+
[[File: Perfectflutter.gif|right|thumb|250px|'''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)
+
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 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.
 
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==
[[File: Extendedflutter.gif|right|thumb|240px|Extended Flutter]]
+
[[File: Extendedflutter.gif|right|thumb|250px|'''Extended Flutter]]
  
 
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 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:
  
*Hold B just before bouncing on the enemy to get a big bounce. Not holding B results in a much smaller bounce.
+
1. Hold B just before bouncing on the enemy to get a big bounce. Not holding B results in a much smaller bounce. <br/>
*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.]]
+
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/>
*You can also follow the extended flutter up with a manual flutter to gain a bit more height.
+
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 [[Any%25_1-1|1-1]] to [https://youtu.be/ICAg6VxRvs0?t=15s skip the beanstalk] or in [[Any%25_6-4|6-4]] to travel over the stone column, skipping the need for a key. <br />
+
*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.
 +
*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]
  
The gif demonstrates an extended flutter, followed by a manual flutter, as part of the Warpless route in 6-4.
+
The gif demonstrates an extended flutter, followed by a manual flutter as part of the Warpless route in 6-4.
  
==Sustained Flutter==
+
==Sustained Fluttering==
{{#ev:youtube|XP2Sxh82sMw|300x200|right|6-4 Lava skip |frame}}
+
{{#ev:youtube|OiOUKrAizpA|250x170|right|'''6-4 Lava skip |frame}}
{{#ev:youtube|KOiRNhk_l4U|300x200|right|Optimized Lava Skip|frame}}
+
{{#ev:youtube|KOiRNhk_l4U|250x170|right|'''Optimized Lava Skip|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 maintain height but you also need to release and repress B as quickly as you can to maintain the most height.
+
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 [[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 to maintain height.
  
===Lava Skip===
+
===Lava Skip [[File: lavaskip4.png]]===
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/>
+
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/>
  
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]]
+
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>
 +
===5-4 Skip [[File: 5-4skip4.png]]===
 +
{{#ev:youtube|YEImW1ndWdI|250x170|right|'''Full Skip without Shy Guy|frame}}
 +
{{#ev:youtube|3CnmRBnr1gI|250x170|right|'''5-4 Any% Full Skip vs. Platform|frame}}
 +
{{#ev:youtube|r3ELCOBGafU|250x170|right|'''5-4 Half Skip|frame}}
  
===5-4 Skip===
 
  
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/>  
+
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/>  
  
 
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 />
 
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 />
  
'''Time save comparison for Any%: <br />'''
+
====Any% Time Save:====
 
- No skip (using platform): 2:27 <br />
 
- No skip (using platform): 2:27 <br />
 
- Half skip (w/ shy guy): 1:31 (-56s) <br />
 
- Half skip (w/ shy guy): 1:31 (-56s) <br />
- Half skip (no shy guy): 1:24 (-63s) <br />
+
- Half skip (w/o shy guy): 1:24 (-1:03s) <br />
- Full skip (w/ shy guy): 1:10 (-77s) <br />
+
- Full skip (w/ shy guy): 1:10 (-1:17s) <br />
- Full skip (no shy guy): 1:03 (-84s) <br />
+
- Full skip (w/o shy guy): 1:03 (-1:24s) <br />
  
 
Full skip saves over 1 minute in 100% and half skip saves about 40s. <br />
 
Full skip saves over 1 minute in 100% and half skip saves about 40s. <br />
  
''Here is an [https://imgur.com/a/UdwUQ image gallery] that shows how to do 5-4 skip.  
+
Some runners find using the shy guy (shown in the comparison video to the right) easier, but it loses about 7 seconds compared to just using the bats. Although it requires more total flutters, the hardest part of 5-4 skip for many people is the first long stretch of flutters, and going up to the shy guy platform allows you to end this stretch of flutters a bit earlier.  
 
 
{{#ev:youtube|3CnmRBnr1gI|360x220|left|5-4 Full Skip vs. Platform Any%|frame}} {{#ev:youtube|lDNDGFJjWo0|360x220|right|5-4 Half vs. Full Skip 100%|frame}}
 
 
 
{{#ev:youtube|NtrK2mGJ4VM|360x220|center|5-4 Skip Tutorial|frame}}
 
  
 +
Getting the bats to come down low enough for you to bounce on requires lining up your flutters in a particular way. Here is an [https://imgur.com/a/UdwUQ image gallery] that shows how to do it consistently. <br/>
 +
Backup strat if the first bat does its circle early: [https://www.twitch.tv/videos/317799140] <br/> Note that this is actually 1-2 seconds faster than the standard strat but it is a bit risky.
 +
Optimization for the start of the skip: [https://youtu.be/eb3NR9uY1aI]
 +
<br clear=all>
  
 
==Fluttering Frame Data==
 
==Fluttering Frame Data==
Line 66: Line 67:
 
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!]
 
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!]
  
Later we did automated/scripted testing via LUA and an emulator and the results are as follows:
+
Later we did automated/scripted testing via [[DLC|Lua and an emulator]]. The results are as follows:
  
 
===Perfect Flutter From A Regular Jump===
 
===Perfect Flutter From A Regular Jump===
Line 72: Line 73:
  
 
  '''• Delta/frame''': the length of time that the button was not pressed.
 
  '''• Delta/frame''': the length of time that the button was not pressed.
  '''• Green values''': an increase in height (all in pixels).
+
  '''• 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).'''
 
  '''• 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 gained.
+
  '''• Blue values''': no height lost or gained.
 
  '''• Red values''': loss of height.
 
  '''• Red values''': loss of height.
  
 
===Refluttering===
 
===Refluttering===
 
[[File: Reflutter_data.png|||1000px|Reflutter]]
 
[[File: Reflutter_data.png|||1000px|Reflutter]]
* You '''NEED''' a '''1 frame repress''' to not lose height during reflutters!
+
* You need a 1 frame repress to not lose height during reflutters!
* There are '''6 frames''' where you can gain height.
+
* There are 6 frames where you can gain height.
* And '''3 frames''' where you can keep your 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.
 
* 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''' will still '''gain height'''.
+
* 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.
+
* DROP means that no reflutter will be initiated.
 +
 
 +
===Extended Flutter===
 +
[[File: Extended_flutter_chart.png|||1000px|Extended Flutter]]

Latest revision as of 03:30, 14 February 2023

Perfect Flutter

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

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:

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 [4] or by bouncing on a !switch to allow for extra height [5]

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

Sustained Fluttering

6-4 Lava skip
Optimized Lava Skip

Flutters can be chained together indefinitely so that Yoshi does not lose height. This is only used when needed such as 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 to maintain height.

Lava Skip Lavaskip4.png

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.

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

5-4 Skip 5-4skip4.png

Full Skip without Shy Guy
5-4 Any% Full Skip vs. Platform
5-4 Half Skip


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).

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).

Any% Time Save:

- No skip (using platform): 2:27
- Half skip (w/ shy guy): 1:31 (-56s)
- Half skip (w/o shy guy): 1:24 (-1:03s)
- Full skip (w/ shy guy): 1:10 (-1:17s)
- Full skip (w/o shy guy): 1:03 (-1:24s)

Full skip saves over 1 minute in 100% and half skip saves about 40s.

Some runners find using the shy guy (shown in the comparison video to the right) easier, but it loses about 7 seconds compared to just using the bats. Although it requires more total flutters, the hardest part of 5-4 skip for many people is the first long stretch of flutters, and going up to the shy guy platform allows you to end this stretch of flutters a bit earlier.

Getting the bats to come down low enough for you to bounce on requires lining up your flutters in a particular way. Here is an image gallery that shows how to do it consistently.
Backup strat if the first bat does its circle early: [6]
Note that this is actually 1-2 seconds faster than the standard strat but it is a bit risky. Optimization for the start of the skip: [7]

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