Submission #3968: keylie's Windows Braid in 22:15.28

(Link to video)
Windows
baseline
Hourglass r81
80117
60
19082
Unknown
Submitted by keylie on 5/17/2013 7:28:04 PM
Submission Comments
Braid is a famous platform/puzzle indie game, featuring several time manipulation gimmicks. I hope you will enjoy this run!

Game objectives

  • Emulator used: Hourglass-r81
  • Running the speedrun mode
  • Aims at fastest in-game time

Emulator configuration

  • Runtime > App Locale > Force English locale
  • If the game breaks on startup, set "Multithreading and Wait Sync" to "Allow"
If you want to use save states, you also have to set:
  • Sound > Disable DirectSound Creation > checked
  • Runtime > Performance > Store Video Memory in Savestates > unchecked
  • Runtime > Performance > Store Guarded Memory Pages in Savestates > unchecked
Arrow keys for controlling Tim are buggy with hourglass. I'm mapping arrow keys to zqsd. Here is the game folder checksum and my DxDiag. I also used the DRM-free version of the game because Hourglass does not work with Steam.

Differences between the two modes

When you finish the game, you unlock the speedrun mode which can be accessed using the menu. In this mode, you have to beat the game like in the normal mode, but you have a timer in the upper right portion of the screen.
The timer in the speedrun mode is always running except during:
  • loading screens
  • puzzles
  • the end of the last stage of each world (except world 1), after you touch the flag
There are a few differences between the two modes:
  • In the normal mode, when you first access a stage, there is a long loading screen (about 2 seconds). If you go again to this stage, the loading screen is much shorter (12 frames). In the speedrun mode, you always get the short loading screen.
  • In the normal mode, you can at any time go to the menu to exit a stage. You keep all the puzzle pieces you collected from that stage. In the speedrun mode, you are not allowed to exit using the menu.
  • In the normal mode, you can rewind in the main hub and in each world hub. It is not possible in the speedrun mode.

About puzzles and why did I choose to do the speedrun mode

There are 5 puzzles to solve in this game. On the Windows version of the game, you can use as the controls:
  • the keyboard
  • the mouse
  • a joystick if you have one plugged in
The fastest time you can do to solve these puzzles depends in the controller you are using. The mouse is obviously the fastest way to solve these puzzles. The joystick is rather good, and the keyboard is awful. Here comes the point: the software that was used to make this TAS does not support recording mouse inputs. So I know I can't be even close to optimal on every puzzle. If I would do the normal game, using the standard TAS time counting, I would count portions of the run where a human being could beat me. This is why I chose to run the speedrun mode, and to aim for the fastest in-game time, because puzzles are not counted in the total time. So I'm using puzzles to make a little entertainment.
There is another issue: the speedrun mode is not available from the start, you have to beat the game once to unlock it. That is why I provide a file input which beats (poorly) the game ([dead link removed]). There is another alternative using hex editing: if you change the 28th byte of a save file from 0x00 to 0x02, it will unlock this mode.
As a side note, when the game starts, I need to go to the menu to launch the speedrun mode. I'm not doing it as soon as possible (waiting a few seconds) because the TAS software desync very often at the beginning of the game, and skip the first few inputs. This might be due to an inconsistent loading time.

Tricks

Corner boost

When landing on an edge, Tim can get a boost depending on the position where he fell and his vertical velocity. There are two types of boost depending on the impact position and the configuration of the edge:
  • the small boost is when Tim hit the flat surface for one frame (seen by a walking sprite) then get launch in the air. The max speed of this boost is about 140 % of Tim's full speed. The trajectory is always the same whatever the impact coordinates: Tim looses all vertical velocity on the impact. After this boost, Tim can perform a jump (see below)
  • the big boost is when Tim doesn't hit the flat surface but only the border (only in-air sprites). The max speed of this boost is much higher, and depends on Tim's vertical velocity, which is converted into horizontal velocity. If Tim is on the platform that has the corner, the max speed obtained by doing a big boost is around 175 % of Tim's full speed. It can be much higher (> 250 %) if Tim is falling from a higher distance, and/or if Tim already has a higher initial speed (when doing multiple corner boosts, for example). The trajectory depends on the impact location, where a varying portion of vertical velocity is converted to horizontal velocity. Big boost is easier to obtain when the edge is round. Big boost on platforms (as in 2-3) or on clouds seems to be impossible to perform.

Air jumps

When Tim is on a jump-able ground and fall from it, he can still jump for next 9 frames. There are a few variations for this trick:

Ladder jump

Instead of falling, Tim can start climbing up or down a ladder. He will keep the jump-able state during the first few frames. This trick is mainly used in stage 3-5.

Invisible platform jump

If Tim was on a platform, then latter rewind to that moment, he will still be able to jump even if the platform is not there anymore.

Corner jump

This trick is the source of most skips in this run. After a small boost only, Tim can jump during 10 frames starting from the first in-air frame. To perform this jump, you need to press the opposite direction for a varying number of frames. For example, if Tim is ejected to the right, you have to press the left direction for a certain number of frames (usually between 0 and 3, rarely more than 3) before being able to jump. You can hit the jump button before, but Tim will jump when the last needed left key is pressed. My interpretation is that there is a speed threshold encoded in the game which prevent you from jumping when your speed is too high.
As an example, here is a concrete input list in the last corner jump in stage 3-3, beginning when Tim is in the air:
  • [], [], [], [], [], [], [], [<-], [<-], [<-](jump)
In this case, Tim needed to input the opposite direction for 3 frames to be able to jump. Any combination of inputs where [<-] is done three times during the 10 frames window also works. Here is one of many alternative input list:
  • [], [<-], [], [], (jump), [], [<-], [], [], [<-]
It is usually useless to hit the forward direction [->] during the other frames because you already have a higher speed than the normal full speed.
The number of times you have to press the opposite direction depends on the impact location. The closer you are to the edge, the faster you will be ejected, so the more you will have to press the opposite direction. This will result in more decelerating, and thus potentially a lower speed. So this is a question of balance.

Collision glitches

  • Platforms: Putting Tim or a goomba through a platform results in an ejection to the closest free space. Seen in 3-4 and 3-8.
  • Clouds: It is possible to collide with a cloud, resulting in being ejected over it. Seen in 3-3.
  • Doors: Doors has different effects on Tim. The door in 5-2 pushes Tim under through the ground, but the door in 6-2 hurts him.

Rewind-Forward trick

After Tim takes a puzzle piece, if you rewind you will loose the piece. However, if you keep the rewind key pressed and fast-forward, you will have the piece back. Based on this observation, it can be used to move quickly on stages with a time-immune (TI) platform.
If you need to go from the TI platform to take a puzzle piece then go back to the platform, you can rewind after getting the piece to go back to the platform, and then fast-forward to get the puzzle piece back.
This also works with pulling a lever. This is used and abused in stage 6-6.

Teleportation

When stepping on a green platform, you earn the green state for a bit more than 2 seconds. After that, if you rewind to the moment you lost the green state, it is possible to teleport to any location you were from the moment you stepped on the green platform to the moment you lost the green state.
To trigger it, you have to rewind during the green state to the moment you want to be teleported. Then, just when you are loosing the green state, keep the rewind key pressed, and do a fast-forward (2 frames is enough). Later, if you rewind, you will be teleported to the place you where at that time.

Goomba fly

In World 4, when a goomba is falling, in some extremely precise positions, it is possible to make the goomba walk longer before falling. This allows to take the upper path in stage 4-2.

Jump input

In the air, you can give the jump input 12 frames before actually landing. This is used to save time in stage 5 when you want your shadow to jump and rewind just after. You can jump once, and give the jump input in the air, then rewind. Your shadow will keep the jump input and jump right after landing.

Small time savers

  • When stopped (e.g. at the beginning of every level), it's faster to jump to gain speed instead of running
  • When the ground is going up or down, Tim is slowed down, so it is usually faster to jump. Be careful, when landing on a upward slope, Tim is loosing speed. So in some occasions, it may be better not to jump too much on upward slopes.
  • When turning back, decelerating is faster on the ground
  • When changing speed of rewind, instead of pushing the (V)(down) key every other frame, you can alternate with the (S) key which also stands for down. It gives the following input for fastest 8x rewind: (shift)(V), (shift)(S), (shift)(V). It also stands for fast-forwarding.
  • To climb down a ladder, it is faster to jump before (if possible) and land on the ladder just above the floor. This way, you avoid the ladder glitch and you just have to go down for 1 or 2 frames before releasing the ladder by hitting the jump button.
  • There are two ways to leave a ladder. Either you jump or you go left or right. Going left or right gives you an initial non-zero horizontal speed, but jumping usually allows you to leave the ladder earlier. I choose either one depending on what I want to do next. As a side note, there are also two jump keys (W and Space), so you can use one for leaving the ladder and the other one to jump right after.

Stage by stage comments

I'm indicating the re-record / frame ratio next to each stage. This is a loose estimation of the difficulty I had with this stage. The higher it is, the more time I spent on this level relative to its length.

Stage 2-1 (0.41)

Long and painful stage, slopes are so hard to optimise. Climbing is a little slower that running, so I'm always dropping as soon as possible.

Stage 2-2 (0.29)

The first clouds are giving you more speed than corner boosts, so I'm staying on them as much as possible.

Stage 2-3 (0.24)

Faster to do from the right, even counting the time spent to take the right door. This is mainly because of the last (upper) goomba that can be very far if the timing is bad. I don't need the second puzzle piece with a platform from stage 2-4 to do the second part of stage 2-2.

Stage 2-2 bis (0.33)

I'm putting the platform at the right place to make the goomba take a corner boost. But the speed gain is so ridiculous (< 1 frame) that I'm keeping it for fun (does not loose time).

Stage 2-4 (0.19)

This is one of the few stages where I have to wait for soooooooooo long :(

Stage 3-1 (0.14)

Not much to say. I'm showing a little something here, you can rewind during the sequence where Tim is entering the door. I'm not abusing it because as any rewind, it breaks the music flow.

Stage 3-2 (0.45)

I'm first going toward the door before climbing up, because if I'm too early, I won't be able to pass below the goomba who is falling. It doesn't save much time from the straightforward path, though (< 10 frames).

Stage 3-3 (0.51)

I can pass the first part without time manipulation. The disposition of the clouds in the second part was quite nice, allowing me to not stop the time too much.

Stage 3-4 (0.22)

The collision between the platform and the goomba is throwing the goomba forward, saving some time. A nice jump to get the second puzzle piece :)

Stage 3-5 (0.22)

One of the most boring and quite exhausting stages: long, with a lot of slopes and with no challenge for the puzzle pieces.

Stage 3-6 (0.21)

I managed to be fast enough to pass the first plant after the first key, nice! So I have some time in the lower part of the stage.
To make this part as fast as possible, I should run from the door to the green key at the last moment, to be able to rewind as quickly as possible. However, if I do that, then the timing of the plant for the second (upper) puzzle piece will be bad. What I actually do is I wait a little more in the middle, so that I rewind more, and then I can (barely) get across the upper plant later.

Stage 3-7 (0.35)

The boss always starts to go to the right, so I planned to kill him with the right chandelier. The left one is used to wake him up.
To make him go under this chandelier sooner, I let the chandelier break. If I don't do that, he will stop just before its weak point (nose) is under it.
It is faster to start running toward the door and take the key using rewind-fast-forward than waiting for it.

Stage 3-8 (0.10)

Here is the first big skip of this run. By jumping high enough and making the green platform collide with me, I can be launched over it. I have enough time to take the piece puzzle, which is hopefully green, and go to the left to take the key. All this allows me to take the second piece directly, cutting this stage by about 30 seconds.

Stage 4-1 (0.16)

Not much to say

Stage 4-2 (0.24)

Ok, the skip for this stage was waited by a lot of people. Many thanks to jujurocking for proving that it is possible. If you have played this stage, you most probably tried to go above the double-doors... and you failed. Well, it is possible, but it requires manipulating the goomba to change its trajectory. As our movement controls the time, we have some control over the movement and velocity of the goombas. Different positions give a different fall of the goomba. By using the case where is falling very late, it is possible to access to the upper path. Unfortunately, I couldn't find any logic in it, so I make it happen by controlling my movement in the air and I keep the fastest of it.

Stage 4-3 (0.22)

This stage does not differ much from the non-TAS run. I just kill the last goomba the first time, so that it drops the key when I rewind.

Stage 4-4 (0.09)

Again, same as non-TAS run, just faster.

Stage 4-5 (0.31)

This stage contains a nice skip that is possible but hard to do in a non-TAS run (the current WR uses it): the rabbit skip. By going on the left of the rabbit when it goes on the ground, then going back, it raises from the ground earlier and can be manipulated to jump at the right place. When jumping twice on it, the puzzle piece can be taken without the key. As the second part of the stage requires to wait for the goomba, it is faster to do the rabbit skip in the meantime.

Stage 4-6 (0.21)

The first jump was made to land just before the goomba, to be able to steal the key from it later. I spend the extra time I get to climb for the second puzzle piece.

Stage 4-7 (0.29)

I'm basically using the advanced strat of the non-TAS speedrun. Using the platform, I'm pushing the goomba rather than letting the goomba land on it. I have time for the second puzzle piece so I start climbing to the exit. Again, rather than waiting for the goomba to walk forth and back, I'm pushing it with the platform so that it takes a nice corner boost, allowing me to take the key earlier.

Stage 5-1 (0.08)

As in every first stage, nothing to say here.

Stage 5-2 (0.65)

Unfortunately, I wasn't fast enough on the first part of the stage to catch the goomba on the second part :(

Stage 5-3 (0.47)

Another nice corner jump, allowing me to take the key and go back (barely doable). The rest is classic.

Stage 5-4 (0.21)

A quite fun stage. I'm using the ladder glitch, but letting the goomba go on the upper path to save some time as I could bounce on it earlier.

Stage 5-5 (0.21)

Another boring stage. I'm using the jump input trick for the first time here, to launch my shadow on the door as early as possible.

Stage 5-6 (0.26)

Here is how I'm doing a 3-hit chandelier: I drop the first one and rewind, then I wait 1 frame and drop it again. So the shadow wis 1 frame ahead. The shadow hit the boss; 1 frame after the real one hit it, then I rewind 1 frame so that the real chandelier has its own shadow (making 2 hits). The boss is still hurt from the first shadow, so it makes 3 hits in total.
For the puzzle piece, as it is in purple, I let my shadow take it while entering the door. Yes, I do take it during the transition :)

Stage 5-7 (0.11)

Not much to say. I'm looking back during one frame to let my shadow open the first door. It is too fast to be seen.

Stage 6-1 (0.05)

As any X-1 stage...

Stage 6-2 (0.84)

I actually don't need the ring here :) But for this, I have to enter through the right door.

Stage 6-3 (0.90)

This stage took me soooooo much time to perform, because I didn't want to use the ring for the second part. I saved every single frame I could, and I barely managed to do it. I'm really glad !

Stage 6-4 (0.20)

I'm using the pro strat here, which is doable in an non-TAS run. As there are many cyclic patterns (goombas, fireballs), I had to wait a few times :(

Stage 6-5 (0.92)

This is one of my favorite stages. I don't need to place the ring to let the platform go, so I'm heading directly to the green goombas.
In my way, I let the 1st, 3rd and 5th goombas pass by manipulating time. The first one is to go up. The second is to climb to the upper (star) path and I also need the make the third one take this path.
In this stage, what matters is to make the green goomba go as soon as possible to the left portion of the stage. As it is green, I don't loose time by using time manipulation.
I managed to keep the goomba in the air, so I make it take a corner boost. Using the ring, I put two normal goombas at the right distance, so that I can take the puzzle piece and go back.

Stage 6-6 (0.30)

Ok, the most technical stage, by far. For the first piece, I have to do a rewind-fast-forward to pass a fireball. But because of the teleportation, I must not fast-forward after the moment where I left the green platform, otherwise I would teleport in mid-air when rewinding later.
For the lever, I don't use the optimal strategy, but anyway, I have to wait for the lower green platform to do some of the way before pulling it.
For the middle puzzle piece, I have to rewind to the right time before taking it. The requirements are that I later need to land on the green platform before the ladder starts to go down. If I rewind too much, the platform is too far away. If I don't rewind enough, the ladder has already started falling. Then, I go up, but I must not rewind before the moment I stepped on the green platform, because I'm using the teleport trick on my way back. When I'm up, I set up the teleportation when loosing the green state.
The rest of the run does not differ much from the new strat. I go under the left platform with the key, then rewind-fast-forward so that the key get pushed by the platform.
A little time saver at the end: I prepare my jump to the right (with a corner boost), and I take the left corner boost and set up the teleportation so that I will get my right-corner-boost jump after rewinding. I recall that you cannot do any input while rewinding in green state, that's why I'm saving time with this boost. It is working also because teleporting gives you back the green state.

Stage 6-7 (0.08)

I don't need to place the ring under the key to catch it. At the end, I'm using another rewind-fast-forward trick with teleportation to get to the right faster.

Stage 1-4 (0.08)

Fun fact, the height of my jump is random. Either I get a simple or double goomba jump.

Stage 1-3 (0.08)

I run, I climb, I jump. What else ?

Stage 1-2 (0.11)

I need to wait here a little. Doing a triple jump at the middle.

Stage 1-1 (0.06)

The good ending is quite easy to get on a TAS, so I had to show something. Here, I'm not allowed to face right if the princess is facing left.

Epilogue (0.06)

Doing the Ghaby jump(R) !

RAM addresses

  • 00586764 and 00586774 (floats): x position of Tim when on the ground
  • 0058B270 and 0058B278 (floats): x position of the camera
  • 0058B274 and 0058B27C (floats): y position of the camera
  • 005D4158: x position of hand during puzzles
  • 005D415C: y position of hand during puzzles

Thanks

A huge thanks to the person who found most of the tricks: Archanfel. Thanks also to the speedrunners who all know a lot about this game: Ghabryel, P-why, Palfo, as well as everyone who contributed in the SDA topic.

Suggested screenshot

  • Frame 58878 or 58955

turska: Judging.

turska: Movie file replaced with an improvement from the author. The new movie is 265 frames faster.

turska: Great run, great audience response. Accepting for publication to Moons. Splendid work on your first submission, keylie.
Regarding branch name: since stages are identical for both speedrun mode and normal mode save for the ability to exit a stage in normal mode (which has no impactful time-saving applications), the two modes do not warrant separate branches, and instead will both be covered by the any% branch.
Last Edited by adelikat on 10/5/2023 1:49 AM
Page History Latest diff List referrers