首先,我来说一下这个项目的优点。只要你的设备有浏览器,就可以使用,并且可以连接手柄。我已经试过有线、2.4G和蓝牙连接,都可以使用,并且按键已经自动映射好了。这意味着,如果你是iOS用户,你不需要费力去下载模拟器,只要里面有你想玩的游戏机种。
起因是,最近在闲鱼捡到了一台Chromebook,配置如下:i3 6100u处理器、4GB内存和16GB EMMC存储空间。价格非常便宜,仅260元包邮,而且还是ThinkPad 13。键盘手感不错,唯一缺少的就是小红点。由于我经常使用网络应用和很多软件都有Web端版本,我发现国内许多应用非要做成App,放弃Web端,这一点让我很难理解。这台设备可以安装安卓App,但无法安装64位的App,可以安装一些简单的模拟器,并且可以使用SD卡存放ROM。我个人安装了SS、PS1、MD、FC、GBA、DC和PSP模拟器,总体而言,以260元的价格买这台设备比买一个山寨机划算,因为我还可以观看流媒体、使用WebDAV,并且具备蓝牙和WiFi功能。使用蓝牙音箱听歌和蓝牙手柄玩游戏非常方便,当然,山寨机也有山寨机的好处,毕竟更集成化、更便携。
总的来说,我很喜欢使用Web端应用,因此我好奇是否可以使用Docker容器化模拟器。经过一番搜索,我发现确实有这样的项目。
我的Docker环境是软路由,配置如下:N3160处理器、8GB内存和120GB固态加500GB机械硬盘。之前购买N3160是为了安装CentOS来开网游私服,和朋友一起玩《魔兽世界》。后来停止玩游戏后,花十多块钱买了一张PCIe的千兆网卡,用于搭建软路由。当时在闲鱼购买N3160的价格是50元包邮,还附赠了一根4GB内存,价格非常合适。一般来说,对于软路由来说,120GB固态已经足够了,但是我还想尝试网心云,所以又加了一块500GB的硬盘。后来发现我的这个垃圾移动收益并不是很稳定,所以我就没怎么用,想着至少可以备份一些音乐之类的东西。
说了这么多,言归正传,关于在Docker中部署Web端模拟器。从雅达利2600一直到PS1和SS,都可以玩,具体的模拟器核心如下。
接下来,我提供原项目地址:https://github.com/linuxserver/docker-emulatorjs。
这里就不详细介绍如何安装Docker了,我默认你已经安装好了,并且现在ChatGPT使用起来也很方便。
效果如下图:
以下是Docker命令:
```
docker run -d \
--name=emulatorjs \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e SUBFOLDER=/ `#optional` \
-p 3000:3000 \
-p 80:80 \
-p 4001:4001 `#optional` \
-v /path/to/config:/config \
-v /path/to/data:/data \
--restart unless-stopped \
lscr.io/linuxserver/emulatorjs:latest
这是80端口的前端如图:
3000是配置界面如下图:
在这里我要说明一下,80端口是前端界面,而3000端口则是后台配置界面。通常情况下,80端口可能会被占用,而且大多数人只会给Docker分配少量空间。如果遇到这种情况,可以修改命令,比如我将80端口映射到8188端口上,并将数据和配置存放在Docker中:
docker run -d \
--name=emulatorjs \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e SUBFOLDER=/ `#optional` \
-p 3000:3000 \
-p 8188:80 \ #这里80端口映射到了8188 其他几个端口也可以这样映射
-p 4001:4001 `#optional` \
-v /opt/docker:/config \ #这里是配置文件
-v /opt/docker:/data \ #这里是数据包括了rom
--restart unless-stopped \
lscr.io/linuxserver/emulatorjs:latest
```
在拉取完成命令后,你会看到Docker容器出现在列表中。
Docker容器如下图:
进入3000端口界面,开始下载前端配置和BIOS。如果已经下载完成,界面上会有一个“Download”按钮,等待出现“Downloaded All Files”或类似信息。
现在,你可以开始上传ROM了。点击“File Management”,选择你要上传ROM的游戏机种,比如GBA,点击左侧的GBA再点击ROM文件夹,将ROM文件直接拖入其中。回到主页,你会看到刚刚上传的游戏机种。点击“Scan”,然后开始扫描。扫描完成后,点击左侧的游戏机种,选择“Step 2”将所有ROM添加到配置中。返回前端界面,你就能看到你所添加的游戏机种。如果没有显示,可以尝试重新启动容器。
关于封面图片的下载,可以在左侧选择游戏机种,点击“Step 1”手动查找并添加封面图片,但需要手动查找,且不能自动命名,有些麻烦。个人建议等过几天我去GitHub上向外国开发者提建议,看看以后是否会更新。
现在,你可以使用浏览器来玩游戏了。我试过的都是Xbox手柄协议,其他手柄暂时不清楚支持情况。以上可能有些啰嗦,如果有不明白的地方,请留言,我会尽力回答,如果无法回答,建议查看原项目地址
另外建议看看模拟器核心支持的格式,比如PS1模拟器只支持PBP和CUE格式。
再补充一下,我在老外项目中看到浏览器推荐的是chrome 其他几个会出现cdrom无法运行的问题说的是saga的cd