Skip to content

v1.0.0: The iPhone and iPad app / iPhone 和 iPad 版发布

Latest

Choose a tag to compare

@github-actions github-actions released this 01 Nov 17:02
· 67 commits to main since this release
5259f70

v1.0.0: the iPhone and iPad app arrives, and the engine ships with the release.

English

The iPhone and iPad app

  • The iPhone / iPad target builds one shell app that holds all your games, with an art-led library, Cover Flow on its side, and a grid on the iPad (#226)
  • Re-signs and reinstalls keep your game data and saves
  • Per-game settings, plus shell-level settings made once that each game can still override
  • The whole app works with a controller or a keyboard
  • The interface follows the system language, English or Simplified Chinese (#419)

New

  • The engine comes from the release: the release app keeps its engine in its own store and builds from it. It no longer clones or pulls the repository. Settings shows the engine with a Check button, the Stable and Experimental channels and an automatic update switch. A channel switch asks first. The engine arrives with a signed latest.json, and the app installs nothing that fails the check (#267)
  • Shell-level settings: the game data folder, the cloud-saves folder and the default performance overlay, set once, each game can still override (#400, #409)
  • Launcher roundup: the library switches between Owned and Built, a slider that differs from its tested default gets a reset arrow, a new release shows as an icon at the end of the top bar, the Dock mirrors a running build, and console mode lists the games ready on this Mac first (#281)
  • An uninstaller: Settings removes the launcher's settings and engine trees. Games, saves and keys stay, and the app goes to the Trash (#281)
  • The Mac icon uses Liquid Glass (#290)
  • The Qt front end takes the Mac launcher's palette and Manrope font (#222)
  • Upstream moves to bbc3b737: Metal 4 pipeline specialization, shared host shaders compiled during the build, parallel rewriter scans, and fixes for NVN buffer offsets, attachment capacity and depth/stencil pairing. Upstream's own fullscreen fix replaces ours (#373)
  • Release candidates: a release is tested as a candidate first, so players get the exact build that was tested (#332)

Fixed

  • iPhone cloud-save folder picker: it opens once per tap (#321)
  • Tears of the Kingdom 1.4.2: it no longer runs at double speed (#311, #312)
  • Mario Tennis Aces: it gets past the rewrite step and past the crash after the shared fonts load (#307, #314)
  • iOS DLC: DLC in Documents/aoc is found (#319)
  • Windows toolchain checks: they name their fix (#206)
  • Console mode: it hides an idle pointer and asks again for full screen after a game (#339)
  • A failed engine sync: it puts engine/ back as it was (#338)

Requires

  • iOS or iPadOS 26 or later

Engine

  • Upstream pin: seedds/nxnative bbc3b73784751d2a706932dc69fd67627e3445d4
  • engine_id: bbc3b73784751d2a706932dc69fd67627e3445d4-62931bb0f613
  • The same engine the release candidates were tested against

中文

重点

iPhone 和 iPad 上的 App

  • 「iPhone / iPad」目标构建一个共用的壳 App,容纳你所有的游戏。游戏库以封面为主,横屏是 Cover Flow,iPad 显示网格(#226)
  • 重签和重装都保留游戏数据和存档
  • 每个游戏有自己的设置,壳级统一设置配一次全局生效,每个游戏仍可覆盖
  • 手柄和键盘都能操作整个 App
  • 界面跟随系统语言,支持英文和简体中文(#419)

新增

  • 引擎随发布版提供:发布版 App 把引擎放在自己的引擎仓里,并从中构建,不再克隆或拉取仓库。设置里显示引擎,有「检查」按钮、稳定版和实验版两个通道和自动更新开关,切换通道前会先询问。引擎附带签名的 latest.json,校验不通过就什么也不安装(#267)
  • 壳级统一设置:游戏数据目录、云存档目录和默认性能浮层,配一次全局生效,每个游戏可覆盖(#400、#409)
  • 启动器综合更新:游戏库可在「已拥有」和「已构建」之间切换,滑块偏离测试过的默认值时出现重置箭头,新版本以顶栏末尾的一个图标显示,Dock 图标显示正在运行的构建进度,主机模式先列出这台 Mac 能玩的游戏(#281)
  • 卸载功能:设置里可以删除启动器的设置和引擎副本,游戏、存档和密钥保留,App 移到废纸篓(#281)
  • Mac 图标改用 Liquid Glass(#290)
  • Qt 前端采用 Mac 启动器的配色和 Manrope 字体(#222)
  • 同步上游到 bbc3b737:Metal 4 管线特化、共享主机着色器在构建时编译、rewriter 扫描并行,并修复 NVN 缓冲区偏移与大小、附件容量和深度/模板配对。上游自己的全屏修复取代了我们的补丁(#373)
  • 发布候选版:每个版本先作为候选版测试,玩家拿到的就是测试过的那个构建(#332)

修复

  • iPhone 云存档文件夹选择器:每次点击只弹一次(#321)
  • 《塞尔达传说 王国之泪》1.4.2:不再两倍速运行(#311、#312)
  • 《马力欧网球 ACE》:通过 rewrite 步骤,并修复共享字体加载后的崩溃(#307、#314)
  • iOS DLC:能找到 Documents/aoc 里的 DLC(#319)
  • Windows 工具链检查:写明修复办法(#206)
  • 主机模式:鼠标静止时隐藏指针,并在游戏结束后再次请求全屏(#339)
  • 引擎同步失败:engine/ 恢复原状(#338)

系统要求

  • iOS 或 iPadOS 26 或更新版本

引擎

  • 上游固定点:seedds/nxnative bbc3b73784751d2a706932dc69fd67627e3445d4
  • engine_id:bbc3b73784751d2a706932dc69fd67627e3445d4-62931bb0f613
  • 与发布候选版测试时使用的是同一个引擎

What's Changed

  • docs: an engine fix lands here as a patch and goes upstream in parallel by @v0lumehi in #310
  • patches: Tears of the Kingdom 1.4.2 frame step and render scale sites (seedds/nxnative#793) by @v0lumehi in #311
  • patches: a zero-extending and of the index is a copy for the jump-table check (#305) by @iheb69nachet in #307
  • patches: a derived profile without frame step stubs keeps the game's own step (#303) by @v0lumehi in #312
  • patches: a compact shared-font stand-in for a font engine that cannot load the standard one (#313) by @iheb69nachet in #314
  • Bump upstream to c5fe6b5d, the fullscreen fix comes from nxnative by @v0lumehi in #319
  • Mac launcher uses the Liquid Glass app icon by @v0lumehi in #290
  • Launcher roundup: keep-build, filter with unowned games, update pill, conversions, uninstall by @LNPANDY in #281
  • Windows: the toolchain checks name their fix — link probe, SDK stubs, Metal and Git installs, pinned wheels by @LNPANDY in #206
  • iOS launcher: the cloud-save folder picker opens once per tap and Open stores the folder by @v0lumehi in #321
  • patches.py: count a patch as landed only when git says it is already applied by @v0lumehi in #323
  • Localization: drop the duplicate German dep.pick.metal_dir.title key by @v0lumehi in #331
  • Launcher: the release manifest and the engine store (engine updates, part 1) by @LNPANDY in #267
  • iOS shell: art-led library, Cover Flow, settings and the host layer for iPhone and iPad by @v0lumehi in #226
  • CONTRIBUTING: how outside pull requests are handled by @v0lumehi in #330
  • Qt front end: the Mac launcher's palette, Manrope and control styles by @v0lumehi in #222
  • AGENTS: an admin merge never goes over a red check by @v0lumehi in #333
  • Patch queue: patch 0036 only carries the layout editor change by @v0lumehi in #337
  • Release candidates: rc tags publish a pre-release with the engine the release ships, main builds the app, tools/try-pr by @v0lumehi in #332
  • Notes: the swipe hint's mock-up images by @LNPANDY in #343
  • Patch queue: drop 0035 and 0036, the R ring and the layout editor by @v0lumehi in #345
  • Console mode hides the idle pointer and returns to full screen after a game by @v0lumehi in #339
  • A failed sync puts engine/ back as it was by @v0lumehi in #338
  • Form field names: CONTRIBUTING examples and triage script match the issue forms by @v0lumehi in #349
  • Git hooks: run the checks before a commit and a push, and block a push to main from any tool by @v0lumehi in #341
  • v0.8.0: version bump and changelog by @v0lumehi in #350
  • Keep spirv-cross unsigned-by-us in the app's engine so it matches the lock by @v0lumehi in #355
  • Fix the width of the Engine update dropdown by @v0lumehi in #354
  • Qt tests: the ASCII temp test no longer fails on a Mac by @v0lumehi in #356
  • Replace the old library entry when a rebuild finishes by @v0lumehi in #360
  • Release: keep the bundled engine's binaries as built, so shader builds start by @Dino0005 in #353
  • Give a dropdown in the launch options the width of the segmented controls by @v0lumehi in #362
  • Translate the launch options rows into German, Swedish and Chinese by @v0lumehi in #363
  • Hide the console pointer after about 1.5 seconds idle by @v0lumehi in #359
  • Launcher: Dock tile shows the app icon with a gray progress bar by @v0lumehi in #357
  • Cache the app icon so a PR build skips the xcode-27 runner by @v0lumehi in #365
  • ci: skip the engine jobs when a PR touches only the launcher, Qt or docs by @v0lumehi in #364
  • ci: run host tests, the iOS shell package and the iOS app build in one job by @v0lumehi in #366
  • ci: cache the libvpx build and skip the launcher release build on pull requests by @v0lumehi in #367
  • Bump the engine to bbc3b73 and drop patch 0039, superseded upstream by @v0lumehi in #373
  • Keep the pointer hidden when console mode starts a game by @v0lumehi in #374
  • l10n: translate the strings that stayed English in every language by @Koshindai in #274
  • l10n: add French by @Koshindai in #275
  • Fix the shared app install: pass DM_SHELL_PACKAGE and bundle frontend-ios by @v0lumehi in #381
  • Name the build workflow after the app it builds by @v0lumehi in #383
  • Fix the iOS shared app link error for front_ios_device_message by @v0lumehi in #384
  • Add tools/try-local to build and open the Mac app without CI by @v0lumehi in #385
  • Give every game its own work folder when the title ID is not found by @v0lumehi in #386
  • Run the Qt front end tests on Linux by @v0lumehi in #390
  • Wait for content in the relaunch test's log read by @v0lumehi in #389
  • Show only the status beside a game, not the signature days by @v0lumehi in #393
  • Build notice race, 超分, centred dropdown words — three rc5 test reports by @LNPANDY in #395
  • The data transfer speaks for itself, and the shell speaks Chinese by @LNPANDY in #396
  • The shell's own settings: game data, cloud saves, language, performance HUD by @LNPANDY in #400
  • The shell folder caches every game's framework, and Settings names it (#398) by @LNPANDY in #399
  • Four rc7 test reports: the settings page's entry, the cache row, the success notice, dropdown centring by @LNPANDY in #401
  • The shell's framework mirror is the primary copy, and the installer makes it by @v0lumehi in #406
  • The shell settings page opens from every library, and its four rows work by @v0lumehi in #408
  • The dropdown truly centres, the cache note reads as written, and the success notice fires by @LNPANDY in #407
  • A game can turn cloud saves off, and the shell folders can be removed by @v0lumehi in #409
  • v1.0.0: version bump by @v0lumehi in #412
  • iOS shell follows the system language, language picker removed by @v0lumehi in #419

New Contributors

Full Changelog: v0.7.5...v1.0.0