ruffle-rs / ruffle

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

Crash on neave_tv.swf #11007

Closed TemaisgameNoobas closed 1 year ago

TemaisgameNoobas commented 1 year ago

Describe what you were doing

Just launched the swf and Ruffle crashed. The SWF could be found at Wayback Machine (by going to neave.tv in 2006) crashedswf.zip

What does the crash message say?

panicked at 'index out of bounds: the len is 43200 but the index is 43200', core/src/bitmap/bitmap_data.rs:599:9

Ruffle Version

0.1.0-nightly (e488cc9 2023-05-10)

Affected platform

Desktop app

Operating system

Ubuntu 22.04 (jammy) [64-bit]

Additional information

Filename: neave_tv.swf

Render Info

Renderer: wgpu Adapter Backend: Vulkan Adapter Name: "NVIDIA GeForce GTX 1660 SUPER" Adapter Device Type: DiscreteGpu Adapter Driver Name: "NVIDIA" Adapter Driver Info: "515.105.01" Enabled features: Features(TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES | PUSH_CONSTANTS) Available features: Features(DEPTH_CLIP_CONTROL | TIMESTAMP_QUERY | INDIRECT_FIRST_INSTANCE | SHADER_F16 | RG11B10UFLOAT_RENDERABLE | DEPTH32FLOAT_STENCIL8 | TEXTURE_COMPRESSION_BC | TEXTURE_FORMAT_16BIT_NORM | PIPELINE_STATISTICS_QUERY | TIMESTAMP_QUERY_INSIDE_PASSES | MAPPABLE_PRIMARY_BUFFERS | TEXTURE_BINDING_ARRAY | BUFFER_BINDING_ARRAY | STORAGE_RESOURCE_BINDING_ARRAY | SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING | UNIFORM_BUFFER_AND_STORAGE_TEXTURE_ARRAY_NON_UNIFORM_INDEXING | PARTIALLY_BOUND_BINDING_ARRAY | MULTI_DRAW_INDIRECT | MULTI_DRAW_INDIRECT_COUNT | ADDRESS_MODE_CLAMP_TO_ZERO | ADDRESS_MODE_CLAMP_TO_BORDER | POLYGON_MODE_LINE | POLYGON_MODE_POINT | CONSERVATIVE_RASTERIZATION | VERTEX_WRITABLE_STORAGE | CLEAR_TEXTURE | SPIRV_SHADER_PASSTHROUGH | MULTIVIEW | SHADER_F64 | SHADER_I16 | SHADER_PRIMITIVE_INDEX) Current limits: Limits { max_texture_dimension_1d: 32768, max_texture_dimension_2d: 32768, max_texture_dimension_3d: 16384, max_texture_array_layers: 256, max_bind_groups: 4, max_bindings_per_bind_group: 640, 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: 64, min_storage_buffer_offset_alignment: 32, 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: low Surface samples: 1 Surface size: Extent3d { width: 800, height: 600, depth_or_array_layers: 1 }

TemaisgameNoobas commented 1 year ago

Note: previous versions of Ruffle ran the SWF fine. Everything worked expect video playback and filters (blur, etc.)

iwannabethedev commented 1 year ago

I believe https://github.com/ruffle-rs/ruffle/pull/11006 fixes this. When I run the SWF locally with the fix, it does not crash, instead the SWF shows a menu and a old-school TV simulation in the background.

TemaisgameNoobas commented 1 year ago

@iwannabethedev Thanks. It is normal when it displays TV simulation. I didn't attached all of the files, but I really hope Ruffle developers will implement external FLV playback. It displays the TV simulation only when it loads a video or cannot load anything. If external FLV playback will be done, I can finally watch old Neave.TV using Ruffle. If needed, I can attach all of the files to get the SWF to work with videos (Ruffle will play videos if Ruffle devs will add FLV playback).

iwannabethedev commented 1 year ago

I think other issues have reported FLV files not being supported yet: https://github.com/ruffle-rs/ruffle/issues/3801 . I think it would be best to attach the files to a new issue (if you want to make one) or an existing issue (with a link to this Neave .swf as well), such that we can close this issue once the PR is merged and we have confirmed that this issue is fixed (though that other issue could reference this issue if you like).

iwannabethedev commented 1 year ago

There is a draft PR for FLV: https://github.com/ruffle-rs/ruffle/pull/10756 .

TemaisgameNoobas commented 1 year ago

@iwannabethedev I really hope FLV support will be added. I decided to create a new issue.