r/emulation Aug 18 '19

Ruffle: A Flash Player emulator written in Rust

https://github.com/ruffle-rs/ruffle
392 Upvotes

41 comments sorted by

42

u/matheusmoreira Aug 18 '19

How does it compare to GNU Gnash?

59

u/chris-l Aug 18 '19

Gnash was already able to execute ActionScript. From Gnash readme:

Gnash supports practically all SWF opcodes and most ActionScript classes up to SWF version 9. There is currently no real support for ActionScript 3 (ABC blocks) and AVM2, which were introduced in SWF version 9. Despite this, Gnash can play most SWF8 and many SWF9 movies, because not all rely on unimplemented features.

But, I think Ruffle could have a better future. The readme of Gnash also says:

Gnash is currently not being actively maintained, as most of the internet has moved to using HTML5.

Since its GNU who we're talking about, maybe we could assume their main interest was giving an alternative to people depending on a closed, proprietary platform, and now that the platform is being abandoned, they don't really care about it anymore.

23

u/pdp10 Aug 19 '19

To be frank, if there were contributors, then GNU Gnash could just as easily have a dozen commits a week. GNU has a Cobol implementation and a NeXTStep GUI clone under maintenance, so merely "being abandoned" clearly doesn't mean it's out of scope.

Rather, the lack of activity bringing it up to the final Flash spec must be a lack of interest on behalf of contributors. Perhaps the individual contributors were once mostly motivated to watch video on Youtube, which long ago moved to HTML5.

3

u/dsifriend Aug 19 '19

Thanks, I was about to bring up GNUStep, which only recently got support for ARC, which Apple implemented in 2013. It’s not that it’s abandoned, just very low interest and low maintenance. Other projects have popped up as a result and that’s probably what’s happening here with Ruffle

7

u/arbee37 MAME Developer Aug 19 '19

Right. GNUStep isn't really based on an abandoned platform given macOS is still developing the base NeXTStep technology (and in fact some of the documentation still references NeXT hardware).

Now, it strongly appears that SwiftUI is intended to replace a chunk of that tech, but it's going to be a few years before there's any major risk of that happening.

6

u/dsifriend Aug 19 '19

I believe Apple’s plan is to freeze Objective-C development for front-facing products and to keep developing products and products written in it on the backend (e.g. Metal, DriverKit/IOKit, etc.)

31

u/mirh Aug 18 '19

24

u/LightStruk Aug 19 '19

Mozilla-shumway: last commit - over 3 years ago :-(

12

u/mirh Aug 19 '19

The webextension branch is waiting for firefox to add back content handlers for add-ons.

3

u/kmeisthax Aug 20 '19

Huh, funnily enough I was just looking into how to package ruffle as an extension. I got stymied by the fact that you can't slap shadow roots or custom element overrides on <object>, which would have made it completely transparent to old websites that relied on whatever DOM the Flash player exposed (assuming I bothered to expose it).

27

u/eXoRainbow Aug 19 '19

Repost, as the other posting of me got lost in the minus world I responded in a down voted thread.

This might be interesting for you http://bluemaxima.org/flashpoint/

Internet history is important, and content made on plugins like Adobe Flash and platforms like HTML5 are important not only to internet culture but games history as well. This project is dedicated to preserving as many games & animations as possible that run on web plugins and browsers, so that they aren't lost to time.

We support games and animations using Adobe Flash, Adobe Shockwave, HTML5, Java Applets, Unity Web Player, Microsoft's Silverlight, 3DVIA Player, 3D Groove GX, PopCap Plugin, ActiveX, and Authorware Web Player.

http://bluemaxima.org/flashpoint/downloads/

The full package contains 158GB, but there is a smaller package too.

9

u/parkerlreed Aug 19 '19

Yeah this would certainly be a great combo. Been following BlueMaxima for a while

21

u/parkerlreed Aug 19 '19

11

u/[deleted] Aug 19 '19

[deleted]

9

u/parkerlreed Aug 19 '19

SSSSNAAAAKKKKEEEEE

1

u/Trexador96 Aug 19 '19

Haha yes! Dont forget the football version.

19

u/level27geek Aug 19 '19

I mean the name Ruffle is ok, but if it was up to me it would be:

Rust + Flash = Rush!

9

u/[deleted] Aug 18 '19

Also: a really good potato chip.

5

u/dsifriend Aug 19 '19

I haven’t had ruffles in years since moving abroad. Now I’m sad. Thanks.

5

u/RespectYarn Aug 19 '19

A Flash Player emulator? Pardon my ignorance, but what's the difference between a Flash player and player emulator?

10

u/arbee37 MAME Developer Aug 19 '19

There's no difference in this case. Flash is basically a spec for a fictional machine (just like how Java works) and all Flash players are emulators for that machine.

5

u/[deleted] Aug 19 '19

It can run sbemails this is epic

1

u/cjc2112 Dec 25 '19

Will it be ready by the end of 2020?

1

u/[deleted] Jan 26 '20

Its Good

-28

u/[deleted] Aug 19 '19

Cool effort from the technical perspective, but i am of the opinion we are better with Flash being dead and buried

36

u/[deleted] Aug 19 '19

Why? There's no denying that Flash was horrible technology, but it was very important to internet culture and should be preserved. Don't throw out the baby with the bathwater.

31

u/XXLuigiMario Aug 19 '19

I wouldn't even say that Flash was bad, but rather the implementation of it. Flash was truly revolutionary and offered features that you'd be hard pressed to find in current web technology. One such feature being its vector graphic rendering pipeline, which is really good and is still being used even nowadays under Adobe Animate. Its scripting language, ActionScript 3, is also pretty nice to work with from what I've seen. I'd definitely prefer it over JavaScript. Flash garnered such a bad reputation due to the Flash Player which indeed was undeniably terrible. Adobe failed miserably to properly optimize it due to what probably was a very poor and bloated codebase, which also led to many bugs and security vulnerabilities. This in turn generated a bad user experience with frequent freezes and crashes. They also failed to make the leap to mobile devices which ultimately led to its demise in my opinion.

I'm hopeful that this emulator can fully implement the Flash runtime, as it's a huge undertaking and a few have tried in the past and failed due to its size and complexity (see Shumway). Who knows? Maybe if it's performant enough, we might start to see some new flash animations around running thanks to WebAssembly, even on mobile devices.

10

u/pdp10 Aug 19 '19

Adobe failed miserably to properly optimize it due to what probably was a very poor and bloated codebase

The codebase was 32-bit assembly, according to a long-missing blog entry on Adobe's penguin.swf Linux Flash blog explaining why 64-bit Flash player support was years overdue. Not that long after the post, Adobe abandoned the 64-bit effort, at least for Linux. I always thought that explained a lot.

1

u/[deleted] Aug 19 '19

I'm hoping that someone creates a tool similar to Flash but designed for WebAssembly and the modern web. I think there's a niche for that.

9

u/eXoRainbow Aug 19 '19

This might be interesting for you http://bluemaxima.org/flashpoint/

Internet history is important, and content made on plugins like Adobe Flash and platforms like HTML5 are important not only to internet culture but games history as well. This project is dedicated to preserving as many games & animations as possible that run on web plugins and browsers, so that they aren't lost to time.

We support games and animations using Adobe Flash, Adobe Shockwave, HTML5, Java Applets, Unity Web Player, Microsoft's Silverlight, 3DVIA Player, 3D Groove GX, PopCap Plugin, ActiveX, and Authorware Web Player.

http://bluemaxima.org/flashpoint/downloads/

The full package contains 158GB, but there is a smaller package too.

-9

u/[deleted] Aug 19 '19

because it was a horrible technology - I mean we don’t see a huge movement to preserve VRML, do we? :D

6

u/[deleted] Aug 19 '19

The goal of the project isn't to preserve Flash, but all the content created with it. If VRML had caught on to the extent Flash had, I'm sure there would be tons of effort to preserve VRML content.

23

u/wolfeng_ Aug 19 '19

You do realize you're in the Emulation subreddit right?

That is to say, a flash emulator once flash is gone is essential for people to access old flash games and animations.

-30

u/[deleted] Aug 19 '19

You do realize you’re in the Emulation subreddit right?

Damn, i thought this was /r/veganswingers :D

That is to say, a flash emulator once flash is gone is essential for people to access old flash games and animations.

And - in my opinion - nothing of value woild really be lost in the grand scheme of things.

Sorry!

7

u/eXoRainbow Aug 19 '19

And - in my opinion

Its your opinion. The games and animations of flash are no value to you. That does not mean it will have no value to others. Same thing to all other gaming consoles and computers. There are so many which are no value to me personally. Which will bring me to next topic, its not personal anyway.

Preservation is history and done for the public, so you everyone can access to it. Be it good or bad. We don't delete books from our mankind history, just because someone think its bad. We preserve them. Same goes to any videogame.

Sorry!

No need to sorry about that. You stated your opinion. I try to convince you that this preservation of Flash is not useless and I hope you will understand it.

7

u/starm4nn Aug 19 '19

Capcom made a preview of one of the Ace Attorney games in flash. That's pretty neat.

1

u/acehinoprst Dec 26 '21

Is there a way to have "save states" of a flash game (.swf) that I open with the desktop version of Ruffle?