Skip to content
Empo is pre-release. It is not on the App Store.
Empo
Esc
↑↓navigate↵open⌘Jpreview
On this page

What's new

The player-facing changes in each Empo release, derived from the changelog.

Each release ships an .ipa file on the Releases page. This page lists the features, the bug fixes, and the performance work in each one. The full CHANGELOG.md also lists the build and documentation work.

0.7.0

Released 2026-09-23. Download.

Features

  • Disable fast forward bindings for a game that has fast forward off
  • Show a what’s new sheet once after an update
  • Keep a copy of the last frame put on the screen
  • Add a process entry so a launcher can open the engine with dlopen

Bug Fixes

  • Name PSDK games next to RPG Maker games

0.6.10

Released 2026-09-16. Download.

Bug Fixes

  • Apply the UX writing audit to every user-visible string
  • Read sticks as eight sectors and rebuild controller input on the physical profile
  • Keep taps on a presented sheet out of the game view
  • Count only session logs against the per-game log limit

0.6.9

Released 2026-09-12. Download.

Features

  • Unpack games packed with Enigma Virtual Box
  • Add mkxp_injectPointerEvent for host driven mouse input

Bug Fixes

  • Compare unpacked bytes with fixtures instead of CryptoKit hashes
  • Read the async mouse buttons from the event thread state

0.6.8

Released 2026-09-08. Download.

Features

  • Add the App Store listing and the review notes

Bug Fixes

  • Declare the OpenSSL encryption in Info.plist
  • Link the settings to the site privacy policy and terms
  • Run RGSS2 games on Ruby 1.8 and skip the def stat in the endless-def sniff
  • Report substituted Windows fonts as present

0.6.7

Released 2026-09-07. Download.

Features

  • Rebuild only the engine halves when the dependency inputs match the pin
  • Add the landing page and trim the docs
  • Serve the site from empo.mateo.sh
  • Add the share card and the open graph tags to the landing page

Bug Fixes

  • Pick up the System.mouse_in_window stand-in
  • Run the pre-push guard from a linked worktree
  • Define System.mouse_in_window for Essentials v20

0.6.6

Released 2026-09-01. Download.

Bug Fixes

  • Stop defining legacy methods a run can never call

0.6.5

Released 2026-08-31. Download.

Features

  • Snap edit-mode drags and sizes to a grid

Bug Fixes

  • Apply touch mouse on resume, mark the keyboard restart-only
  • Keep the zoom transition through a play session
  • Bump to the Array#nitems fix for legacy scripts
  • Reinstate Array#nitems for legacy scripts

0.6.4

Released 2026-08-18. Download.

Bug Fixes

  • Run 1.8-era scripts shipped with a Ruby 3 DLL (Realidea)
  • Match Ruby 1.8 for method-level next and rescue-modifier op-assign

0.6.3

Released 2026-08-18. Download.

Bug Fixes

  • Rebuild the keyboard toolbar so every key registers
  • Pick up probe case folding for games without a path cache
  • Fold case in probes when a game turns off the path cache
  • Keep a game’s own Input.update in the chain
  • Check the packed tilemap stride before drawing

0.6.2

Released 2026-08-17. Download.

Features

  • Pick up the ws2_32 socket bridge
  • Back the ws2_32 imports with real sockets

Bug Fixes

  • Pick up the Essentials mouse release fix (#122)
  • Pick up the whole-file CRLF read fix
  • Fold CRLF in the whole-file read helpers
  • Report a real errno when ws2_32 has no socket layer
  • Cap a ws2_32 connect at five seconds
  • Restore Input.releaseex? for Pokemon Essentials mouse scenes

0.6.1

Released 2026-08-13. Download.

Bug Fixes

  • Recover renamed saves and guard the engine recovery
  • Guard the alias-era recovery by directory identity and cwd

0.6.0

Released 2026-08-11. Download.

Features

  • Add touch action buttons and one action registry
  • Add a joystick style for the movement control
  • Add layout profiles
  • Add screen placement in profiles
  • Bind controllers that reach iOS as a keyboard
  • Handle multi-touch on the on-screen controls
  • Report the true GPU texture limit
  • Add a shared host font pool and route font installs into it
  • Add a host viewport region API

Bug Fixes

  • Decode CP1252 INI titles and migrate mojibake folders
  • Pick up the recovery for stranded portable saves
  • Pick up unlimited tileset sizes
  • Stop the legacy method stubs from faking respond_to?
  • Hide the legacy method stubs from respond_to? when they cannot run
  • Page oversized tilesets instead of wrapping them
  • Recover stranded portable saves on Save Data access
  • Report missing registry keys instead of fake success
  • Keep the include wrap single after an RGSS reset
  • Skip the tilemap wrap patch when the game ships its own
  • Drop the second srcOps close on movie start failure
  • Close the load_data port when Marshal.load raises
  • Close the file ops after each GIF bitmap load
  • Let missing PB* constants raise like stock Ruby

0.5.0

Released 2026-08-04. Download.

Features

  • Name game containers after their INI title
  • Honor mkxp.json dataPathOrg/dataPathApp
  • Update installed games in place instead of deleting
  • Make in-place game updates transactional
  • Per-game update picker and no silent duplicate imports
  • Stepped import picker separates adding from updating
  • Enforce one container per title
  • Tell the user when duplicate games are moved
  • Shared-data resolution, save rescue primitives, and hardened naming
  • Store every game’s saves in a shared Data directory
  • Resolve d-pad input to cardinals near the center
  • Protect portable saves and drop identical duplicates in merges
  • Rescue portable saves into a Rescued Saves tree
  • Keep game cards visible while a delete runs
  • Restore rescued saves on import and rework the delete alerts
  • Pick up RAISETRACE dumps for silently-swallowed script errors
  • Scale the FPS graph to the game’s frame cap and drop the VSync toggle
  • Support basic and micro profile controllers
  • Report the frame rate the game asks for
  • Rebuild Zeus81 Bitmap Export on native pixel access
  • Record swallowed exceptions and dump them as RAISETRACE
  • Native EVP crypto with an OpenSSL facade for era Ruby VMs
  • Close the network parity gaps across all Ruby VMs
  • Back the wininet downloader API with HTTPLite

Bug Fixes

  • Name the swap backup so crash leftovers get swept
  • Update-confirmation copy acknowledges the rest of the batch
  • Harden update swap and close adversarial test findings
  • Close adversarial review findings on update safety
  • Harden delete and update flows around shared saves
  • Harden the container migration and quarantine naming
  • Deliver control presses on touch-down via UIKit capture
  • Disable the touch capture layer in place on edit entry
  • Show both engine fingerprints in the debug log header
  • Keep archive timestamps on extracted files
  • Pick up the postload mixin privacy fix for old Ruby games
  • Stop Thread.new from aborting the app in Ruby 1.8 games
  • Pick up the Pokemon Essentials sprite, menu, and input fixes
  • Let a pinned frame rate win over syncToRefreshrate
  • Hold Essentials input triggers until a button is read
  • Fall back to the native capture when snap_to_bitmap yields nothing
  • Settle the Ruby 1.8 stack direction before the VM caches it
  • Pin the Ruby 1.8 stack base so Thread.new cannot abort the process
  • Send include and prepend so mixin installs work before Ruby 2.1
  • Protect the script-error display and emulate Windows CRLF reads
  • Scope the disposed-safe getter wrappers to RGSS1 games
  • Retry TLS handshakes with a 1.2 profile when fingerprint filters drop them
  • Route Graphics compat delegates through native snapshots
  • Retry FileTest size probes with the on-disk case
  • Bind the Net::HTTP facade lazily
  • Make Win32 stub constants raisable
  • Make the game folder fully literal; recover stranded saves on access
  • Extend case resolution to new files, directories, and UserData
  • Resolve on-disk case for write-mode file operations
  • Load static socket and openssl before game scripts run
  • Resolve every probe, glob, and whole-file API like File.open
  • Make the portable save dir literal; migrate alias-era saves

Performance

  • Granular card invalidation and off-main artwork decodes
  • Pin RGSS thread to user-interactive QoS

0.4.2

Released 2026-07-23. Download.

Features

  • Parse config files with the engine’s json5pp parser

Bug Fixes

  • Restore https support via single-source buildconfig header

UI

  • Cleanup comments & docs

0.4.1

Released 2026-07-22. Download.

Bug Fixes

  • Grant release workflow pull-requests write for the sync PR
  • Format generated altstore-source.json before the sync commit
  • Newline-terminate the announce notes heredoc
  • Coerce truthy values in strict bool property setters

0.4.0

Released 2026-07-22. Download.

Features

  • Route dispatch workflows to the self-hosted Mac runner on request
  • Persist player controls as shareable EmpoState/controls.json manifest
  • Make game settings an accessor over EmpoState/mkxp.json
  • Sparse mkxp overlay with composed engine config
  • In-memory mkxp config overlay bridge
  • Translate Kirin kirin-touch-controls.json touch layouts
  • Translate JoiPlay gamepad.json layouts at load time
  • Touch screen mouse emulation with per-game toggle
  • Kirin dpad in left grid with orientation-invariant arrangement
  • Derive missing orientation from single-orientation layouts
  • Derive missing orientation from single-orientation layouts
  • Opt-in touch-synthesized mouse input via bridge flag
  • In-memory config overlay JSON API
  • Degrade app_bridge API to inline no-op stubs off mobile
  • Move iOS system and filesystem impls into the engine tree

Bug Fixes

  • Skip engine-core check during native hydration
  • Shim versioned automake names and disable matrix fail-fast
  • Scope submodule url rewrite per-command for self-hosted safety
  • Normalize autotools mtimes instead of shimming automake versions
  • Never run automake refresh rules in the sdl2_ttf build
  • Preserve hand-added overlay keys on settings writes
  • Normalize removed TRUE constant in old-ruby mkconfig for modern host rubies
  • API-signed PR flow for bot commits and pin CI-built native-2026-07-20-r3
  • Gate defScreen null patches on the base defining them
  • Pin system ruby as host ruby for ruby18/19 trees
  • Point-space translation geometry with no-overlap guarantee
  • Re-translate on game rect change, d-pad obstacle, portrait band
  • Return seconds from Graphics.delta for Essentials v21 games
  • Tag Ruby 1.9 script strings UTF-8 instead of ASCII-8BIT
  • Surface audio open/decode failures in the debug log
  • Casefold FileTest checks and File.open retry on case-sensitive FS
  • Publish mouse screenOffset in top-left window points

Performance

  • Build deps trees on parallel runners and hydrate ANGLE first

0.3.0

Released 2026-07-20. Download.

Features

  • Add controls manifest parser and key table
  • Wire dev touch layouts from controls.json
  • Host-side controller input layer with builtin keyboard map
  • Four-layer controller map resolution and user overrides
  • Controller remap UI with per-game and global scopes
  • Undo layout edits in controls edit mode
  • Accept root-level controls.json as second manifest location
  • Add game-controller capture toggle for host input layers

Bug Fixes

  • Reject JSON booleans in controls manifest numeric fields
  • Animate reset to resolved touch layout
  • Refcount held scancodes so shared-key elements release correctly
  • Remap picker group fixes and release held keys on listen-mode suppression
  • Invalidate pending stagger-add tasks when undo replaces the layout
  • Make JSON boolean detection portable to Linux
  • Detect JSON booleans via objCType for cross-platform correctness
  • Match engine JSON5 tolerance when projecting mkxp.json
  • Restore upstream patches key, move script patcher to scriptPatches

0.2.13

Released 2026-07-19. Download.

Features

  • Socket exts for all three Rubies + bundled pure-Ruby stdlib trees
  • Per-game network access toggle, CA bundle wiring, Ruby stdlib bundling
  • Upgrade OpenSSL 1.1.1w -> 3.5.7 LTS
  • Silent weekly CA bundle auto-refresh + airplane-mode toggle copy
  • Quick first-pass scan so the splash lifts on a settled library
  • Network-off now simulates airplane mode instead of missing libraries
  • Real TLS networking, streaming HTTPLite.download, Net::HTTP facade, host network toggle

Bug Fixes

  • Keyboard no longer resizes the embedded game view
  • Inset and center keyboard accessory rows within the horizontal safe area
  • Apply_overrides preserves input string encoding instead of returning ASCII-8BIT
  • OpenRead falls back to live single-dir enumeration on stale path-cache miss

0.2.12

Released 2026-07-17. Download.

Bug Fixes

  • Migrate misjoined UserData saves and pin slash fix
  • Keep trailing slash on System.data_directory for PE saves

0.2.11

Released 2026-07-16. Download.

Features

  • Per-game JoiPlay compatibility toggle in Game Settings, default off
  • Let the host toggle the JoiPlay-compat $joiplay signal per boot, default off

Bug Fixes

  • Rbconfig fallback, Audio.se_play_position shim, kwargs-safe Dir/File wrappers for the desktop script path

0.2.10

Released 2026-07-16. Download.

Features

  • Identify as “empo” to game scripts via launcher identity
  • Stamp engine binding fingerprint in debug log header
  • Import self-extracting .exe installers via vendored libmspack
  • Let the host declare a launcher identity for game scripts

Bug Fixes

  • Cover Dir.each_child in save-path remap
  • Survive game-requested exit instead of aborting on shutdown
  • Treat SystemExit as clean exit and surface the game’s parting print
  • Tear down ANGLE on host shutdown, not SDL_GL_DeleteContext
  • Remap Dir.each_child and children into the save dir

0.2.9

Released 2026-07-08. Download.

Bug Fixes

  • Allow continuing past RTP launch warning

0.2.8

Released 2026-07-08. Download.

Features

  • Expose SDL UIKit window for host embedding

Bug Fixes

  • Embed SDL view and restore play controls

0.2.7

Released 2026-07-08. Download.

Bug Fixes

  • Avoid SIGPIPE in audit-ipa GitInfo grep
  • Adopt UIScene lifecycle for iOS 27 SDK
  • Restore game rendering and Insurgence cheats after UIScene migration
  • Apply SDL iOS fixes via build-time patches
  • Info-alert UX for game msgbox and guard stale mkxp merges
  • Block RTP-dependent games and fix spaced Game.ini keys
  • Block RTP-dependent games and fix spaced Game.ini keys
  • Gate graphics compat prepend for Ruby 1.9
  • Harden save-path remap for Save-dir games
  • Surface PE print exceptions and guard TrainerType id_number on v21
  • Bind msgbox on RGSS1 and route game dialogs via info channel
  • Guard PE in_menu setter for older forks

Performance

  • Overhaul game import pipeline for speed and correctness

0.2.6

Released 2026-06-22. Download.

Bug Fixes

  • Point 0.2.2–0.2.4 downloads at reissued release tags
  • Fix totalPlayTime and lastPlayed values not being modified
  • Fix Bun types
  • Fix type errors
  • Repair has_platform under pipefail
  • Collapse relative paths in normalize on ios
  • Ignore desktop.ini in RPG Maker import preflight
  • Unblock engine error dialog and guard Foundation paths
  • Restore Ruby 1.8 prelude in native dep builds
  • Wire script-bootstrap eval receiver for multiruby builds
  • Wait for error dismiss before RGSS teardown on ios
  • Collapse relative paths to “.” in normalize
  • Order session config types after Ruby enums
  • Define MKXPVerticalAlignment before MKXPSessionConfig
  • Define MKXPVerticalAlignment before MKXPSessionConfig

0.2.5

Released 2026-06-09. Download.

Bug Fixes

  • Register GitInfo in xcodegen and update mkxp for Ruby 1.8 boot

0.2.4

Released 2026-06-09. Download.

Bug Fixes

  • Harden device deps pipeline and error alert handling
  • Patch Ruby 1.8 cross-compile fake template
  • Fix Ruby 1.8 cross-compile on modern macOS hosts
  • Point Ruby 3.1 openssl ext at device OpenSSL

0.2.3

Released 2026-06-08. Download.

Bug Fixes

  • Cache compatibility auto-detect and re-sniff on reset
  • Clean up failed imports and improve import UX
  • Improve update banner dismiss and interactions

0.2.2

Released 2026-06-08. Download.

Features

  • Check at launch and add manual refresh control

Bug Fixes

  • Update mkxp for exact-path bitmap resolution

0.2.1

Released 2026-06-06. Download.

Bug Fixes

  • Update mkxp for Flux battle start
  • Migrate user data and refresh ruby auto-detect
  • Route user data into per-game containers
  • Preserve Flux bitmap keywords

0.2.0

Released 2026-06-05. Download.

Features

  • Add pre-commit lint + format gated by file type
  • Move archive workflow into controller
  • Share update status banner across settings and library

Bug Fixes

  • Handle pokemon unicode assets and optional web probes
  • Preserve utf-8 script encodings for pokemon
  • Avoid Ruby 3 false-positives on legacy RGSS scripts
  • Update mkxp for case-insensitive asset existence checks
  • Make Ruby file access case-insensitive on iOS
  • Move casefold filesystem fallback into native bindings
  • Force archive choice paths to use monospaced text
  • Update mkxp for pokemon runtime compatibility
  • Update mkxp after default-branch integration
  • Repoint mkxp after branch split
  • Remove C++17 if-initializer from app bridge
  • Move casefold filesystem fallback into native bindings
  • Make exists() use case-insensitive path fallback
  • Preserve utf-8 scripts and gate legacy binary parsing
  • Handle pokemon unicode assets and optional web probes
  • Restore pokemon compatibility on legacy runtimes

UI

  • Fix swift-format + markdownlint violations to unblock ci
  • Fix yamllint warnings via inline rule disables + folded warning_cflags

0.1.0

Released 2026-05-07. Download.

Features

  • Initial ios port of mkxp-z with touch controls
  • Add README
  • Add game library, return-to-library, and portrait gameplay
  • Abstract sdl out of touch controls, persist gl context across sessions
  • Add hero zoom animation between library and game
  • Add game card, import validation, zip extraction, and cancellable imports
  • Add settings view with title position and debug mode toggles
  • Configurable log retention limit in settings
  • Ui polish with liquid glass, morphing import button, and theme system
  • Add game status enum to surface invalid imports in library
  • Add vwrap tileset fix for pokemon essentials games
  • Add experimental features system with game quit toggle
  • Add search bar, grid/list toggle, and list mode with morphing status indicator
  • Add per-game settings with speed multiplier and fix rotation viewport
  • Expand per-game settings and add viewport bounds debug tool
  • Add game info view with metadata, play time tracking, and inline editing
  • Add pause/resume with manual and background pause modes
  • Add haptic feedback settings and wire up game controls
  • Add pixel art dither pattern to splash screen
  • Add primary, secondary, and outline button style variants with size options
  • Staggered empty state animations, import button morph, splash always-white text
  • Crash recovery and warning fixes for simulator GL context failures
  • Redesign game controls with glass visuals, edit zone, and staggered transitions
  • Add button sheet with categorized keys, animate new controls on insert
  • Add setting to toggle continue playing card
  • Add library sorting by title, play time, size, and recency
  • Add play/resume/quit actions to game context menu
  • Integrate upstream ANGLE with retina fix and renderer enum
  • Add renderer setting with hot-swap and restart pill
  • Add 7z and rar import support via libarchive
  • Recover from rgss thread hangs by force-quitting the app
  • Add first-launch disclaimer over splash
  • Add quit-to-library escape on loading view
  • Hard-deadline force-quit from loading-view escape hatch
  • Add tips system and replace edit chips in game info
  • Add about section with licenses, privacy, and issue links
  • Portrait overlay layout fallback for tall game rects
  • Enable debug logs by default
  • Show ruby version in debug overlay
  • Show build info sheet when tapping version in settings
  • Opt in to ios game mode
  • Per-game controls layout
  • Extract game icon from .exe as primary artwork source
  • Replace image-source action sheet with content-sized bottom sheet
  • Add cheats toolbar button with joiplay-compat menu
  • Bump mkxp-z with joiplay nil safe-stubs + pokemon graphics compat
  • Register mkxp-z patcher.cpp in xcodegen project spec
  • Import joiplay jgp archives with manifest-seeded settings and ruby 3 detection
  • Expose ruby compatibility picker per game; auto-redetect on launch
  • Ios keyboard bridge for in-game text entry; route uitextfield typing to sdl_textinput
  • Bundled patcher distribution + EmpoState managed config dir
  • Route syntaxTransform via bridge, typed enum, with auto-detect picker label
  • Polish pass — sheet titles, unified artwork, overlay text shadow, multi-select
  • Per-game on-screen-keyboard toggle, language-code locale, hero card glass gradient, hero card sizing tweaks
  • Default In-game keyboard ON for Pokemon Essentials games
  • Replace hand-coded shapes with smallbits pixelated icons
  • Swap apple openal for openal-soft
  • JoiPlay parity sprint - 5 preload/postload patches
  • Exclude Documents/Games from iCloud backups
  • Default buttons to z/enter/b/escape (was a/b/shift/esc with redundant esc)
  • Per-orientation layouts (portrait + landscape stored independently)
  • More-menu sheet + fast forward toggle; trim toolbar; new edit/debug icons
  • Fast-forward via toggle+multiplier in game settings; menu sheet sized to content; rename to Menu
  • Restart-required hint; render-scale picker; persist via applyToconfig in save()
  • Translucent menu sheet; group pause+quit with game name; fast-forward resume sync
  • Per-hint icon override
  • Named-field restart hint; translucent pinned banner with slide-in transition
  • Detect bundled ruby 3 by binary content scan + fpk presence
  • Show rgss and ruby versions in game info runtime section
  • Multi-Ruby native dispatch (1.8 / 1.9 / 3.0 / 3.1)
  • Add maker credit at the bottom of the sheet
  • Add app icon
  • Swap controller glyph for empo mark
  • Add empo mark to header
  • Show empo mark above wordmark, drop title shadow
  • Add github and twitter links to about section
  • Show error message with github link after dismissal
  • Real ruby 1.9 fibers + drop ruby 3.0 + syntax-transform ui
  • In-app update checker for sideload + altstore source manifest

Bug Fixes

  • Improve ruby18 cross-compilation and guard bridge queries
  • Add input fix/patch for Pokemon Essentials games, patch Dir.chdir, handle post-load scripts
  • Multi-session game compatibility for persistent ruby vm on ios
  • Use float cast for backingScaleFactor to avoid integer truncation
  • Correct gitignore entry for generated git info file
  • Prune old debug log files on launch, keep last 20
  • Hero zoom animation in list view mode
  • IOS graphics init, resize guards, and error routing through bridge
  • Rotation crash caused by concurrent GL context access during renderbuffer resize
  • Grayscale animation in list view and show original title on game cards
  • Library header gap bug, code audit fixes, and swiftui-pro skill
  • Thread safety and code quality issues in C++ bridge layer
  • Synchronous present to prevent SIGSEGV during rapid device rotation
  • Neutralize tint bleed on alerts and make Delete the preferred action
  • Allow cancel/delete button on importing games in list view
  • Neutralize tint bleed on quit alert and make Quit the preferred action
  • Remove synthetic loading delay, scale exit animation by elapsed time
  • Replace deprecated APIs, remove dead code, deduplicate shared logic
  • Use window safe area for controls, smart reset animations
  • Darken edit zone background for better control visibility
  • Make reset button prominent in reset controls alert
  • Record play time before clearing selectedGame, add hero card to list view
  • Clamp debug overlay to safe area on drag and rotation
  • Stub win32 dll loaders and ruby 1.8 encoding gaps for rgss compat
  • Harden rmxp compat and hang recovery across games
  • Audit cleanup - crash fixes, hot path log skip, stub corrections
  • Audit batch 2 - movie uaf, structured task sleeps, quit-and-play race
  • Gate selectGame on engine teardown via continuation
  • Keep relative paths relative in ios normalizepath
  • Drop zip escape-prefix check that false-positived on device
  • Snapshot capture uses copy-based bridge api
  • 7z import progress no longer flashes full on first entry
  • Normalize ‘../’ segments for relative paths on ios
  • Mkxp.json parser crashes on crlf line endings
  • Check supported rgss version dynamically via engine bridge
  • Hero transition targets the tapped source, not always the continue card
  • Hero card placeholder ignoring color scheme
  • Pin player glass controls to dark color scheme
  • Gate empty state on validation, handle disk space, show progress and artwork mid-import
  • Pokemon uranium name-entry shows virtual keyboard on ios
  • Don’t map jgp enablePostloadScripts so reborn’s compat shims stay active
  • Retain pokemon windowskin across setSkin + memory overlay
  • Snapshot developer mkxp.json from game folder, not our generated output
  • Move multi-select entry to search row to clear ImportButton
  • Keep search/sort visible in selection mode, hide delete button until something is selected
  • Derive getRegion from system locale
  • Import races, ini encoding, progress contrast, mid-extract artwork stability
  • Route Kernel#print to debug log instead of message box
  • Support Hash-form @prioautotiles in modern PE forks
  • Unify banner-less placeholder across loading view and info sheet
  • Replace exit(0) with manual-close instructions per app store guideline 2.5.1
  • Clear swift 6 isolation and async-iterator warnings
  • Sync fast-forward toggle from engine bridge state on resume
  • Install git BEFORE actions/checkout in swift container
  • Point SwiftLint at swiftly’s sourcekitd on Linux
  • Resolve swiftly wrapper to real toolchain
  • Find sourcekitd by walking swiftly toolchains dir
  • Gitignore node_modules, remove from tracking
  • Build break in InterleavedRows multi-trailing-closure call
  • Disable SDL2_image samples to unblock iphoneos build
  • Embed entitlements blob so naive resigners (esign) keep document picker working
  • Pick documents via asCopy so naive resigners (esign, feather) work
  • Keep c++ rtti visible in merged.o so engine exceptions reach the binding catch
  • Add shared scheme so xcodegen output works in xcode out of the box
  • Adopt modern codesign flags for better resigner compatibility
  • Drop hardened runtime flag, dyld refuses to load it on ios
  • Pac-free setjmp/longjmp for ruby 1.9 fiber switching
  • Default to ruby 3.1 + syntax-transform for legacy-grammar games
  • Keep shipped-version sniff, remap 1.x to 3.1 at dispatch time

Performance

  • Add NSCache-backed image cache for game artwork
  • Replace FPS samples array with ring buffer, load metadata once
  • Cache gamesDirectory and ISO8601DateFormatter
  • Cache parsed game title during import to avoid redundant INI reads
  • Narrow GameCard observation to titlePosition only
  • Cache filteredGames and columns, fix gradient seam on rotation

UI

  • Show beta badge next to renderer label when angle selected
  • Add motion slow/gentle and radius.sheet tokens
  • Accessibility, motion tokens, list press style, empty state polish
  • Tip banner uses brand color and blur transition
  • Brighten brand orange
  • Tip banner uses smaller semibold text
  • Add shadow to splash wordmark matching loading view
  • Fix grid card placeholder ignoring color scheme; add gradient
  • Remove gamepad icon and match splash wordmark in settings header

Was this page helpful?