Added prologue skip, some frames saved here and there, and update to v1.2.6.1
! 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); }}
! Version info: libTAS version: 1.3.1
! Version info: libTAS version: 1.3.1 ! Annotation info: {{Shovel Knight v3.3 DRM-free version (taken from Humble Store), 64-bit binary. Steam version is not supported by libTAS v1.3.1, sorry. The game ships with all needed libraries Tested on Debian 10 (Buster) 64-bit and libTAS v1.3.1. 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. Commentaries are also provided as a srt subtitle file inside the movie archive (rename with tar.gz extension and decompress it to access this file)}}
! Version info: libTAS version: 1.3.1
! Version info: libTAS version: 1.3.1 ! Annotation info: {{Game: Towerfall Ascension + Dark World Expansion v1.3.2.0 DRM-free x86_64 version (taken from Humble Store: https://www.humblebundle.com/store/towerfall-ascension and https://www.humblebundle.com/store/towerfall-dark-world-expansion . Dark World Expansion DRM-free version is noted as Windows only, but works for all systems because it is just an archive of data files to be placed inside the game directory). OS: Ubuntu 18.04 amd64 with Linux kernel 4.13.0-36-generic, libTAS v1.3.1. Before the movie can be played, the game must be launched natively and fullscreen mode must be turned off in the options. This is needed because libTAS enforces a windowed mode, and some games like Towerfall does not display correctly if configured in fullscreen mode. Inside libTAS, fill the Game executable to "/path/to/game/TowerFall.bin.x86_64", then open "File > Executable Options..." and set "Library path" to "/path/to/game/lib64".}}