About a week ago I decided that it would be funny to make a TAS of my favourite visual novel. A completely linear game with no choices, and also a game made in Unity. Surely that part wouldn't cause me any headaches.
And so I present to you a TAS of Psycholonials, a now-free game made by the creator of Homestuck. The TAS primarily consists of mashing through dialogue as fast as possible, and pressing escape whenever a cutscene happens.
Sadly I couldn't get this done in time for April Fools', but I at least got it done in advance of 4/13 so there's that.

Game objectives

  • Emulator used: LibTAS v1.4.7
  • The goal of the movie is just to get to the end of the game as fast as possible.

Comments

I've loved TASes for more than a decade now. I think the first time I tried to make one was with Bizhawk when I was 11 or so. A completely unoptimized run of SMB1, but I was proud of it. I knew it wasn't any good, but I was still amazed that I did it at all. Now, about a decade later, I'm finally submitting a finished TAS to this website.
I don't really have any additional comments on the gameplay. Pretty much a complete description can be found in the second paragraph at the top.
The version is the latest version you can download for Linux on Steam. The game hasn't been updated in almost five years, but in case it ever is the build number is 7231885.
If I'm correct about how TAS timing works, time starts on launch and ends on the last frame of input. If I'm correct, the game time is 23:51.100.
Sadly this isn't a completely optimized TAS, as I had to frequently add in delays following loading screens so that it wouldn't desync. Probably about 5 seconds or so could be saved if I had done all of these perfectly, but I'll gladly exchange the encode finishing without issue for that tiny delay.
Here's what I put in the annotations file for running the game:
Add the following arguments in command-line options:
-screen-width 1920 -screen-height 1080  -force-gfx-direct
Make a copy of (or symlink) <Psycholonials folder>/Psycholonials_Data/Resources/unity default resources to <Psycholonials folder>/Psycholonials_Data/Resources/unity_builtin_extra
Follow the instructions at https://clementgallet.github.io/libTAS/guides/unity/ (under the determinism subheading) for unity 2020.3.16f1 il2cpp
Make sure you don't have any game save files, which can be found at ~/.config/unity3d/TheSilenceMill/Psycholonials/. If you do, you won't get the language selection on boot, causing a desync.

Additional notes

This game has a few brief moments with flashing lights. Nothing too major but should still be noted.
If this does get approval for publishing, or even get a look enough for consideration, I have a version which is almost completely identical except the final input is delayed so the final time is 24:13.000, in reference to Homestuck. Which is why I'd also like to say that if it does get published, it'd be ideal if that were to happen on 4/13. Just because it'd be a fun celebration of that day.

ikuyo: Have to drop to focus on some other site work.

ikuyo: Claiming for judging.
ikuyo: Truncated, as there's a bunch of blank frames at the end.
ikuyo: Hello IntangibleMatter and welcome to TASVideos!
What a way to start as a TASer. I know the pains of Unity games with libTAS, and it took a while to figure out some of the issues. I'm happy we did, as your work seems quite promising. Execution is clean, and the decision to sacrifice some frames for sync stability given the known issues with the engine is perfectly fine.
Happy to accept to Standard. Looking forward to more TAS work from you!
Publishers it might be good to discuss content warnings before going ahead with the movie? There's a lot of blood in this game for sure.

r3gamerz: Processing...
ikuyo: Updated with trim to let the credits play.


TASVideoAgent
They/Them
Moderator
Location: 127.0.0.1
Joined: 8/3/2004
Posts: 18036
Location: 127.0.0.1
This topic is for the purpose of discussing #10339: IntangibleMatter's PC Psycholonials in 23:46.050
Emulator Coder, Site Admin, Skilled player (1227)
Joined: 4/17/2010
Posts: 11965
libTAS guide wrote:
  • For newer Unity versions (~2019+), copy file UnityPlayer_s.debug to the game directory. This will be used by libTAS to find symbols (do not rename). [...]
If all goes well, libTAS should find the function addresses it wants, and print each one on the terminal at the game startup.
When I do that and nothing more, I get
Unity game detected
   Version 2020.3.14f1
Attempt 1: Connected.
Found path: /home/feos/.steam/steam/steamapps/common/Psycholonials/Psycholonials.x86_64
recv() returns 0 -> socket closed
The connection to the game was closed. Exiting
Segmentation fault (core dumped)
Note it says 2020.3.14f1 but in annotations you say 2020.3.16f1, but I tried UnityPlayer_s.debug from both and the game doesn't launch in libTAS. If I put all contents of 2020.3.16f1's linux64_withgfx_development_il2cpp folder near Psycholonials.x86_64 (while replacing UnityPlayer.so that already exists) the game launches, but libTAS only prints
Unity game detected
   Version 2020.3.14f1
Attempt 1: Connected.
Found path: /home/feos/.steam/steam/steamapps/common/Psycholonials/Psycholonials.x86_64
GetLocalIP: Error setting socket: Permission denied
and the movie decyncs during gameplay. Using contents of linux64_withgfx_development_il2cpp from 2020.3.14f1 results in:
Unity game detected
   Version 2020.3.14f1
Attempt 1: Connected.
[f:0 t:6280M] ERROR (hookpatch.cpp:592):   Could not modify instruction, offset too large: 3405808167
Found path: /home/feos/.steam/steam/steamapps/common/Psycholonials/Psycholonials.x86_64
recv() returns 0 -> socket closed
The connection to the game was closed. Exiting
Illegal instruction (core dumped)
Also I'm only assuming here that the file I should be launching is Psycholonials.x86_64, but launching others doesn't work. I'm using libTAS 1.4.7 in xubuntu 23.10, and I did copy unity default resources as unity_builtin_extra.
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.
Player (5)
🇨🇦 Canada
Joined: 3/31/2026
Posts: 5
Location: 🇨🇦 Canada
Hm, strange. I'll have to double-check my configuration but I'm pretty sure what I wrote was correct (though it's entirely possible I mistyped a 4 as a 6) Desyncing was an issue I ran into a lot with the TAS, pretty much any time there's a load it's possible for it to desync. Not that I'm saying this is a good solution- but if you go to the load point where it desyncs and add like, ten extra frames, does it sync again? I had to do that a lot to get a recording of it.
ikuyo
She/Her
Admin Assistant, Senior Judge, Experienced player (688)
🇨🇱 Chile
Joined: 7/8/2021
Posts: 234
Location: 🇨🇱 Chile
Got the game to boot by using both UnityPlayer.so and UnityPlayer_s.debug from 2020.3.16f1, but... the game appears to have rendering issues? As in, anything other than the HUD is completely black, and I can't see if there is a desync or I am failing to do something. I've tested with libTAS 1.4.7, 1.4.8 and a development build
GuanlongX wrote:
auuuugh my face when games are creative and cool and don't fit arbitrary rulesets
Player (5)
🇨🇦 Canada
Joined: 3/31/2026
Posts: 5
Location: 🇨🇦 Canada
Hm, I just ran the TAS again with the settings I had without issue. Oh wait- did I forget to mention I had Force software rendering checked? That might be it Also just so I can see if there's an issue with the files, Here's some SHA256 hashes of the relevant ones
95aa60b3bead39f7f6e86d1189664d420d8323243c63a45766601cd8fadeba88  Psycholonials.x86_64
a401120742b9950394f20af8e0fdb629dfb0c45ac41c6144d85e4bf3a909bdb4  UnityPlayer.so
9a2575a926f61b851f778fe054658926ad2cb99a86ace9c88a398894ff787e6e  UnityPlayer_s.debug
1eb97957e627cc5d753e0bbc31a440296149ab5f079ee813d041ce2e525197aa  unity default resources
And comparing hashes I confirmed that the version of UnityPlayer_s.debug I was using was UnitySetup-Linux-IL2CPP-Support-for-Editor-2020.3.16f1's linux64_headless_nondevelopment_il2cpp version, if something was going on with that file. Also if I forgot to mention it, unity default resources should be simlinked to unity_builtin_extra in the same folder. I hope that something here helps figure out what the issue is? If not I'm not sure what it could be...
Emulator Coder, Site Admin, Skilled player (1227)
Joined: 4/17/2010
Posts: 11965
IntangibleMatter wrote:
95aa60b3bead39f7f6e86d1189664d420d8323243c63a45766601cd8fadeba88  Psycholonials.x86_64
a401120742b9950394f20af8e0fdb629dfb0c45ac41c6144d85e4bf3a909bdb4  UnityPlayer.so
9a2575a926f61b851f778fe054658926ad2cb99a86ace9c88a398894ff787e6e  UnityPlayer_s.debug
1eb97957e627cc5d753e0bbc31a440296149ab5f079ee813d041ce2e525197aa  unity default resources
And comparing hashes I confirmed that the version of UnityPlayer_s.debug I was using was UnitySetup-Linux-IL2CPP-Support-for-Editor-2020.3.16f1's linux64_headless_nondevelopment_il2cpp version, if something was going on with that file.
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.
Player (5)
🇨🇦 Canada
Joined: 3/31/2026
Posts: 5
Location: 🇨🇦 Canada
OHHHHH!!! You're using the wrong source. Instead of any of the linux downloads, you need to grab 2020.3.16f1 > Component Installers > MacOS > Linux Build Support. It should be named UnitySetup-Linux-IL2CPP-Support-for-Editor-2020.3.16f1.pkg Try that and it should work? That's how I did it from the guide here https://clementgallet.github.io/libTAS/guides/unity/
Emulator Coder, Site Admin, Skilled player (1227)
Joined: 4/17/2010
Posts: 11965
I tried https://i.ibb.co/7x343bzB/7z-FM-2026-07-23-07-59-42.png https://i.ibb.co/1YmpgjJt/7z-FM-2026-07-23-08-00-00.png https://i.ibb.co/mV97rmH4/7z-FM-2026-07-23-08-00-14.png The pkg file doesn't have the path mentioned in the guide, instead it has TargetSupport.pkg.tmp\Payload\Payload~\.\Variations\linux64_headless_nondevelopment_il2cpp\ but the 2 files there have the same hashes as the Linux download I showed in the previous post.
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.
Player (5)
🇨🇦 Canada
Joined: 3/31/2026
Posts: 5
Location: 🇨🇦 Canada
Oh god, I somehow put down the wrong path. I'm so so sorry about that. It's actually the one in linux64_withgfx_nondevelopment_il2cpp Entirely on me, I'm so incredibly sorry.
ikuyo
She/Her
Admin Assistant, Senior Judge, Experienced player (688)
🇨🇱 Chile
Joined: 7/8/2021
Posts: 234
Location: 🇨🇱 Chile
IntangibleMatter wrote:
Oh god, I somehow put down the wrong path. I'm so so sorry about that. It's actually the one in linux64_withgfx_nondevelopment_il2cpp Entirely on me, I'm so incredibly sorry.
I can get the game to run with this, but after the first loading screen, nothing except the four icons in the GUI renders and the game appears completely black. Thus, I cannot check sync, let alone do any other judging. Is there any other setup that needs to be done? UPDATE: I figured it out... and we have a lot to explain. IntangibleMatter, you followed the Unity guide setup pretty well.. but the Unity guide setup sync assumes you are using libTAS 1.4.8. As your submission shows, you are using libTAS 1.4.7, so it has on effect on your movie. I was trying to get it to work with 1.4.8 and kept running into issues, but I got the game to run with 1.4.7, and I'm currently verifying sync. I'll let you know how it goes, and I'm sorry this created a big ball of misunderstandings. Update, happy to report the movie syns in libTAS 1.4.7 out of the box. I've verified sync and updated the file to trim the final blank frames. Expect a judgment soon.
GuanlongX wrote:
auuuugh my face when games are creative and cool and don't fit arbitrary rulesets
Player (5)
🇨🇦 Canada
Joined: 3/31/2026
Posts: 5
Location: 🇨🇦 Canada
Ahhh, okay that's definitely part of it. I made this TAS right before 1.4.8 came out, I think? Or at least I started it then. And be warned, because it's Unity there's possibility of desync at the load points. The TAS is probably a second or two slower than a "perfect" version would be just because I added some buffer around loading so that it wouldn't desync and I could actually do an encode. But thank you! Glad that it's all been figured out, and sorry for all the confusion.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Location: 127.0.0.1
Joined: 8/3/2004
Posts: 18036
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [7287] PC Psycholonials by IntangibleMatter in 23:46.050
Post subject: Content Warning Questionare.
Spikestuff
They/Them
Editor, Expert player (3654)
Location: The land down under.
Joined: 10/12/2011
Posts: 6717
Location: The land down under.
The content warning is kinda weird since each warning can be attributed to another TAS that has no content warning. Also feels like the content warning came from a wiki/fandom with how it was placed in... like it went to someone who didn't have knowledge of the title and just going off what's said. In saying that if this deserved a content warning (which I disagree with) I personally wouldn't know how to write it out but those one listed in the description/encode aren't correct with what TASVideos already has. I definitely need more Homestuck suffering to actually come up with something that would be more accurate than that of a surface level that has contradictions with previous existing publications.
Something that should picked up from one of the TASes that I'd argue as a counter to one of the warnings listed is from VA-11 Hall-A. "Whilst the TAS zooms through the story, we still recommend playing it before watching the TAS, as it spoils the solutions to the drinks as well." Only bringing this up 'cause the devs want people to be mindful of spoilers, and want people to go through it themselves instead of this.
Edit: Regarding the first half a blanket warning (which is on some publications) may have been better to use in place instead;
Caution: Some sequences in this game may be disturbing and triggering to some people. Viewer discretion is highly advised.
With this at the very least I would have less issues with the content warning flag being made. This was after a quick general discussion between myself and Samsara. Also unfortunately this kinda exposes the issue of having the encode having the warning inserted. Maybe at least with the encode you can probably have it using the blanket warning if this is done again for future TASes, so it's retroactively correct to any description changes, instead of the assumed "full stop" approach.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Strong for yourself and also others.