Open cyberix-3d opened 1 year ago
Hi, it looks like you included the needed SWZ files on your site, and Ruffle is correctly falling back to those, so there is no problem there. As for the AVM2 error you mentioned, it's most likely caused by a problem that happened earlier. For example, a variable that is supposed to have a value may not have been properly initialized by Ruffle.
There are also a lot of warnings like this:
WARN core/src/display_object/movie_clip.rs:862 Got AVM2 error ReferenceError: Error #1069: Property mx.core::ByteArrayAsset not found on global and there is no default value.
at global$init() [TU=frame2] when attempting to assign symbol class feathers.themes.AzureMobileTheme_ATLAS_FONT_XML`
I also see some mentions of classes like:
com.hurlant.eval.CompiledESC_util_tamarin_abc
com.hurlant.eval.CompiledESC_parse_abc
com.hurlant.eval.CompiledESC_ast_abc
I wonder if that means your app embeds its own mini ActionScript VM / parser. If so, that's scary advanced! Overall this looks like exactly the kind of super-complex application that will take longest for Ruffle to be able to support.
This issue is because mx.core::ByteArrayAsset
doesn't need to actually be looked up until the class that extends it is instantiated, by which time ByteArrayAsset
will be defined by loaded SWZ files (specifically framework_4.6.0.23201.swz
). This should be resolved in the ClassObject refactor.
This spits out a bunch of errors now, and many visual elements are missing, but it now manages to finish loading.
This has progressed, but now panics:
panicked at core/src/avm2/vtable.rs:170:58:
index out of bounds: the len is 2 but the index is 2
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
AVM2 stack trace:
at Function/nsEquals()
at Parse::Rib/openNamespace()
at Parse::Context/pushNamespace()
at Parse::Parser/program()
at Function/compile()
at com.hurlant.eval::CompiledESC/eval()
at Eval/compile()
at Eval/run()
at MethodInfo-1437()
at Cyberix3DEngine/RemoveLoadingFunc()
at MethodInfo-1529()
This is probably unrelated to the optimizer since it still happens with --no-avm2-optimizer
: the issue is more likely that we aren't doing the slot_id bounds check in Object::set_slot
.
Now it is not causing a panic, which is a good progress!
However, I’ve encountered another problem when submitting a request to the AMF PHP server. The server returns a “service not found” error, even though everything worked fine when using Flash.
Could you please look into this issue?
Thank you!
This is currently blocked on several things:
Stage.mouseLock
stub (https://github.com/ruffle-rs/ruffle/pull/16963)callproplex
on a class (https://github.com/ruffle-rs/ruffle/pull/16962)IExternalizable
handling (this is the cause of the incorrect request to the AMF PHP server).
Describe the bug
I'm experiencing an issue with the following link: https://www.gamemaker3d.com/editor/index_flash.html When I access it, I receive the following error message:
ERROR core/src/avm2/events.rs:419 Error dispatching event EventObject(EventObject { type: "complete", class: flash.events::Event, ptr: 0x3c405dc }) to handler FunctionObject(FunctionObject { ptr: 0x55236c }) : RustError("Cannot set prototype of class to null or undefined")
Additionally, there are multiple errors related to accessing SWZ files from Adobe. These errors are occurring due to CORS restrictions:
I kindly request your assistance in resolving these issues. Thank you in advance.
Expected behavior
I expected the link to load without any errors and for the event dispatching of the EventObject to be handled successfully without any issues.
Affected platform
Desktop app
Operating system
Windows 10
Browser
Google chrome 114
Additional information
No response