撸一个VS Code插件——红白机模拟器 支持手柄 支持保存
分享我自己写的VS Code红白机模拟器
前言
我曾经利用 jsnse 这个库封装了一个vue组件的nes模拟器:nes-vue: Vue 3 的NES(FC)模拟器组件 (gitee.com),最近心血来潮想试试能不能开发一个VS Code的插件版本。
市场地址:红白机 - Visual Studio Marketplace
仓库地址:VS Code插件 —— 红白机模拟器
使用
在VS Code插件市场搜“红白机”就能找到:
安装后,点击侧边栏的图标,就可以选择游戏进行游玩了:
功能
- 支持手柄
- 支持连发键
- 支持即时保存、读取
- 支持切换分辨率
- 支持暂停、静音
- 支持加载本地ROM
- 支持双人
几点说明:
- 出于VS Code的安全策略,选择游戏后,必须手动点击屏幕中的 点我开始游戏 才能运行,我估计 小霸王 这个插件现在不能用了,就是因为这个。
- 因为始终只有一个存档,所以读取时要注意,游戏必须正在运行,并且确保运行的游戏与保存的是一致的。
- 手柄即插即玩,但我只测试了PS手柄,也不清楚按键映射是否符合其他人的习惯,欢迎提意见。
- 个别游戏的画面边缘会有显示不全的问题(例如坦克1990),可以去掉勾选“剪切画面边缘”,但大部分游戏还是建议勾上。
如果想要更多的功能,欢迎反馈。
远程ROM地址
我默认提供了20多个游戏的远程ROM地址,利用的是 Github Page ,理论上不太需要担心会失效的问题。
远程ROM不会下载到本地,所以每次选择游戏时,都会有个加载的过程,如果对Github的网速不好,个别游戏可能需要加载较长时间。
如果你想配置自己的远程ROM,可以点击扩展设置
然后编辑settings.json
可以在vscodeNes.romPath
这个字段中,参照已有格式,任意增删改。
注意,游戏地址只能是在线地址,本地ROM可以直接在这里添加:
关于jsnes这个库
如果你对 jsnes 感兴趣,可以留言告诉我,因为这个库的官方文档写得太简陋,官方提供的示例又太复杂,新手第一次用会完全不知如何下手,更别提如何改分辨率、如何保存读取等等,我找时间分享一下我对它的使用经验,
转载自:https://juejin.cn/post/7231753231889711159