ruffle-rs / ruffle

A Flash Player emulator written in Rust
https://ruffle.rs
Other
15.66k stars 813 forks source link

Material for learning or reverse-engineering: Elmedia Player (7.0) is able to play flash games which Ruffle cannot (yet) #8292

Open Kaube opened 2 years ago

Kaube commented 2 years ago

This 'issue' is about the possibility to take inspiration from similar flash playing software.

Before Ruffle, I used the macOS app Elmedia Player 7.0 and Elmedia Player Pro 7.11 by Eltima Software to play Flash games. As of the nightly build 2022-10-14, Ruffle plays almost all games I am throwing at it and I am confident that Ruffle will very soon become the only app I use. The playability varies greatly however for multi-file flash games and "troublesome" single-file flash games that gets stuck e.g. on the loading screen, when played locally.

Elmedia Player is better at handling such flash games, for example by finding and connecting related files correctly and allowing for "scrolling" through the file(s) to find the "start" screen and play seamlessly from there. So, I just want to make the contributing community aware of that in case there is something to reverse-engineer or learn from the app. Note that later versions of Elmedia Player have dropped support for flash games.

That said, Thanks to everyone contributing to this amazing app and plugin! It means a lot to me.

Examples of multi-file games that play in Elmedia Player but not in Ruffle:

Examples of "troublesome" single-file games that play in Elmedia Player but not in Ruffle:

mero09-99 commented 2 years ago

The Support the Ruffle has for the various Actionscript versions in on the main page of Ruffle's website. Progress is always ongoing. As support increases, you favorite games will begin to work again.

thank you for your idea

Kaube commented 2 years ago

I'm very grateful, so I'm patiently waiting as long as needed. The mentioned examples all are Actionscript 1 or 2, based on that there was no prompt informing about Actionscript 3 (which I have seen for another game).

n0samu commented 2 years ago

Elmedia Player uses the official Adobe Flash Player plugin to play Flash content, which is why its compatibility is better than that of Ruffle. That said, I think it would be possible for Ruffle to implement a similar frame-stepping feature, so that's definitely something good for us to consider.

Viral Pursuit is not working due to a sitelock. I'm guessing that Elmedia Player's framestep feature is allowing you to skip the sitelock - that's pretty interesting. If you want to play the game in Ruffle, simply install the Ruffle extension in your browser and visit the official site: http://www.globz.net/vip/

I can confirm the problem with DR3i, but I cannot figure out what the cause is. Can you file a separate bug report for that one? (And include a link or attachment to the game in your report.)

I cannot find the other two games you mentioned. Can you upload zip files of each of those games for us to look at?

Kaube commented 2 years ago

@n0samu: Thanks for giving me some background! I filed a bug report for DR3i as requested along with an attachment to the game, and here are the other two games: Bouterdart.zip, Reflex.zip

Glad to know that frame-stepping may be the key to play games which are otherwise not working due to sitelock!

n0samu commented 2 years ago

Bouterdart does not work at all. I would be very surprised if it works with Elmedia Player using the provided files.

Reflex seems to have a sitelock, you can play it here with the Ruffle extension: http://oos.moxiecode.com/examples/reflex/

Kaube commented 2 years ago

@n0samu: Then allow me to surprise you. While the video does not have sound, the background music and sound effects are also working:

https://user-images.githubusercontent.com/23202586/195991025-77ac50fb-d1d1-4311-b142-bc5a159cfd64.mp4

n0samu commented 2 years ago

Ah, another frame skipping trick? Interesting!

ActionWavele commented 1 year ago

Elmedia's features would be nice to have added maybe add that to the issue title?