Virus ending, no oob
Game: Braid, version published on 2015/06/13, drm-free version (available at https://www.humblebundle.com/store/braid). OS: Debian Bookworm amd64, libTAS v1.4.5. Game executable is `/path/to/game/Braid.bin.x86`. The game runs in fullscreen by default. `Video > Virtual screen resolution` must be set to `1920x1080 (16:9)`, because of mouse inputs. In `File > Executable options`, library path must be set to `/path/to/game/lib`. Command-line options should be `-no_launcher -60fps`. Finally, `Settings > Input > Prevent Mouse warping` must be checked and `Runtime > Sleep` handling must be set to Never advance time A desync might happen around frame 18750 by not bouncing on the rabbit. It seems to be relative to non-deterministic collision order, but this bounce is very precise so I couldn't make it more stable. The movie needs to be restarted until it works.
Game: Braid, version published on 2015/06/13, drm-free version (available at https://www.humblebundle.com/store/braid). OS: Debian Buster amd64 with Linux kernel 4.19.0-5-amd64, libTAS v1.4.5. Game executable is `/path/to/game/Braid.bin.x86`. The game runs in fullscreen by default. `Video > Virtual screen resolution` must be set to `1920x1080 (16:9)`, because of mouse inputs. In `File > Executable options`, library path must be set to `/path/to/game/lib`. Command-line options should be `-no_launcher -60fps`. `Runtime > Sleep` handling must be set to Advance time on main thread and `Input > Prevent mouse warping` must be checked
Game: Braid, version published on 2015/06/13, drm-free version (available at https://www.humblebundle.com/store/braid). OS: Debian Buster amd64 with Linux kernel 4.19.0-5-amd64, libTAS v1.4.0. Game executable is `/path/to/game/Braid.bin.x86`. The game runs in fullscreen by default. `Video > Virtual screen resolution` must be set to `1920x1080 (16:9)`, because of mouse inputs. In `File > Executable options`, library path must be set to `/path/to/game/lib`. Command-line options should be `-no_launcher -60fps`.
! Version info: libTAS version: 1.4.1 ! Annotation info: {{Game: Flywrench, Steam version. The latest Linux version is buggy (wrong files, no executable), but the previous version is working fine. It can be download from the Steam console. Open the following link in a web browser: `steam://nav/console` then `download_depot 337350 337353 6888663543024499238`. The libraries `libcrypto.so.1.0.0` and `libssl.so.1.0.0` must be taken from the Steam runtime libraries. Alternatively, libTAS can be launched with included steam-runtime libraries using `~/.steam/bin/steam-runtime/run.sh libTAS`. 32-bit version of library libswresample is needed for sound to be encoded (`sudo apt install libswresample3:i386` on Ubuntu). OS: Debian Buster amd64 with Linux kernel 4.19.0-5-amd64, libTAS v1.4.1. Game executable is `/path/to/game/runner`. libTAS must be configurated with `Runtime > Time tracking > clock_gettime()` (set by the movie) checked. In `File > Executable options`, library path must be set to `/path/to/game/lib`. The game starts in fullscreen mode, so `Video > Virtual screen resolution` can be set to get the desireable resolution (does not affect sync afaik).}}
! Version info: libTAS version: 1.4.1
! Version info: libTAS version: 1.4.0 ! Annotation info: {{Game: Celeste, v1.3.1.2, drm-free version (available at https://mattmakesgames.itch.io/celeste), 64-bit binary. OS: Debian Buster amd64 with Linux kernel 4.19.0-5-amd64, libTAS v1.4.0. Game executable is `/path/to/game/Celeste.bin.x86_64`. libTAS must be configurated with `Runtime > Recycle threads` unchecked and `Runtime > Wait timeout > No waits` checked. In `File > Executable options`, library path must be set to `/path/to/game/lib64`. There are specific settings in libTAS to enforce constant loading times: `Runtime > Game-specific settings` and check `Celeste` in both frames. It syncs the main thread and loading threads determined by their thread name. It is only necessary to frame-advance the game startup, until frame ~70. For encoding purpose, there are a few settings that can be changed in the game menu before playing back the movie, which does not affect sync. The screen size can be changed. The speedrun clock can be set to "File" (this setting is actually mandatory because it allows to skip level completion animations). Also, we recommend to disable the screen shake and turn on photosensitive mode, it makes the video more pleasant to watch.}}
! Version info: libTAS version: 1.4.0 ! Annotation info: {{Game: Braid, version published on 2015/06/13, drm-free version (available at https://www.humblebundle.com/store/braid). OS: Debian Buster amd64 with Linux kernel 4.19.0-5-amd64, libTAS v1.4.0. Game executable is `/path/to/game/Braid.bin.x86`. The game runs in fullscreen by default. `Video > Virtual screen resolution` must be set to `1920x1080 (16:9)`, because of mouse inputs. In `File > Executable options`, library path must be set to `/path/to/game/lib`. Command-line options should be `-no_launcher -60fps`.}}
! Version info: libTAS version: 1.4.0
! Version info: libTAS version: 1.4.0
! Version info: libTAS version: 1.3.5
! Version info: libTAS version: 1.3.5 ! Annotation info: {{Shovel Knight v4.1 DRM-free version (taken from Humble Store), 64-bit binary. Tested on Debian 10 (Buster) 64-bit and libTAS v1.3.5. Game executable is "/path/to/game/64/ShovelKnight" You must open "File > Executable Options..." and set "Library path" to directory "/path/to/game/64/lib" The game can be launched natively first to set video resolution for encoding purpose. It does not affect sync. Also, in the game options, Game > Show Feats were disabled. The game data is loaded on frame 2, so the movie should be frame advanced from startup to frame 3, to prevent a desync. Version with credits fast-forwarded and inputs to the end.}}
! Version info: libTAS version: 1.3.4 ! Annotation info: {{Game: Axiom Verge, version 1.43, Steam, 64-bit binary. OS: Ubuntu 18.04 amd64 with Linux kernel 4.13.0-36-generic, libTAS v1.3.2. Game executable is `/path/to/game/AxiomVerge.bin.x86_64`. libTAS must be configurated with `Runtime > Virtual Steam client` checked and `Runtime > Recycle threads` unchecked. In `File > Executable options`, library path must be set to `/path/to/game/lib64`. For encoding purpose, the resolution of the game can be changed in-game in the options, it does not affect sync. The options must be set by launching the game from libTAS with `Runtime > Backup savefiles in memory` unchecked, so that the options are saved on disk. Then, `Runtime > Backup savefiles in memory` is checked again and the TAS can be played back.}}
! Version info: libTAS version: 1.3.3
! Version info: libTAS version: 1.3.3
! Version info: libTAS version: 1.3.2 ! Annotation info: {{Game: Escape Goat 2, v1.1.4, Steam, 64-bit binary. This version is not the latest, this TAS was made in a previous version before some physics stuff was changed. To obtain this version, open the Steam console (by opening steam://open/console in a browser) and enter "download_depot 255340 255342 4228679490049036074". It will download the game with the correct version inside your Steam directory. OS: Ubuntu 18.04 amd64 with Linux kernel 4.13.0-36-generic, libTAS v1.3.2. Game executable is `/path/to/game/EscapeGoat2.bin.x86_64`. libTAS must be configurated with `Runtime > Virtual Steam client` checked. In `File > Executable options`, library path must be set to `/path/to/game/lib64`. For encoding purpose, graphical settings can be modified before playing back the movie, which does not affect sync.}}
! Version info: libTAS version: 1.3.2 ! Annotation info: {{Game: Celeste, v1.2.6.1, drm-free version (available at https://mattmakesgames.itch.io/celeste), 64-bit binary. OS: Ubuntu 18.04 amd64 with Linux kernel 4.13.0-36-generic, libTAS v1.3.2. Game executable is `/path/to/game/Celeste.bin.x86_64`. libTAS must be configurated with `Runtime > Recycle threads` unchecked. In `File > Executable options`, library path must be set to `/path/to/game/lib64`. Like with SteamWorld Dig 2 movie, there is an issue in this game regarding sync and loading times. The movie must be paused for a short amount of time at specific frames to let the game load stages. This is especially true for the game startup which features a lot of thread spawning. To make the movie to sync, the beginning should be run with frame advance until the main menu appear (from frame 1 to 94). At frame 64, the game should print a bunch of "LOAD MAP DATA: XXX" on the terminal, and at frame 70 the game should print "LOADED : 1150ms". After that, the game should be paused at specific frames before and after each level. To help that, here is the code that I added in file "src/linTAS/GameLoop.cpp" in line 196 before "emit startFrameBoundary();" which contains all the frames to pause. Finally, there's another little section that must be frame advanced because we couldn't find the exact frame when loading occurs, between frame 69528 and 69590. int pause_frames[] = {414, 2005, 2054, 2061, 2664, 6071, 6073, 6466, 6473, 7077, 13136, 13138, 13531, 13538, 14142, 27686, 27688, 28081, 28088, 28741, 36554, 36556, 36949, 36956, 37560, 41662, 41711, 41718, 42075, 49564, 49566, 49959, 49966, 50482, 54160, 54209, 54216, 54573, 68934, 68936, 69329, 69336, 69528, 69590, 97103, 97105, 97498, 108325}; for (int pp = 0; pp < (sizeof(pause_frames)/sizeof(pause_frames[0])); pp++) if (pause_frames[pp] == (context->framecount)) sleep(1); It should be noted that because this movie aims for fastest in-game time, and all loadings occur outside levels (where the in-game time is paused), it is not critical to simulate accurate loading times. Before launching the TAS, one specific setting must be set in the game: the speedrun clock must be set to "File". It is mandatory because, starting from v1.2.6.0, the game has shorter animations in the hub after a level has been completed (berry collection, B-side/heart unlocking) with this particular setting. For encoding purpose, there are a few other settings that can be changed in the game menu before playing back the movie, which does not affect sync. The screen size can be changed. Also, we recommend to disable the screen shake and turn on photosensitive mode, it makes the video more pleasant to watch. }}
! Version info: libTAS version: 1.3.2 ! Annotation info: {{Game: Celeste, v1.2.6.1, drm-free version (available at https://mattmakesgames.itch.io/celeste), 64-bit binary. OS: Ubuntu 18.04 amd64 with Linux kernel 4.13.0-36-generic, libTAS v1.3.2. Game executable is `/path/to/game/Celeste.bin.x86_64`. libTAS must be configurated with `Runtime > Recycle threads` unchecked. In `File > Executable options`, library path must be set to `/path/to/game/lib64`. Like with SteamWorld Dig 2 movie, there is an issue in this game regarding sync and loading times. The movie must be paused for a short amount of time at specific frames to let the game load stages. This is especially true for the game startup which features a lot of thread spawning. To make the movie to sync, the beginning should be run with frame advance until the main menu appear (from frame 1 to 94). At frame 64, the game should print a bunch of "LOAD MAP DATA: XXX" on the terminal, and at frame 70 the game should print "LOADED : 1150ms". After that, the game should be paused at specific frames before and after each level. To help that, here is the code that I added in file "src/linTAS/GameLoop.cpp" in line 196 before "emit startFrameBoundary();" which contains all the frames to pause. Finally, there's another little section that must be frame advanced because we couldn't find the exact frame when loading occurs, between frame 69528 and 69590. int pause_frames[] = {414, 2005, 2054, 2061, 2664, 6071, 6073, 6466, 6473, 7077, 13136, 13138, 13531, 13538, 14142, 27686, 27688, 28081, 28088, 28741, 36554, 36556, 36949, 36956, 37560, 41662, 41711, 41718, 42075, 49564, 49566, 49959, 49966, 50482, 54160, 54209, 54216, 54573, 68934, 68936, 69329, 69336, 69528, 69590, 97103, 97105}; for (int pp = 0; pp < (sizeof(pause_frames)/sizeof(pause_frames[0])); pp++) if (pause_frames[pp] == (context->framecount)) sleep(1); It should be noted that because this movie aims for fastest in-game time, and all loadings occur outside levels (where the in-game time is paused), it is not critical to simulate accurate loading times. Before launching the TAS, one specific setting must be set in the game: the speedrun clock must be set to "File". It is mandatory because, starting from v1.2.6.0, the game has shorter animations in the hub after a level has been completed (berry collection, B-side/heart unlocking) with this particular setting. For encoding purpose, there are a few other settings that can be changed in the game menu before playing back the movie, which does not affect sync. The screen size can be changed. Also, we recommend to disable the screen shake and turn on photosensitive mode, it makes the video more pleasant to watch. }}
! Version info: libTAS version: 1.3.2 ! Annotation info: {{Game: Celeste, v1.2.5.3, drm-free version (available at https://mattmakesgames.itch.io/celeste), 64-bit binary. OS: Ubuntu 18.04 amd64 with Linux kernel 4.13.0-36-generic, libTAS v1.3.2. Game executable is `/path/to/game/Celeste.bin.x86_64`. libTAS must be configurated with `Runtime > Recycle threads` unchecked. In `File > Executable options`, library path must be set to `/path/to/game/lib64`. Like with SteamWorld Dig 2 movie, there is an issue in this game regarding sync and loading times. The movie must be paused for a short amount of time at specific frames to let the game load stages. This is especially true for the game startup which features a lot of thread spawning. To make the movie to sync, the beginning should be run with frame advance until the main menu appear (from frame 1 to 94). At frame 64, the game should print a bunch of "LOAD MAP DATA: XXX" on the terminal, and at frame 70 the game should print "LOADED : 1150ms". After that, the game should be paused at specific frames before and after each level. To help that, here is the code that I added in file "src/linTAS/GameLoop.cpp" in line 196 before "emit startFrameBoundary();" which contains all the frames to pause. Finally, there's another little section that must be frame advanced because we couldn't find the exact frame when loading occurs, between frame 71093 and 71120. int pause_frames[] = {414, 2857, 2859, 2908, 2915, 3518, 6925, 6927, 6951, 7320, 7327, 7930, 13989, 13991, 14384, 14391, 14994, 28539, 28541, 28934, 28941, 29623, 37441, 37443, 37836, 37843, 38446, 42556, 42606, 42612, 43199, 50688, 50690, 51083, 51090, 51709, 55391, 55439, 55446, 56033, 70394, 70396, 70789, 70796, 71092, 71093, 71120, 71121, 71155}; for (int pp = 0; pp < (sizeof(pause_frames)/sizeof(pause_frames[0])); pp++) if (pause_frames[pp] == (context->framecount)) sleep(1); It should be noted that because this movie aims for fastest in-game time, and all loadings occur outside levels (where the in-game time is paused), it is not critical to simulate accurate loading times. For encoding purpose, there are a few settings that can be changed in the game menu before playing back the movie, which does not affect sync. The screen size can be changed, the speedrun clock can be set to "File" to show the in-game time of the entire run. Also, we recommend to disable the screen shake, it makes the video much more pleasant to watch. }}
! Version info: libTAS version: 1.3.2 ! Annotation info: {{ int pause_frames[] = {413, 2856, 2858, 2907, 2914, 3517, 6924, 6926, 6950, 7319, 7326, 7929, 13988, 13990, 14383, 14390, 14993, 28538, 28540, 28933, 28940, 29622, 37440, 37442, 37835, 37842, 38445, 42555, 42605, 42611, 43198, 50687, 50689, 51082, 51089, 51708, 55390, 55438, 55445, 56032, 70393, 70395, 70788, 70795, 71092, 71120, 71152}; for (int pp = 0; pp < (sizeof(pause_frames)/sizeof(pause_frames[0])); pp++) if (pause_frames[pp] == (context->framecount)) sleep(1); }}