Undertale is an RPG video game created by American indie developer Toby Fox in 2015.
The player controls a child who has fallen into the Underground: a large, secluded region under the surface of the Earth, separated by a magic barrier. The player meets various monsters during the journey back to the surface. Some monsters might engage the player in a fight. The combat system involves the player navigating through mini-bullet hell attacks by the opponent. They can opt to pacify or subdue monsters in order to spare them instead of killing them. These choices affect the game, with the dialogue, characters, and story changing based on outcomes.
There are 3 main endings: Neutral, True Pacifist, and Genocide. This TAS achieves none of those endings, instead going for the Hard Mode joke ending.
- Emulator used: libTAS 1.4.2.
- Plays on version 1.001 Linux.
- Plays on the hardest difficulty.
- Achieves the Hard Mode "ending."
Menu buffering is a movement technique where the player opens the menu and presses an arrow key on the same frame. This type of movement does not count as a step for random encounters and is not considered movement by blue lasers. Although menu buffering causes the player to move at half speed (alternating between the menu buffer and closing the menu), this technique can save time in certain circumstances where additional steps are not desirable.
Text storage (also called overflow) is a type of glitch where the player regains movement while text is on the screen. This can be useful in different ways, as some text can be used to set global.interact to 0 upon closing the textbox. Sometimes text storage saves time simply by being able to mash the text while moving. When text storage is used to wrong warp, this is known as an overflow wrong warp (OWW).
In Undertale speedrunning, wrong warping refers to entering a room and being placed at the default location in that room rather than the door the player entered from. When the player touches a room transition, the variable global.interact is normally set to 3. Then once the player reaches the next room, the game checks if global.interact is set to 3 and if it is, the game runs the code that places the player at the appropriate door marker. However, if global.interact is not 3, the player is not moved from the default location in the room. This default location is manually assigned per room by the game developer and is often closer to the middle of the room than the door marker is. There are several methods of triggering a wrong warp, all of which achieve the same result: setting global.interact to 0 (the value for full player control) while transitioning to the next room. This TAS does exactly one (1) wrong warp.
Undertale's RNG is determined by a seed that advances each time RNG is called. By calling RNG a different number of times, different outcomes can be achieved. Text calls RNG twice per character per frame and so changing how many frames text is displayed is the most common method of RNG manipulation. RNG is manipulated for various reasons such as getting particular attacks and determining which step count random encounters will occur on. One thing to note is that the function randomize() is called upon loading into the game and this function sets the RNG seed based on the system time. However, after this initial seed, RNG is no longer affected by system time until the save file is reloaded or the game is restarted.
For the most part, this follows the same route as the Neutral TAS. There are 2 main differences however
- You cannot flee a battle on the first turn. For this reason, encounters must be avoided at all costs (the Neutral TAS manips for a spareable encounter, which is not possible in this mode).
- Toriel does much more damage, meaning different damage routing for her battle.
- There's a small timesave in the triple rock room by using the phone for text storage instead of the rock text.
- Yes I copied the tech section from the Neutral TAS, it's all the same anyway.
Samsara: Oh good, I'll have something to watch while I'm waiting for the next frame of #5076: Masterjun's SNES Super Mario World "ends input early" in 01:33.26!!!
Samsara: Resetting to New for Info Teddy to pick up!
Info Teddy: Thanks sis!
Info Teddy: Replaced the movie file with one that has a corrected movie length and also advances until the last Flowey dialogue.
Info Teddy: So, this run goes for an ending that isn't one of the major three (Genocide, Neutral, and True Pacifist), which means it isn't Standard. Unfortunately, this ending doesn't seem to have much going for it besides being a joke, and doesn't have a chance to stand out from the other three routes because it immediately stops after the first section of the game. Audience votes were also a bit mixed. Fortunately, this is what Playground was meant for, and since this has a well-defined goal that's the best place it can go.