EmulatorJs可以让我们在浏览器运行全能模拟器RetroArch玩各种各样的怀旧游戏,个人感觉EmulatorJs的加载速度和使用体验都比RetroArch-Web强多了。一个月前KASM推了一个RetroArch的镜像,似乎是用KasmVNC实时传输服务端运行的图像,类似远程桌面的实现方式,我尝试启动没起来,提示system-config-printer-applet: failed to connect to system D-Bus,之后折腾半天也没成功,最后放弃了。EmulatorJs似乎在每次进页面加载游戏的时候都会下载游戏文件,之后用模拟器运行游戏。
搭建教程
首先建文件夹,用来存放配置文件和游戏文件
之后运行启动命令,DockerHub地址:https://hub.docker.com/r/linuxserver/emulatorjs,在此感谢为EmulatorJs项目和RetroArch项目做出贡献的人们
参数说明
下面命令可以看容器日志
容器起来后记得开放宿主机的7777端口(容器内80端口)和8087端口(容器内3000端口)(在防火墙/云安全组配置)
使用教程
浏览器访问宿主机ip:8087(容器内3000端口),进到后台管理界面,之后下载模拟器运行所需的一些文件,如果下载中断了,刷新页面再点下载,会继续下载
下载完成点击Profile Management,进入文件管理页面
之后先点击左侧游戏平台(以FC平台为例),再点击roms进入游戏文件夹,右键空白处,点击upload,选择游戏文件上传
上传之后的截图
之后点Rom Management,点gba的scan,之后点左侧gba
之后gba游戏会被添加成功,其余游戏都要这么添加一遍,最后访问宿主机ip+7777(容器内80端口)就可以愉快玩耍了
键盘↑↓切换模拟器,→前进,←返回
进入游戏后按F1可以打开RetroArch的快捷菜单
这时候按Z或者鼠标点击左上角的图标,会出现主菜单,主菜单左边有个Settings,选中后右边有个Input选项
进入Input往下找,有个Port 1 Control选项,在这里可以修改按键映射,比如将上下左右改成WSAD,光标悬浮在想要修改的按键上,按Enter键进行修改,按Delete键移除不需要的映射
下面是游戏截图
手机浏览器也可以玩(up用的via浏览器,浏览器设置全屏),上滑隐藏Tab栏,左上角按钮可以打开RetroArch设置界面
访问加密
如果想输入正确的用户名密码才能进入游戏界面,可以用Nginx将宿主机端口转发一下,Nginx配置访问密码
容器启动时配置 -p 5233:80 -p 5234:3000,5233、5234端口不需要对外开放,之后Nginx进行如下配置
之后访问宿主机ip:7777,输入用户名密码之后就能进入游戏页面了
密码文件生成方法
执行后会在当前目录生成名为frisk的密码文件,登录的用户名chara,密码sans
关于存档
模拟器的存档似乎保存到了浏览器的缓存里,如果把浏览器缓存清了,存档就没了
我们需要先在上传游戏的文件管理界面创建一个用户
之后在游戏主界面点击左上角的文件管理图标
先在左上角输入用户名密码进行登录,登录后可以在文件管理界面做很多事
可以理解成手动版的云存档功能,比如说在手机浏览器上玩RPG类的游戏玩到一半,想在电脑浏览器上接着玩,就可以在手机上将存档push到服务器上,之后在电脑上将存档pull下来接着玩。
后记
可能有人想问,up为什么要费这么大劲弄这个,用模拟器玩不香吗?大概上初一的时候,up在奶奶家的WindowsXP电脑上打开4399玩过一阵子宝可梦金银,那时候曾幻想拥有一个只属于自己的游戏网站。可能up想放下小时候的执念,也可能up仅仅想重温小时候在web页玩宝可梦的美好回忆吧。