ruffle-rs / ruffle

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

State of Zombies 2 - Faced this bug in a few games! Stage must always have a root movie #9827

Closed desertking closed 1 year ago

desertking commented 1 year ago

Error Info

Error name: Error Error message: panicked at 'Stage must always have a root movie', core/src/display_object/stage.rs:627:9 Error stack:

Error: panicked at 'Stage must always have a root movie', core/src/display_object/stage.rs:627:9
    at W.n.wbg.__wbg_new_15d3966e9981a196 (https://www.spiele-umsonst.de/ruffle/core.ruffle.591b389f4b649e2dbf22.js:1:46442)
    at std::sync::once::Once::call_once::{{closure}}::hf612d11c59f969d6 (wasm://wasm/028bd5aa:wasm-function[2008]:0x4d33e0)
    at std::sys_common::once::generic::Once::call::h6b012ac601cc39bf (wasm://wasm/028bd5aa:wasm-function[1940]:0x4c1c3c)
    at core::ops::function::FnOnce::call_once{{vtable.shim}}::haab85c1ab4107c96 (wasm://wasm/028bd5aa:wasm-function[7373]:0x798522)
    at std::panicking::rust_panic_with_hook::hbafe3e603d331223 (wasm://wasm/028bd5aa:wasm-function[5224]:0x6f0f86)
    at core::panicking::panic_fmt::h1d17fc068f528130 (wasm://wasm/028bd5aa:wasm-function[7692]:0x7a752b)
    at core::option::expect_failed::hde6894209e142acf (wasm://wasm/028bd5aa:wasm-function[8900]:0x7d0fc1)
    at ruffle_core::display_object::stage::Stage::root_clip::h5e5ab7688201684e (wasm://wasm/028bd5aa:wasm-function[5216]:0x6eff18)
    at ruffle_web::Ruffle::tick::h46f99567ad695fa5 (wasm://wasm/028bd5aa:wasm-function[671]:0x2393f1)
    at ruffle_web::Ruffle::new_internal::{{closure}}::{{closure}}::{{closure}}::h8cd1b20ea76fa970 (wasm://wasm/028bd5aa:wasm-function[9365]:0x7e2bd4)

Player Info

Allows script access: false

Page Info

Page URL: https://www.spiele-umsonst.de/viewtopic,p,9845.html#9845 SWF URL: https://www.spiele-umsonst.de/azad/downloads/flashgames/stateofzombies2.swf

Browser Info

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Platform: Win32 Has touch support: false

Ruffle Info

Version: 0.1.0 Name: nightly 2023-03-02 Channel: nightly Built: 2023-03-02T00:19:36.326Z Commit: fcaa17308cfafe88ed2850a14be8e52293082633 Is extension: false

Metadata

width: 720 height: 480 frameRate: 60 numFrames: 2 swfVersion: 16 backgroundColor: undefined isActionScript3: true uncompressedLength: 3721416

n0samu commented 1 year ago

Panic fixed by #10026, but the game still isn't working because SharedObject doesn't like not having a root movie: ERROR run_frame:run_all_phases_avm2: ruffle_core::avm2::globals::flash::net::shared_object: SharedObject::get_local: Movie was None ERROR run_frame:run_all_phases_avm2: ruffle_core::avm2::activation: TypeError: Error #1009: Cannot access a property or method of a null object reference. (accessing field: data)

n0samu commented 1 year ago

I think this has somewhat regressed - the new error is: ERROR run_frame:run_all_phases_avm2: ruffle_core::avm2::events: Error dispatching event EventObject(EventObject { type: "enterFrame", class: flash.events::Event, ptr: 0x22b7cd4d570 }) to handler FunctionObject(FunctionObject { ptr: 0x22b6d8d08c0 }) : RustError("Failed to lookup class Multiname { ns: Single(Namespace(Namespace(\"\"))), name: Some(\"void\"), param: None, flags: MultinameFlags(0x0) } during coercion") Now this needs the void type (#11520).

n0samu commented 1 year ago

With #11520 this is back to the previous error

n0samu commented 1 year ago

Fixed by #12885