Ruffle is an Adobe Flash Player emulator written in the Rust programming language. The Linux version can be used in conjunction with libTAS to make tool-assisted speedruns of Flash games.

What you'll need

Test your game natively in Ruffle before you try TASing it! Ruffle is a work in progress and some games are incompatible. If you get a popup message about unsupported features, the game won't work yet and you'll have to try Ruffle again later. If your game runs but has some glitches that don't occur in the regular Adobe Flash Player, post a well-written, detailed issue on how to reproduce it and hope for the best.

Using with libTAS

Thankfully, setting it up with libTAS is not very complicated.

If libTAS fails to hook with Ruffle

If you are using GNOME or similar GUI and libTAS fails to hook to Ruffle, you may have a problem with your Wayland display protocol (e.g., you only have X11 installed). A possible error message you might see is:
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
To fix this problem, you may edit your GNOME config file /etc/gdm3/custom.conf and set WaylandEnable=false and restart. Another possible solution is to disable Wayland in the environment variables: export WAYLAND_DISPLAY=""

Framerate

Set the frames per second to the proper frame rate for your Flash game.
Setting it too low will incorrectly speed up the game, squander viable input frames, and reduce the encode quality. And setting it too high will cause Ruffle to freeze - although if for some reason you need the higher framerate, Ruffle may still work with Runtime -> Time tracking -> clock_gettime() checked.
Since Nightly 2023-02-25, Ruffle can print SWF info to the terminal if you launch libTAS with the following command:
RUST_LOG=ruffle_core=info libTAS | grep "Loaded SWF version"
For ealier Ruffle releases (though the new releases are mostly sync compatible with the old ones), you can open up a terminal and install exiftool first with this command:
sudo apt install libimage-exiftool-perl
And then use this command:
exiftool /path/to/yourgame.swf
This will list information about the .swf, including the frame rate.
Yet another way to see the game's internal framerate is opening it in JPEXS.

Domain locking

Some Flash games are domain locked, meaning that you can only run them on specific websites. To get these games to work on the desktop version of Ruffle, you can trick the game into thinking it's on the correct website. As of nightly-2022-10-23, you can use the command-line parameter --spoof-url http://example.yoururlhere to feed the game any URL you want.

Nvidia drivers

If Ruffle is not working with Nvidia drivers, run the following commands and reboot your PC:
sudo apt install ubuntu-drivers-common
sudo apt install nvidia-driver-535 && nvidia-cuda-toolkit
sudo apt install ubuntu-restricted-extras && sudo apt install ubuntu-restricted-addons
Now Ruffle should run under libTAS, just make sure to have the Force software rendering option checked. If Ruffle fails to launch natively when using OpenGL, run export LIBGL_ALWAYS_SOFTWARE=1 and then run it in the same terminal window.

OpenGL

If Ruffle does not work with -g gl you can try the following command in the terminal:
sudo apt install libx11-dev

Movie submissions

We allow submissions using Ruffle with libTAS. Please follow these guidelines to ensure your movie is acceptable and can be synced:

Tools


EmulatorResources/Ruffle last edited by feos 15 days ago
Page History Latest diff List referrers View Source