Skip to content

Releases: DevZer0D4Y/SSF2-iOS

SSF2 iOS 1.1.8 — Sequential loading and binary sprite cache

Choose a tag to compare

@DevZer0D4Y DevZer0D4Y released this 15 Oct 04:48

Addresses startup memory pressure, loading stalls and audio interruptions following version 1.1.7.

  • Sprite storage now uses binary requests over the existing offline URL scheme. It no longer uses JavaScript prompts, which interrupted Web Audio during loading, or makes base64/JSON copies of every sprite.
  • Enables SSF2's existing sequential resource loader to reduce overlapping asset decoding. The checksum-verified original stays intact; a derived iOS movie changes exactly one boolean instruction. Both Xcode and packaged builds load the derived movie.
  • Native cache failures show recovery instead of silently building a large RAM cache.
  • Preserves the repeated-Resume fix and existing touch layouts, saves and controls.

Validation: Two successful macOS WebKit startup traces completed at approximately 624 MB of WebAssembly allocation, compared with approximately 784 MB in the old-build trace. This measures WebAssembly allocation, not total process memory. The title/menu responded, a Ness/Mario battle loaded, and an output-graph probe detected a nonzero audio signal. A UIKit Mac Catalyst test passed 1,000 byte-exact binary cache round trips, 500 transient lifecycle/audio notifications, background suspension and one-tap resume. JavaScript, native cache and deterministic one-instruction loader-patch checks passed, as did the unsigned Release IPA audit. Every bundled web/game/runtime file was compared with the verified source.

Physical iPhone startup reliability, headphone output and longer-session stability still need verification. This release does not establish that all underlying memory-related crashes are eliminated. Match memory remains substantial. Restart after WebKit termination still returns to the title and cannot restore a lost match.

Download SuperSmashFlash2-1.1.8-unsigned.ipa, sign it and install it with your sideloading tool. Keep the same signing identity and bundle identifier (com.devz.supersmashflash2) to preserve existing data.

SSF2 iOS 1.1.7 — Resume loop fix and lower startup memory

Choose a tag to compare

@DevZer0D4Y DevZer0D4Y released this 14 Oct 05:00

Fixes the repeated Game suspended / RESUME interruptions reported after the audio update, and reduces startup memory pressure.

  • Only app backgrounding shows the native port's Resume card. Audio interruptions, headphone route notifications and transient inactivity no longer suspend the game.
  • Removes the audio activation feedback path. Playback policy is configured before audio starts; taps and key presses continue to unlock Web Audio.
  • Background suspension is idempotent and still offers Resume when Ruffle has already paused itself. Backgrounding before the first start preserves LET'S PLAY.
  • New installations use lower-memory rendering by default. The low-memory GPU sprite cache now targets 64 MB instead of 96 MB.
  • Packaging clones Web resources directly into the IPA on APFS, avoiding another full asset copy in DerivedData.

Validation: JavaScript control, audio, rendering, texture-cache and recovery checks passed, including native visibility regression and a 64 MB disk-backed cache. A UIKit Mac Catalyst check of the shipped native controller passed 1,000 trusted cache prompts and 500 transient lifecycle/audio notifications without pausing, then background pause and one-tap resume. Native texture-storage checks and the unsigned Release IPA audit passed. All bundled web/game/runtime files were compared with the verified source.

Device validation: The repeated suspension paths have been removed and regression-tested. The reported startup WebKit termination and physical iPhone/headphone behavior still need checking on affected devices; this release does not establish that every memory-related crash is eliminated.

Download SuperSmashFlash2-1.1.7-unsigned.ipa, sign it with your sideloading tool and install it. Keep the same signing identity and bundle identifier (com.devz.supersmashflash2) to preserve existing data. Restart after a terminated WebKit process returns to the title; it cannot recover the lost match.

Super Smash Flash 2 for iOS 1.1.6

Choose a tag to compare

@DevZer0D4Y DevZer0D4Y released this 13 Oct 15:23

Super Smash Flash 2 for iOS 1.1.6 (build 9) fixes missing audio unlock and an unreliable restart control.

  • User taps and key presses explicitly resume the Web Audio contexts used by Ruffle. The custom Play button unlocks audio before starting the game loop.
  • Ruffle's unmute overlay is visible as a fallback.
  • The native playback audio session is activated and reactivated when appropriate. Headphone disconnection pauses the game; connection, app activation and interruptions are handled.
  • The native Restart game button has an explicit layout width and remains enabled while a replacement page loads. Brief duplicate taps are debounced without disabling the control.

A restart creates a new Flash runtime and returns to the title screen. It cannot restore a match from a terminated process. Completed save data and control settings remain in the persistent store. This release does not establish that the earlier memory-related crashes have been eliminated.

Validation: audio unlock, interruption and gesture-retry tests; touch, renderer and cache checks; source/IPA audits; unsigned iOS Release build. The shipped recovery-view component accepted two successive taps in a UIKit Mac Catalyst test app. A native WebKit probe reached a running audio context, but non-silent headphone output still needs verification on affected iPhones.

The IPA is unsigned. Sign it with your sideloading tool. Keep the same signing identity and bundle identifier to preserve existing app data.

Super Smash Flash 2 for iOS 1.1.5

Choose a tag to compare

@DevZer0D4Y DevZer0D4Y released this 13 Oct 12:34

Super Smash Flash 2 for iOS 1.1.5 (build 8) adds native recovery from a failed game page.

  • A native Restart game screen handles WebKit process termination, WebGL context loss and sprite-cache read failures. It remains available even when the web controls have disappeared or a failure occurs in the background.
  • Restart replaces the WebView, stops the old controller bridge and clears temporary sprite storage. The persistent save-data store remains in use.
  • Committed navigation failures are handled as well as provisional failures. Slow restarts allow another attempt after 30 seconds; this does not limit gameplay time.
  • Failed sessions require a deliberate restart rather than silently reloading into another failure.

There is no play-time limit. Free storage does not prevent RAM or graphics-memory pressure. This release improves recovery; it does not establish or eliminate every underlying crash. An interrupted match cannot be recovered.

Validation: graphics-loss and cache-read failure notification tests; texture-cache, pixel round-trip, touch and rendering checks; source and IPA audits; unsigned iOS Release build. Native recovery still needs verification on the affected iPhone.

The IPA is unsigned. Sign it with your sideloading tool. Use the same signing identity and bundle identifier to preserve existing app data.

Super Smash Flash 2 for iOS 1.1.4

Choose a tag to compare

@DevZer0D4Y DevZer0D4Y released this 13 Oct 05:35

Super Smash Flash 2 for iOS 1.1.4 (build 7) reduces memory pressure during startup and character/stage changes.

  • Compressed sprites move to temporary native disk storage instead of staying in the JavaScript heap. The WebKit integration test paged approximately 326 MB of compressed sprites to disk.
  • Inactive static sprite textures leave a bounded GPU working set and restore through stable logical handles. The target is 128 MB normally, 96 MB on low-memory startup and 64 MB after a memory warning; active draw inputs and modified render targets are preserved.
  • Sampler settings, texture-unit bindings and pixel-store state survive restoration.
  • Local asset responses use no-store to avoid retaining response bodies in the browser cache.
  • The native cache is session-only, reuses freed storage and disappears on app exit.

Keep at least 1 GB of device storage free for normal play; long sessions can require more. If temporary storage cannot be used, compressed sprites fall back to RAM.

Validation: 48-sprite cache stress tests with both RAM and native paging, exact pixel restoration, multiple WebGL contexts, native storage tests, touch/rendering checks, source and IPA audits, and an unsigned iOS Release build. A native macOS WebKit test started a Ness battle, switched to Link and another stage, and reached the next battle without a process termination or sprite-cache read error.

This addresses identified memory pressure, but all crashes on affected iPhones have not yet been verified as resolved. Ruffle can still retain other movie resources.

The IPA is unsigned. Sign it with your sideloading tool. Keep the same signing identity and bundle identifier to preserve existing app data.

Super Smash Flash 2 for iOS 1.1.3

Choose a tag to compare

@DevZer0D4Y DevZer0D4Y released this 12 Oct 19:07

Super Smash Flash 2 for iOS 1.1.3 (build 6) fixes touch layout editing and reduces memory pressure.

  • Pause and Start / OK use Space; old Enter pause bindings migrate automatically.
  • MENU replaces the Escape-based Back button and opens the app control panel.
  • D-pad dragging supports upward movement, pointer capture, resizing and reset.
  • Fullscreen landscape play is enabled by default, with overlay controls.
  • Deferred textures release their original pixel buffers; upload buffers are reused and rendering resolution is capped.
  • Memory warnings or WebKit process termination enable persistent lower-memory rendering, with a controlled retry after repeated failure.

The IPA is unsigned. Sign and install it with your preferred sideloading tool. Keep the same signing identity and bundle identifier to preserve existing app data.

Validation: JavaScript control, memory-retention and rendering tests; source and IPA privacy audits; unsigned iOS Release build. Simultaneous-KO crashes still need testing on physical iPhones; the memory fixes cannot guarantee every device avoids iOS memory limits.

Super Smash Flash 2 for iOS 1.1.2

Choose a tag to compare

@DevZer0D4Y DevZer0D4Y released this 12 Oct 17:13

First public release of the Super Smash Flash 2 iPhone and iPad port.

  • Offline Super Smash Flash 2 v1.3.1.2 Portable, with bundled Ruffle 0.6.0.
  • Matching multitouch control deck, adjustable size and opacity, and separate customizable portrait/landscape layouts.
  • Native gamepad support and remappable touch, keyboard, and controller actions.
  • Deferred compressed texture uploads to reduce GPU memory use.
  • Clean public source with checksum-pinned asset downloads and reproducible unsigned IPA packaging.
  • Release builds exclude the device test command channel, diagnostic files, source maps, signing files, and embedded local build paths.

Installation: Requires iOS/iPadOS 16 or later. Download the unsigned IPA, sign it with your preferred sideloading tool, and install. Preserve the bundle identifier and signing identity when updating to keep app data.

The game runs offline; online multiplayer is unsupported. Performance and Flash compatibility depend on the device and Ruffle.

Validation: Xcode Release build, touch/controller/layout tests, texture memory tests, source privacy audit, and final IPA integrity/privacy audit passed. The SHA-256 checksum is attached.

See the README for controls, installation, building, credits, and licenses.