新闻详情

新闻详情

首页 / 资讯中心 / 详情

Delta:面向未越狱 iOS 的全能经典游戏模拟器——功能架构与源码编译全解析

发布时间:2026/9/17 17:58:27来源:尧图网络
Delta:面向未越狱 iOS 的全能经典游戏模拟器——功能架构与源码编译全解析
Delta面向未越狱 iOS 的全能经典游戏模拟器——功能架构与源码编译全解析【免费下载链接】DeltaDelta is an all-in-one classic video game emulator for non-jailbroken iOS devices.项目地址: https://gitcode.com/GitHub_Trending/delt/DeltaDelta 是一款运行在未越狱non-jailbrokeniOS 设备上的多合一all-in-one经典游戏模拟器覆盖 NES、SNES、N64、GBC、GBA、Nintendo DS 与 Sega Genesis 七大主机平台。本文以仓库 README.md 为主线结合 Delta、Cores、Systems 目录下的真实源码从支持系统、功能矩阵、模块化架构到本地编译流程进行逐层拆解帮助读者既掌握 Delta 的完整能力边界也理解其App 核心框架 独立模拟核心的工程组织方式并能在本地 Xcode 环境中复现构建。项目定位GBA4iOS 的精神续作Delta 最初是面向 GBA 的模拟器 GBA4iOS 的续作由作者在学生时代与 Paul Thorsen 共同开发后来从零开始重建引入了现代 iOS 特性并扩展到更多主机平台。README 中将其定位为Delta is an all-in-one classic video game emulator for non-jailbroken iOS devices.这一非越狱定位贯穿了项目的整个分发与架构设计Delta 是一个普通、沙盒化的 iOS 应用仓库 README 原文 a regular, sandboxed iOS application不需要任何越狱权限全部模拟能力都运行在 iOS 应用沙盒之内。正因如此Apple 最初允许上架 App Store、后又改变主意才催生了作者自研的 AltStore 分发方案见下文安装与分发章节。支持的主机系统与 ROM 格式README 列出的支持系统如下其中 Sega Genesis 标注为beta状态Nintendo Entertainment SystemNESSuper Nintendo Entertainment SystemSNESNintendo 64N64Game Boy / Game Boy ColorGBCGame Boy AdvanceGBANintendo DSDSSega Genesis / Mega DriveGENbeta源码 System.swift 中的System枚举完整对应了这 7 个平台并记录了每个平台的首发年份year属性NES 1985、Genesis 1989、SNES 1990、N64 1996、GBC 1998、GBA 2001、DS 2004以及每个平台在 UI 中展示的本地化名称。Genesis 在localizedShortName中显示为 Genesis (Beta)与 README 的 beta 标注一致。更有实操价值的是 System.swift 中GameType.init?(fileExtension:)所定义的ROM 文件扩展名识别规则它是 Delta 导入并归类游戏文件的直接依据系统识别的文件扩展名NESnesSNESsmc、sfc、figN64n64、z64GBCgbc、gbGBAgbaDSds、ndsGenesisgen、bin、md、smd注意gb原始 Game Boy 卡带被归类到 GBC 系统下这是因为 Delta 使用 Gambatte 核心统一模拟 GB/GBC 两代掌机。扩展名匹配不区分大小写fileExtension.lowercased()实际导入时可放心使用大写扩展名。核心功能矩阵与源码印证README 的 Features 部分是理解 Delta 产品能力最完整的清单下面逐项展开并尽量给出源码层面的印证。1. 底层模拟核心与运行表现README 宣称得益于成熟的底层模拟核心实现准确、全速的模拟Accurate, full speed emulation。各系统对应的核心如下系统模拟核心核心元数据源码位置NESNestopia版本 1.40开发者 Martin FreijSNESSnes9x版本 1.63Snes9x TeamN64mupen64plus版本 2.6.0Richard GoedekenGBCGambatte版本 r571sinamasGBAvisualboyadvance-m版本 2.2.2VBA-M TeamDSmelonDS版本 0.9.5ArisoturaGenesisGenesis Plus GX版本 1.7.4eke-eke以上版本、开发者、来源与捐赠链接等元数据并非 README 凭空列出而是以DeltaCoreMetadata结构体硬编码在 DeltaCoreProtocolDelta.swift 中供设置界面的关于核心信息展示使用。关于运行表现源码给出了更精确的量化指标。在 DeltaCoreProtocolDelta.swift 中maximumFastForwardSpeed即快进倍率上限按核心与设备芯片做了分级限制可以反推各核心在对应硬件上的运行余量NES、SNES、GBC、Genesis Plus GX最高4 倍速快进GBAVBA-M最高3 倍速N64A11 及以上芯片可达 3 倍速A9 及以上仅 1.5 倍速melonDSA15 及以上芯片或启用 JITProcessInfo.isJITAvailable时可达 3 倍速A11 及以上仅 1.5 倍速其余情况默认 1 倍速这说明 N64 与 DS 的模拟开销明显更高对设备性能有硬性要求而 NES/SNES/GBC/Genesis 即使在旧设备上也有充足性能余量。2. 原生 UI 与游戏库管理专为 iOS 设计的原生界面游戏浏览、收藏夹、最近游玩等界面分别由 GameCollectionViewController.swift 与 GamesViewController.swift 等实现配套 Base.lproj 中的 storyboard 完成布局。自动匹配封面box artDelta 内置 OpenVGDB 游戏数据库仓库内 openvgdb.sqlite 与 GamesDatabase.swift导入游戏后自动查询并展示对应卡带封面。自定义封面可以从相册、剪贴板等来源为任意游戏更换封面相关导入逻辑位于 ImportController.swift 及其下的各 Import Option。3. 外部控制器支持支持 PS4、PS5、Xbox One S、Xbox Series X 以及 MFi 认证手柄支持蓝牙/有线键盘与 Apple Smart Keyboard。按系统、按手柄分别定制按键映射映射数据以 Core Data 实体GameControllerInputMapping持久化见 GameControllerInputMapping.swift。可将按键映射到Quick Save快速存档、Quick Load快速读档、Fast Forward快进等特殊动作映射配置入口见 ControllerInputsViewController.swift。4. 自定义控制器皮肤每个系统都内置了精美的默认皮肤Controller Skins。皮肤以ControllerSkinCore Data 实体存储见 ControllerSkin.swift支持导入他人制作的皮肤、或自行制作分享管理界面见 ControllerSkinsViewController.swift。5. 即时存档Save States从暂停菜单PauseViewController.swift 与 SaveStatesViewController.swift为任意游戏保存/读取即时存档。支持锁定存档防止误覆盖并自动生成备份存档Automatically makes backup save states以防进度丢失这一行为由SaveState实体的相关字段支撑SaveState.swift。支持Quick Saves配合外接手柄一次按键即可完成存档/读档对应控制器特殊动作映射。6. 快进Fast Forwarding以远超正常速度运行游戏快速跳过游戏中的慢节奏段落可从暂停菜单一键开关也可映射到外接手柄按键。不同核心/设备的快进倍率上限见上文底层模拟核心一节的源码量化数据。7. Delta Sync跨设备同步可同步游戏本体、游戏存档、即时存档、作弊码、控制器皮肤、按键映射六类数据README 原文 games, game saves, save states, cheats, controller skins, and controller mappings。支持查看所有同步内容的版本历史并可回滚到旧版本。同时支持Google Drive与Dropbox两个云服务。同步功能的底层实现由作者的 Harmony 框架承担见下文项目架构Delta 侧的封装集中在 SyncManager.swift其中SyncManager.Service定义了googleDrive com.rileytestut.Harmony.Drive与dropbox com.rileytestut.Harmony.Dropbox两个服务标识同步类型RecordType则枚举了游戏、存档、即时存档、作弊码、皮肤、映射等可同步记录。Harmony 监听 Core Data 持久化存储的变更并同步到远端文件服务Delta 只需在应用生命周期事件didEnterBackground/willEnterForeground中触发同步协调器即可。8. 按键按住Hold Button让 Delta 替你按住某个按键解放手指去按其他键非常适合需要长按某个键的游戏如马里奥系列的加速键、马力欧卡丁车的 A 键。该功能通过 ActionInput.swift 等输入抽象层实现。9. 3D / Haptic Touch 快捷预览使用 3D Touch 或 Haptic Touch 偷看peek游戏、即时存档与作弊码。应用图标快捷菜单可直达最近游玩的游戏也支持自定义固定某些游戏实现见 AppIconShortcutsViewController.swift。10. 金手指 / 作弊码按系统README 给出了完整的作弊码格式支持清单整理如下系统支持的作弊码格式NESGame GenieSNESGame Genie、Pro Action ReplayN64GameSharkGBCGame Genie、GameSharkGBAAction Replay、Code Breaker、GameSharkDSAction Replay作弊码的管理与校验代码位于 Pause Menu/Cheats 目录含 CheatValidator.swift 负责格式校验实体层由 Cheat.swift 承载。11. 陀螺仪与麦克风陀螺仪支持仅限《WarioWare: Twisted!》README 明确标注。麦克风支持仅限 Nintendo DS游戏对应 melonDS 核心的 mic 输入。安装与分发AltStore 与 7 天签名由于 Apple 拒绝 Delta 进入 App StoreREADME 说明了它如何通过作者创建的AltStore成为官方安装途径。安装流程如下从 AltStore 官网下载适用于 Mac 或 PC 的AltServerREADME 原始地址为 altstore.io。用 Lightning 线缆iPad 可用 USB-C将 iOS 设备连接到电脑。按照 AltStore 官网 FAQ 的指引使用 AltServer 将 AltStore 安装到设备上。在设备上打开 AltStore进入Browse标签页。找到 Delta点击FREE按钮开始安装。关键限制务必知悉通过 AltStore 安装的 Delta每 7 天必须刷新一次否则应用会过期失效、需要重新安装。AltStore 会在设备与 AltServer 处于同一 WiFi 时于后台尝试自动刷新应用也可以手动在 AltStore 中点击Refresh All刷新。AltStore 同时会在新版本发布时提示更新可在 AltStore 内直接升级 Delta。此外也可以从 Releases 页面下载编译好的.ipa文件用自己偏好的侧载sideload方式安装但这种方式不会收到自动更新每个新版本都需要手动重新侧载。仓库内与签名相关的配置可参考 Delta/Supporting Files/Delta.entitlements。项目架构模块化的App Core 模拟核心分层README 的 Project Overview 明确了 Delta 从设计之初就坚持模块化路线每个Delta Core拥有独立仓库并以git submodule方式挂载到主工程同时使用作者自研的两个私有框架Roxas与Harmony复用跨应用通用能力。在本仓库中Cores/目录下以空目录形式保留了各核心的挂载点NESDeltaCore、SNESDeltaCore、N64DeltaCore、GBCDeltaCore、GBADeltaCore、MelonDSDeltaCore、GPGXDeltaCore、DeltaCore它们通过git submodule update填充Podfile 中则以本地路径方式引入了Roxas与Harmonypod Roxas, :path External/Roxas、pod Harmony, :path External/Harmony。各层职责如下Delta本仓库主应用 与 Systems普通的沙盒化 iOS 应用。包含所有 App 专属代码——storyboard、App 专用视图控制器、数据库逻辑Delta/Database、设置界面Delta/Settings等。Systems工程则作为各 Delta Core 的聚合壳见 Systems.swift_exported import GPGXDeltaCore。DeltaCore连接高层 App 代码与具体模拟核心的中间层middle-man。通过它可访问 Delta 的全部核心能力模拟、控制器皮肤、即时存档、作弊码等。其他模拟器 App 可以大量复用它。Roxas作者跨项目使用的 iOS 通用开发框架简化常见任务。Harmony作者的 Core Data 同步框架监听应用持久化存储的变更并同步到远端文件服务Google Drive、Dropbox是 Delta Sync 的底座。各 Delta Core每个主机系统对应一个独立 Core对外提供统一的模拟 APIDeltaCoreProtocolDelta 不关心底层具体实现。核心注册发生在 AppDelegate.swift 的registerCores()中通过Delta.register(_ core:)按编译配置注册——LITE版本仅注册 NESbeta 再加 GBCBETA版本注册全部 7 个系统正式版则注册除 Genesis 外的 6 个系统Genesis 保持 beta 不随正式版分发。各系统与核心的映射关系在 System.swift 的deltaCore属性中一目了然其中 DS 还支持通过 Settings.preferredCore(for:) 在设置中切换首选核心默认回退到 MelonDS。ROM 文件扩展名到系统的归类则由GameType.init?(fileExtension:)完成见上文表格。这套注册 映射 扩展名识别的机制正是 Delta 模块化架构在 App 侧的落点新增一个主机平台只需要新增一个 Delta Core 子模块并在注册逻辑中加一行。环境要求与本地编译指南README 明确的最低工程要求为Xcode 15Swift 5.9iOS 14.0最低部署版本Podfile 首行的platform :ios, 14.0与post_install中对所有 pod target 强制IPHONEOS_DEPLOYMENT_TARGET 14.0的设置与 README 的 iOS 14.0 要求完全一致。由于 Delta 使用Git LFS管理大文件编译前需先安装 Git LFS。完整编译步骤如下1. 克隆仓库并更新子模块git clone https://gitcode.com/GitHub_Trending/delt/Delta.git cd Delta git submodule update --init --recursive子模块更新会拉取Cores/下各 Delta Core 以及External/下的依赖代码。2. 配置 Systems 工程的签名打开Systems/Systems.xcworkspace在左侧导航器选中 Systems 工程。在Targets下选择 Systems进入Signing Capabilities标签页。将Team从默认的 Yvette Testut 改为你自己的开发者账号。3. 配置 Delta 工程并构建关闭Systems/Systems.xcworkspace改开Delta.xcworkspace。对 Delta target 重复步骤 2 的签名配置。将 Delta 的Bundle Identifier改为唯一值例如在末尾追加你的 GitHub 用户名如com.rileytestut.Delta.MyGitHubUsername。构建并运行Build run即可。需要留意的是模拟核心的二进制通常体积较大且部分核心如 melonDS依赖 JIT在模拟器环境与真机上的表现会有所差异ProcessInfoJIT.swiftProcessInfoJIT.swift即为相关的能力检测扩展。许可协议Delta 代码库以AGPLv3协议分发见 README.md 的 Licensing 章节与仓库根目录 COPYING。这意味着基于 Delta 源码的修改与分发需遵循 AGPLv3 的条款包括对外提供服务时公开对应源码的义务二次开发前请仔细阅读协议全文。小结作为一款未越狱 iOS 上的全平台经典游戏模拟器Delta 的价值体现在三个层面产品层面覆盖 7 大主机、存档/作弊/皮肤/外设等完整功能矩阵工程层面采用Delta 应用 DeltaCore 框架 各平台独立核心 Roxas/Harmony 私有框架的深度模块化设计使新系统可以像插件一样挂载分发层面则开创了 AltStore 这一应用商店之外的签名侧载生态。对于想要研究 iOS 模拟器工程实践、学习多核心框架抽象或希望在本地构建体验 Delta 的开发者而言按照本文的编译指南配合 README.md 原文即可快速上手。【免费下载链接】DeltaDelta is an all-in-one classic video game emulator for non-jailbroken iOS devices.项目地址: https://gitcode.com/GitHub_Trending/delt/Delta创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ESP32-S3 N16R8深度开发指南:PSRAM与PlatformIO工程化实践 2026/9/17 18:37:34

ESP32-S3 N16R8深度开发指南:PSRAM与PlatformIO工程化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
PyCharm中Git拉取推送与冲突处理全攻略:从环境配置到团队协作 2026/9/17 18:37:34

PyCharm中Git拉取推送与冲突处理全攻略:从环境配置到团队协作

每次带新人用 PyCharm 做开发,我碰到最多的困惑不是 Python 语法,也不是依赖装不上,而是"我这代码怎么发给你""你改完我怎么拿过来"。说白了就是 Git 的拉取和推送。这东西单独看每个教程都讲得头头是道,但真…

阅读更多 →
MoveFlow 编译器诊断工作流:Aptos Move 合约的 AI 辅助编辑与包检查实战指南 2026/9/17 18:37:34

MoveFlow 编译器诊断工作流:Aptos Move 合约的 AI 辅助编辑与包检查实战指南

MoveFlow 编译器诊断工作流:Aptos Move 合约的 AI 辅助编辑与包检查实战指南 【免费下载链接】aptos-core Aptos is a layer 1 blockchain built to support the widespread use of blockchain through better technology and user experience. 项目地址: https:/…

阅读更多 →
手机无线充电PWM电源控制策略:发射端、接收端与调试实战解析 2026/9/17 18:37:34

手机无线充电PWM电源控制策略:发射端、接收端与调试实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
自制Win11PE实战:用ADK集成中文语言包与维护工具,生成可启动ISO 2026/9/17 18:37:34

自制Win11PE实战:用ADK集成中文语言包与维护工具,生成可启动ISO

用别人封装好的 PE 盘,功能再齐全,我心里始终悬着一个问题:引导环境里跑的东西,到底是不是完全可信。磁盘修复、系统备份、分区调整这些操作,都是把整台电脑的命脉交出去,所以我更愿意要一个自己能完全掌握…

阅读更多 →
Mac上uniapp项目esbuild版本冲突的彻底解决方案 2026/9/17 18:34:34

Mac上uniapp项目esbuild版本冲突的彻底解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞