9 ms·
Newgrounds has done a lot of work on preserving old Flash content. Some standouts are their own Flash player and an SWF to MP4 converter, but what I find most i
by j-james 6y ago
Newgrounds has done a lot of work on preserving old Flash content. Some standouts are their own Flash player and an SWF to MP4 converter, but what I find most interesting is Ruffle.
Ruffle is a Flash emulator written in Rust that can be used as a browser extension, a desktop client, or a website polyfill. It's still a work in progress, but eventually websites with heavy use of Flash content (like many late-2000s webcomics, or even Newgrounds itself) could use the polyfill to replace Flash content with WASM blobs.
The roadmap was updated recently, and provides a good overview of Ruffle's current capabilities. There's also a demo instance that can run arbitary SWFs, with a few examples available.
https://www.newgrounds.com/flash/player https://www.newgrounds.com/flash/player
https://github.com/Herschel/Swivel https://github.com/Herschel/Swivel
https://github.com/ruffle-rs/ruffle https://github.com/ruffle-rs/ruffle
Roadmap: https://github.com/ruffle-rs/ruffle/wiki/Roadmap https://github.com/ruffle-rs/ruffle/wiki/Roadmap
Demo: http://ruffle-rs.s3-website-us-west-1.amazonaws.com/builds/web-demo/index.html?file=synj1.swf http://ruffle-rs.s3-website-us-west-1.amazonaws.com/builds/w...
- triangleman 6y agoThis guy is trying to emulate x86 in the browser and run the actual Flash player within that: https://medium.com/leaningtech/running-flash-in-webassembly-using-cheerpx-an-update-d500b6fbc44e https://medium.com/leaningtech/running-flash-in-webassembly-...
- apignotti 6y agoHere is 'this guy' :-). Feel free to drop any question on Twitter. https://twitter.com/alexpignotti https://twitter.com/alexpignotti
- nextaccountic 6y agoHello! Big props for doing that! Is any of this open source?
- apignotti 6y agoJust posted a new article about our tech, first demo of x86 python running in the browser is included (scroll to the bottom): https://news.ycombinator.com/item?id=23538856 https://news.ycombinator.com/item?id=23538856
- btown 6y agoHere's a talk by the team as well: https://www.youtube.com/watch?v=7JUs4c99-mo https://www.youtube.com/watch?v=7JUs4c99-mo And their website: https://www.leaningtech.com/pages/cheerpx.html https://www.leaningtech.com/pages/cheerpx.html This is honestly one of the coolest things I've seen, and given the amount of Flex/Spark software for enterprise out there, it could drastically change the legacy software landscape.
- txdv 6y agoIt really sounds awesome, but I can't just download it and play with it. I hope they release something usable that I can just download and play around with. I'm not a huge company which will create something really amazing and can pay royalties to them, I guess I am not interesting
- indigo945 6y agoFrom the post: > The Flash plugin itself includes a JIT compiler that > converts AS3 code to x86 code on the fly, which is then JIT > compiled by CheerpX into WebAssembly. And of course, the WebAssembly is then JIT compiled right back to x86, so it's actually three levels of JIT compilation. It's a wonder this runs with any acceptable performance at all. I'm looking forward to seeing this as a dependency of any future Electron app too; Moore's law must be brought to use.
- Someone 6y agoSome x86s further JIT compile x86 instructions to micro-operations. (That isn’t normally called JITting, but I think one can view it as such, especially when the CPU caches the translation, as in https://en.wikipedia.org/wiki/NetBurst_(microarchitecture)#Execution_Trace_Cache https://en.wikipedia.org/wiki/NetBurst_(microarchitecture)#E... or https://en.wikipedia.org/wiki/CPU_cache#UOP-CACHE https://en.wikipedia.org/wiki/CPU_cache#UOP-CACHE)
- lixtra 6y ago> actually three levels of JIT compilation. And that’s totally fine to support legacy code. After all, it continues to put some tiny pixels on a screen, emit some light and gets interpreted by some huge neural networks that took decades to train and finally releases a small shot of endorphins. Why not just start with the endorphins?
- adrianN 6y agoReplace Flash player with little USB-powered opium dispensers?
- indigo945 6y agoTo be clear, I think this is an amazing project and I very much appreciate this effort to preserve legacy software. When I say it is a wonder that this runs with acceptable performance, that's also to be taken as a compliment to the developers. :)
- afiori 6y ago
- machiaweliczny 6y agoToday I've seen win95 emulated on browser on x86 - is it the same library? I don't have link handy but if win95 runs fine then flash should as well.
- londons_explore 6y agoI don't really understand why this isn't the migration path for any legacy tech... Just containerize and emulate it. If there is a security problem, it's only inside your container. No big deal.
- simcop2387 6y agoIt's not always possible to get that to work, depending on the tech. In the case of Flash one of the most annoying and difficult parts is that it requires access to the rest of the world on the internet to function properly a lot of the time. It's because of that lack of security that it was so useful and made a lot of good things possible back then (and also a lot of bad things too).
- ryanlol 6y agoI have a hard time understanding why network access would be so annoying and difficult. It should be easy for an emulator to implement user-adjustable restrictions on that.
- Someone 6y agoUser-adjustable restrictions work for only a small fraction of the population. That fraction gets smaller the more fine-grained you make them.
- ryanlol 6y agoI don’t see the problem here, just have reasonable defaults. (e.g. port 80,443, perhaps deny private networks by default)
- duskwuff 6y agoFlash used some unusual methods of authorizing network access (like crossdomain.xml [1]) which are significantly different from standardized HTTP cross-domain policies, and which can authorize some forms of network activity which are never otherwise permitted to web content (like connecting to arbitrary ports and transmitting arbitrary data, or sending HTTP requests with forged headers). [1]: https://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html https://www.adobe.com/devnet/articles/crossdomain_policy_fil...
- bborud 6y agoI think this is a useful cautionary tale.
- birktj 6y agoRuffle is great! I just used it the other day to convert a flash website with a service manual for my outboard engine into a nice pdf. Each page was a swf file, so I only had to wget them all, convert them with ruffle, and at last convert the images into a complete pdf.
- deleted 6y ago[deleted]
- ihuman 6y agoThere's another flash preservation project called Flashpoint. It has it's own flash emulator, and a database of popular flash games/animations https://bluemaxima.org/flashpoint/ https://bluemaxima.org/flashpoint/
- jimmySixDOF 6y agoI hope this gets to whoever was in the room when Charlie Rose's show [1] switched thousands of hours of content over to Flash back when it probably seemed like a good idea - a window of perhaps a year or two as Real player faded out and video streaming over the top was finally a little stable if your link was over 2-300kbps. I was pissed when they switched to Flash but whatever you think of the tech, or Charlie for that matter, it would be a crying shame to loose so much content. He interviewed everyone who was anyone during some eventful times. That site is part of the rough first draft of history. [1] https://charlierose.com/ https://charlierose.com/
- chessmango 6y agoWell that just ruffles my Jimmies... D: I'm sorry.
- smerik 6y agoPoki is also doing something similar together with Nitrome. They use technology from the guys of Away (the ones that initially brought 3D to flash). The product is called AwayFL. https://www.pocketgamer.biz/interview/73491/interview-poki-preserving-flash-games-nitrome/ https://www.pocketgamer.biz/interview/73491/interview-poki-p...