2019年10月25日 星期五

在老 iPad mini 1 上玩復古老遊戲


數個月前我寫了 "老 iPad 1 的新生命" 一文,我在文末提到這是老機重生的系列文章之一,也是最無聊的一篇,原因就是 iPad 1 真的太老了,RAM 太小 OS 太舊 (iOS 5),再怎麼樣也只能做些簡單的事。可是 iPad mini 1 可不同,雖然它也很老,OS 也很舊 (iOS 9),但能幹的事多太多了,而且由於 iPad mini 的輕薄屬性,讓我更願意帶著它到處走。我在舊文 "如何將捷徑 (Shortcut) 備份匯入至舊版 Workflow 裡?" 提及如何讓老機器能匯入 Workflow 備份檔,也算是 iPad mini 1 老機重生的第一彈,今次來聊聊第二個應用:如何在老 iPad 上安裝遊戲模擬器,以及我的遊玩心得。


安裝

在老 iPad 上玩復古遊戲一直是我的夢想 (為何不用新 iPad?因為我手中最新的 iPad 就是 iPad mini 1),但這個看似微不足道的心願卻一直難以達成。蘋果死都不讓 App store 上架遊戲模擬器的原因我是理解的:1. 不想讓模擬器傷害了 App store 的商業利益,畢竟遊戲是 App store 的主要收益來源;2. 模擬器的遊戲 ROM 幾乎都是盜版軟體,蘋果不想扯上這類糾紛。不過,儘管我完全理解蘋果的作法,但身為一個玩家,我還是相當不滿意的。

當然,如果越獄的話啥都辦得到,iOS device 一個個都是一台小電腦,但我就是不想越獄 (任性),而如果不越獄,目前有三種方法可以安裝非 App store 內的 App。

  1. Apple Developer Enterprise Program:這是蘋果讓企業大量部屬公司內部 App 用的,不需經過審核,當年 Pokemon Go 還未在新加坡開放的時候,我周圍的中國朋友都是玩網友提供的版本,而該網友就是用企業帳號。這種方案確實可行,但是企業帳號沒這麼容易申請,而且一旦被發現拿去做別的用途應該就是銷號了。
  2. TestFlight:這個 iOS 8 的新功能允許開發者在提交正式版 App 前將檔案分享給其他使用者以測試未經審核的 App,好處是極易安裝,使用時限大約數個月,可經由軟體更新延長,而更新也在 TestFlight App 中進行,跟一般 App store 的體驗接近。缺點是開發者對於測試人數有控制權,哪天你被踢了就不能再使用該 App 了。(更正:只是不能收到開發者提供的更新,但可以繼續使用原有的版本)
  3. Sideload:在 iOS 9 加入的 sideload 使得 "任何" 開發者可以直接將自己的 App 放在 iOS 設備裡試用,為期一週,只要有 App-specific 密碼即可。由於不限制軟體來源,所以免費帳號也可以這樣安裝未經審核的 App,只是必須每週 sideload 一次就是了。

仔細看看上面三種方案,應該能發現 Sideload 是裡面最穩定的解決方案,因為不僅蘋果官方允許我們這樣做 (即使 App 不是我們自己開發的),而且一切的好 (不用擔心被踢) 與壞 (每週要重做一次) 都掌握在自己手裡,而 Sideload 在實作上又分為三種:

  1. 網頁版:如果你在網上搜尋一些 "絕不可能過審" 的 iOS App,應該會找到一些奇怪的網站,比如說 Ignition,很多 Youtuber 在影片中推薦的網站都屬於一類,但你會發現那些網站很容易就死掉了,或是在上面的很多軟體都不能下載。原因就是他們必須要每週重新給那些 App 數位簽名,誰這麼有閒啊?自然是有一次沒一次的,而且下載速度非常緩慢,有時下載不了還要改天再下載咧!所以這種體驗極差的方案很快被我放棄了。
  2. ipa 檔案:這種方案是最簡單的,開發者直接把編譯好的 iOS App 程式封裝 (注意,是 "封裝",副檔名是 ipa,不是 app) 釋出,只要安裝 Cydia Impactor 及到 Apple ID 官網取得 App-specific 密碼即可安裝。
  3. xcodeproj 檔案包:很多 Github 開源的 iOS App 使用這種形式來共享,必須要使用 XCode 去安裝,下次有需要再說。

這次先講上述的第二種方法,也是最簡單的 Sideload 方法。首先下載該 App 的封裝檔 (*.ipa),然後用傳輸線連結 iOS 設備並開啟 Cydia Impactor (下圖上),將 ipa 檔拖入,Cydia Impactor 會提示輸入 Apple ID 及密碼 (下圖中、下)。


雖然 Cydia Impactor 是由著名開發者 Jay Freeman 開發維護,但遇到非蘋果官方要求我的帳號密碼時,我還是註冊了一個新的 Apple ID 專門來做 Sideload (假設該帳號是開發者吧 ....)。密碼的部分很有意思,其實不是輸入 Apple ID 的密碼,而是 Apple 給予非官方授權 App 的 "App-Specific" 密碼,這個部分可以去 Apple ID 的官方網站取得:


用 Apple ID 登入之後,開啟二階段認證 (Two-Step Verification),然後就可以取得 App-Specific 密碼 (取得過程中會要求你為 App 命名,隨便填即可)。如上,交給 Cydia Impactor 去跑,結束之後 App 就安裝好了,只要在 "系統偏好設定" 裡驗證該 App 即可:


驗證過程中你會發現開發者就是你自己,如果使用網站下載 (Sideload 的第一種方法),在 Device Management (裝置管理) 裡就會看到某不知名的帳號或公司名。

OK,以上看起來很簡單對吧?但現實不會這麼美好。首先,不是每個你想要安裝的 App 都會編譯好 ipa 讓你下載,有的連 xcodeproj 檔案包都沒有,只能由網站下載,忍受那不穩定的速度及更新頻率,比如說 "小雞模擬器" (Happy Chick)。再來,這些非官方授權的 App 也有系統要求,有些 App 要求更高的 iOS 版本,老機器還是安裝不了,這部份又有兩個例子:AltStore 及 RetroArch。AltStore 是最近很紅的 "非官方授權" App store,說白了就是 "全自動" 的 Sideload 軟體安裝器,不僅讓你輕鬆安裝 App,AltServer 還能每週自動在背景幫你到期的 App 做數位簽名,可惜它只支援 iOS 12 以上的機器;RetroArch 是另一款模擬器 App,"號稱" 支援 iOS 9 到 iOS 11 以上,官方放出的安裝教學影片就是 Sideload 的標準流程,可惜官方放出的 ipa 檔 (v1.7.7) 只有支援 iOS 11 以上,較早的設備都必須越獄才能安裝 (*.app 檔的 zip 封裝,必須越獄才能裝,舊版 RetroArch 在此下載),我在他們的影片下留言,指出他們這樣有誤導用戶的問題,結果就被刪留言了,這種玻璃心跟詐騙集團真的有 87 像 [1]。

由於以上種種原因,我最後選擇了 Provenance,它能完美支援 iOS 9 以上的機器,包括我的 iPad mini 1,而且它提供穩定的 ipa 檔 (請安裝 v1.4安裝頁提供的 v1.5b 在安裝時會有錯誤 ),每週自己 Sideload 一次就好,不會丟失遊戲紀錄。


體驗心得


Provenance 支援橫屏及豎屏,由於我比較喜歡往年 Gameboy 的操作模式,所以我都用豎屏。模擬器的核心都有內建,直接將遊戲 ROM 傳入機器就可以玩了。傳輸的方式是無線傳輸,只要按下右上角的 "+" 按鈕,則會跳出通知窗口,用瀏覽器連入指定 IP 即可。

開啟 WebServer 以上傳 ROM

(不是同時擷的圖,IP 不同請見諒)

遊戲 ROM 請存入 roms 資料夾。實際操作會發現上傳有點慢,而且傳完之後檔案不會出現在頁面裡,可見網頁端還需要改進,不過這種跨平台的無線上傳我還是很滿意的。

至於遊戲操作上怎麼樣呢?我只能說:差強人意。為什麼?現今這麼多手遊,怎麼還有操縱上的問題?另一方面,有太多第三方的復古遊戲掌機,網上隨便找都有一堆評測,比如說 "Top 10 Best Retro Handhelds Of 2019" 及 "12 Best Retro Handhelds - Which Emulator Should You Buy?",我為何還要在這台老 iPad mini 1 上浪費時間?而且我不是有 Bittboy 嗎?解答以上問題就是我最想在這篇文章裡說的重點。

電視遊戲主機及掌機在歷史上有著不同的市場,主機百家爭鳴,而掌機一直都是任天堂的天下。除了機器本身的體驗優劣,遊戲也必須為了掌機而適配,如今進入了智慧型手機的時代,好的手遊在操作上也必須為了手機的觸控螢幕適配,而手遊的操作跟掌機雖然有點像,但還是不同,對於一些老遊戲的操作更是如此。以下兩點是我認為挑選好的復古遊戲掌機的要點:

  1. 遊戲的畫面要大,至少要 iPad mini 一半的尺寸。螢幕太小對於任何主機遊戲都是惡夢一場,人物過小要怎麼玩?這也是掌機遊戲跟主機遊戲最大的不同,掌機遊戲的人物大小及縱向捲軸不容易掌控,優秀的 Gameboy 遊戲都有特別優化這方面的體驗。螢幕太小是絕大多數復古遊戲掌機都不合格的主要原因 (包括 Bittboy 初代,新版好像有加大螢幕)。GameShell 是一款用樹莓派改裝的掌機,可玩性極高,但還是因為螢幕太小而阻止了我下單。反過來說,iPad mini 尺寸剛好又輕便,實在是完美的遊戲掌機。
  2. 需有實體按鍵,或是可調整位置大小的虛擬按鍵。這一點很少人提,但我覺得太重要了。現今的手遊之所以體驗不錯,其實遊戲設計上還是有動巧思的,其中一點就是 "虛擬按鈕要夠大" (有些連位置都可調整) 及 "不用同時按兩個鍵",用意都一樣,就是防止誤操作。以最具代表性的瑪利歐或洛克人為例,常常需要同時按住兩個鍵以集氣跳躍,如果虛擬按鈕太小或是不在手指熟悉的位置,就會一次又一次地誤操作,連個跳躍都有問題還玩什麼?實體按鍵可以解決這一切,但是虛擬按鈕就不行了。很多手遊的體驗好,就是體現在這些小細節,像對岸的王者榮耀完全沒有這類操作問題,可是復古遊戲本就不是為了觸控螢幕設計,於是只能靠模擬器開發者去試圖解決。小雞模擬器 (Happy Chick) 有很多缺點,但是可以自訂虛擬按鈕位置及尺寸的功能真的太棒了,玩起來就比較舒服,Provenance 這方面沒得比,希望未來能改進吧,我也會嘗試寫信給開發者建議此事。


這次的內容花了不少時間嘗試,特別是 RetroArch 那一段實在是不堪回首。我覺得我的 iPad mini 1 還有其他潛力,有 "玩成功" 的新玩意再來分享給各位 (失敗的就算了),有任何建議請留言,多謝各位~



附註
1. 我跟 RetroArch 奮鬥的時間可長了,首先我不能安裝官方提供的 ipa 檔,所以我打算拿官方的原始碼去編譯,結果看到他們示範的 xodeproj 檔都是 iOS 11 的版本。我又在網上找到 RetroArchBeta10.ipa (Mega)、RetroArch iOS9 (Mega) 及 RetroArch v1.6.7,但它們都有類似的問題,就是模擬器的核心 (Core) 不能載入,這個問題又有一堆老外七嘴八舌地討論。其實我覺得這不該讓用戶去操心,新版就沒有這些問題,前提是你的機器要能支援 iOS 11。

沒有留言:

張貼留言