The ability to jump and shinespark horizontally mid-air. From a spin jump, a shinespark wind-up is triggered by releasing either forward or jump (or both) and pressing either up or angle-up. The wind-up is a brief period during which the player can control the direction of the spark. During the wind-up, if jump is pressed together with up, angle-up, or forward, Samus will immediately spark up, diagonally, or horizontally, respectively. If the wind-up expires, Samus will default to a vertical spark. If jump is held when activating the wind-up by pressing up or angle-up, then the wind-up is effectively skipped as the spark activates immediately.
For a mid-air horizontal spark, the sequence is to spin-jump, release jump, tap up or angle-up to activate the wind-up, then press forward and jump to spark; it is also possible to hold forward the entire time; either way, the important points are to be sure to release jump before activating the wind-up, and be sure to release up/angle-up (pressing or holding forward instead) before repressing jump to activate the spark. The wind-up period is fairly lenient, so the timing of the jump input after the up/angle doesn't need to be rushed. Note that mid-air shinesparks can't be performed from a fall, only from a jump.
Dependencies: canShinespark, canMidairShinespark, canShinechargeMovement, canHorizontalShinespark
|
It is possible to save a small amount of energy by jumping from the upper right ledge, instead of from the plateau. Use the cues in the background to spark at a precise height. Requires: "canDash"
"canInsaneJump"
"canHorizontalMidairShinespark"
{
"useFlashSuit": {}
}
{
"or": [
{
"shinespark": {
"frames": 95,
"excessFrames": 34
}
},
{
"and": [
"HiJump",
{
"shinespark": {
"frames": 90,
"excessFrames": 34
}
}
]
}
]
}Clears obstacles: A Dev note: This is only useful without SpeedBooster and without a way to refill at the ship - i.e. without wall jump to get back up. |
From: 4
Bottom Right Door
To: 1
Top Left Door
Requires: "h_storedSpark"
"canDash"
"canHorizontalMidairShinespark"
{
"or": [
{
"shinespark": {
"frames": 103,
"excessFrames": 34
}
},
{
"and": [
"HiJump",
{
"shinespark": {
"frames": 99,
"excessFrames": 34
}
}
]
}
]
}Clears obstacles: A |
From: 7
Junction (Left Ledge Below Bomb Blocks)
To: 1
Top Left Door
Requires: "canHorizontalMidairShinespark"
"h_storedSpark"
{
"shinespark": {
"frames": 54,
"excessFrames": 43
}
}
{
"or": [
"canWalljump",
"SpaceJump",
{
"and": [
"HiJump",
{
"or": [
"canSpeedyJump",
"canInsaneJump"
]
}
]
}
]
}Clears obstacles: A Dev note: This can be done with HiJump alone; it requires a precise spin jump and then a very precise horizontal spark at the top of the jump. |
|
Entrance condition: {
"comeInShinecharging": {
"length": 6,
"openEnd": 0,
"steepUpTiles": 1,
"steepDownTiles": 1
}
}Requires: "canHorizontalShinespark"
{
"or": [
{
"shinespark": {
"frames": 92,
"excessFrames": 9
}
},
{
"and": [
"canHorizontalMidairShinespark",
{
"shinespark": {
"frames": 86,
"excessFrames": 16
}
}
]
},
{
"and": [
"canShinechargeMovementComplex",
"Morph",
{
"shinespark": {
"frames": 66,
"excessFrames": 0
}
}
]
}
]
}Dev note: Shinespark against the bomb blocks or from the raised spot in order to make it all the way through to avoid bonking and potentially falling in the acid. With 99 Energy, it is best to spark from directly above the flat tile to the right of the raised part of the runway. With at least 105 Energy, it is best to spark against the right wall. With Morph, it is also possible to quickly spark from the flat tile or somewhat low if sparking midair, in order to bonk on the last row of bomb blocks and not fall into the acid. |
|
Entrance condition: {
"comeInShinecharged": {}
}Requires: {
"shineChargeFrames": 50
}
"canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 85,
"excessFrames": 20
}
} |
|
Requires: "canHorizontalMidairShinespark"
{
"useFlashSuit": {}
}
{
"shinespark": {
"frames": 79,
"excessFrames": 14
}
} |
|
Entrance condition: {
"comeInShinecharging": {
"length": 6,
"openEnd": 1,
"steepUpTiles": 1,
"steepDownTiles": 1
}
}Requires: "canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 80,
"excessFrames": 13
}
} |
|
Requires: "h_storedSpark"
"canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 16,
"excessFrames": 0
}
}Exit condition: {
"leaveWithSpark": {}
}Unlocks doors: {"types":["super"],"requires":[]}
{"types":["missiles","powerbomb"],"requires":["never"]} |
From: 1
Lower Section - Bottom Left Door
To: 5
Lower Section - Bottom Right Door
Entrance condition: {
"comeInShinecharging": {
"length": 23,
"openEnd": 1,
"steepUpTiles": 1,
"steepDownTiles": 6
}
}Requires: "canHorizontalShinespark"
{
"or": [
{
"shinespark": {
"frames": 131,
"excessFrames": 35
}
},
{
"and": [
"canHorizontalMidairShinespark",
{
"shinespark": {
"frames": 106,
"excessFrames": 35
}
}
]
}
]
} |
From: 13
Bottom Junction
To: 5
Lower Section - Bottom Right Door
Requires: "canHorizontalShinespark"
{
"or": [
{
"canShineCharge": {
"usedTiles": 23,
"steepUpTiles": 6,
"steepDownTiles": 1,
"openEnd": 1
}
},
{
"and": [
{
"canShineCharge": {
"usedTiles": 24,
"steepUpTiles": 6,
"steepDownTiles": 1,
"openEnd": 1
}
},
{
"doorUnlockedAtNode": 1
}
]
}
]
}
{
"or": [
{
"shinespark": {
"frames": 131,
"excessFrames": 36
}
},
{
"and": [
"canHorizontalMidairShinespark",
{
"shinespark": {
"frames": 109,
"excessFrames": 37
}
}
]
},
{
"and": [
"canHorizontalMidairShinespark",
"h_speedJump",
{
"shinespark": {
"frames": 102,
"excessFrames": 0
}
}
]
}
]
}Unlocks doors: {"nodeId":1,"types":["ammo"],"requires":[]} |
From: 13
Bottom Junction
To: 5
Lower Section - Bottom Right Door
Open the right door before sparking to spark out of it. Requires: {
"or": [
"canCarefulJump",
"Grapple",
"Wave",
"SpaceJump"
]
}
{
"or": [
{
"canShineCharge": {
"usedTiles": 23,
"steepUpTiles": 6,
"steepDownTiles": 1,
"openEnd": 1
}
},
{
"and": [
{
"canShineCharge": {
"usedTiles": 24,
"steepUpTiles": 6,
"steepDownTiles": 1,
"openEnd": 1
}
},
{
"doorUnlockedAtNode": 1
}
]
}
]
}
{
"or": [
{
"shinespark": {
"frames": 131,
"excessFrames": 0
}
},
{
"and": [
"canHorizontalMidairShinespark",
{
"shinespark": {
"frames": 109,
"excessFrames": 0
}
}
]
},
{
"and": [
"canHorizontalMidairShinespark",
"h_speedJump",
{
"shinespark": {
"frames": 102,
"excessFrames": 0
}
}
]
}
]
}Exit condition: {
"leaveWithSpark": {}
}Unlocks doors: {"nodeId":1,"types":["ammo"],"requires":[]}
{"nodeId":5,"types":["ammo"],"requires":[]}Dev note: The right door could be an obstacle, but with this shinecharge, a careful jump is probably fair to include. This room is already pretty complex, so adding an obstacle is fairly significant. |
From: 1
Left Door
To: 2
Right Door
Entrance condition: {
"comeInShinecharging": {
"length": 6,
"openEnd": 1
}
}Requires: "canHorizontalShinespark"
{
"or": [
{
"shinespark": {
"frames": 142,
"excessFrames": 60
}
},
{
"and": [
"canHorizontalMidairShinespark",
{
"shinespark": {
"frames": 132,
"excessFrames": 60
}
}
]
}
]
}Dev note: FIXME: Could be doable tankless if the shinecharge happened in the previous room and then Samus ran out with more speed. |
From: 2
Right Door
To: 1
Left Door
Entrance condition: {
"comeInShinecharging": {
"length": 4,
"openEnd": 1
}
}Requires: "canHorizontalShinespark"
{
"or": [
{
"shinespark": {
"frames": 143,
"excessFrames": 6
}
},
{
"and": [
"canHorizontalMidairShinespark",
{
"shinespark": {
"frames": 132,
"excessFrames": 6
}
}
]
}
]
}Dev note: It's possible to save a couple frames by partially crossing the platforms before sparking, but getting a running jump is nearly as good. |
|
Requires: "h_storedSpark"
"canDash"
"canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 99,
"excessFrames": 5
}
} |
From: 1
Left Door
To: 3
Item
Entrance condition: {
"comeInShinecharged": {}
}Requires: {
"shineChargeFrames": 110
}
"canShinechargeMovementComplex"
"canPreciseWalljump"
"canConsecutiveWalljump"
"canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 78
}
} |
From: 1
Left Door
To: 3
Item
Entrance condition: {
"comeInShinecharged": {}
}Requires: {
"shineChargeFrames": 80
}
"HiJump"
"canShinechargeMovementComplex"
"canHorizontalMidairShinespark"
{
"or": [
{
"and": [
"canWalljump",
{
"shinespark": {
"frames": 80
}
}
]
},
{
"and": [
"canTrickyDashJump",
{
"shinespark": {
"frames": 60
}
}
]
}
]
} |
From: 1
Left Door
To: 3
Item
Entrance condition: {
"comeInShinecharging": {
"length": 9,
"openEnd": 0
}
}Requires: "canShinechargeMovementComplex"
"canPreciseWalljump"
"canConsecutiveWalljump"
"canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 78
}
} |
From: 1
Left Door
To: 3
Item
Entrance condition: {
"comeInShinecharging": {
"length": 9,
"openEnd": 0
}
}Requires: "HiJump"
"canHorizontalMidairShinespark"
"canShinechargeMovementComplex"
{
"or": [
{
"and": [
"canWalljump",
{
"shinespark": {
"frames": 80
}
}
]
},
{
"and": [
"canTrickyDashJump",
{
"shinespark": {
"frames": 60
}
}
]
}
]
} |
From: 2
Right Vertical Door
To: 1
Left Door
Charge a spark to the right, then come back, run and jump, and do a horizontal spark at the apex. If needed, down-grab onto the ledge. Requires: {
"notable": "Big Jump Shinespark"
}
"h_speedJump"
"canShinechargeMovementComplex"
"canHorizontalMidairShinespark"
{
"obstaclesCleared": [
"B"
]
}
{
"canShineCharge": {
"usedTiles": 32,
"gentleDownTiles": 6,
"openEnd": 1
}
}
{
"shinespark": {
"frames": 52
}
}
"canDownGrab" |
From: 2
Right Vertical Door
To: 1
Left Door
Store a shinecharge and start running below the left side of the vertical door, to set up the jump in a way that shinesparking at the apex of the jump approximately aligns with the top of the far door. Requires: {
"obstaclesCleared": [
"A",
"B",
"E"
]
}
"h_shinechargeMaxRunway"
"canSpeedyJump"
"canShinechargeMovementComplex"
"canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 53
}
}Exit condition: {
"leaveWithSpark": {}
}Unlocks doors: {"types":["ammo"],"requires":[],"useImplicitRequires":false} |
From: 2
Right Vertical Door
To: 1
Left Door
Requires: "HiJump"
"canSpeedyJump"
{
"obstaclesCleared": [
"B",
"E"
]
}
{
"canShineCharge": {
"usedTiles": 32,
"gentleDownTiles": 6,
"openEnd": 1
}
}
"canShinechargeMovementComplex"
"canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 56
}
}Exit condition: {
"leaveWithSpark": {}
}Unlocks doors: {"types":["ammo"],"requires":[],"useImplicitRequires":false} |
From: 2
Right Vertical Door
To: 1
Left Door
Requires: {
"obstaclesCleared": [
"B",
"E"
]
}
{
"canShineCharge": {
"usedTiles": 32,
"gentleDownTiles": 6,
"openEnd": 1
}
}
"canSpeedyJump"
"canShinechargeMovementComplex"
"canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 57
}
}Exit condition: {
"leaveWithSpark": {
"position": "bottom"
}
}Unlocks doors: {"types":["ammo"],"requires":[],"useImplicitRequires":false} |
From: 2
Right Vertical Door
To: 1
Left Door
Requires: {
"obstaclesCleared": [
"B",
"E"
]
}
{
"canShineCharge": {
"usedTiles": 32,
"gentleUpTiles": 6,
"openEnd": 1
}
}
"canWalljump"
"canShinechargeMovementComplex"
"canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 85
}
}Exit condition: {
"leaveWithSpark": {}
}Unlocks doors: {"types":["ammo"],"requires":[],"useImplicitRequires":false} |
From: 2
Right Vertical Door
To: 1
Left Door
Requires: "canWalljump"
"canShinechargeMovementComplex"
"canHorizontalMidairShinespark"
{
"obstaclesCleared": [
"B"
]
}
{
"or": [
{
"canShineCharge": {
"usedTiles": 32,
"gentleUpTiles": 6,
"openEnd": 1
}
},
{
"and": [
"h_shinechargeMaxRunway",
{
"obstaclesCleared": [
"A"
]
}
]
}
]
}
{
"shinespark": {
"frames": 85
}
} |
|
Requires: {
"obstaclesCleared": [
"A"
]
}
{
"canShineCharge": {
"usedTiles": 35,
"openEnd": 1
}
}
"canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 80,
"excessFrames": 0
}
}Exit condition: {
"leaveWithSpark": {}
} |
From: 2
Middle Left Door
To: 6
Bowling Chozo Statue
Entrance condition: {
"comeInShinecharging": {
"length": 2,
"openEnd": 0
}
}Requires: {
"or": [
{
"shinespark": {
"frames": 89,
"excessFrames": 7
}
},
{
"and": [
"canHorizontalMidairShinespark",
{
"shinespark": {
"frames": 82,
"excessFrames": 9
}
}
]
}
]
} |
|
Requires: "canHorizontalMidairShinespark"
"h_storedSpark"
"canDash"
{
"shinespark": {
"frames": 82,
"excessFrames": 8
}
} |
|
Entrance condition: {
"comeInShinecharged": {}
}Requires: {
"shineChargeFrames": 30
}
"canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 39,
"excessFrames": 10
}
} |
From: 1
Left Door
To: 2
Right Door
Shinespark midair to avoid bonking. Jump outward before sparking save Energy. Entrance condition: {
"comeInShinecharging": {
"length": 3,
"openEnd": 0
}
}Requires: "Gravity"
"canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 49,
"excessFrames": 4
}
} |
From: 2
Right Door
To: 1
Left Door
Shinespark midair to avoid bonking. Jump outward before sparking save Energy. Entrance condition: {
"comeInShinecharging": {
"length": 3,
"openEnd": 0
}
}Requires: "Gravity"
"canHorizontalMidairShinespark"
{
"shinespark": {
"frames": 48,
"excessFrames": 4
}
} |
|
Shinecharge just before the second Metroid comes on camera, jump over it and spark against the ceiling to avoid the rest of them. Sparking lower will likely get Samus grabbed by the right-most Metroid. Requires: {
"canShineCharge": {
"usedTiles": 26,
"openEnd": 0
}
}
"canHorizontalMidairShinespark"
{
"or": [
{
"and": [
"canMetroidAvoid",
{
"shinespark": {
"frames": 50,
"excessFrames": 5
}
}
]
},
{
"and": [
{
"shinespark": {
"frames": 54,
"excessFrames": 0
}
},
{
"metroidFrames": 300
}
]
}
]
} |
|
Requires: {
"or": [
"f_KilledMetroidRoom1",
{
"obstaclesCleared": [
"f_KilledMetroidRoom1"
]
}
]
}
{
"canShineCharge": {
"usedTiles": 31,
"openEnd": 0
}
}
"canHorizontalMidairShinespark"
{
"or": [
{
"shinespark": {
"frames": 37,
"excessFrames": 7
}
},
{
"and": [
"canControlShinesparkEnd",
{
"shinespark": {
"frames": 37,
"excessFrames": 22
}
}
]
}
]
} |
|
Requires: "canHorizontalMidairShinespark"
{
"canShineCharge": {
"usedTiles": 23,
"openEnd": 0
}
}
{
"or": [
"Ice",
{
"and": [
"canDodgeWhileShooting",
"ScrewAttack"
]
},
{
"and": [
"canDodgeWhileShooting",
"canPseudoScrew"
]
},
"canMetroidAvoid",
{
"metroidFrames": 200
}
]
}
{
"shinespark": {
"frames": 80,
"excessFrames": 5
}
} |
|
Requires: {
"or": [
"f_KilledMetroidRoom1",
{
"obstaclesCleared": [
"f_KilledMetroidRoom1"
]
}
]
}
"canHorizontalMidairShinespark"
{
"canShineCharge": {
"usedTiles": 23,
"openEnd": 0
}
}
{
"or": [
{
"shinespark": {
"frames": 80,
"excessFrames": 48
}
},
{
"and": [
"canShinechargeMovementComplex",
{
"shinespark": {
"frames": 68,
"excessFrames": 38
}
}
]
}
]
} |