撸一个VS Code插件——红白机模拟器 支持手柄 支持保存

分享我自己写的VS Code红白机模拟器

前言

我曾经利用 jense 这个库封装了一个vue组件的nes模拟器:nes-vue: Vue 3 的NES(FC)模拟器组件 (gitee.com),最近心血来潮想试试能不能开发一个VS Code的插件版本。

一搜发现竟然已经有了,就叫 小霸王,但我试了一下,发现这个插件现在已经不能用了(我目前用的VS Code版本1.74,也许旧版本的还能用,我没试。),受到它的启发,我撸了一个目前能用、且功能更强大的版本。

市场地址:红白机 - Visual Studio Marketplace

仓库地址:VS Code插件 —— 红白机模拟器

使用

在VS Code插件市场搜“红白机”就能找到:

在这里插入图片描述

安装后,点击侧边栏的图标,就可以选择游戏进行游玩了:

在这里插入图片描述

功能

  • 支持手柄
  • 支持连发键
  • 支持即时保存、读取
  • 支持切换分辨率
  • 支持暂停、静音
  • 支持加载本地ROM
  • 支持双人

几点说明:

  • 出于VS Code的安全策略,选择游戏后,必须手动点击屏幕中的 点我开始游戏 才能运行,我估计 小霸王 这个插件现在不能用了,就是因为这个。
  • 目前只 支持一个存档,我还不确定VS Code是否支持Indexed DB,如果支持的话,或许后续可以为每一个游戏都提供存档。
  • 因为始终只有一个存档,所以读取时要注意,游戏必须正在运行,并且确保运行的游戏与保存的是一致的。
  • 手柄即插即玩,但我只测试了PS手柄,也不清楚按键映射是否符合其他人的习惯,欢迎提意见。
  • 个别游戏的画面边缘会有显示不全的问题(例如坦克1990),可以去掉勾选“剪切画面边缘”,但大部分游戏还是建议勾上。

如果想要更多的功能,欢迎反馈。

远程ROM地址

我默认提供了20多个游戏的远程ROM地址,利用的是 Github Page ,理论上不太需要担心会失效的问题。

远程ROM不会下载到本地,所以每次选择游戏时,都会有个加载的过程,如果对Github的网速不好,个别游戏可能需要加载较长时间。

如果你想配置自己的远程ROM,可以点击扩展设置

在这里插入图片描述

然后编辑settings.json

在这里插入图片描述

可以在vscodeNes.romPath这个字段中,参照已有格式,任意增删改。

在这里插入图片描述

注意,游戏地址只能是在线地址,本地ROM可以直接在这里添加:

在这里插入图片描述

关于jsnes这个库

如果你对 jsnes 感兴趣,可以留言告诉我,因为这个库的官方文档写得太简陋,官方提供的示例又太复杂,新手第一次用会完全不知如何下手,更别提如何改分辨率、如何保存读取等等,我找时间分享一下我对它的使用经验,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值