clementgallet / libTAS

GNU/Linux software to (hopefully) give TAS tools to games
GNU General Public License v3.0
494 stars 56 forks source link

6180 the moon (Unity game) non-deterministic #311

Open qixils opened 4 years ago

qixils commented 4 years ago

I've messed with every setting from time tracking to wait timeout and nothing seems to fix this: 6180 the moon's inputs are not deterministic. This can be tested with the following movie file and setting a save state at roughly frame 1045 (or any point before the button input on frame 1055) and playing the save state over and over. Sometimes frame 1055's button input successfully goes through to start the game and sometimes it's dropped/missed/idk. This isn't exclusive to one spot, it occurs throughout the game.

6180 the moon.x86.clock_gettime.tar.gz

I can help provide files if needed to test (lexikiq#0493 on the tasvideos discord) Make sure to enable Steam Virtual Client or it hangs om frame 271

clementgallet commented 4 years ago

Like many games, rendering is done in a separate thread, and inputs are being mixed up by two different threads concurrently. So we need some additional sync mechanism to make the two threads run sequentially.

clementgallet commented 3 years ago

Try the following: