12 ms·
Ruffle: Flash Player Emulator
- bexsella 3y agoI check in on this project every year or so, and I'm happy to see that their support for AS3 is creeping towards completion. I, like many, wasted so many hours in flash games while in school that it was sad to see an element of gaming history fall by the wayside. At least Ruffle can pick up some of the pieces. It does remind me that that there is still no way to play Wolfenstein RPG on iOS. I have an old iPod that I bought in 2010 almost exclusively to play it, but that battery won't last forever. But for now, I think I'll go and play some Adrenaline Challenge.
- GranPC 3y agoWow, last I checked they were just getting started on AS3. Crazy to see how quickly they're getting there.
- slowhadoken 3y agoSame. I’m still looking for a way to play Inishie Dungeon again.
- koito17 3y agoAbout 18 months ago I recall hearing Ruffle had virtually no AS3 support, and that was a show stopper for me. I wasn't expecting them to get much done on this front for years. So in that time I simply installed the last version of Flash without the time bomb. Thankfully I am wrong :)
- neverdied 3y agothe more I look, the more Ruffle seems to speed along. how did they get so good (and this fast) ?!?
- TheDong 3y agoUnironically, because of rust. Rust's type system encodes more information than most languages, and so you can offload more work to it. That becomes more and more valuable as the project grows. Rust also attracts good developers in general, moreso than the average language certainly.
- bsder 3y ago> Rust's type system encodes more information than most languages, and so you can offload more work to it. I suspect at least one of the developers would argue with you as I have listened to his rants. :) Rust is a remarkably poor match to implementing Flash because Flash has lots of object orientation with child and parent pointers--which Rust really hates. > Rust also attracts good developers in general, moreso than the average language certainly. I suspect this is way more relevant.
- teaearlgraycold 3y agoCouldn’t you just have a global object table and make your pointers indexes into this, using Rc::Refcells throughout? Rust is still fast with runtime GC.
- adrian17 3y agoMore specifically (assuming we’re talking about the same thing), the issue is with reproducing a standard C++ inheritance hierarchy (used for both the AS2/3 native objects and for the „DOM” tree nodes), while keeping its overhead characteristics, devirtualisation opportunities, having it interact with our GC and borrow checker and still have a convenient, safe Rust API on top. Our current solution works, but has deficiencies in most of these aspects.
- pcwalton 3y agoI suspect that it's two things: (1) the relatively good support for Wasm in Rust; (2) the Cargo ecosystem. In the case of Ruffle, the combination of the two seems particularly effective.
- subtra3t 3y ago
- Cloudef 3y agoprobably because of the sponsors
- tetris11 3y agoNewgrounds being one
- adrian17 3y agoJust to clarify: we already had a ton of work towards AS3 done before that, there was just nothing to show for it until we added some final missing pieces. It’s not like we did everything from scratch in 18 months.
- neverdied 3y agoI wish some of the long standing PRs Ruffle has would actually get in
- TazeTSchnitzel 3y ago> It does remind me that that there is still no way to play Wolfenstein RPG on iOS. This may change very soon :) https://github.com/hikari-no-yume/touchHLE/pull/139 https://github.com/hikari-no-yume/touchHLE/pull/139
- bexsella 3y agoI will be following this very closely.
- Conscat 3y agoThe popularity of two similarly named Rust projects, Ruff and Ruffle, seems mildly unfortunate.
- neverdied 3y agoI think people may have a tough time noticing the similarities between the projects whole different worlds of not confusing
- lucasyvas 3y agoI'm curious. Is authorship of new titles even a possibility once this ships, or is all tooling so beyond ressurection at this point that it would mostly serve as away to revive the back catalog? Obviously the back catalog is insanely massive, but from what I hear a lot of developers loved making Flash games - it would be interesting if anyone were dedicated enough to try to revive the scene. It's true that it's not really needed anymore and there are some promising web standards evolving every day. But that never stopped the crazy ones from making it work anyway. People are still finding ways to make new games for old Nintendo hardware.
- PBnFlash 3y agoNew grounds has a "flashforward" event every year or so.
- lucasyvas 3y agoVery cool. It would bring a smile to see this community grow large enough to make some noise. One of the best parts of a "dead" platform is that it doesn't change!
- echelon 3y agoFlash shouldn't have died. It was an incredibly accessible authorship tool that produced cross-platform single-file animations that were low-bandwidth and scaled. We still haven't made up for its loss. Javascript + canvas + web stack is a mess. If the Ruffle runtime could quickly start up, I'd start authoring new Flash.
- neverdied 3y agothe only thing that really died was adobe's support (if you can call it that) and the web plugin I was kind of shocked how big the community still is
- o11c 3y agoThere was the teensy problem of being an unending bag of security vulnerabilities. Java Applets were its only competitor, and Java had the disadvantage of being fundamentally designed without security in mind.
- neverdied 3y agoThe Ruffle dev team are a bunch of wizards. There have been other projects out there trying to do what they are and they took years and years to get there. I'm not sure how they got as far as they have in a fraction of the other's time, but they're doing something right. the adoption of it is very noticable. eat shit, Jobs.
- dividendpayee 3y agoThis is neat. I hadn't seen it before. I'm still convinced that the internet -- and young, first-time programmers -- lost a really valuable tool with Flash. It's a shame they could never get the security paradigm to work. Flash Applets had a lot of capability and a rare low barrier to entry.
- dikei 3y agoBack when being a student, I remembered following GNU Gnash effort to support for AS2 and AS3, they took years, but in the end, still could only make it work partially. Flash was still dominant in the browsers at the time, yet nobody managed to port to Gnash before it died. I wonder how Ruffle get it working so fast.
- neverdied 3y agothey were probably less anal than GNU over licences
- yjftsjthsd-h 3y agoWhy would the license matter to implementation speed?
- neverdied 3y agoit tends to be hard to reverse engineer something with an explicit agreement that if you use it, you will not reverse it or at least, that was the fear at the time so, imagine making a program like gnash, without installing flash as it turned out, adobe never could actually enforce such a thing, but that didn't stop gnash from absolutely turning into a ghost town memory is a bit hazy, but thats the gist I got back then they were so careful, they buried the project, well done
- yjftsjthsd-h 3y agoOh, you mean they were careful about licensing on the in side, not the output side. I wouldn't call it "anal" to want to avoid lawsuits. Edit: You can't edit in > as it turned out, adobe never could actually enforce such a thing, and not explain it - did the courts change their whole view of reverse engineering or something?
- haolez 3y agoI don't have knowledge specific to this case, but the license limits who you can accept code from.
- Nevin1901 3y agoIs there a website where I can play old flash games using ruffle?
- neverdied 3y agoNewgrounds, armorgames and bubblebox all use Ruffle for their flash games
- ackfoobar 3y agoYou can install their browser plugin. I think all Orisinal games run fine with it.
- faitswulff 3y agoWhere do you find the Orisinal games? Looks like the original Ferry Halim website has taken them down.
- nosamu 3y agoThey're still up! http://www.ferryhalim.com/orisinal/ http://www.ferryhalim.com/orisinal/ You'll need to install the Ruffle extension in your browser to view them.
- faitswulff 3y agoI didn't realize it was still on the page, I just saw the deprecation warning. Thank you!
- dhbradshaw 3y agohttps://www.coolmathgames.com/coolmath-games-and-flash https://www.coolmathgames.com/coolmath-games-and-flash
- paradox460 3y agoAlbinoblacksheep has it, but it's disabled by default for things that can be served as rendered video There's a switch in the footer
- bitwize 3y agoA.k.a. the project which is keeping Homestar Runner content alive in its original form.
- liquidpele 3y agoI hate Adobe with the passion of 100 suns for killing flash like they did… yea it had problems, most software does, but it was like 20 years ahead of its time ffs, and the web has been ridiculously bland since they killed it. My conspiracy theory is that apple and google paid them to kill it to force sites to support mobile.
- netcraft 3y agoAdobe capitulated, but apple killed it when it didnt support it on ios.
- neverdied 3y agoapple killed it after Jobs had a hissy fit
- liquidpele 3y agoAndroid did support it for a time though, it was a pretty good selling point in fact... but then google dropped it too :(
- kergonath 3y agoGoogle never dropped it. Adobe did, when they realised that they could make money from HTML5 instead: https://web.archive.org/web/20170114145431/https://blogs.adobe.com/conversations/2011/11/flash-focus.html https://web.archive.org/web/20170114145431/https://blogs.ado... .
- keepamovin 3y agoI'm working on bringing Flash to iOS via browser proxy^0. Basically, what we do is run the browser on the server and stream the viewport to your regular mobile browser (ie, Safari). Then we use Ruffle injected into the remote page. Basically it's a "monkey patch" to give you extensions-like capabilities but on mobile devices! 0: https://github.com/BrowserBox/BrowserBox/issues/424 https://github.com/BrowserBox/BrowserBox/issues/424
- dirtyhippiefree 3y agoVideo LAN Client (VLC) makes most codecs and emulators extra work, as even Flash plays using VLC.
- netcraft 3y agoI wrote AS3 and mxml for adobe flex for several years. AS3 was in many ways ecmascript 4, and was IMO pretty far ahead of its time. Lots of things we get excited for today feels like stuff we took for granted on the web in the flash player ecosystem years ago. Don't get me wrong, there were times where it was a nightmare, but back when cross browser javascript was a struggle if it was even possible, we were able to ship a lot of great stuff.
- keyle 3y agoI too did that for many years. I'd say that AS3 wasn't ahead of its time, I'd say that we were sent back in time when we had to abandon Flash thanks to Steve Jobs and the bend-over Adobe CEO at the time. AS3 was super cool, easy to learn and safe to scale amongst many developers. Flash had gotten pretty darn fast near the end... And it was all sent down the toilet.
- kergonath 3y ago> we had to abandon Flash thanks to Steve Jobs and the bend-over Adobe CEO at the time For the record, that is exactly how it did not happen.
- keyle 3y agoI'm not sure what your references are, so let's discuss. At the time I was a full time flash developer, doing flex and flash on AIR. One day, Steve Jobs made an announcement that Flash was crapware and had to die for standards (sic!) I shook my head in disbelief. The same week, the CEO of Adobe (some shmuck) went to CNN to address what Steve Jobs had said earlier this week. I fully expected a rebuttal, but instead, NOPE: he totally and literally threw his product under the bus, on the world stage. Flash was dead. Its replacement was said to be coming, and yet nothing good came out. Javascript at the time was pitiful. Typescript didn't exist yet, and MVVM in HTML wasn't a thing. We were back to web 1.0.
- jadbox 3y ago
- dugite-code 3y agoOh man you can load local files. Just mucked around with the first game I ever made in high school, man I miss doing that stuff.
- accrual 3y agoThat's awesome you still have the files! I made a point to go and collect some of my favorite old flash games and keep them in a folder along with Ruffle - makes it super easy to spin them up again, especially as the hosts slowly go away. Some examples: Age of War, Bloons, Bowman, Charlie the Unicorn, Frog Blender, Impossible Quiz, Interactive Buddy, Line Rider, Madness Interactive, N+, Pandemic 2, Dinorun, Ratmaze, Portal, Red., Snowcraft, Fancy Pants Adventure
- andrepd 3y agoThere is a preservation project called Flashpoint, they have over 170,000 titles at the moment!
- dugite-code 3y agoYeah I've always been a bit of a data hoarder. One file is broken due to data rott which is a shame but I have some of the old source files so I might be able to recover most of it. But everything else is on a ZFS pool now so should stick around. I need to dig into some old zip files and see if I still have some of the old downloaded copies of some of games I used to play around
- andrepd 3y agoSame. Wave of nostalgia hitting so hard that I can picture the computer room at my middle school.
- ehPReth 3y agogreat project! I've used it to bring back some nostalgia for myself :)
- danShumway 3y agoThere's no technical or organizational reason why it shouldn't have ended up this way, and I have absolutely no grounds to be mad about it, and Ruffle is a great project. Flash preservation is really valuable, and I love that Ruffle is still being actively developed and improved, and I wish the project all the best. But I am still irrationally bitter that Shumway ended up getting abandoned by Mozilla and that Ruffle took its place, for obvious reasons.
- mauricioc 3y agoShumway happened before Flash EOL, so it's likely that Adobe forced development to stop. Although Ruffle existed before January 2021, it flew under the radar back then. Even if Adobe had no hand in it, it's much easier (and less risky) to fund an implementation after the official one reaches EOL.
- amjoshuamichael 3y agoDiscussions about Flash emulation always delve to Flash games, but beyond that, I think one of the big benefits is several informational websites that still rely on flash that haven't been able to catch up. The New York Historical Society exhibit Slavery in New York has a page called [The Merchant's House](https://www.slaveryinnewyork.org/gallery_3_1.htm https://www.slaveryinnewyork.org/gallery_3_1.htm) where they go through items and explain how "Everything was touched by slavery." The online version of the exhibit has a lot of information bits that rely on flash, but that one was personally my favorite. One of the benefits of a project like Ruffle is that we can maintain these works–now that the exhibit is gone, it's the only way to view this written work, and reap the benefits of the extensive historical research done. The only thing I've seen it fail with is the [video galleries]https://www.slaveryinnewyork.org/gallery_2_responses.htm https://www.slaveryinnewyork.org/gallery_2_responses.htm) on the same exhibit site. They're supposed to be video clips that people took in dedicated booths after going through the exhibit. I've read about the exhibit extensively and it seems like these videos were a really good insight into the way the New York public viewed slavery at the time: "They have the awkwardness of amateur home videos: background noise, long silences, people looking away from the camera." (taken from The Anger and Shock of a City's Slave Past, New York Times) It's supposed to be a subset of some 400 videos, but I can't get Ruffle to work on these pages specifically. I've had a couple flashes of audio come out of the tab while trying to view one, so I know that something is going on, but I've never been able to watch any of the videos. Does anyone with more knowledge than me know what's going on here? I'd hate to see all that disappear.
- nosamu 3y agoI've passed this on to the Ruffle team, thanks! They are working on improving support for external videos, which was added only a few months ago.
- akx 3y agoFor what it's worth, the videos are still there (e.g. https://www.slaveryinnewyork.org/flash/Gallery7Responses2.flv https://www.slaveryinnewyork.org/flash/Gallery7Responses2.fl...; you can see these URLs getting requested in your browser's Network inspector) and can be readily played offline with e.g. VLC, ffplay, etc., and could be converted to a more modernly playable format just as well.
- ab9k 3y agodoit
- pjmlp 3y agoThe only thing that makes me happy about Web Assembly is that we got our plugins back. Sure the Web stagnated a decade catching up with 2011, but thanks to Unity, Flutter and Blazor, among others, we're getting there.
- wg0 3y agoAdobe Flash is dead? I mean Adobe isn't selling it as product? If so, why they didn't open source the Flash player part? I wish there were a law to ensure that if you're not selling a software anymore, you have to leave it in public domain.
- grishka 3y agoI asked the same question in one of the previous threads. Was told that most likely Flash player includes too much licensed third-party code that it would be too much work, if at all possible, to strip it out or relicense it for open-sourcing. At least all the relevant specifications are freely available from Adobe themselves. > I wish there were a law to ensure that if you're not selling a software anymore, you have to leave it in public domain. Shortening the copyright to something sensible like 5 years would've been nice too. Or better yet, require an exponentially increasing tax every year for copyright to be maintained.
- returnInfinity 3y agoCorrect, its the third parties.
- littlestymaar 3y ago> Shortening the copyright to something sensible like 5 years would've been nice too. Even juste going down to 20 years like it used to be before IP portfolio owners lobbied to extend it would be a massive improvement already.
- londons_explore 3y agoUsually companies don't so this because of legal risks - ie. Some of the libraries they used perhaps they didn't license in a way that allowed opensourcing. A law change could fix this. Ie. A new antique software preservation law could enable any software be opensourced, yet prevent any lawsuits relating to any actions taken under that law. The law could give extra incentives too, for example requiring that any software ever sold commercially either be archived in perpetuity, or opensourced. Legally archiving something forever is expensive, so many will opt to opensource it.
- trenchgun 3y agoThere is also OpenFL built on HaXe: https://www.openfl.org/ https://www.openfl.org/ Which is not an emulator, but more of a spiritual successor, following the same API, and with tools to convert Actionscript projects
- LoveMortuus 3y agoVery exciting, I recently installed Ruffle, as I do multiple times per year, to check if it already supports one of my favourite games, but sadly it's still not there. (The game in referring to is Crystal Saga) It's an MMORPG, which is probably why it still doesn't work. But I'm sure that in time, we'll get there! Exciting times!!
- Dwedit 3y agoOne issue I'm having is poor audio-video sync, like off by over 500ms.
- shultays 3y agoNo rust in title? I am shocked
- hackideiomat 3y ago> we can confidently avoid all the security pitfalls that Flash had a reputation for There wasn't only memory issues. Flash was also vulnerable to clickjacking for instance. Also, if you do not break the browsers resitrictions, flash is not feature complete (e.g., make cross origin requests and read responses). But if you do support it, you also have the security implications.
- nine_k 3y agoAt least this can be done responsibly. Ruffle might ask the user, and let the user deny such requests, allow them once, or allow for a particular combination of domains, and blindly everywhere like Flash would do.
- justinclift 3y agoOff topic, but is anyone working for Adobe here that has access to the Adobe Fastly account? If so, you should probably look into the Fastly config settings: Fastly error: unknown domain: blogs.adobe.com. Please check that this domain has been added to a service. That's a current live error when trying to go to old blogs.adobe.com articles. The above one is from this url: https://blogs.adobe.com/asset/2012/06/inside-flash-player-protected-mode-for-firefox.html https://blogs.adobe.com/asset/2012/06/inside-flash-player-pr...
- diggan 3y agoFor a live demo, it seems Internet Archive deployed Ruffle for their web archives, and seems to be working well: https://web.archive.org/web/20030208023358/http://www.miniclip.com/bubbletrouble.htm https://web.archive.org/web/20030208023358/http://www.minicl...
- shp0ngle 3y agoBtw there is this (commercial) tool that turns Flash to webassembly. What they actually do is they run whole Linux (!!) in VM in webassembly, then they run the officially licensed Adobe Flash player there (and you need a separate license for that from... Harman? as those now own Flash IP). https://labs.leaningtech.com/cheerpx/for-flash https://labs.leaningtech.com/cheerpx/for-flash (I'm not affiliated with them in any way. Just found it interesting one day.)
- nanaian 3y agoDeveloper here. CheerpX for Flash runs the Pepper API version of Flash, and you're correct about the license. However, we don't do full Linux emulation just to run Flash - we emulate PPAPI and run the Flash player in an x86 JIT (CheerpX). Yuri talks about CXFF's architecture here: https://youtu.be/7JUs4c99-mo?t=1045 https://youtu.be/7JUs4c99-mo?t=1045 ...but if you wanted full Linux system emulation, we got it! https://webvm.io https://webvm.io
- ChrisArchitect 3y agoWhat was the reason for submitting this OP? Just curious or something new here?
- appleaday1 3y agoBASED BASED BASED