在 GameShell 上玩仙剑奇侠传
Update (2019-10-08): 之前一个版本的命令完全不能用, 因为写文章的时候我已经基本把游戏都设置好了, 那些命令其实是我想出来觉得应该可以用的. 但我今天不小心把 GameShell 的文件系统弄坏了, 不得不重新刷系统 image, 才发现真的错的很离谱. 现在是更新后的版本, 在 v0.4 image 上亲测可用.
最近入手了一件新玩具 GameShell - 一款外形像 GameBoy, 系统基于 Linux 定制的高可玩性掌机.
GameShell 开箱时和高达模型一样, 零件需要自己用模型剪钳从板件上剪下来, 然后自己动手组装起来才能玩. 组装过程并不复杂, YouTube 上可以找到很多组装视频教程. 需要注意的是好多零件的水口又宽又厚, 不太好处理. 不过就算是我这种模型新手, 拼出来的成品看着质量也还过得去.
言归正传, GameShell 自带的系统 image 里已经装了 GBA, SFC 和 PS 的模拟器. 这些模拟器核心都是通过 RetroArch 加载的. RetroArch 是一个支持多种模拟器核心的前端框架, 功能十分强大. RetroArch 里自带的核心加载器可以直接从网上下载安装各种后端, 而这其中就包括 DOSBox. 当我看到这里, 脑海中闪过的第一个念头就是 – “那不是可以用来玩仙剑奇侠传了?!”
在开始之前, 请一定把 clockworkOS 更新到 v0.3 v0.4! 新版的系统支持 Lima 显卡驱动, 能显著提高系统性能, 降低 CPU 使用率和耗电. 刷机可以用 balenaEtcher, 过程十分傻瓜. 要先刷机再设置的原因是, 刷机之后, 整个 tf 卡的文件系统都会被覆盖, 之前所有的设置都得重新来过.
首先, 要在 RetroArch 里下载 DOSBox 的核心. 把 GameShell 连上 Wi-Fi 后, 从菜单里打开 RetroArch. 在菜单里先选择 Online Updater => Update Core Info Files 更新模拟器核心的索引文件. 然后回到 RetroArch 的主菜单, 选择 Load Core => Download Core…, 找到 DOS(DOSBox), 选择下载. DOSBox 核心就下载好了.
然后, 要去准备一份仙剑奇侠传 DOS 版的文件. 这里请大家自行 Google. 这里假设游戏在本地的路径是 ./Pal95
.
最后, 要把仙剑奇侠传复制到 GameShell 里, 并创建启动游戏的菜单项. 回到 GameShell 的目录里, 打开 TinyCloud. 这里可以看到 GameShell 在本地局域网里的 IP 地址(后面的命令里假设这里的 IP 地址是 192.168.1.123), 和GameShell 默认用户的用户名和密码 (都是 cpi
).
先把仙剑奇侠传 DOS 版复制到 GameShell 的系统里:
ssh cpi@192.168.1.123 'mkdir -p ~/games/DOSBOX/Pal95/' && scp -r ./Pal95 cpi@192.168.1.123:'~/games/DOSBOX/'
再创建一个启动游戏的菜单项, 并复制到对应的目录下:
mkdir -p ~/apps/Menu/21_Indie\\ Games/20_Pal && echo \'#!/bin/bash\nretroarch --verbose -L ~/.config/retroarch/cores/dosbox_libretro.so ~/games/DOSBOX/Pal95/PAL!.EXE\' > ~/apps/Menu/21_Indie\\ Games/20_Pal/Pal.sh'
回到 GameShell 主菜单, 选择”重载菜单”, 在主菜单重新加载之后, 就可以从 Indie Game 里找到 “Pal” 并进入仙剑奇侠传了. 进入游戏前, 记得去 GameShell 的系统设置里, 选择 Lima 作为 GPU 驱动.
至此, 应该已经可以在 GameShell 里加载仙剑奇侠传了. 但我发现在默认的设置下, 动画的部分会有卡顿的感觉, 模拟器也会时不时死机. 解决的办法是在主机上按 Shift + MENU 键进入 RetroArch 的菜单, 进入 Options => CPU cycle multipler, 把默认的 100 改成 1000, 再把 CPU cycles 改成 3. 然后在同一级菜单里选择 Save Game-options file 把设置保存下来.
最后, 在 RetroArch 的菜单里选择 Controls, 可以调整 GameShell 按键如何映射到游戏里的按键. 要调整的是先把 User 1 Device Type 设置成 Keyboard + Mouse, 把方向键映射到对应的键盘方向键, A 键映射到 Space, B 键映射到 Escape, 就可以实现方向键走路, A 键确定, B 键返回的基本设定了. 同样记得在设置完成后选择 Save Game Remap File 把设置文件保存下来. 下面是我设置好之后的 remap file 内容, 你也可以选择把它传到 GameShell 上去, 在 RetroArch 里直接加载.
input_libretro_device_p1 = "3" input_player1_key_a = "32" input_player1_key_b = "27" input_player1_key_down = "274" input_player1_key_left = "276" input_player1_key_right = "275" input_player1_key_up = "273"
好久没写过 blog 了, 如果整个过程中有什么问题, 欢迎留言提问.