Flash

From Emulation General Wiki
Revision as of 05:27, 31 January 2023 by 108.162.250.150 (talk) (HTML5)
Jump to navigation Jump to search
Adobe Flash
Developer Adobe
Release date 1996
Discontinued 2020
Emulated

Flash (previously FutureSplash Animator, before that SmartSketch) is a software platform created by FutureWave Software and is currently owned by Adobe (formerly Macromedia). Originally a drawing program for PenPoint OS, later ported to Windows and Macintosh when pen computing failed to take off, frame-by-frame animation features were added to it in a new program called FutureSplash Animator. The company was acquired by Macromedia in December 1996, rebranding FutureSplash Animator to Flash, an amalgamation of "Future" and "Splash". In turn, Macromedia was acquired by Adobe on December 3, 2005. Their operations, networks, and customer care organizations were merged shortly after.

Used by an overwhelming majority of websites between the early 2000s and the mid 2010s, Flash was very much the go-to platform for online cartoons and games, being especially popular for various entertainment sites and children's sites due to its rich content, and has spawned its own subculture of animators and game developers as exemplified by the likes of Newgrounds. SWF elements also proved to be a crucial tool for many multimedia hosting sites so that they could actually play audio/video inside a browser, given the lack of viable alternatives in the pre-HTML5 days. However, around the start of 2010 YouTube started pushing really hard for HTML5 media elements, which have since become a standard feature in modern browsers and single-handedly made Flash Player obsolete for multimedia playback.

In fact, Flash's popularity as a whole started declining steeply in the mid-to-late 2010s due to the rise of alternative (and open) web standards such as HTML5 and mobile device manufacturers dropping support for the platform, a prominent example being Apple, who publicly stated that iOS would never support Flash. Google followed suit when it dropped support for the platform in new releases of Android, and it didn't help that a series of security issues, coupled with Flash itself being a closed standard, led Adobe to wind down on Flash and retire the official player in 2020. The Flash authoring toolkit, since renamed Adobe Animate, is still actively supported and has undergone a total market shift towards animators; a number of popular cartoon series are already produced using Animate, most notably My Little Pony: Friendship is Magic, Phineas and Ferb and Happy Tree Friends, to name a few.

Implementations

Name Platform(s) Latest version ScaleForm GFx Adobe AIR FLOSS Active Recommended
Desktop / Plugin [N 1]
Flash Player Windows Linux macOS Web 32.0.0.465 [N 2] ~ [N 3]
Ruffle Windows Linux macOS Nightly builds ~ ~ (WIP)
Lightspark Windows Linux Web 0.8.6.1 ~ ~ (WIP)
GNU Gnash Windows Linux 0.8.10
GameSWF Windows macOS Linux 2009-08-08
swfdec Linux Web 0.8.4
HTML5 / WebAssembly
Ruffle N/A git ~ ~ (WIP)
AwayFL git ~ ~ (WIP)
WAFlash N/A ~
swf2js 0.7.8 ~ ~
CheerpX for Flash Version 34 ?
Open Flash / Doμ Player git
Shumway git ~
  1. Plugin versions of these players require a browser that supports NPAPI/PPAPI.
  2. Requires the Third-party software component to Access it.
  3. Adobe versions discontinued. Harman versions are currently maintained for enterprise customers only.

Comparisons

Hybrid

Ruffle (web demo)
A Rust-based player that targets both HTML5 and desktop. Notably used by a bunch of veteran Flash content sites, including Newgrounds, Homestar Runner and CoolMathGames, and also by the Internet Archive's Flash library. By early 2021, it had already reached the point where it could run many early Flash games, including the original Flash version of Alien Hominid; support for newer AVM2-based files is now underway, although still far from complete as of December 2022. Unlike the other HTML5 options, Ruffle can be installed as a WebExtension in browsers that support it, with the caveat that a website's hosted copy will sometimes override the extension even if the site is running an older build.

Desktop / NPAPI

NPAPI—in case you don't remember—is an obsolete browser plugin system that was designed to allow a bunch of different in-browser software platforms to co-exist in the earlier days of the internet, but it effectively existed only for the sake of SWF players once the format became properly dominant and pushed everything else out of the in-browser ecosystem. With the shrinking relevance of SWF in the late 2010s, the plugin system that the players relied on was increasingly seen as an ancient relic that modern browsers would be better off without. So, while Adobe was phasing out Flash Player in late 2020, NPAPI was also gradually being dropped by all the major browser vendors. It hasn't entirely disappeared (some indie browser devs still maintain NPAPI in their own forks of stuff like Firefox and Chromium), but there's no denying its obsolescence these days.

Flash Player
The proprietary reference player, which Adobe stopped directly supporting at the end of 2020 and has since fully delisted from their website. The plugin version has a built-in kill-switch that was flipped in January 2021, so it's probably not much use even in browsers that still support NPAPI, but the desktop player version is still usable if you download it from an archived version of the Adobe website. Harman International is also maintaining an extended support version specifically for enterprise users.
Lightspark
A C++ player specifically designed to provide drop-in FLOSS replacements for both the desktop and NPAPI versions of Flash Player. It claims to have 83% of the overall SWF spec covered as of August 2022, but development has been fairly slow since 2015, when it became a mostly one-person effort. Lightspark historically focused on more recent versions of the SWF spec that weren't supported by Gnash, hence why Lightspark could (and still can) use Gnash as an automatic fallback if both are installed simultaneously.
GNU Gnash
A desktop-only C++ player that went inactive in 2017, with the most recent stable release dating back to 2012. Probably not much reason to use it over newer versions of Lightspark, which seem to have mostly (if not entirely) superseded Gnash for compatibility.
GameSWF
An extremely old C++ player, definitely one of the first serious efforts to reverse-engineer Flash Player into an open-source package. Inactive since 2009, though it did lay the foundations for Gnash.
swfdec
Another very early effort to create a non-proprietary replacement for Flash Player. it's actually pretty advanced for 2008-09, but it hasn't been active since.

HTML5

Pretty much all of the players listed here are specifically designed to be used as polyfills by webmasters who want to keep their Flash-based sites going despite the forced obsolescence of Adobe's in-browser Flash plugin. They are, therefore, largely not intended for personal use, although it's usually not impossible and some of them even have official demo pages that you can use to load whatever SWF file you want.

CheerpX for Flash
A proprietary software package designed to make the Harman version of Flash Player usable in modern browsers by running it inside CheerpX, a payware x86 emulator in WebAssembly. No one on this wiki has had the chance to properly evaluate it, but we'd expect reference-level accuracy at the cost of woeful performance. That being said, CheerpX can also function as a streaming client to a bundled server app that does the emulation and processing work instead.
AwayFL (web demo)
Developed by the Away Foundation, this is arguably the most direct alternative to Ruffle, which it's roughly even with in terms of compatibility, although there are still a bunch of SWFs that'll work fine in one but not the other.
WAFlash (web demo)
An inactive, closed-source C++-to-WebAssembly player that technically hasn't been made available to outside users, although there are a few sites where you can use it. It was considered the most accurate of the unofficial Flash players as of late 2021, although other still-active projects have caught up significantly.
swf2js (web demos: free, production)
An open-core player that uses a dynamic recompiler. The source-available "Free" version supports limited features, such as AS1, AS2 and ZLIB compression. In contrast, the payware "Production" version is better suited to newer Flash files using AS3 and LZMA compression features. Built on more traditional JavaScript code, so it pretty much always performs worse than the WebAssembly-based options, sometimes noticeably so.
Shumway
A relatively early HTML5 player actively developed under Mozilla sponsorship between 2012 and 2016 but ultimately abandoned before reaching a usable beta state.

Peripherals

ScaleForm GFx

Scaleform GFx is a discontinued game development middleware package, a vector graphics rendering engine used to display Adobe Flash-based user interfaces and HUDs for video games. In March 2011, Autodesk acquired Scaleform Corporation and Scaleform GFx became part of the Autodesk Gameware line of middleware. On July 12, 2018, Autodesk discontinued Scaleform GFx, and it is no longer available for purchase.

Authors created user interfaces using Adobe Flash authoring tools, such as Adobe Animate (formerly Adobe Flash Professional); the resulting SWF files were used directly by the GFx libraries, providing similar functionality to the Adobe Flash Player but optimized for use within game engines.

Scaleform GFx supported all major platforms, including game consoles, mobile and PC operating systems. Scaleform provides APIs for direct communication between Flash content and the game engine, and pre-built integrations for popular engines such as Unity, Unreal Engine, and CryENGINE. Scaleform GFx could also be licensed for use as a standalone Flash runtime system on mobile platforms, competing with Adobe AIR.

Adobe AIR

Adobe AIR (also known as Adobe Integrated Runtime and codenamed Apollo) is a cross-platform runtime system currently developed by Harman International, in collaboration with Adobe Inc., for building desktop and mobile applications, programmed using Adobe Animate, ActionScript, and optionally Apache Flex. It was originally released in 2008. The runtime supports installable applications on Windows, macOS, and mobile operating systems, including Android, iOS, and BlackBerry Tablet OS.

AIR is a runtime environment that allows Adobe Animate content and ActionScript 3.0 coders to construct applications and video games that run as a stand-alone executable and behave similarly to a native application on supported platforms. An HTML5 application used in a browser does not require installation, while AIR applications require installation from an installer file (Windows and macOS) or the appropriate App Store (iOS and Android). AIR applications have unrestricted access to local storage and file systems, while browser-based applications only have access to individual files selected by users.

See also

  • Flashpoint - preservation effort for games designed in commercial web frameworks (not just Flash).

Resources