Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lightspark for hosting on website #596

Open
veso266 opened this issue Dec 25, 2020 · 8 comments
Open

Lightspark for hosting on website #596

veso266 opened this issue Dec 25, 2020 · 8 comments

Comments

@veso266
Copy link

veso266 commented Dec 25, 2020

Hi there I was wondering if its possible to compile this into webAsembly so websites can embed this and not require users to install any plugin? Something like Ruffle: https://github.com/ruffle-rs/ruffle

is doing

Thanks for Anwsering and Best Regards

@stux2000
Copy link

It seems like Ruffle currently has mostly implemented old ActionScript (AVM0/1) while Lightspark has new ActionScript (AVM2) implemented. Conversely, they are each lacking in the other's strengths (see issue #595 I recently created). It would be amazing if the projects combined expertise to provide a single universal solution!
I know this is difficult because of the different underlying platforms (C/C++ vs Rust/WebAssembly) but the general logic is there. There should be ways of bridging the gap (for example: LLVM targets Web Assembly instead of native?) Anyway, I hope some kind of long-term coopration and/or merging is strongly considered. Thanks for the hard work! It's very much appreciated :)

@veso266
Copy link
Author

veso266 commented Dec 26, 2020

I am not the guy responsible for Ruffie, I am just a random guy that found this project yesterday (known ruffie before but when I tried it on some flash goodies:
http://www.extratoxic.com/_shared/Nintendo/06_NDO_013_MissionInSnowdriftland/
http://www.extratoxic.com/_shared/RTL/09_RTL_001_MS_WinterSports2010/
http://www.extratoxic.com/_shared/KochMedia/10_KOM_001_X_Factor/
http://rtvbn.dxing.si/RTVBanovina/Zahtjevna/moto.html

it didn't quite work

Now when firefox stop supporting flash I will try this replacment

BTW: How did you able to install this into newer firefox, I though Flash was the last NPAPI plugin that they support?

@dbluelle
Copy link
Collaborator

WebAssembly should generally be possible, if all the dependencies are available for it (I've not checked that).
Regarding merging with ruffle:
I have no experience in Rust, so I don't know how difficult any conversion from either side would be.
Lightspark in general is not very modular, so extracting anything and including it in ruffle may be a bigger task.
BTW AVM0/1 support in Lightspark has improved lately...

@veso266 :
Firefox looks for the NPAPI plugin in the it's plugin folder, so just copying the lighspark plugin there is enough.
In Chrome/Chromium the plugin needs to have a specific name and also a manifest file put into the plugin folder.
AFAIK the next versions of Firefox/Chrome will have flash support removed completely, so the plugins will probably not work anymore.

@veso266
Copy link
Author

veso266 commented Jan 1, 2021

@dbluelle wait what, I thought flash was the last NPAPI plugin that firefox supported and it disabled loading other plugins

how were you then able to load Lightspark into firefox? (which folder to copy to (am on windows)
can I load Adobe Shockwave plugin as well into firefox?

@dbluelle
Copy link
Collaborator

dbluelle commented Jan 2, 2021

@veso266
I don't know for sure but I assume firefox works like this:
It loads all the dlls in the plugin directory (/usr/lib/mozilla/plugins/ on linux, I don't know the windows location) and tries to call NPP_GetMIMEDescription method. Only if the returned mime type is "application/x-shockwave-flash", it is allowed to be loaded and used.

@stux2000
Copy link

stux2000 commented Jan 2, 2021

@veso266 AFAIK both the Pale Moon and Waterfox browsers will still support NPAPI plugins. I used the most current Pale Moon 28.17.0 for my testing. I don't know if the upcoming version 29 will continue to support NPAPI.

@dbluelle Thanks for your response as well! It turns out (from comments in the ruffle issues linked above) that Ruffle is Apache licensed making it impossible to copy code directly. I'm hoping that at least this project's code could be used as a reference of some kind, but the lack of modularity may make things difficult.

I was pleasantly surprised to see that AVM0/1 support improved greatly since the 0.8.3 release but it's nowhere near usable as per issue #595. The project still has a long way to go in that regard. Moving to using ruffle as a fallback (instead of gnash) crossed my mind but I don't know how easy and/or beneficial such a move would be.

@stux2000
Copy link

stux2000 commented Jan 5, 2021

@dbluelle : Hi, I wanted to let you know that I received feedback from ruffle regarding my inquiry for information exchange. Unfortunately GPL likely prevents them from even consulting the lightspark codebase as reference, however they did mention the desire to identify gotchas already encountered by the lightspark project such as the one reported in their issue 2258. Is there by any chance any kind of documentation listing such issues (or even a list of github issues) that could be made available so that ruffle developers could benefit from the expertise?

On a related vein, I'm curious about which means of communication are actively used by Lightspark developers? I joined the IRC channel on Freenode but there is no activity. Besides github issues are there other public forums of discussion used by this project's developers?

Thanks,
-stux

@dbluelle
Copy link
Collaborator

dbluelle commented Jan 5, 2021

I normally add a comment into the source code (mostly in the form of "it seems that adobe...") if I found one of the gotchas, so there is no listing of those things...

Regarding communication: I don't know of any active forum (besides github) regarding lightspark.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants