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

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

  1. fc安卓模拟器_安利一款手机上的红白机模拟器

    戳上面的蓝字关注我哦! 使用平台:安卓 软件简介: NES.emu是一款任天堂红白机(NES.FC)模拟器,软件支持横竖屏.自动保存游戏进度.按键自定义等功能,还可以自行编辑作弊文件,小编为大家带来的 ...

  2. nes 红白机模拟器 第6篇 声音支持

    InfoNES 源码中并没有包含 linux 的声音支持. 但提供 wince 和 win 的工程,文件,通过分析,win 的 DirectSound 发声,在使用 linux ALSA 实现. 先使 ...

  3. 使用C++实现FC红白机模拟器 Cartridge 与 Mapper(实现篇)

    (继上篇:原理篇,下:实现篇) 2. Cartridge 与 Mapper的实现 首先我们在QT中创建两个类,Cartridge 与 Mapper类: Cartridge 类负责加载和解析ROM,因为 ...

  4. 使用C++实现FC红白机模拟器 Cartridge 与 Mapper(原理篇)

    1. 认识nes文件 我们既然是模拟,就不可能使用实体的卡带硬件.那我们如何获取游戏文件呢?好在已经有人为我们准备好了(心怀感恩). .nes文件是NES(FC)的rom文件,关于它的来龙去脉这里就不 ...

  5. ADI Blackfin DSP处理器-BF533的开发详解70:NES 红白机模拟器(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 代码实现功能 代码实现了 NES 游戏模拟器在 ...

  6. 云起实验室:零基础入门Serverless:一键部署红白机小游戏

    本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个红白机小游戏. 点击立即参与云产品场景体验https://developer.aliyun.com/adc/scenario/5796ce32 ...

  7. VirtualNES虚拟红白机

    VirtualNES虚拟红白机 -MD建档时间:2016/2/17 6:39 PM -CSDN发布:http://blog.csdn.net/winsenjiansbomber/article/det ...

  8. 【历史上的今天】10 月 18 日:Internet Explorer 7 正式发布;全球首家网络银行开业;“美版红白机” NES 诞生

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 10 月 18 日,在 100 年前的今天,英国 BBC 广播电视台成立:BBC 是世界上最大的新闻 ...

  9. 编译VirtualNES虚拟红白机

    VirtualNES虚拟红白机 MD建档时间:2016/2/17 6:39 PM CSDN发布:http://blog.csdn.net/winsenjiansbomber/article/detai ...

最新文章

  1. 使用 class-dump 扫描 app 关键字
  2. 成功将用intelli idea 建立的项目打包成jar文件,并在Linux上成功运行
  3. ITK:创建一个向量
  4. 一劳永逸:域名支持通配符,ASP.NET Core中配置CORS
  5. 运维从业人员是否需要考证?
  6. 【LeetCode】剑指 Offer 38. 字符串的排列
  7. 获取小程序 openid
  8. 网络中的那些事儿(一)之神奇的通讯
  9. 简单自学机器学习理论——引言 (Part I )
  10. Phoenix Tips (13) 统计收集
  11. 2010年11.30日 爱普生 武昌培训 Technical workshop OPOS INSTALL
  12. 交换机的RTU License 华为S5700交换机
  13. QTsocket网络编程
  14. Java实现首字母转大写、小写StringUtils.capitalize
  15. 如何在网页title前面加logo
  16. 大淘客cms源码修改二次开发
  17. ios 开发控件中心点_IOS开发UI篇—手写控件,frame,center和bounds属性
  18. php虚拟主机的配置
  19. c 语言编程 脚本之家,wincc c脚本实例wincc赋值程序
  20. scrapy 远程登录控制台

热门文章

  1. 涂层与散射的能量守恒
  2. python老男孩培训
  3. Acwing-4366. 上课睡觉
  4. log4j-over-slf4j与slf4j-log4j12共存stack overflow异常分析
  5. -moz-max-content使用
  6. android 图片平铺与拉伸
  7. 四种实体类类型:VO、DTO、DO、PO
  8. Android Accessibility实践 程序检查微信被删好友
  9. Python正则表达式 re 用法
  10. Google三大论文之 - GFS