Ruffle, the open-source Flash player, moves to stable releases and fixes Super Mario 63's final battle
Ruffle's first blog post in over two years explains its new stable release channel, now on version 0.7.1, a versioned JavaScript API, and a long list of game fixes from Super Mario 63 to Fireboy &...
AI-drafted from 2 sources. This story was written with AI from the outside reporting listed under Sources, and checked by automated tools before it went up. The originals have the full detail.
Ruffle, the open-source Flash Player emulator written in Rust, has published its first progress report in more than two years. The post on 4 November 2026, written by maintainer Dinnerbone, leads with a change people have asked for for a long time: Ruffle now has stable releases as well as nightlies.
Stable releases
The first stable build came out in May, and the project waited until it had shipped several before announcing the system. At the time of writing it is on version 0.7.1. There is no fixed schedule. A new version goes out when enough has changed and the team is confident in its stability and performance. Nightlies continue for testers, but the post recommends stable builds to anyone who just wants things to work.
What that means depends on how you use Ruffle. The browser extensions in the official stores now track stable releases, so there is nothing to do. Websites that load Ruffle through the recommended unpkg script tag also get stable releases now, and can add @nightly to the address to stay on the bleeding edge. The desktop app still does not update itself, so you download new versions by hand, although the Linux Flatpak updates automatically for stable releases. There are now Linux ARM64 and i686 builds too. The Android app is a separate project and is not part of the change, and a contributor, madsmtm, is working on an iOS app.
Sites that embed Ruffle get a new .ruffle() JavaScript API. Methods placed directly on the player element clashed with Flash's own ExternalInterface API, so the new one is versioned and the old one is kept only for compatibility.
The numbers
Since the previous post, ActionScript 3 API coverage has gone from 76% to 82%, the ActionScript 1/2 language from 95% to 99%, and the ActionScript 1/2 API from 78% to 82%. The project merged 2,329 pull requests from 92 people, closed 3,379 issues and added 1,922 automated tests. Its Chrome extension alone has passed 1,000,000 active users.
Games that work now
The fix the post singles out is for Super Mario 63, which used to get stuck on its final battle. Others include a black screen in Typing Maniac, lost progress in GemCraft Labyrinth, rendering in Fireboy & Watergirl 2 and 3, a bug that made it impossible to get past level 4 of Toxic 2, collision problems in Super Smash Flash 2 and characters falling through floors in Castle Cat and Powerfox. Ruffle can also now draw hairline and scaled strokes, so many games lose the thick lines they used to have, and it decodes AAC audio, plays H.264 video in the browser through WebCodecs and lets you map a gamepad on the web.
ActionScript 3 content has been a focus for speed as well as accuracy, with optimiser work and faster calls into built-in methods. The post admits Ruffle is still not as fast as Flash Player was, and says the team's approach is to get things correct and covered by tests before optimising. A rewrite of the wgpu rendering backend for performance has started.
Why the wait, and AI
Dinnerbone explains the two-year gap plainly: seven years on the project, bouts of burnout, long breaks, and a post that got more daunting the longer it was put off. The post also says Ruffle has largely adopted the LLVM AI Tool Use Policy, which mostly comes down to a human being in the loop, because for every useful AI-assisted contribution the project gets a dozen that are not.
Sources
Image: Image: Ruffle