前言
适用于对老平台游戏有着放不下的执念的人。想要一个类似于影音流媒体的平台,随时随地有网打开就玩,毕竟游戏ROM和模拟器也不可能随时存在本地所有设备。
引入
目前比较全能的RetroArch已经有网页版可以使用,但它的网页版只提供模拟器,需要你自己上传ROM才能玩,所以也不是很方便。而本文介绍的EmulatorJS则可以在服务端放好ROM,以后点开就玩。
EmulatorJS目前已经支持的平台:
- 3DO
- Arcade (使用 mame2003-plus-libretro )
- Atari 2600 (使用 stella2014-libretro )
- Atari 7800 (使用 prosystem-libretro )
- Atari LYNX (使用 libretro-handy )
- Colecovision (使用 blueMSX-libretro )
- MSX (同上)
- Doom (使用 libretro-prboom )
- Jaguar (使用 virtualjaguar-libretro )
- FC/NES (使用 libretro-fceumm )
- SFC/SNES (使用 snes9x )
- GBA (使用 vba-next )
- GBC (使用 Gearboy )
- GB (同上)
- VB (使用 beetle-vb-libretro )
- NDS (使用 melonDS )
- N64
- Neo Geo Pocket (color) (使用 beetle-ngp-libretro )
- Odyssey 2 (使用 libretro-o2em )
- PC Engine (TurboGrafx-16) (使用 beetle-pce-fast-libretro )
- PS (使用 beetle-psx-libretro )
- Sega 32x
- Sega CD/Mega CD (使用 Genesis-Plus-GX )
- Sega Game Gear (同上)
- Sega Mega Drive/Genesis (同上)
- Sega Master System (同上)
- Sega SG-1000 (同上)
- Sega Saturn (使用 yabause )
- Vectrex (使用 libretro-vecx )
- Wonderswan (color) (使用 beetle-wswan-libretro )
EmulatorJS优势:
- 无论是PC还是移动设备,都支持手柄。已用Nintendo Pro测试。
- 提供庞大的metadata库,会通过匹配MD5来自动进行刮削。为了匹配更精准请将ROM文件命名为英文。
准备
个人的老游戏收藏库
部署
本文依旧使用docker-compose进行部署。在VPS新建一个文件夹,CD进去vim docker-compose.yml
,填写内容如下:
version: "2.1"
services:
emulatorjs:
image: lscr.io/linuxserver/emulatorjs:latest
container_name: emulatorjs
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC #可以修改成国内时区 TZ=Asia/Shanghai
volumes:
- /path/to/config:/config
# 挂载用户配置到宿主机
- /path/to/data:/data
# 挂载游戏数据到宿主机
ports:
- 3000:3000 #后台管理端口
- 80:80 #前台游玩端口
- 4001:4001 #IPFS端口,不知道的可以忽略不开
restart: unless-stopped
对于挂载游戏数据这一栏,不小心删了相关文件就要重新刮削,这比较麻烦,所以我们可以只挂载单独的ROM目录。EmulatorJS的不同模拟平台目录是分开的,所以不同平台游戏要分开挂载,示例:
volumes:
- /path/to/FCgame:/data/nes/roms
- /path/to/SFCgame:/data/snes/roms
- /path/to/gbagame:/data/gba/roms
不同平台对应的文件目录如下:
- 3do
- arcade
- atari2600
- atari7800
- colecovision
- doom
- nes
- snes
- gb
- gba
- gbc
- vb
- nds
- n64
- jaguar
- lynx
- msx
- ngp
- odyssey2
- pce
- psx
- sega32x
- segaCD
- segaGG
- segaMD
- segaMS
- segaSaturn
- segaSG
- vectrex
- ws
接下来 docker-compose up -d
即可。
启用
浏览器打开 http://ip:后台port, 会先提醒你下一个metadata包,下完以后就可以进行刮削。
下完以后页面会显示不同平台检测到的游戏数量,点进去以后先扫描再刮削,刮削完以后添加进配置里,准备完毕。
最后浏览器打开 http://ip:前端port, 就可以选择平台,选择游戏开始玩了。
相关问题
Q:手机上看起来界面不完整?
A:横屏即可。不管在什么设备玩都需要横向。
Q:如何存档?
A:后台创建Profile,在游玩的时候进度会跟随Profile,游玩结束以后保存Profile的配置到本地,下次游玩的时候再上传配置文件到服务端即可接着游玩