This is a fix release with 22 fixes; details below.

What changed

  • All fixes in this release are in the app itself: just update the app, no need to re-export games. If you self-sign, re-sign and install the new S2Arm.ipa; your game .img files don't need to be re-imported.
  • This time, please update by installing over the old version: on Mac, download the dmg from the release page and drag S2Arm into Applications to replace it; on Windows, run the installer (setup.exe) into the same location. In-app updates run the updater bundled in the version you're upgrading from, and on Mac the one in 0.3.9 and earlier gets blocked by macOS "App Management" protection (the old version quits but the new one isn't installed or reopened). Starting with v0.3.10, in-app updates use the standard Sparkle on Mac and NetSparkle on Windows, with every downloaded update signature-checked, so updating from v0.3.10 to the next version works right inside the app. (#965 #931)
  • Correction: the v0.3.7 notes said "once you are on this version, future in-app updates work normally" — that was wrong, sorry.
  • Fixed games all showing as "not exported" after upgrading, for users who changed their game library location back in 0.2.x: from this version on, an old library that still has games is no longer dropped from the list. (#946)
  • Fixed some games crashing mid-play on iPad (texture read out of bounds). (#819)
  • Game libraries on exFAT drives: saves no longer fail because of the "._" companion files the system creates. (#914)
  • Implemented a display service command some games need, which previously kept them from starting.
  • Fixed some games (built with newer SDKs) hanging or crashing while loading modules at startup.
  • Fixed some large games freezing during NPC dialogue or close-ups: when the shader compile service stalls, the game waits briefly, skips that frame and keeps going. (#884)
  • Exporting for a phone newer than the Xcode on your computer is no longer blocked: if its graphics chip isn't recognized, a universal package is built as usual.
  • Removed another batch of up-front checks that blocked things that could actually proceed during export, install and transfer: a resource pack list missing its checksum field is computed from the actual files; in a multi-game container, games without a local resource pack are skipped instead of blocking the whole install; if the target device's chip / OS can't be read, a universal package is built as usual; transfers are retried while the phone is locked; a large-file transfer that drops once is retried automatically.
  • Diagnostic runs capture more: integer-format render targets are now saved with their actual values (previously always black), and 3D textures are laid out layer by layer, helping us track down black-screen issues faster.
  • Fixed some Switch 2 games crashing shortly after starting (video decoder initialization from newer SDKs wasn't handled). (#955)
  • Fixed resource-pack transfers failing with "write denied" when old files on the phone had become read-only: the old file is now deleted and rewritten; if it really can't be deleted, the phone's own reason and next step are shown. (#074d88)
  • Fixed, at the root, some files becoming read-only after a game was moved to another location on the phone (which later blocked transfers or saves): moved files now get their write permission back. (#074d88)
  • On Windows, when signing can't reach the signing server, it's now reported as such and retried automatically, instead of a generic failure.
  • Fixed some games staying on a black screen without drawing a single frame (async requests to the in-game shop / network services never got their "done" signal).
  • Fixed some large games being killed by the system the first time they enter actual gameplay (out of memory): the right memory mode is now picked for your device on the very first run instead of after one crash; if memory really is too small, the game still starts and shows a one-time notice. (#964)
  • New "Report a problem": at the bottom of the gear menu on every iPhone / iPad screen and in the diagnostics upload on the computer. Add a sentence about what happened, upload the logs, and you'll get a short code to include when you post.
  • Fixed text input boxes in some Switch 2 games (naming, entering text) reading their settings wrong and not accepting input.
  • Fixed game covers in the iPhone library showing as small square images: a single network drop or timeout used to stop fetching the wide cover for 7 days; now it only stops once the store gives a definite answer, and the cover is filled in on your next export or install.
  • Fixed some games crashing at the first-time setup screen (a few spots in the game code leave the stack misaligned, which Switch ignores but Apple devices check).

Before updating

Back up saves and review migration notes for your installed version. Release notes describe upstream changes, not independent compatibility testing by this site.

Read the full upstream release