分享我最近做的在浏览器运行各色 RetroArch 怀旧游戏模拟器的 JS 库

213 天前
 battlefield

大概效果可以参考这个动图,主打一个一行代码启动游戏开打。

直接在 V2EX 这个网页上打开控制台也能直接试用,跑一下这段代码就能直接开玩 flappy bird

const { Nostalgist } = await import('https://esm.run/nostalgist')
await Nostalgist.nes('flappybird.nes')

更多详细信息可以参考上面链接。

另外我有个大胆的想法,能不能基于这个整个摸鱼神器什么的,搞个插件在 vscode 控制台或者边栏上,领导不在就偷偷玩塞尔达救公主,领导来了随便开个别的页面就像正常上班了

当然现代塞尔达肯定不行,也就打打众神的三角力量、缩小帽啥的……

1295 次点击
所在节点    分享创造
9 条回复
ragnaroks
213 天前
看起来需要增加一个参数用于指定挂载的 DOM 来让第三方做集成,直接使用 body 绝对不是好的选择
battlefield
213 天前
@ragnaroks 有道理!不过其实可以指定 DOM 的,类似这样
```js
await Nostalgist.launch({
element: '.xxx',
rom: 'flappybird.nes',
})

```
默认弄到 body 是出于方便新来的人一键试用的考虑,免得读者看到想跑起来还得配置一堆东西,就懒得看了…
debuggerx
213 天前
巧了,我前两天刚用 Emulator.js 给自己搭了个随时玩游戏的页面,魔改了它的一部分代码来支持平板和手机的自适应,部署在 gh pages 上,并利用 cf 的 kv 做了个云存档功能。测试发现它提供的 snes 核心对一些汉化游戏的支持不太好,又自己修改编译了一个 snes9x-wasm ,gba 倒是挺完美,ss 也能运行但是速度只有 10 几 fps ,nes 及更早的游戏就没什么兴趣了,然后街机全军覆没,要么提示 rom sets unknown ,要么运行后直接显示 RetroArch……
这两天在折腾把 sdlpal 移植到网页,并适配手机和平板用触屏游玩,以及云存档功能了
battlefield
213 天前
哇,难得碰到类似折腾喜好的同道中人呀。

街机的问题,是不是 Emulator.js 附带的 fba 版本跟你对不上?我自己编译的 GitHub 上最新版 1.0.0.3 的 fba ,ROM 也用的最新版,跑起来没啥问题。存档同步我用的 OneDrive 。
![]( https://user-images.githubusercontent.com/10987902/274794880-a89c74c6-90e9-4192-928c-020d3bbb8bd7.jpg)
battlefield
213 天前
@debuggerx 哇,难得碰到类似折腾喜好的同道中人呀。

街机的问题,是不是 Emulator.js 附带的 fba 版本跟你对不上?我自己编译的 GitHub 上最新版 1.0.0.3 的 fba ,ROM 也用的最新版,跑起来没啥问题。存档同步我用的 OneDrive 。
![]( https://user-images.githubusercontent.com/10987902/274794880-a89c74c6-90e9-4192-928c-020d3bbb8bd7.jpg)
debuggerx
213 天前
@battlefield 谢谢,我没自己编译它的所有核心,只用了它仓库里已经编译好的核心简单试了试,因为我本身对街机游戏也不是很感兴趣,一是我比较喜欢有剧情的,二是街机游戏在手机平板上操作很不舒服。
刚刚把手机浏览器运行 sdlpal 给优化得差不多了,借用了 Emulator.js 项目里虚拟手柄的代码,也分享下:

https://imgur.com/a/dcxX3qV
battlefield
213 天前
@debuggerx 效果不错!
IDKAFK
211 天前
也分享一下收藏的在线游戏包含 FCS 、FC 、街机、GBA 、MD 、暗黑 1 、h5 游戏

[小霸王,其乐无穷 。红白机,FC 在线游戏,街机游戏,街机在线,NES games ,NES games online ,Super Mario]( https://www.yikm.net/)
battlefield
211 天前
@IDKAFK 我知道这个,网站搞得挺好的,也是 retroarch ,我这个算轮子的话这种网站相当于小轿车

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/981589

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX