在 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 了, 如果整个过程中有什么问题, 欢迎留言提问.

0 0 votes
Article Rating
Subscribe
Notify of
guest

19 Comments
Inline Feedbacks
View all comments
Y.G.
Y.G.
5 years ago

既然支持DOSBox,岂不是可以在掌机上玩Windows 95了?

apple
apple
5 years ago
Reply to  aifreedom

根据你设置的没用啊。进入菜单选择PAL就闪退。
PAL.sh文件内容是这个吗?
#!/bin/bash\nretroarch –verbose -L ~/.config/retroarch/cores/dosbox_libretro.so ~/games/DOSBOX/Pal95/pal.exe

gaewah
5 years ago

折腾的过程远比游戏好玩…

ytoy
ytoy
5 years ago

不知为何按键映射不起作用…

rocket323
5 years ago

很好的博客,松牛!

apple
apple
5 years ago

$ scp -r ~/Pal95 cpi@192.168.1.141:”~/games/DOSBOX”

这些命令在哪里打?我是小白呵呵。

Richard
Richard
5 years ago

请问如何设置按键映射, 在自带菜单中, 没有找到Space键和Insert键的选项.

apple
apple
5 years ago

根据你设置的没用啊。进入菜单选择PAL就闪退。

Aion
Aion
4 years ago

如何创建启动游戏的菜单啊?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’
这些代码是写在哪儿的?再指导一下!

Cjq
Cjq
4 years ago

谢谢,可以用了。最新版的核心名称变了,叫/home/cpi/.config/retroarch/cores/dosbox_svn_libretro.so
另外键位的位置在/home/cpi/.config/retroarch/config/remaps
最好是在模拟器内改变键位,因为可以针对某一个模拟器改变键位

Yang
Yang
4 years ago

感谢分享,请问金庸群侠传能不能跑得动?我直接试的那个,目前闪退

19
0
Would love your thoughts, please comment.x
()
x