上架即封神!3.6k Star 的开源游戏模拟器,Delta 冲上 App Store 免费榜
一直以来,苹果设备的应用商店(App Store)都是禁止游戏模拟器上架,所以 iPhone/iPad 用户不能直接安装 GBA、红白机之类的模拟器应用,这也让想在 iPhone 上重温童年游戏机的机友们,十分羡慕 Android 用户。
现在,iPhone/iPad 用户终于可以光明正大地在国服「App Store」下载游戏机模拟器了!因为,苹果公司在 4 月初对《应用商店审核指南》第 4.7 条款的修改,一举推翻了苹果设备禁止安装游戏机模拟器的规定。
4.7 迷你 App、迷你游戏、流媒体游戏、聊天机器人、插件和游戏仿真器
App 中可以提供未嵌入二进制文件的某些软件,尤其是 HTML5 迷你 App 和迷你游戏、流媒体游戏、聊天机器人以及插件。此外,古游戏主机仿真器 App 可以提供游戏下载服务。
这一改动生效后,有一批游戏机模拟器已成功上架「App Store」,其中引爆这一个消息的是一款名为「Delta」的任天堂复古游戏机模拟器,上架不到 12 小时,直接登顶 iOS 应用商店免费榜第一!
作为一个 90 后,FC、GBA...游戏机就是我的童年回忆。所以我第一时间就去下载体验了,体验后就一个字爽!它支持运行 FC、GBA、NDS 等游戏,而且完全免费无内购、清爽没广告、运行游戏不卡顿。惊喜远不止于此,Delta 还是开源的!
GitHub 地址:github.com/rileytestut/Delta
现在,直接在 App Store 搜索“delta”就可以安装了,因为它只是个模拟器并不提供游戏,所以安装后需要导入游戏才能愉快地玩耍。如果你装完游戏后一脸懵,就请继续往下看。
一、快速上手
下面我将逐一介绍,如何安装 Delta、导入游戏、游戏资源和常用功能说明。
1.1 安装
首先,Delta 是一款已上架的 iOS 应用,所以安装十分简单,在 App Store 内搜索“delta”,搜索结果第一个点进去直接安装即可,也许是第二个,因为第一个可能是广告,也可以搜应用的全称:Delta - Game Emulator。
1.2 游戏资源
因为 Delta 只是一个游戏机模拟器,所以对应模拟器的游戏 ROM(游戏卡)需要自行下载。这里我用的是老男人游戏网(oldmantvg.net),它上面有很多游戏模拟器的中文游戏 ROM 资源。
需要注意的是下载的游戏是压缩包,需要自行解压后才能得到 .nes、.gba 等文件(游戏 ROM),建议在电脑上解压好,这样方便在手机上导入游戏到 Delta。
1.3 导入游戏
刚安装好的 Delta 里面什么游戏都没有,需要自行下载/导入游戏,导入游戏就是想办法把下载好的游戏 ROM 文件传到手机里,可以用 iTunes、AirDrop、iCloud 云盘、隔空投送等工具,然后通过右上角的“+”找到传到手机里的游戏文件。
我用的是微信里的「文件传输助手」方法,首先在电脑上登录微信,接着把游戏 ROM 文件(.nes、.gba)扔进“文件传输助手”,然后在手机微信里找这个文件,点开后点击“其他应用打开”找到“Delta”,点击后会自动导入游戏,界面也会自动切换回 Delta。
注意:导入游戏后 Delta 会根据模拟器游戏的种类,分成 NES、GBA 等 Tab 左右滑动即可查看。
但上面这种方法,只适用于少量、逐一导入游戏,如果是批量导入游戏 ROM 的话,我推荐用 iCloud 云盘。
1.4 功能介绍
虽然 Delta 界面语言是英语但不影响使用,常用的功能也就那么几个,一图胜千言不再赘述。
Tips:手机开启自动横屏,横屏后自动改变按键布局。
Delta 默认不能运行 NDS 游戏,需要自行下载 3 个 bios 文件,搜一下就能找到。我没玩过 NDS 游戏,因为我小时候 GBA 就是天花板了,NDS 我连摸都没摸过,所以对它没有感情。时至今日,我可以不玩 Switch 让它吃灰,但不能没有
二、作者是高中生?
饮水思源,体验完 Delta 后我就对这款神器产生了好奇,这么“纯粹”的应用果不其然是个开源项目,我竟然没想起来《HelloGitHub》第 91 期推荐过它。
Delta 是一款无需越狱、适用于 iOS 设备的游戏模拟器,支持 NES、GBA、Nintendo 64 等游戏。它是 GBA4iOS 的精神继承者,GBA4iOS 是作者和 Paul Thorsen 在高中时一起制作的 iOS 设备 GBA 模拟器。
随后,我读完作者(Riley Testut)写的《GBA4iOS 十岁生日快乐》博文,才知道 Delta 是 Riley Testut 在 2015 将 Obj-c 写的 GBA4iOS 用 Swift 重构后的产物,而他编写 GBA 模拟器可以追溯到 10 年前的高中时期,这真是一段让人热血沸腾经历。
远在 2011 年 Riley 还是个高二(四年制)的学生,第一次看到同学在越狱后的 iPhone 上玩口袋妖怪,直接震惊到他了,因为《口袋妖怪》系列是 Riley 最喜欢的游戏,这也为他开发 GBA 模拟器埋下了种子。
2012 年,Riley 在 GitHub 上发现了一个名为 gpSPhone 的 iOS 开源项目:一款适用于越狱 iPhone 的 GBA 模拟器。他就想能不能修改该项目,让它成功运行在非越狱的设备上。说干就干,但 Riley 动手做后才发现这一切并不简单,这也点燃了他的斗志,仅仅几个月后,他成功了!他给同学们分享他的应用:GBA4iOS,这在同学间掀起了一波口袋妖怪游戏的浪潮。时间如梭,终于在 2014 年的时候,他在自己构建的网站上正式发布了适用于 iPhone 的 GBA 模拟器 GBA4iOS,这真是个令人激动的时刻。
之后,GBA4iOS 走出教室,成为了数百万人使用的应用,但好景不长 iOS 8.1 阻止了允许 iPhone 和 iPad 上模拟器运行的‘date trick’漏洞,因为 GBA4iOS 违反了苹果的规则,所以 Riley 随即宣布 GBA4iOS “落下帷幕”,他当时还不知道这只是一段新故事开始。
时间来到 2015 年,Apple 刚刚发布了一种名为 Swift 的编程语言,Riley 也成为了一名 USC 的大学生,为了学习 Swift 他用 Swift 语言重写了 GBA4iOS,这是 GBA4iOS 的重生同时也是 Delta 新生。
如今,距离 Riley 发布 GBA4iOS 已经过去了 10 年(2014-2024),Delta 终于上架了 App Store 并一举登上了免费榜!
然而,故事还没有结束...他还用另外一种方式复活了 GBA4iOS——GBA4vOS,一款原生 VisionOS 应用程序,可以让你在 Apple Vision Pro 上玩 GBA 游戏。
GitHub 地址:github.com/rileytestut/GBA4vOS
三、最后
Delta 的作者(Riley Testut)在过去 10 年被问到最多的话题就是:“你为什么不开发一款 App Store 允许的应用呢?”
时至今日,他已经不用再回答这个问题。但他自述的这段开发、发布应用和开源的经历,仿佛在告诉我们:他因兴趣而开始,坚持和热爱,让他与众不同。上架即封神不是一个偶然,而是 10 年沉淀的结果。也希望这段经历也能为徘徊在做与不做、牙咬坚持的你,打上一针“强心剂”。
时间会让「平凡的事」变得「与众不同」
与君共勉。
上架即封神!3.6k Star 的开源游戏模拟器,Delta 冲上 App Store 免费榜的更多相关文章
- APP store 上架过程中碰到的那些坑&被拒的各种奇葩原因整理&审核指南中文版
苹果官方发布的十大常见被拒原因 1.崩溃次数和Bug数量.苹果要求开发者在将应用提交给App Store之前彻查自己的应用,以尽量避免Bug的存在. 2.链或错误的链接.应用中所有的链接必须是真实且有 ...
- App Store有哪些原因会影响app应用上架呢?(分享)
App Store对于应用上架的审核是非常严格的,很可能一个没有注意到的细节,或者一个你根本没想想到的原因就会导致你的应用上架失败.而排除这些无可避免的错误以外,还有一些导致应用上架失败的原因,非常常 ...
- 阿里封神谈hadoop学习之路
阿里封神谈hadoop学习之路 封神 2016-04-14 16:03:51 浏览3283 评论3 发表于: 阿里云E-MapReduce >> 开源大数据周刊 hadoop 学生 s ...
- pytest封神之路第五步 参数化进阶
用过unittest的朋友,肯定知道可以借助DDT实现参数化.用过JMeter的朋友,肯定知道JMeter自带了4种参数化方式(见参考资料).pytest同样支持参数化,而且很简单很实用. 语法 在& ...
- pytest封神之路第零步 快速入门
背景:本文是在系列第五篇发表后的补充篇章,第一篇介绍了tep,可能对不熟悉pytest的朋友不够友好,特意补充入门篇,帮大家快速了解如何动手写pytest.如果你是从这篇文章第一次阅读,那么请忽略以上 ...
- 开源一个上架 App Store 的相机 App
Osho 相机是我独立开发上架的一个相机 App,App Store地址:https://itunes.apple.com/cn/app/osho/id1203312279?mt=8.它支持1:1,4 ...
- iOS之App Store上架被拒Legal - 5.1.5问题
今天在看到App Store 上架过程中,苹果公司反馈的拒绝原因发现了这么一个问题: Legal - 5.1.5 Your app uses background location services ...
- iOS App Store上架新APP与更新APP版本
iOS App Store上架新APP与更新APP版本 http://www.jianshu.com/p/9e8d1edca148
- App开发到App Store上架,发布流程。
http://blog.csdn.net/wojsg001/article/details/12005887 App开发到App Store上架,发布流程. 分类: IOS2013-09-25 11 ...
- app store 上架流程
前言:作为一名IOS开发者,把开发出来的App上传到App Store是必须的.下面就来详细介绍下具体流程. 1.打开苹果开发者中心:https://developer.apple.com 打开后点击 ...
随机推荐
- 使用IDEA中的Git提交代码到错误的分支,回滚代码后如何强制push代码-2022新项目
一.问题由来 当前新项目的开发分支非常的多,自己看了一下大概有20多个分支.每次开发完一个版本就会重新创建几个新的分支,每个开发人员对应一个 自己单独的开发分支,因此才会出现这么多的分支.分支多了之后 ...
- 单词本z develop vel = 到上面 从下面到上面的一种过程 抽象是相对从无到有
单词本z develop vel = 到上面 从下面到上面的一种过程 抽象是相对从无到有 develop 发展 开发 de = down 下面 velop 这里 vel 就是 lev的反写 op = ...
- python3 Crypto模块实例解析
一 模块简介 1.简介 python的Crypto模块是安全hash函数(例如SHA256 和RIPEMD160)以及各种主流的加解密算法的((AES, DES, RSA, ElGamal等)的集合. ...
- Kotlin 语法糖(对象不为空返回自身,为空返回其他)
原文地址: Kotlin 语法糖(对象不为空返回自身,为空返回其他) - Stars-One的杂货小窝 开发中,经常会有这样逻辑: 判断对象如果不为空,则取对象本身; 为空,则得到其他对象; 然后每次 ...
- docker如何以root身份登录
有时候我们需要进入docker容器时以root身份进入,这边汇总了两种方式如下 第一种 docker exec -it --user=root container_id /bin/bash 第二种 d ...
- JavaScript知识总结 异步编程篇
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1. 异步编程的实现方式? JavaScript中的异步机制可以分为以下几种: 回调函数 的方式,使用回调函数的方式有一个缺点是,多个回调 ...
- 记录--Vue自定义指令实现加载中效果v-load(不使用Vue.extend)
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 网站效果演示:ashuai.work:8888/#/myLoad GitHub仓库地址代码:github.com/shuirongshu- ...
- 用免费GPU部署自己的stable-diffusion项目(AI生成图片)
2021年时出现了 openAI 的 DALL,但是不开源.2022年一开年,DALL-E 2发布,依然不开源.同年7月,Google 公布其 Text-to-Image 模型 Imagen,并且几乎 ...
- 开发必会系列:JavaEE持久层框架对比与hibernate主键生成策略总结
一.持久层框架对比 ORM框架:即对象关系映射.它把数据库表映射到pojo类,然后通过对类的操作来实现对数据库的增删改查,sql语句自动生成. 对于代码开发者来说,就是在代码里先创建数据库连接对象,然 ...
- 快速上手系列:传智播客Java基础学习笔记
配置环境,把JDK的bin所在路径复制到Path,末尾加; 基本语法 一 常见的DOS命令 盘符的切换 d:回车 目录的进入 cd javase c ...