Running a game with libTAS
- Launch the game natively to check that it is working. Also, set the game to windowed mode if possible. libTAS tries to enforce a windowed mode, but it can messed up the display for certain games if configured in fullscreen mode.
- Look at the game files to see if the file to launch the game is a binary file or (most commonly) a shell script that does a bunch of stuff and runs a binary file. If this is a shell script, you need to look into it for a command that changes the working directory (like cd [path]) and a command that adds a directory to the shared library path (like export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:path), if any.
- Start the libTAS tool by opening a terminal and typing
libTAS. Fill the Game Executable field with the game binary path. Many games provide multiple binaries for different archs, so fill the one that corresponds to your CPU arch.
- If you had a change of working directory or an added shared library directory in step 2, go to menu
File > Executable Options, and fill Run path with the new working directory and/or Library path with the added shared library path.
- If you want to record inputs, check
Movie Recordingand specify a movie path.
- Press Start.
- Saving a state snapshots the state of the TASed application at the current frame, and clones the entire movie inputs, including those past the current frame
- Loading a state while in Playback mode checks the validity of the preceding input up to the stated frame, and if the existing input matches input of the savestate, the state is loaded. Past input is not touched.
- Loading a state in the Recording mode restores the entire movie to what it is in the savestate.
- If the user advances a frame after having loaded the state in Recording mode, the movie will be truncated and Recording will be resumed. However, if Input Editor is active, and there is input after the stated frame in the savestate, the movie will not be truncated upon frame advance.
- Editing input by drawing is possible in the Input Editor only after the current frame.