Difference between revisions of "Flash"

From Emulation General Wiki
Jump to navigation Jump to search
(Implementations)
(Comparisons)
(22 intermediate revisions by 9 users not shown)
Line 23: Line 23:
 
! scope="col"|Platform(s)
 
! scope="col"|Platform(s)
 
! scope="col"|Latest version
 
! scope="col"|Latest version
! scope="col"|Accuracy
 
 
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
! scope="col"|Active
 
! scope="col"|Active
Line 31: Line 30:
 
|align=left|{{Icon|Windows|Linux|macOS|Web}}<ref group=N name=plugin />
 
|align=left|{{Icon|Windows|Linux|macOS|Web}}<ref group=N name=plugin />
 
|[https://www.adobe.com/support/flashplayer/debug_downloads.html 32.0.0.465]
 
|[https://www.adobe.com/support/flashplayer/debug_downloads.html 32.0.0.465]
|Reference ||{{✗}} ||{{✗}} ||{{✓}}
+
|{{✗}} ||{{✗}} ||{{✓}}
 +
|-
 +
|[https://github.com/vidkidz/waflash WAFlash]
 +
|align=left|{{Icon|Web}}
 +
|[https://clubpenguinadvanced.github.io/waflash-demo/ Web]
 +
|{{✗}} ||{{✓}} ||{{✓}}
 
|-
 
|-
 
|[https://ruffle.rs/ Ruffle]
 
|[https://ruffle.rs/ Ruffle]
 
|align=left|{{Icon|Windows|Linux|macOS|Web}}
 
|align=left|{{Icon|Windows|Linux|macOS|Web}}
 
|[https://github.com/ruffle-rs/ruffle/releases Nightly builds]
 
|[https://github.com/ruffle-rs/ruffle/releases Nightly builds]
|Mid ||{{✓}} ||{{✓}} ||{{✓}}
+
|{{✓}} ||{{✓}} ||{{~}}
 +
|-
 +
|[https://awayfl.org/ AwayFL]
 +
|align=left|{{Icon|Web}}
 +
|[https://github.com/awayfl/awayfl-player git]
 +
|{{✓}} ||{{✓}} ||{{~}}
 
|-
 
|-
 
|[https://lightspark.github.io/ Lightspark]
 
|[https://lightspark.github.io/ Lightspark]
|align=left|{{Icon|Windows|Linux|Web}}<ref group=N name=plugin>Web version only available as an [[wikipedia:NPAPI|NPAPI/PPAPI]] plugin.</ref>
+
|align=left|{{Icon|Windows|Linux|Web}}<ref group=N name=plugin>Web version is only available as an NPAPI/PPAPI plugin, and is therefore not OS-agnostic.</ref>
|[https://github.com/lightspark/lightspark/releases 0.8.3]
+
|[https://github.com/lightspark/lightspark/releases 0.8.5]
|Mid ||{{✓}} ||{{✓}} ||{{~}}
+
|{{✓}} ||{{✓}} ||{{~}}
 
|-
 
|-
 
|[https://swf2js.com/en/ swf2js]
 
|[https://swf2js.com/en/ swf2js]
 
|align=left|{{Icon|Web}}
 
|align=left|{{Icon|Web}}
|[https://github.com/swf2js/swf2js JavaScript file download]
+
|[https://github.com/swf2js/swf2js JavaScript file download]<br />Demos: [https://swf2js.com/free/index.html Free], [https://swf2js.com/prod/index.html Prod]
|{{?}} ||{{✓}} ||{{✗}} ||{{~}}
+
|{{~}} ||{{✗}} ||{{~}}
 +
|-
 +
|[https://leaningtech.com/cheerpx-for-flash/ CheerpX for Flash]
 +
|align=left|{{Icon|Web}}
 +
|[https://docs.leaningtech.com/cheerpx-for-flash/Changelog Version 31]
 +
|{{✗}} ||{{✓}} ||{{✗}}
 +
|-
 +
|Shumway
 +
|align=left|{{Icon|Web}}
 +
|[https://github.com/mozilla/shumway git]
 +
|{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|-
 
|[https://gnu.org/software/gnash GNU Gnash]
 
|[https://gnu.org/software/gnash GNU Gnash]
 
|align=left|{{Icon|Windows|Linux}}
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://www.gnu.org/software/gnash/download.html 0.8.10]
 
|[https://www.gnu.org/software/gnash/download.html 0.8.10]
|Low ||{{✓}} ||{{✗}} ||{{✗}}
+
|{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|-
 
|[https://open-flash.github.io/ Open Flash / Doμ Player]
 
|[https://open-flash.github.io/ Open Flash / Doμ Player]
 
|align=left|{{Icon|Web}}
 
|align=left|{{Icon|Web}}
|[https://github.com/open-flash/domu-player Git]
+
|[https://github.com/open-flash/domu-player git]
|{{?}} ||{{✓}} ||{{✓}} ||{{✗}}
+
|{{✓}} ||{{✓}} ||{{?}}
|-
 
|Shumway
 
|align=left|{{Icon|Web}}
 
|[https://github.com/mozilla/shumway Git]
 
|Low ||{{✓}} ||{{✗}} ||{{✗}}
 
 
|}
 
|}
 
<references group=N />
 
<references group=N />
  
 
===Comparisons===
 
===Comparisons===
 +
;''Common aspects''
 +
:''Pretty much all of the HTML5 emulators listed here are specifically designed to be used as [[wikipedia:Polyfill (programming)|polyfills]] by webmasters who want to keep their Flash-based sites going despite the forced obsolescence of Adobe's in-browser Flash plugin; those emulators are therefore really not intended for personal use, although it's usually not impossible.''
 +
 
;Adobe Flash Player
 
;Adobe Flash Player
:The official closed-source implementation by Adobe, who discontinued it in 2020. The web version relies on an obsolete plugin API that the major browsers no longer use; many browsers were only keeping the API around specifically for Flash's sake in the years leading up to its discontinuation.
+
:The official closed-source implementation by Adobe, who discontinued it in 2020. The web version relies on [[wikipedia:NPAPI|NPAPI/PPAPI]], an obsolete browser plugin system that for many years only stuck around specifically because of this Flash plugin; when the plugin was officially dropped by Adobe, so too was the plugin system dropped by all the major browser vendors. The desktop player version is still available for download from the Adobe website's debug downloads section, and Harman International is also [https://airsdk.harman.com/flashplayer maintaining an extended support version specifically for enterprise users].
 +
:;CheerpX for Flash
 +
::A payware HTML5 emulation package which combines CheerpX, an x86 emulator in WebAssembly, with Harman International's extended support version of Adobe Flash Player. No-one on this wiki has formally evaluated it (yet), but you shouldn't expect amazing performance given the added complexity of such an approach.
 +
 
 +
;WAFlash
 +
:A closed-source C++-to-HTML5 implementation that technically hasn't been officially released yet, and will probably be payware once it is. It seems to be the most accurate of the unofficial emulators as of December 2021.
  
 
;Ruffle
 
;Ruffle
:A Rust implementation that easily compiles to several platforms, but mainly targets HTML5. The devs are planning to focus on ActionScript 1 and 2 support first, with AS3 support coming later. Development of Ruffle is sponsored by multiple veteran Flash game archives, most notably Newgrounds. It's progressed to the point where it can run many early Flash games, including the original Flash version of [https://www.newgrounds.com/portal/view/59593/format/flash?emulate=flash Alien Hominid], as well as playing the vast majority of [https://old.homestarrunner.com Homestar Runner] toons.
+
:An open-source Rust implementation sponsored by multiple veteran Flash game archives, most notably Newgrounds. It mainly targets HTML5, but is also available as a desktop player. It's progressed to the point where it can run many early Flash games, including the original Flash version of [https://www.newgrounds.com/portal/view/59593/format/flash?emulate=flash Alien Hominid], as well as playing the vast majority of [https://old.homestarrunner.com Homestar Runner] toons. Notably, unlike the other HTML5 options, Ruffle can be installed as a browser addon using the WebExtension system, although it won't always override the copy that a website may be hosting.
  
;Lightspark & Gnash
+
;AwayFL
:Two C++ implementations that somewhat complement each other, and are both designed specifically to provide a FLOSS alternative to Adobe's official players. Lightspark says it has 78% of the APIs covered, while Gnash has focused on older versions of Flash that Lightspark is less likely to support properly, hence why Lightspark can use Gnash as an automatic fallback if both are installed simultaneously. Their external dependencies would make it cumbersome to port either of them to HTML5, so they're only available in browsers as replacements for the official Flash browser plugin.
+
:An open-source HTML5 implementation developed by the Away Foundation, under sponsorship from Poki.com. Sometimes works better than Ruffle, depending on the specific Flash file you're trying to run.
 +
 
 +
;Lightspark
 +
:An open-source C++ implementation that's designed specifically to provide a drop-in FLOSS alternative to both the desktop and NPAPI versions of Adobe Flash Player. Says it has 79% of the APIs covered as of January 2022.
  
 
;swf2js
 
;swf2js
:An open-core HTML5 implementation that uses a dynamic recompiler. The open-source "Free Version" supports limited features, such as AS1, AS2 and ZLIB compression, whereas the payware "Production Version" supports further features, such as AS3 and LZMA compression.
+
:An open-core HTML5 implementation that uses a dynamic recompiler. The source-available "Free" version supports limited features, such as AS1, AS2 and ZLIB compression, whereas the payware "Production" version is better suited to newer Flash files using such features as AS3 and LZMA compression. Uses normal JavaScript rather than WebAssembly, so performance is less than ideal.
  
 
;Shumway
 
;Shumway
:An HTML5 implementation. Developed rather actively for a few years, under Mozilla sponsorship, but ultimately abandoned in 2016.
+
:A relatively very early HTML5 implementation. Developed rather actively for a few years under Mozilla sponsorship, but ultimately abandoned in 2016 before it could reach a usable beta state.
 +
 
 +
;GNU Gnash
 +
:An open-source desktop player that has made very little progress since early 2012. It focuses on older versions of Flash that Lightspark was originally less focused on supporting properly, hence why Lightspark could use Gnash as an automatic fallback if both are installed simultaneously. However, newer versions of Lightspark have all but completely superseded Gnash and there's not much reason to use it anymore.
  
 
==See also==
 
==See also==
 
* [[Flashpoint]] - preservation effort for games designed in commercial web frameworks (not just Flash).
 
* [[Flashpoint]] - preservation effort for games designed in commercial web frameworks (not just Flash).
 +
 +
== Resources ==
 +
 +
* [https://nosamu.medium.com/flash-player-emulators-how-to-play-swfs-in-2021-and-beyond-d56c3899b7e6 Article by nosamu (of Flashpoint): Flash Player Emulators: How to Play SWF Files in 2021 and Beyond]
 +
  
 
[[Category:Not really emulators]]
 
[[Category:Not really emulators]]

Revision as of 07:30, 18 January 2022

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 currently owned by Adobe (previously 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 in the early 2000s to the mid-2010s, Flash has been the go-to platform for multimedia and animation, being utilised for streaming video providers such as YouTube, children's websites due to its rich content, and has spawned a subculture of animators as exemplified by the likes of Newgrounds. A number of popular animated series were also animated using Flash, most notably My Little Pony: Friendship Is Magic, Phineas and Ferb and Happy Tree Friends to name a few.

Flash's popularity declined in the 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 will never support Flash. Google followed suit when it dropped support for the platform in subsequent Android releases, and it didn't help that a series of security issues, coupled with Flash itself being a closed standard, has led Adobe to wind down on Flash and retire it in 2020.

Implementations

Name Platform(s) Latest version FLOSS Active Recommended
Adobe Flash Player Windows Linux macOS Web [N 1] 32.0.0.465
WAFlash Web Web
Ruffle Windows Linux macOS Web Nightly builds ~
AwayFL Web git ~
Lightspark Windows Linux Web [N 1] 0.8.5 ~
swf2js Web JavaScript file download
Demos: Free, Prod
~ ~
CheerpX for Flash Web Version 31
Shumway Web git
GNU Gnash Windows Linux 0.8.10
Open Flash / Doμ Player Web git ?
  1. 1.0 1.1 Web version is only available as an NPAPI/PPAPI plugin, and is therefore not OS-agnostic.

Comparisons

Common aspects
Pretty much all of the HTML5 emulators 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; those emulators are therefore really not intended for personal use, although it's usually not impossible.
Adobe Flash Player
The official closed-source implementation by Adobe, who discontinued it in 2020. The web version relies on NPAPI/PPAPI, an obsolete browser plugin system that for many years only stuck around specifically because of this Flash plugin; when the plugin was officially dropped by Adobe, so too was the plugin system dropped by all the major browser vendors. The desktop player version is still available for download from the Adobe website's debug downloads section, and Harman International is also maintaining an extended support version specifically for enterprise users.
CheerpX for Flash
A payware HTML5 emulation package which combines CheerpX, an x86 emulator in WebAssembly, with Harman International's extended support version of Adobe Flash Player. No-one on this wiki has formally evaluated it (yet), but you shouldn't expect amazing performance given the added complexity of such an approach.
WAFlash
A closed-source C++-to-HTML5 implementation that technically hasn't been officially released yet, and will probably be payware once it is. It seems to be the most accurate of the unofficial emulators as of December 2021.
Ruffle
An open-source Rust implementation sponsored by multiple veteran Flash game archives, most notably Newgrounds. It mainly targets HTML5, but is also available as a desktop player. It's progressed to the point where it can run many early Flash games, including the original Flash version of Alien Hominid, as well as playing the vast majority of Homestar Runner toons. Notably, unlike the other HTML5 options, Ruffle can be installed as a browser addon using the WebExtension system, although it won't always override the copy that a website may be hosting.
AwayFL
An open-source HTML5 implementation developed by the Away Foundation, under sponsorship from Poki.com. Sometimes works better than Ruffle, depending on the specific Flash file you're trying to run.
Lightspark
An open-source C++ implementation that's designed specifically to provide a drop-in FLOSS alternative to both the desktop and NPAPI versions of Adobe Flash Player. Says it has 79% of the APIs covered as of January 2022.
swf2js
An open-core HTML5 implementation that uses a dynamic recompiler. The source-available "Free" version supports limited features, such as AS1, AS2 and ZLIB compression, whereas the payware "Production" version is better suited to newer Flash files using such features as AS3 and LZMA compression. Uses normal JavaScript rather than WebAssembly, so performance is less than ideal.
Shumway
A relatively very early HTML5 implementation. Developed rather actively for a few years under Mozilla sponsorship, but ultimately abandoned in 2016 before it could reach a usable beta state.
GNU Gnash
An open-source desktop player that has made very little progress since early 2012. It focuses on older versions of Flash that Lightspark was originally less focused on supporting properly, hence why Lightspark could use Gnash as an automatic fallback if both are installed simultaneously. However, newer versions of Lightspark have all but completely superseded Gnash and there's not much reason to use it anymore.

See also

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

Resources