Difference between revisions of "Flash"

From Emulation General Wiki
Jump to navigation Jump to search
(Implementations)
(Comparisons)
 
(46 intermediate revisions by 22 users not shown)
Line 10: Line 10:
 
|emulated = {{✓}}
 
|emulated = {{✓}}
 
}}
 
}}
{{WIP}}
+
 
 
'''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.
 
'''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.
  
Line 25: Line 25:
 
! scope="col"|Active
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|[[Recommended Emulators|Recommended]]
 +
|-
 +
|Adobe Flash Player
 +
|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]
 +
|{{✗}} ||{{~}}<ref group=N>Adobe versions discontinued. Harman versions currently maintained for enterprise customers only.</ref> ||{{✓}}
 +
|-
 +
|[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://ruffle.rs/#downloads Nightly builds]
|{{✓}} ||{{✓}} ||{{✓}}
+
|{{✓}} ||{{✓}} ||{{~}}<small> (WIP)</small>
 +
|-
 +
|[https://awayfl.org/ AwayFL]
 +
|align=left|{{Icon|Web}}
 +
|[https://github.com/awayfl/awayfl-player git]
 +
|{{✓}} ||{{✓}} ||{{~}}<small> (WIP)</small>
 
|-
 
|-
 
|[https://lightspark.github.io/ Lightspark]
 
|[https://lightspark.github.io/ Lightspark]
|align=left|{{Icon|Windows|Linux|Web}}<ref group=N name=plugin>Web version is not OS-independent and requires a browser with support for Flash plugins.</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]
|{{✓}} ||{{✓}} ||{{~}}
+
|{{✓}} ||{{✓}} ||{{~}}<small> (WIP)</small>
 
|-
 
|-
 
|[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 Download (Free Version only)]<br />Demo sites:<br />[https://swf2js.com/free/index.html Free Version]<br />[https://swf2js.com/prod/index.html Production Version]
|{{}} ||{{✗}} ||{{~}}
+
|{{~}} ||{{✗}} ||{{~}}
 +
|-
 +
|[https://leaningtech.com/cheerpx-for-flash/ CheerpX for Flash]
 +
|align=left|{{Icon|Web}}
 +
|[https://docs.leaningtech.com/cheerpx-for-flash/Changelog Version 33]
 +
|{{✗}} ||{{✓}} ||{{✗}}
 
|-
 
|-
|Adobe Flash Player
+
|[https://open-flash.github.io/ Open Flash / Doμ Player]
|align=left|{{Icon|Windows|Linux|macOS|Web}}<ref group=N name=plugin />
+
|align=left|{{Icon|Web}}
|[https://www.adobe.com/support/flashplayer/debug_downloads.html 32.0.0.465]
+
|[https://github.com/open-flash/domu-player git]
|{{}} ||{{✗}} ||{{✗}}
+
|{{✓}} ||{{✗}} ||{{✗}}
 +
|-
 +
|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]
Line 51: Line 76:
 
|{{✓}} ||{{✗}} ||{{✗}}
 
|{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|-
|[https://open-flash.github.io/ Open Flash / Doμ Player]
+
|[http://tulrich.com/textweb.pl?path=geekstuff/gameswf.txt GameSWF]
|align=left|{{Icon|Web}}
+
|align=left|{{Icon|Windows|Linux}}
|[https://github.com/open-flash/domu-player Git]
+
|[https://sourceforge.net/projects/tu-testbed/files/demos/gameswf-2009-08-08/ 2009-08-08]
|{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|[https://mozilla.github.io/shumway/ Shumway]
 
|align=left|{{Icon|Web}}
 
|[https://github.com/mozilla/shumway Git]
 
 
|{{✓}} ||{{✗}} ||{{✗}}
 
|{{✓}} ||{{✗}} ||{{✗}}
 
|}
 
|}
Line 64: Line 84:
  
 
===Comparisons===
 
===Comparisons===
 +
;''Common aspects''
 +
:''Pretty much all of the HTML5 players 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; these players are therefore really not intended for personal use, although it's usually not impossible.''
 +
 +
;Adobe Flash Player
 +
:The proprietary reference implementation, which Adobe stopped directly supporting 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 Flash Player; as Adobe was phasing out the plugin, so too was the plugin system gradually being dropped by all the major browser vendors. The discontinued desktop player version is still available for download from the debug downloads section of Adobe's website, 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 software package which basically just takes the Harman version of Flash Player and uses CheerpX, an x86 emulator in WebAssembly, to make it run in modern browsers. 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 apparently has an alternate mode of operation that offloads most of the emulation and processing work to an external server, at which point the HTML5 part is effectively just a remote client.
 +
 +
;WAFlash
 +
:A closed-source C++-to-HTML5 implementation that technically hasn't been made available to outside users, although there are a few sites where you can use it. It seems to be the most accurate of the unofficial Flash players, as of December 2021.
 +
 
;Ruffle
 
;Ruffle
:A Rust implementation that compiles to, among other systems, WebAssembly. This allows Ruffle to be directly hosted by websites without the need for anything to be installed client-side. The devs state it has ActionScript 1 and 2 support, with AS3 support coming later, estimated to be several months. Being sponsored by Newgrounds, it has progressed to the point where it can play the original Flash version of [https://www.newgrounds.com/portal/view/59593/format/flash?emulate=flash Alien Hominid], many early Flash games, and the vast majority of [https://old.homestarrunner.com Homestar Runner] toons.
+
:A Rust implementation that mainly targets HTML5, but is also available as a desktop player. Notably being used by a bunch of veteran Flash content sites including [https://www.newgrounds.com Newgrounds], [https://homestarrunner.com Homestar Runner] and [https://www.coolmathgames.com CoolMathGames]. 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]. Notably, unlike the other HTML5 options, Ruffle can be installed as a browser addon, although sometimes a website will still load its own hosted copy even if the addon version is more recent.
 +
 
 +
;AwayFL
 +
:An HTML5 implementation developed by the Away Foundation. Sometimes works better than Ruffle, depending on the specific Flash file you're trying to run.
  
 
;Lightspark
 
;Lightspark
:A C++ implementation. Says it has 78% of the APIs covered. If the Gnash emulator is also installed on your system, then Lightspark can automatically use it as a fallback for certain older types of content.
+
:A C++ implementation that's designed specifically to provide drop-in FLOSS replacements for both the desktop and NPAPI versions of 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 more "traditional" JavaScript rather than WebAssembly, so performance is less than ideal.
 
 
;Adobe Flash Player
 
:The official closed-source implementation by Adobe. It was discontinued in 2020.
 
  
;Gnash
+
;GNU Gnash
:Another C++ implementation.
+
:A desktop-only C++ implementation that went inactive in 2017, with the most recent stable release dating back to 2012. It focuses on older versions of Flash that Lightspark was historically less focused on supporting properly, hence why Lightspark could (and still can) 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 at all anymore.
 +
:;GameSWF
 +
::The original basis for Gnash. An ''extremely'' old C++ implementation, definitely one of the first serious efforts to reverse-engineer Flash Player into an open-source package. It hasn't been updated at all since 2009.
  
 
;Shumway
 
;Shumway
:An HTML5 implementation. It was sponsored by Mozilla but later abandoned.
+
:A relatively very early HTML5 implementation. Developed rather actively under Mozilla sponsorship between 2012 and 2016, but ultimately abandoned before it could reach a usable beta state.
  
 
==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]]

Latest revision as of 12:38, 26 May 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[edit]

Name Platform(s) Latest version FLOSS Active Recommended
Adobe Flash Player Windows Linux macOS Web [N 1] 32.0.0.465 ~[N 2]
WAFlash Web Web
Ruffle Windows Linux macOS Web Nightly builds ~ (WIP)
AwayFL Web git ~ (WIP)
Lightspark Windows Linux Web [N 1] 0.8.5 ~ (WIP)
swf2js Web Download (Free Version only)
Demo sites:
Free Version
Production Version
~ ~
CheerpX for Flash Web Version 33
Open Flash / Doμ Player Web git
Shumway Web git
GNU Gnash Windows Linux 0.8.10
GameSWF Windows Linux 2009-08-08
  1. 1.0 1.1 Web version is only available as an NPAPI/PPAPI plugin, and is therefore not OS-agnostic.
  2. Adobe versions discontinued. Harman versions currently maintained for enterprise customers only.

Comparisons[edit]

Common aspects
Pretty much all of the HTML5 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; these players are therefore really not intended for personal use, although it's usually not impossible.
Adobe Flash Player
The proprietary reference implementation, which Adobe stopped directly supporting in 2020. The web version relies on NPAPI/PPAPI, an obsolete browser plugin system that for many years only stuck around specifically because of Flash Player; as Adobe was phasing out the plugin, so too was the plugin system gradually being dropped by all the major browser vendors. The discontinued desktop player version is still available for download from the debug downloads section of Adobe's website, and Harman International is also maintaining an extended support version specifically for enterprise users.
CheerpX for Flash
A payware HTML5 software package which basically just takes the Harman version of Flash Player and uses CheerpX, an x86 emulator in WebAssembly, to make it run in modern browsers. 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 apparently has an alternate mode of operation that offloads most of the emulation and processing work to an external server, at which point the HTML5 part is effectively just a remote client.
WAFlash
A closed-source C++-to-HTML5 implementation that technically hasn't been made available to outside users, although there are a few sites where you can use it. It seems to be the most accurate of the unofficial Flash players, as of December 2021.
Ruffle
A Rust implementation that mainly targets HTML5, but is also available as a desktop player. Notably being used by a bunch of veteran Flash content sites including Newgrounds, Homestar Runner and CoolMathGames. It's progressed to the point where it can run many early Flash games, including the original Flash version of Alien Hominid. Notably, unlike the other HTML5 options, Ruffle can be installed as a browser addon, although sometimes a website will still load its own hosted copy even if the addon version is more recent.
AwayFL
An HTML5 implementation developed by the Away Foundation. Sometimes works better than Ruffle, depending on the specific Flash file you're trying to run.
Lightspark
A C++ implementation that's designed specifically to provide drop-in FLOSS replacements for both the desktop and NPAPI versions of 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 more "traditional" JavaScript rather than WebAssembly, so performance is less than ideal.
GNU Gnash
A desktop-only C++ implementation that went inactive in 2017, with the most recent stable release dating back to 2012. It focuses on older versions of Flash that Lightspark was historically less focused on supporting properly, hence why Lightspark could (and still can) 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 at all anymore.
GameSWF
The original basis for Gnash. An extremely old C++ implementation, definitely one of the first serious efforts to reverse-engineer Flash Player into an open-source package. It hasn't been updated at all since 2009.
Shumway
A relatively very early HTML5 implementation. Developed rather actively under Mozilla sponsorship between 2012 and 2016, but ultimately abandoned before it could reach a usable beta state.

See also[edit]

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

Resources[edit]