/dirplayer-rs

A web-compatible Shockwave Player emulator written in Rust

Primary LanguageRustGNU General Public License v3.0GPL-3.0

DirPlayer Logo

DirPlayer

DirPlayer is a Shockwave Player emulator written in Rust that aims to make playing old browser games possible on modern browsers.

Demo

Check out a live demo of this project at http://dirplayer-rs.s3-website-us-west-2.amazonaws.com/

Chrome Extension

Download the Chrome Extension at https://chromewebstore.google.com/detail/dirplayer-shockwave-emula/gpgalkgegfekkmaknocegonkakahkhbc

The extension implements a polyfill that replaces all <embed> elements that point to a Shockwave file in websites you visit.

Requirements

Building

Note

Before we can start, we need to load the missing modules for NodeJS with the npm install command.

🪟 Windows

Windows users can use our scripts which are located in the scripts folder and end with .bat.

🐧 Other platforms

Building Rust VM

npm run build-vm

Building extension

npm run build-extension

Make sure to build the VM first. The bundled extension will be located in ./dist-extension.

You can install the local build by going to chrome://extensions, enabling Developer Mode, then clicking the Load unpacked button.

Note that the extension is currently only available on Chrome.

Running locally

npm run start

Join our Discord!

If you have any questions or you're interested in being part of the discussions of this project, please join our Discord!

https://discord.gg/8yKDk9nJH2

Acknowledgements

This project would have not been possible without the extensive work of the Shockwave reverse engineering community.

A lot of code has been reproduced from the following projects:

https://github.com/Earthquake-Project/Format-Documentation/

https://github.com/Brian151/OpenShockwave/

https://gist.github.com/MrBrax/1f3ae06c9320863f1d7b79b988c03e60

https://www.scummvm.org/

https://github.com/csnover/earthquake-rust/

https://github.com/ProjectorRays/ProjectorRays