Tool-assisted game movies
When human skills are just not enough

Submission #7239: keylie's Linux Unworthy in 24:05.4

Console: Linux
Game name: Unworthy
Game version: unknown
ROM filename:
Emulator: libTAS v1.4.2
Movie length: 24:05.4
FrameCount: 43362
Re-record count: 5601
Author's real name: Clément Gallet
Author's nickname: keylie
Submitter: keylie
Submitted at: 2021-10-29 13:58:59
Text last edited at: 2021-11-06 15:45:30
Text last edited by: feos
Download: Download (9046 bytes)
Status: judging underway
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list

Version info:

libTAS version: 1.4.2

Annotation info:

OS: Debian 11 amd64 with Linux kernel 5.10.13-1, libTAS v1.4.2 Game: Unworthy, Steam version (Windows)

Unworthy does not have a native Linux version. However, as a GameMaker Studio game, data files are common to all platforms, so we can import a Linux runner binary from another game of the same version. The method is as followed:

- Download the Windows version of Unworthy through Steam while using the "speedrunner_spirit" beta branch (right-clic on game > Betas > speedrunner_spirit) - In the game directory, create an "assets" directory and move "audiogroup1.dat", "audiogroup2.dat" and "game_credits.ini" inside - Rename "data.win" into "game.unx" and move it to "assets" directory - Download the Linux version of Ryuku: Extinction (https://ambiguous-games.itch.io/ryuku), rename the executable "Ryuku_png" into "runner" and move it to the game directory - Find a 64-bit libsteam_api.so library from any Linux Steam game and move it into game directory - Launch libTAS using `~/.steam/bin/steam-runtime/run.sh libTAS` so that it loads the old `libcrypto.so.1.0.0` and `libssl.so.1.0.0` libraries (alternatively, copy those libraries into the game directory)

The following libTAS settings are needed: - "Runtime > Virtual Steam client" - "File > Executable options > Library path" to game directory - "Runtime > Time-tracking > clock_gettime()" - For convenience, "Input > Prevent games from warping the mouse cursor" can be checked

Author's comments and explanations:
Unworthy is a 2D game inspired by Dark Souls and released in 2018.

(Link to video)

Video has commentaires as subtitles

Game objectives

  • Emulator used: libTAS v1.4.2


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...

Similar submissions (by title and categories where applicable):