Submission #8889: feos's Flash Samorost in 04:21.24

(Link to video)
Adobe Flash
libTAS 1.4.5 + ruffle-nightly-2023_10_28
Submitted by feos on 2/8/2024 8:09:48 PM
Submission Comments


This is a point-and-click puzzle game where you have to find objects you need to click, and to click them in the right order to advance in the game. It's incredibly easy and short, but it has some unique charm and atmosphere, later expanded in 2 sequels.


  • The playaround was VERY hard, because I had no way of knowing how something sounds until I make a video and watch it in VirtualDub to know what frame it is at.
  • Also this game consists of several SWF files, so if I accidentally advance too far, I'll have to replay the movie again to get to the previous section, because its states got nuked.
  • Creating something that tries to be a beat in the second level was very hard, because the game is only 25FPS, and the notes have to have even durations no matter how much you divide them by 2.
    • I used GuitarPro to figure out how long my frames are in terms of GP notes, then I made it 6/4 to get the tempo I wanted from those minimal note durations, then I created a catchy beat... and then it didn't fit into the game at all.
    • The "kick" sound is fine, I can hit that button every other frame. But the voices imitating snare only launch on 4th or 5th frame after you poke the guy, and my 16th note kick pattern failed to properly fit in among those pokes that were made well in advance. It made the beat sound skewed and bad, so I had to remove the neat stuff.
  • I also spent a lot of time planning where to put things and what to do in other places and in parallel, tho overall it became easier and easier with every level.
  • libTAS markers that got added in 1.4.5 (with my involvement) helped insanely well. It would be almost impossible without them.


  • Ruffle can't stop music when switching to the next SWF in this game (in its sequel it works just fine tho).
  • I tried to fix it, but my lack of familiarity with rust, as well as somewhat complicated requirements resulted in my fix getting stuck.
  • As a result you have to edit SWF files and add code that stops all sounds where it's about to switch to the next file. All files are fixed by inserting stopAllSounds(); before loadMovieNum(); in DoAction, here's where it needs to be:
lyzar1.swf scripts - frame 716
main.swf scripts - frame 1176
rybar.swf scripts - DefineSprite (524) - frame 461
strojovna.swf scripts - DefineSprite (38) - frame 123
strom.swf scripts - frame 359
vcely_skala.swf scripts - DefineSprite (181) - frame 413
vodarna.swf scripts - frame 163


lyzar1.swf 911276c71792e76c06dda38473f93b49be10e69b
main.swf f945de87496964dbface1d51844685405c7b2eff
outro.swf cf41b664cd14ae79599824f1be7201dd5b9e7e33
rybar.swf c4428822359bf9053787746672230ecce3c69b43
strojovna.swf 72d207292b5a22e876d2a34de5f0ee48dfe41449
strom.swf 01c708e3a855652088e746b09cdbbd596e24715c
vcely_skala.swf 8ab1609c2b51d0ed4f3dedea40e1705aca6556f4
vodarna.swf f94e0eae37da5ea2bd59b3c0d19812e1e7ccabb1
lyzar1.swf 7f1ec5197d23c328cc1f6c3db7d8512a0a0668f1
main.swf 5ad85a37f4c602fa9802e350fed1687833adb085
rybar.swf fb57da6617980e31ef85a71b396ea5023e4e0cf4
strojovna.swf cb19df2b065133dcc60bfd057492255182cae60a
strom.swf ee19bb4e757f02b62a5f93a20b5a7894d6f9acf5
vcely_skala.swf 3d121b8f2b7d04c65325db1f56113ad5f4574b25
vodarna.swf f8681b96489bca8f6b84534d1661108e52188e94
Last Edited by feos 19 days ago
Page History Latest diff List referrers