TASVideos

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

Emulator Resources / lib TAS / FAQ

<< Emulator Resources / lib TAS
<< Emulator Resources

The game is very slow!

Using an OpenGL software driver makes the game run very slowly, but it is necessary for being able to use savestates. Indeed, if we use hardware acceleration, we cannot save the state of the GPU inside savestates, so loading savestates often results in a crash. Nethertheless, fast-forward skips most OpenGL rendering functions, so you should get a decent framerate with fast-forward enabled.

Why did my savestates disappear after I restart the game?

Savestates are invalid after restarting the game, because part of the game state is different at each execution. This includes memory layout, processes/threads identifiers, file identifiers, and in general any communication protocol to the outside (X server connection, sockets, etc.). It may be possible to get savestates valid upon game restart, but it would require a lot of work and I don't feel it is worth right now.

The game softlocks at startup/after a short time

They are many reasons why a game would softlock when launching with the tool, but many games softlock because they are waiting in a loop for time to advance (without drawing or sleeping). The best way to check this is to set Runtime > Debug > Uncontrolled time before starting the game. It will disable the deterministic timer and will let the game access to real time. If the game does not softlock anymore, then we are likely witnessing this scenario. However, we cannot keep this setting because it makes input recording/playback highly non-deterministic.

There is a setting which tries to overcome this softlock, under menu Runtime > time tracking. Basically, it increases the time when a specific function, that asks for current time, has been called a certain number of times. Either you find the right function to check, starting by main thread, by trial-and-error until the game does not softlock anymore, or you can look at the debug log by enabling Runtime > Debug Logging > Print Categories > Time Get, and see which function is continuously called by the game.

Checking an item under Runtime > time tracking > main thread affects sync, but it won't lower the determinism of the game execution. Checking an item under Runtime > time tracking > secondary thread, however, may make the game non-deterministic.

If this doesn't solve the softlock, then you gather information about it as explained below

How do I report a crash/softlock/problem?

You can open an issue with the following information:


Combined RSS Feed
EmulatorResources/libTAS/FAQ last edited by feos on 2018-09-12 18:12:33
Page info and history | Latest diff | List referrers | View Source