ruffle-rs / ruffle

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

World's End Chapter 1, 2, 3 won't load to the Main Menu #14028

Closed theExtramundane closed 8 months ago

theExtramundane commented 11 months ago

Describe the bug

pic-window-231115-1221-47

I am trying to play this game and it seems to default to a blank screen. I've tried this on both GameJolt and Kongregate and neither seem to work properly. I also tested it with the following two chapters with the same results. I'm not exactly sure what causes this, but it appears to happen consistently wherever I test it, and most notably, it's the same error that appears when I try to launch it in the standalone Adobe Flash Player Projector (v32) as well. Seems like some sort of connectivity error.

Expected behavior

Usually this would boot to the title screen and offer the option to play the game. It appears to work in BlueMaxima's Flashpoint as evidenced by this video made a bit over a year ago (it was confirmed it was Flashpoint in the comments), but since then the games have seem to have gone missing in Flashpoint's database, with only the "story mode" equivalents remaining (which lead to dead links), so unfortunately I can't test it with that.

Content Location

https://gamejolt.com/games/world-s-end-chapter-1/120686 https://www.kongregate.com/games/MezzanineStairs/worlds-end-chapter-1

I also have the SWF URL from the debug info here: https://download.gamejolt.net/a5ffa110211c0f9070f16b6ee7c3e45de4964bbe78b3b90b7b644a444343db02,1700159332,7/data/games/1/186/120686/files/58821a66ab818/worlds-end-chapter-1-gamejolt-1-20-2017.swf

Affected platform

Browser's extension

Operating system

Artix Linux

Browser

Chromium: 119.0.6045.105 (Official Build) (64-bit)

Additional information

Player Info

Allows script access: false Renderer: wgpu Adapter Backend: Gl Adapter Name: "ANGLE (AMD, AMD Radeon Graphics (renoir LLVM 16.0.6), OpenGL 4.6)" Adapter Device Type: Other Adapter Driver Name: "" Adapter Driver Info: "" Enabled features: Features(TEXTURE_COMPRESSION_BC | TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES | PUSH_CONSTANTS | SHADER_UNUSED_VERTEX_OUTPUT) Available features: Features(CLEAR_TEXTURE | MULTIVIEW) Current limits: Limits { max_texture_dimension_1d: 16384, max_texture_dimension_2d: 16384, max_texture_dimension_3d: 2048, max_texture_array_layers: 256, max_bind_groups: 4, max_bindings_per_bind_group: 1000, max_dynamic_uniform_buffers_per_pipeline_layout: 8, max_dynamic_storage_buffers_per_pipeline_layout: 0, max_sampled_textures_per_shader_stage: 16, max_samplers_per_shader_stage: 16, max_storage_buffers_per_shader_stage: 0, max_storage_textures_per_shader_stage: 0, max_uniform_buffers_per_shader_stage: 11, max_uniform_buffer_binding_size: 16384, max_storage_buffer_binding_size: 0, max_vertex_buffers: 8, max_buffer_size: 268435456, max_vertex_attributes: 16, max_vertex_buffer_array_stride: 255, min_uniform_buffer_offset_alignment: 32, min_storage_buffer_offset_alignment: 256, max_inter_stage_shader_components: 60, max_compute_workgroup_storage_size: 0, max_compute_invocations_per_workgroup: 0, max_compute_workgroup_size_x: 0, max_compute_workgroup_size_y: 0, max_compute_workgroup_size_z: 0, max_compute_workgroups_per_dimension: 0, max_push_constant_size: 96 } Surface quality: high Surface samples: 4 Surface size: Extent3d { width: 550, height: 400, depth_or_array_layers: 1 } Player type: Object SWF URL: https://download.gamejolt.net/a5ffa110211c0f9070f16b6ee7c3e45de4964bbe78b3b90b7b644a444343db02,1700159332,7/data/games/1/186/120686/files/58821a66ab818/worlds-end-chapter-1-gamejolt-1-20-2017.swf Param allowFullScreen: true Param allowFullScreenInteractive: true Param wmode: direct Attribute 0: undefined Attribute 1: undefined Attribute 2: undefined Attribute 3: undefined

Page Info

Page URL: https://gamejolt.net/?token=3PwLWQ2WMTRzQZojAF7XTaAFmNvWnL SWF URL: https://download.gamejolt.net/a5ffa110211c0f9070f16b6ee7c3e45de4964bbe78b3b90b7b644a444343db02,1700159332,7/data/games/1/186/120686/files/58821a66ab818/worlds-end-chapter-1-gamejolt-1-20-2017.swf

Browser Info

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Platform: Linux x86_64 Has touch support: false

Ruffle Info

Version: 0.1.0 Name: nightly 2023-11-14 Channel: nightly Built: 2023-11-14T00:21:56.078Z Commit: b196c8d1bcc2d691c61d8d78b17b5fd60e0234b8 Is extension: true

Metadata

width: 720 height: 480 frameRate: 28 numFrames: 11 swfVersion: 14 backgroundColor: undefined isActionScript3: true uncompressedLength: 13762202

Lord-McSweeney commented 11 months ago
      private function d() : Boolean
      {
         var _loc1_:String = null;
         var _loc2_:Array = null;
         _loc1_ = Security.pageDomain;
         _loc2_ = _loc1_.split("/");
         ...
      }

This needs Security.pageDomain.

most notably, it's the same error that appears when I try to launch it in the standalone Adobe Flash Player Projector (v32) as well

This makes sense because Security.pageDomain is set to null in the standalone player, since the SWF isn't embedded into any page.

theExtramundane commented 11 months ago

May I ask how exactly the Security.pageDomain function works? It seems like it needs the host or domain name of the webpage in order to "unlock" the game, but I could be misinterpreting that.

Croworbit commented 11 months ago

it doesn't seem to be a sitelock issue to me, no edit: but it was, in the end

Aaron1011 commented 11 months ago

This is a sitelock - it's checking for 'kongregate.com'

theExtramundane commented 11 months ago

Usually this would boot to the title screen and offer the option to play the game. It appears to work in BlueMaxima's Flashpoint as evidenced by this video made a bit over a year ago (it was confirmed it was Flashpoint in the comments), but since then the games have seem to have gone missing in Flashpoint's database, with only the "story mode" equivalents remaining (which lead to dead links), so unfortunately I can't test it with that.

Correction: It is available right here if you search without filtering NSFW. I also reached out to the devs and they confirmed it works with the newgrounds player. Flashpoint seems to use the Newgrounds version of the game as well. Just to wanted to amend that and perhaps help point everyone in the right direction.

evilpie commented 10 months ago

Still doesn't work. Some of the console output:

2023-12-14T20:52:42.433712Z  WARN run_frame:run_all_phases_avm2: ruffle_core::stub: Encountered stub: AVM2 flash.utils.Dictionary constructor with weak keys
2023-12-14T20:52:42.433828Z  WARN run_frame:run_all_phases_avm2: ruffle_desktop::backends::storage: Unable to read file "gamejolt.net//worlds-end-ch1": Os { code: 2, kind: NotFound, message: "No such file or directory" }
2023-12-14T20:52:42.434069Z  WARN run_frame:run_all_phases_avm2: ruffle_core::stub: Encountered stub: AVM2 flash.display.InteractiveObject.tabIndex setter
2023-12-14T20:52:42.781760Z  WARN run_frame:run_all_phases_avm2: ruffle_core::tag_utils: Unknown tag code: 255
[... repeat]
2023-12-14T20:52:49.355614Z  WARN ruffle_core::stub: Encountered stub: AVM2 avmplus.describeTypeJSON() with top-level metadata
2023-12-14T20:52:49.669411Z  WARN run_frame:run_all_phases_avm2: ruffle_core::tag_utils: Unknown tag code: 255
evilpie commented 8 months ago

Seems to be working now.