Submission Text Full Submission Page
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.


TASVideoAgent
They/Them
Moderator
Location: 127.0.0.1
Joined: 8/3/2004
Posts: 17717
Location: 127.0.0.1
This topic is for the purpose of discussing #10339: IntangibleMatter's PC Psycholonials in 23:54.250
Emulator Coder, Site Admin, Skilled player (1287)
Joined: 4/17/2010
Posts: 11916
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.
🇨🇦 Canada
Joined: 3/31/2026
Posts: 1
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.