Unworthy is a 2D game inspired by Dark Souls and released in 2018.
Video has commentaires as subtitles

Game objectives

  • Emulator used: libTAS v1.4.2

Tricks

Weapon switch

When switching our weapon from the menu during the attack, the game instantly starts the recovery animation of the new equipped weapon. This is used in this run to attack with the hammer, then switch to the sword recovery which is shorter.

Spirit bow quickshot

When you charge a shot with the spirit bow, the damage output of the arrow is computed based on the charge magnitude. Then, the velocity of the arrow is computed from the damage output and the charge magnitude (which is usually redundant). However, if you release the arrow frame-perfectly when the charge just started, then the damage output is not initialized, so it is using the leftover value from a previous shot.
Because of this, it is possible to fire arrows very quickly at maximum damage output. Those arrows will only have half of the maximum velocity possible, because the charge time is zero.
Another benefit of quickshots is the stamina cost. Normal shots cost stamina on startup, charge-dependent stamina then stamina again on release. For a quickshot the startup stamina cost is skipped, so only the release cost is applied.

Arrows through doors

For arrows with enough velocity, they can go through doors because collision is only computed each frame. This has been patched in the current version, but all speedruns are done with the old "speedrunner_spirit" version (Steam beta), as well as the present TAS.

Suggested screenshot

Framecount 39050

feos: Nice opportunity to challenge rules! Judging...
feos: As seen in the thread, fsvgm777 and I have problems with getting this movie to replay. So this needs more info from the author.
feos: Temporarily setting to delayed until we move to the new site.
feos: Restoring Needs more info until I get this to sync with the software renderer.
feos: Synced, judging...
feos: Added sync info to annotations, changed the platform to Windows, because it's the version used.
Outside modification of a game or a system BIOS is not allowed. This includes Game Genie and Action Replay cheats as well as direct modification of game files, such as on a PC game. If modification is the only way of being able to TAS your game, ask a Judge if it can be allowed.
"Porting" this game to Linux manually is the only way to TAS this game, but we're not touching files that affect gameplay. So it's similar to using an unofficial game port in [4496] Windows Backyard Baseball "Pick-Up Game" by TiKevin83 in 04:45.05. There's an issue with this game that a certain time saving technique stops working after porting, but the author did elaborate research and was unable to determine why that happens, and we don't want to count it against this movie (this is an explicit staff agreement about self-ports).
It's also true that we require everything to be a stable release for libTAS. But as long as sync instructions are reproducible, it should be okay to make an exception for manual ports, just like we allow patches that make a game playable.
The run itself is great as always, much better than the fastest human record due to superhuman arrow management. Accepting.
fsvgm777: Processing.

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
Location: 127.0.0.1
This topic is for the purpose of discussing #7239: keylie's Windows Unworthy in 24:05.40
Patashu
He/Him
Joined: 10/2/2005
Posts: 4000
Starts off slow, but once the spirit bow is acquired the speedtech is delicious. Yes vote!
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
Does any GameMaker: Studio Linux runner executable work, or do you need the one from Ryuku?
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Yeah I wonder if it's possible to create and host a generic GM runner that would work for all such games with minimal tweaks.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
keylie
He/Him
Editor, Emulator Coder, Expert player (2822)
Joined: 3/17/2013
Posts: 391
Not all runner executable work. Recent ones from 2019/2020/2021 that I tested instantly crashed the game. The one that I used to make the TAS came from the same game that was used for Deltarune chapter 1, see this post and the game in question. Unfortunately this game has been updated since, so the runner executable does not work anymore. I still have this executable, whose md5 is
f121671f73bfaf965ed2f0bfdda263b4
The md5 of the game I found for the submission is
597d991811097a58080f09c09f522c0b
Furthermore, while I browsed through itch.io Unity games to find a good one, some games that were slightly more recent than the correct ones did not crash, but I was getting a desync in the middle of the run.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
keylie wrote:
Unfortunately this game has been updated since, so the runner executable does not work anymore.
Is there no way to get the version that works?
- Download the Windows version of Unworthy through Steam while using the "speedrunner_spirit" beta branch (right-clic on game > Betas > speedrunner_spirit)
This also sounds like it will only (probably) work for a short period of time. Using a beta version is questionable in itself, and without info on what exact version it's known to work on, this may be a future problem to get this movie to replay (provided it still works).
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
From my understanding, the "beta" branch is an earlier version of the game that contains bugs that were patched later.
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
If that's correct, the question is why not use a stable build as the rules require?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
I think this is just Steam semantics, as it was an official release at one point.
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
keylie
He/Him
Editor, Emulator Coder, Expert player (2822)
Joined: 3/17/2013
Posts: 391
feos wrote:
Is there no way to get the version that works?
I don't know if there's a reliable way to pick the version that works. One could determine the version of the Windows runtime and get the Linux counterpart (from official Yoyo website if they have an account).
feos wrote:
This also sounds like it will only (probably) work for a short period of time. Using a beta version is questionable in itself, and without info on what exact version it's known to work on, this may be a future problem to get this movie to replay (provided it still works).
Using the Steam beta feature is a convenience, but it actually refers to a previous released version of the game. You can look at the manifest id 2435903942916489485 in the speedrunner_spirit branch which corresponds to the version released on june 11 in the main branch. This is still a problem if Steam decides to prevent people from getting previous versions in the future.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
I used 64bit libsteam_api.so from Axiom Verge and when trying to run the movie I'm getting
Internal error 0x01: Ini file not found at /home/feos/Desktop/Unworthy/activated.ini!
I don't know if it's due to wrong dependency and which game to get the right one from.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
FWIW, I used a 64-bit version of libsteam_api.so from Baba is You, and the game does open when trying to run the movie. However, it seems using hardware rendering causes it to crash at random, while using software rendering causes it to run at.... 2 FPS. EDIT: Okay, it seems unmuting the audio causes the the game to not crash...however, the movie file desyncs for me during the first boss fight. I am on the speedrunner_spirit branch, according to Steam on Windows.
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
For the record, here are the SHA1 checksums of my install:
fsvgm777@fsvgm777-virtual-machine:~/Unworthy$ sha1sum *
sha1sum: assets: est un dossier
406b883b62714bc20a2bb681c6a94a17da69c9e0  FPS_readme.txt
9a762eed0eea49fd9068d3515da29001ee4a11e2  libsteam_api.so
c354f07c35542732970f11575797fb2125933135  runner
07407c1bc2f3114042dbcfe8183b77f73e178be7  steam_api.dll
6e1af06c472971f0c8093aa81ba51345818a9b07  Unworthy.exe
fsvgm777@fsvgm777-virtual-machine:~/Unworthy$ cd assets
fsvgm777@fsvgm777-virtual-machine:~/Unworthy/assets$ sha1sum *
bcf3e08ca5e411c71d02e365207cc2de39ed1446  audiogroup1.dat
2e5d87f4014ce80e426525bbee7277fd7007a7c9  audiogroup2.dat
7f4166f03eed704f2cb57b08c5a8de7fbf586055  game_credits.ini
766007a68a6018624250348b43c96f5f3955c82d  game.unx
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Same, aside from
12bd64e0e280636cf3baa6c9cfbb4f000531d867  /home/feos/Desktop/Unworthy/libsteam_api.so
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
keylie
He/Him
Editor, Emulator Coder, Expert player (2822)
Joined: 3/17/2013
Posts: 391
Same except for the steam_api. I don't have Baba on Steam. I tried the one from Axiom Verge, which has hash
74b93a8111fc19af999459a5c230c498047cfda7
and it does not work, probably because the version is too recent, and Steam likes to update their API with interfaces incompatible with previous versions (they add methods in Steam class in between old methods, instead of appending them at the end). I started working on versioned interfaces, but it's a lot of work, and there are a lot of classes. Regarding the crashes at random and desync, this is weird, I don't know why. Yes, the game is very slow with software rendering, and one of the reasons is that the audio thread is taking 100% of one CPU because it queries for free buffers with no yielding at all.
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
I'm curious as to where your steam_api library came from, i.e. from which game you took your steam_api library.
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
keylie
He/Him
Editor, Emulator Coder, Expert player (2822)
Joined: 3/17/2013
Posts: 391
I got my steam api library from a previous version of Axiom Verge
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Is it still available anywhere?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
I tried downloading the older version via Depot Downloader....but it seems you can no longer download previous versions through that method. I get the following error:
Downloading depot manifest...Got CDN auth token for steamcontent.com result: Fail (expires 01/01/1970 00:00:00)
keylie, can you verify if it syncs with another libsteam_api.so from a different game (preferably latest version)?
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
keylie
He/Him
Editor, Emulator Coder, Expert player (2822)
Joined: 3/17/2013
Posts: 391
fsvgm777 wrote:
I tried downloading the older version via Depot Downloader....but it seems you can no longer download previous versions through that method. I get the following error:
Downloading depot manifest...Got CDN auth token for steamcontent.com result: Fail (expires 01/01/1970 00:00:00)
keylie, can you verify if it syncs with another libsteam_api.so from a different game (preferably latest version)?
I can do that when I'll have some time
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
I'm slowly starting to think it's because of inconsistent loads. I was trying to dump the moment where it desyncs (starting from Forgotten Pass), but it desynced a bit earlier. I made sure to pause the game before starting the dump. Other observations: The game appeared to have lagged a bit during the screen transition. Dumping with sound muted....crashes the game.
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
Well....I might have found the culprit, namely rendering from hardware. Using the software renderer, it actually starts syncing at the first boss fight. As noted, however, it's very slow, but still better than not syncing at all, I guess. I'mma try dumping it in full tomorrow.
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
Good news: I got it to sync and have a dump ready! All I had to do is use software rendering. I used a libsteam_api.so from Minit, btw.
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
I used libsteam_api.so from https://github.com/rlabrecque/Steamworks.NET/releases/tag/15.0.1 and got the movie to sync.
CRC32: 413441BE
MD5: 25BF523623B5EE8E82B047327F9C1341
SHA-1: 74B93A8111FC19AF999459A5C230C498047CFDA7
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
keylie, why do you take the detour to Catacombs of Ur (and to the thorns area) in the middle of the run? The RTA record goes straight to Cradle of Death, and counting from that point you only kill the final boss 5 seconds sooner. Judging by how quickly you navigate, is it really worth it to go to that other area? The movie is overall still shorter than RTA of course, but still.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.