Emulator Resources / lib TAS / Game Compatibility

General

libTAS has been initially developed to support games that are using Simple DirectMedia Layer (SDL) for rendering (both software and OpenGL rendering). SDL is a cross-platform library for developing games. It is used in many commercial Linux games, either directly, or by using a high level framework that uses SDL as an intermediate layer. This includes FNA, a reimplementation of Microsoft XNA, or Chowdren, a cross-platform runtime for Clickteam Fusion games.

There has been some development to handle low-level rendering/inputs to support more games, including GameMaker Studio or Unity games.

Also, Steam games are partially supported right now. We can't let the game connect to Steam because Steam is messing with our code injection by spawning multiple processes and injecting code itself (such as game overlay). To fix that, a dummy Steam library is implemented, but it is still under development and games have many ways to connect to Steam so this does not work for all games yet. On the game compatibility below, it is noted if the Steam version of the game is supported. If not, you must use a drm-free version, except if the Steam game is or can be made drm-free.

Inputs

Audio

Audio playback needs to be controlled for a correct playback when game is paused, and for audio dumping. Audio sources are intercepted from the audio library calls made by the game, and are mixed together by libTAS and played back at frame boundaries. The currently supported high-level audio libraries are SDL1 Audio, SDL2 Audio and OpenAL. Also, low-level ALSA API is supported, so that other high-level libraries (like FMOD) are still working.

Engine

There are libTAS settings that are common to all games of the same engine: