ruffle-rs / ruffle

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

Axon: Stuck on loading screen #10126

Closed n0samu closed 1 year ago

n0samu commented 1 year ago

Describe the bug

Link to SWF: http://i.notdoppler.com/files/axon.swf

Axon is stuck on the loading screen: image

The error is: ERROR run_frame:run_all_phases_avm2: ruffle_core::display_object::movie_clip: Got RustError("Property does not exist: Multiname { ns: Single(Namespace(Namespace(\"flash.display\"))), name: Some(\"GraphicsSolidFill\"), params: [], flags: (empty) }") when constructing AVM2 side of movie clip of type Preloader

Expected behavior

The game should load.

Affected platform

Desktop app

Operating system

Windows 10

Browser

No response

Additional information

GraphicsSolidFill is also needed by #9955.

n0samu commented 1 year ago

Now the game reaches the menu, but when trying to begin gameplay, this error appears:

ERROR run_frame:run_all_phases_avm2: ruffle_core::avm2::events: Error dispatching event EventObject(EventObject { type: "HIDE_COMPLETE", class: com.preloaded.mvc.view.events::ViewEvent, ptr: 0x2c59fd3f7d8 }) to handler FunctionObject(FunctionObject { ptr: 0x2c5f9c35008 }) : TypeError: Error #1009: Cannot access a property or method of a null object reference. (accessing field: minSpawnRange)
        at axon.game.engine::AxonGameEngine/start()
        at axon.view.views::GameView/init()
        at axon.view.mediators::GameMediator/showView()
        at com.preloaded.mvc.view::AbstractLocationMediator/onLocationEnter()
        at com.preloaded.mvc.view::AbstractLocationMediator/handleNotification()
        at Function/apply()
        at org.puremvc.as3.multicore.patterns.observer::Observer/notifyObserver()
        at org.puremvc.as3.multicore.core::View/notifyObservers()
        at org.puremvc.as3.multicore.patterns.facade::Facade/notifyObservers()
        at org.puremvc.as3.multicore.patterns.facade::Facade/sendNotification()
        at org.puremvc.as3.multicore.patterns.observer::Notifier/sendNotification()
        at com.preloaded.mvc.model::LocationProxy/startEnteringStage()
        at com.preloaded.mvc.model::LocationProxy/onLocationExited()
        at com.preloaded.mvc.controller::LocationCommand/execute()
        at org.puremvc.as3.multicore.core::Controller/executeCommand()
        at Function/apply()
        at org.puremvc.as3.multicore.patterns.observer::Observer/notifyObserver()
        at org.puremvc.as3.multicore.core::View/notifyObservers()
        at org.puremvc.as3.multicore.patterns.facade::Facade/notifyObservers()
        at org.puremvc.as3.multicore.patterns.facade::Facade/sendNotification()
        at org.puremvc.as3.multicore.patterns.observer::Notifier/sendNotification()
        at com.preloaded.mvc.view::AbstractLocationMediator/hideViewComplete()
        at flash.events::EventDispatcher/flash::events::EventDispatcher::dispatchEvent()
        at com.preloaded.mvc.view::AbstractView/onHideComplete()
        at Function/apply()
        at com.greensock.core::TweenCore/complete()
        at com.greensock::TweenMax/complete()
        at com.greensock::TweenMax/renderTime()
        at com.greensock.core::SimpleTimeline/renderTime()
        at com.greensock::TweenLite$/updateAll()
n0samu commented 1 year ago

This error is probably also related:

ERROR run_frame:run_all_phases_avm2: ruffle_core::avm2::events: Error dispatching event EventObject(EventObject { type: "addedToStage", class: flash.events::Event, ptr: 0x2120d84fa78 }) to handler FunctionObject(FunctionObject { ptr: 0x2120d5672f8 }) : ArgumentError: Error #2012: Video$ class cannot be instantiated.
        at axon.view.views::ScienceView()
        at com.preloaded.mvc.controller::StartupApplicationCommand/registerLocationMediator()
        at axon.controller::StartupApplicationCommand/setupMediators()
        at com.preloaded.mvc.controller::StartupApplicationCommand/execute()
        at axon.controller::StartupApplicationCommand/execute()
        at org.puremvc.as3.multicore.core::Controller/executeCommand()
        at Function/apply()
        at org.puremvc.as3.multicore.patterns.observer::Observer/notifyObserver()
        at org.puremvc.as3.multicore.core::View/notifyObservers()
        at org.puremvc.as3.multicore.patterns.facade::Facade/notifyObservers()
        at org.puremvc.as3.multicore.patterns.facade::Facade/sendNotification()
        at com.preloaded.mvc::PreMVC$/startup()
        at Axon/addedToStageHandler()
        at flash.display::DisplayObjectContainer/flash::display::DisplayObjectContainer::addChildAt()
        at Preloader/completeStartup()
        at Preloader/startup()
        at Preloader/frameHandler()
Aaron1011 commented 1 year ago

This is currently playable. However, the 'How to Play' and 'The Science' videos on the main menu require MP4 video support.

Trails are missing when you click on neurons - I suspect this requires flash.display.Graphics.drawGraphicsData

n0samu commented 1 year ago

Game is working well enough for me, I'll close the issue 😉