UPDATE: Unfortunately, I have decided to cancel this submission. The reason for this is that the game does not appear to work correctly in the latest release version of libTAS. I had used an interim build, since I was unable to install the v1.3.4 release build on Ubuntu 19.04, which was the version I had installed on my computer at the time. I assumed that it was still going to work in the release build anyway, and that turned out to be my biggest mistake when considering this submission.
After multiple people, including the judge, reported that the game would crash or not work at all in libTAS, I decided to downgrade to Ubuntu 18.04.3 LTS, which is the last Ubuntu version where the dependencies for the libTAS release build can be satisfied, and got to testing the game in libTAS myself. What I found out is that the specific issue in the latest libTAS release build is that the game does run, but any interaction with it at all after the first frame causes the game to crash. This includes having the window on focus and sending inputs. Every libTAS setting I tried tweaking didn't help; although enabling Native events fixes the problem, it causes the game to not process the movie's inputs, so it still doesn't help (if you somehow get the game to work correctly in libTAS release v1.3.4, please tell me ASAP with the steps you took).
Running this game from the latest interim commit works just fine, however. So what's the issue? Well, according to the site rules, a Linux TAS submission still can and will be rejected if the movie cannot be played back on the latest release build of libTAS. Given the wording, I don't think an exception for this scenario can be made either.
Therefore, at this point in time, I believe it to be impossible for this submission to pass. If you still wish to play back this TAS, install the latest libTAS master commit from the GitHub page and compile it. Also I recommend downloading the movie I linked in the Comments section of this submission.
I am definitely going to get around to resubmitting this once a new libTAS release build with the interim's bugfix for this game comes out. Might make a few improvements in the meantime, or something. I deeply apologize for the inconvenience caused by these events.
You Have to Win the Game is a short but sweet PC metroidvania platformer game that pays a homage to the 1980s computer gaming era, where the player controls a kid with a hat put on backwards (or a cat, if you prefer). This movie beats the game in 4:58 IGT with fast movement, clever routing and death warps, and exploiting a few quirks regarding the jumping mechanism and spike hitboxes.
Game objectives
- Emulator used: libTAS 1.3.4
- Game version used: DRM-free v1.01
- Aims for fastest completion and in-game time
- Uses death to save time
Comments
This movie aims to beat the game's original campaign in normal difficulty, instead of hardest difficulty. The reason for this is that the only difference between normal difficulty and hardest difficulty (that being YOLO Mode, which I shall refer to as from now on) is that the former has checkpoints whereas the latter does not, and the checkpoints are required in order to do death warps effectively and minimize backtracking.
The v1.01 DRM-free version of the game is used, which features a password room for the player to input through warps at the end. Old, pre-Steam release builds of the game require the player to input the password through the terminal, an otherwise officially undocumented debug feature, in order to beat the game. Having to input a command through the terminal to beat the game is discouraged by the site rules, which is why this build is used instead.
Note: While I TASed on an amd64 Linux distro, installing the 32-bit libraries, both stable and dev, is required for the game to be able to play in libTAS, as the game only has a i386 executable. Also, attempting to play the movie in the Steam version of the game will give an md5 error, so it must be played on the DRM-free version. I also have to note that I played back this TAS with the EGA color settings on, however it should play back on the default settings (CRT simulation & 3-color graphics) just fine.
Techniques employed
Routing & death warps
This movie collects the Cerulean Aura first, and the Crimson Aura second, because the time saved from the death warps ultimately makes it faster than collecting the Crimson Aura first. The reason death warps work is because dying after getting an upgrade does not strip you of it even if a checkpoint wasn't hit after the fact. This is done twice in the run.
Triple jump glitch
After getting the gloves powerup, walking off a floor and then quickly jumping off the wall immediately below it will give the player an additional jump. This, in combination with the double jump powerup, allows for the player to get up to 3 jumps. This is used right after getting the Spider Gloves powerup in order to be able to get back up to the left without having to walljump, and when going back to the You Have to Start the Game room in order to get up to the Exit Strategy room more optimally.
Spike hitbox
The spike hitbox is not a perfect square, in fact it's slightly less wide than what it looks. There is a 1-pixel window on both sides of the spike that the hitbox does not cover. This allows us to ledge-jump off these pixel windows and it's a requirement to get to the Exit Strategy room significantly faster as opposed to the intended route.
Other comments
Getting this movie to sync is tough. The game handles moving enemy/platform hitboxes slightly inconsistently, which may become an issue in the rooms Don't Get Snippy With Me, The Crab Cake is a Lie and Hardcore Prawn (Hollow King can also desync but it happens more rarely). It is still possible for the movie to play at full sync in a one-sitting attempt without having to save and load savestates at the offending parts until they sync, but it may take several attempts until it works. It should eventually work, though, as it did on my case.
Screenshot suggestion
Hardcore Prawn. (14871)
feos: Judging...