Features desired/required by the Ruffle Flash Player emulator:
await
spins forever on certain promises (needs re-looking into, I think it's mostly to do with the fetches) (required)contextmenu
event (for opening a custom context menu, desired)ignoreBOM
and fatal
options set to true
(whilst TextDecoder is required for pulling strings from Wasm memory, it seems these options are currently only desired)undefined
input (required, as it creates a TextDecoder and immediately calls decode
on it with no parameters outside of an unwind context)pointerdown
, pointermove
and pointerup
events (uses these in place of the mouse events, required)url(#element_id)
(desired)CRC2D.fill
(desired)src
attribute parsed relative to it's node document URL, then return that parsed relative URL as an absolute URL (required/desired, depends if the library files are in the same directory as ruffle.js. It gets this from document.currentScript.src). This is actually true of all attributes that are reflected as a URL, so this needs a more general audit.module.arrayBuffer().then(bytes => {
// NOTE: module is a fetch() Response object
WebAssembly.instantiate(bytes, imports).then(result => resolve(result)).catch(error => reject(error));
});
Unable to determine category for type named 'BufferSource', assuming it's an interface type.
Unable to determine category for type named 'Module', assuming it's an interface type.
Failed to determine IDL overload. (Probably because of unimplemented steps.)
Unhandled JavaScript exception (in promise): [TypeError] Overload resolution failed
<unknown> at http://127.0.0.1:8081/core.ruffle.bbfb71e16568daaf348d.js:540:44
<unknown> at http://127.0.0.1:8081/core.ruffle.bbfb71e16568daaf348d.js:540:52
<unknown> at :0:0
<unknown> at :0:0
This list is not exhaustive, I only tested Ruffle with Robot Unicorn Attack and Flight of the Hamsters.
There are many more issues with how we render flash files with Ruffle, but they have not been looked into to find what the specific issues are, for example:
To see how the game is supposed to look, here's a game website that uses Ruffle: https://www.crazygames.com/game/robot-unicorn-attack
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too