Flash Player Emulators: How to Play SWF Files in 2021 and Beyond

nosamu
5 min readJan 9, 2021

--

Adobe ended support for Flash Player on December 31, 2020, and Flash Player will completely stop working on January 12. If you’re reading this, you probably have some Flash content that you want to keep running after January 12. That’s where Flash emulators come in; you can use them to play SWF files without installing the Flash Player. Unfortunately, no Flash emulator is perfect — each one has unique strengths and weaknesses. This article will introduce you to all of the major Flash emulators, what they are most useful for, and how to use them to play your favorite Flash content. Let’s get started!

Downloading SWF Files

Before you can use a Flash emulator, you will need to download an SWF that you wish to play. This guide goes over some simple approaches, and this tutorial from the Flashpoint web game preservation project has some additional tips. After you’ve downloaded some SWF files, you’ll be ready to try out the emulators!

Ruffle

Ruffle is a new, promising Flash emulator with a very active team of developers. It is built using Rust, a modern and high-performance programming language that supports Windows, Mac, Linux and the web. Best of all, Ruffle is fully open source! However, Ruffle is still in the early stages of development, so ActionScript 3 (the most recent version of Flash’s programming language) is not supported yet. ActionScript 3 was introduced in 2006; nearly all SWFs from before then will work in Ruffle, but many SWFs from later years will not function at all.

To try out Ruffle, go to the Ruffle Web Demo and click “Browse…” to load an SWF from your computer. If everything goes well, the SWF will play just like it did in the Flash Player. If you like what you see, you can install the desktop app to use Ruffle offline or install the browser extension to use Ruffle on all the Flash websites you visit. Webmasters can even add Ruffle to their own websites with just one line of HTML code. How cool is that?

Lightspark

Lightspark is another free, open source, and actively developed Flash emulator. Its code is written in C++, an older programming language. For this reason, there is no web demo or browser extension; you’ll have to download the desktop app.

Lightspark excels where Ruffle falls short: it supports some of the more recent Flash files that use ActionScript 3. However, ActionScript 3 is a lot more complicated than previous versions of the language, so don’t expect every SWF to work. Nevertheless, if you have an SWF that doesn’t work in Ruffle, Lightspark is definitely worth a try!

WAFlash

WAFlash is a Flash emulator that has excellent compatibility with all three ActionScript versions, a very impressive feat. It is written in C++ by Korean developer Jinsoo Park, and it is compiled for the web using Emscripten. That means you can try it out in your browser right now; just head over to the demo page and select an SWF file from your computer to play! Unfortunately, the official demo page no longer works, but you can use this unofficial demo page instead.

WAFlash might be the most widely compatible Flash emulator, but this good news comes with a catch. There is no offline download available and no browser extension. Worse still, the project is not open source, and the developer says he may take the emulator commercial in the future. The future of WAFlash is uncertain, and the developer has stated that webmasters are not currently allowed to use it on their own websites, either.

AwayFL

AwayFL is an open source Flash emulator created by the non-profit Away Foundation. They have notably worked with Poki to create official emulated versions of Nitrome’s classic Flash games. You can learn more about the partnership from this Pocket Gamer interview. Although these conversions are excellent, there is very little official documentation of AwayFL. The emulator is said to work very well for a narrow segment of early ActionScript 3 games, but in my tests, it proved underwhelming for general usage. Your mileage may vary; you can try out the emulator on this unofficial demo page. If you have questions about the emulator, you can contact the Away Foundation or join their semi-official Discord server. And if you’re a webmaster, you can integrate AwayFL with your website by following these instructions.

swf2js

swf2js is a pure JavaScript Flash emulator developed by a Japanese team led by Toshiyuki Ienaga. The emulator has a free edition and a paid edition, but you can try out both editions for free in the “live preview” area of the site. You will only need to pay a fee if you want to use the production version of swf2js on your own website.

If you have an older SWF you want to play, head to the free version demo and click “Browse” at the top of the page to load the SWF. Next, click “Upload” and wait some time for the SWF to load. If you have a newer SWF that uses ActionScript 3, try the production version demo instead.

swf2js has been in continuous development since 2013, and it shows. Because it uses plain JavaScript instead of newer, faster technologies such as WebAssembly, it struggles mightily with more intensive SWFs. However, swf2js is very accurate; in my tests, it often seemed to have fewer visual glitches than other emulators.

Conclusion

There is clearly no “silver bullet” emulator that can play all SWFs. In its twenty-five-year history, Flash gained a plethora of features, many of which are a monumental challenge to emulate within the restricted sandbox of the modern web. Earlier, simpler Flash content is likely to work well enough with free emulators, but the outlook seems grim for newer, more advanced Flash content. Even paid options for emulating ActionScript 3 are severely lacking. Until Flash emulation matures, your best bet is probably to run the official Flash Player in a closed environment. I will explain your options for doing so in a future post — stay tuned!

--

--

nosamu
nosamu

Written by nosamu

Former administrator at BlueMaxima’s Flashpoint, Discord community manager at Ruffle. I enjoy writing about technology and its history.

Responses (2)