This TAS completes the Homestar Runner game Thy Dungeonman from The Brothers Chaps with all items that don't kill you collected for a 100% completion / best ending, which is to say the maximum score but without infinitely picking up the same items. It does so without violating English too badly, although the same can't be said about the emulator(s).
Thy Dungeonman was first suggested by Bobo the King in Forum/Posts/521316 and I couldn't help but actually do it. You see, I have a penchant for pushing the envelope on what can be TAS'ed, and in this case loading a savestate results in "stack smashing detected" and dumps the core on my system (https://github.com/clementgallet/libTAS/issues/434 and https://github.com/clementgallet/libTAS/issues/359 appear related). So... I employed the same strategy as #4425: dwangoAC's C64 C64anabalt "Fastest Kill Screen" in 01:21.03 and worked around the problem by reloading the entire emulator in lieu of working savestates (although I stopped short of putting it in a VM for once). I manually hexed in a best guess for the rerecord count (more on that in a second). One other note - the Flash file is freely available at https://homestarrunner.com/dungeonman (right-click on Ruffle and select Copy Debug Info to see the link to the raw .swf file).
This is a very simple text adventure video game made in Flash in 2004 as part of the Strong Bad Email series of Homestar Runner comics. There's a complete writeup of the game at http://hrwiki.org/wiki/Thy_Dungeonman that describes the game in far more detail than I should probably try to here; it also describes some of the other responses that aren't in this run. There's one item, the DAGGER, that can be obtained infinitely, adding 25 points each time. I briefly flirted with the idea of creating a TAS of picking it up until I overflowed some counter but after 37 minutes of movie length I decided to abandon the idea. Instead, I opt for doing everything that can be done to gain points that isn't an infinite loop. This includes attempting to get the FLASK twice, which provides one point each time (but stopping short of doing so a third time for reasons left for the reader to discover). It also includes picking up the SCROLL (2 points). After picking up the TRINKET (2 points) and finally picking up the DAGGER (25 points) a single time, the run ends with a respectable 31 points. This is the maximum number of points that can be achieved without repeatedly picking up the DAGGER, so I'm referring to it as the best ending for lack of a better term.
I have fond memories of this particular game when it came out. I enjoyed playing new Strong Bad emails as they were released and this game was a fun surprise one week. I've never forgotten it, and now it can be preserved so no one else watching this oddity can forget it either. (Not that this game was in danger of falling into obscurity; I'd like to thank the HRWiki folks for the fantastic writeup and for their preservation efforts.)
As a quick note on execution, there are a few limitations unique to this kind of keyboard input in libTAS, especially if using frame advance while holding keys down like chorded input. For starters, if you need to type two g's in a row, you have to press g for a frame, advance a frame with g released, then press g on the next frame advance in order to register the separate keystroke. I had previously experimented with how libTAS sends input to games when I was testing out Epistory (which was much more ambitious than this) and I discovered that libTAS is both deterministic in the order it sends multiple keys on one frame as well as slightly annoying. Adding an additional letter or a space often causes letters to end up out of order for what's needed in that moment with no other way to control it. For instance, typing "get" results in "gte", but it's possible to type "ge" on one frame without issue in this case because that's the desired letter order. I was able to type out "sout" all at once because the order was magically correct, but most of the time I could only get one to three letters in per frame without them ending up in a different order (not having loadstates made that rather annoying to test out with certainty).
Spikestuff came along, saw my initial submission, and improved it significantly by using a different text input method entirely. Instead of using chorded frame-advance input, Spikestuff used the input editor to type many more letters in a single frame. However, it still wasn't possible to handle GET TRINKET due to the presence of duplicate letters. At that point, rythin came along and improved the run further, saying "I achieved this by manually editing the input file inside the ltm. Doing this allows... sending any inputs in any order in a single frame, including the same input twice in a row. It's strange behaviour and I suppose it might be good to have a discussion on whether something like this should even be allowed but as it stands it's probably the best way to do anything text-based in libTAS."
After further discussions, I compiled all of the changes, cleaned up some mouse movement and other inputs, and created a file with the results from all three of us. And that's it - I hope you enjoy the silliness of this as much as I did and happy judging and categorizing!
> judge ye TAS
Ye cannot judge the TAS. It is firmly bolted to a wall which is bolted to the rest of the dungeon which is probably bolted to a castle. Never you mind.
Ye cannot judge the TAS. It is firmly bolted to a wall which is bolted to the rest of the dungeon which is probably bolted to a castle. Never you mind.
> replace ye file
It looketh pretty awesome.
It looketh pretty awesome.
(4 second improvement courtesy of Spikestuff and rythin)
> replace ye file
Thou shaketh it a little, and it feeleth all right.
Thou shaketh it a little, and it feeleth all right.
(Platform: Flash added to annotations)
> give TAS to Samsara
A novel idea! You givst the TAS to Samsara and she happily agrees to tell you what parapets are. With this new knowledge, ye escapes from yon dungeon in order to search for new dungeons and to remain... THY DUNGEONMAN!! You hath won! Congraturation!! Your score was: ACCEPTED
A novel idea! You givst the TAS to Samsara and she happily agrees to tell you what parapets are. With this new knowledge, ye escapes from yon dungeon in order to search for new dungeons and to remain... THY DUNGEONMAN!! You hath won! Congraturation!! Your score was: ACCEPTED
despoa: Processing...