AX 爱鲜报

EmulatorJS 网页模拟器前端

EmulatorJS 是基于 RetroArch 与 WASM 的浏览器端模拟器前端,用 JavaScript 把 NES、SNES、GBA、N64、PS1、街机等大量经典主机搬进网页,可自托管或走公共 CDN,几行代码即可嵌入自己的站点。

爱鲜报评分

0.0

0 人评分

4.2k

星数

否

中文

JavaScript

主语言

是

活跃

52

贡献者

人工分析

EDITORIAL

推荐理由

它把 RetroArch 的 libretro 核心编译成 WebAssembly,让浏览器直接运行几十种老主机游戏,无需安装任何插件。项目以库/插件形式提供,可自托管也可用官方 CDN,接入成本极低,非常适合做怀旧游戏站、教学演示或产品内的彩蛋模块。GPL-3.0 协议与 4k+ Star 的活跃社区也保证了可持续性。

适用场景

  • 自建怀旧游戏网站或游戏合集页
  • 博客/文档中嵌入可玩的经典游戏 Demo
  • 在线教育或前端教学中演示 WASM 与模拟器原理
  • 企业内部活动页、彩蛋模块的轻量游戏入口
  • 二次开发为游戏平台、ROM 管理系统的播放内核

优点

  • 支持主机种类极多,覆盖任天堂、世嘉、索尼、雅达利等经典平台
  • 纯前端 JavaScript + WASM,无需服务端安装模拟器,浏览器即开即玩
  • 提供公共 CDN 与版本区分(stable/latest/nightly),接入只需几行配置
  • 以库/插件形式设计,方便嵌入任意网页或与现有项目集成
  • 开源免费、无广告,社区活跃,文档与配置器完善

缺点

  • 本身不是独立网站,没有现成 Docker 一键部署方案,需要自行集成
  • ROM 与 BIOS 文件需用户自备,涉及版权与合规风险
  • 不同核心的兼容性与性能差异较大,移动端体验可能受限
  • nightly 分支为开发主线,稳定性不足,生产环境应使用 stable
上手难度 进阶

EmulatorJS 是什么

EmulatorJS 是一个基于 RetroArch / libretro 的浏览器端模拟器前端,使用 JavaScript + WebAssembly 实现。它把大量经典主机的模拟核心编译成 WASM,让用户无需安装任何插件,直接在网页里运行老游戏。

项目本身定位为库 / 插件,而不是一个独立网站,因此可以灵活嵌入到博客、游戏站、教学页面或任意 Web 应用中。

支持的平台

EmulatorJS 覆盖了非常广泛的复古平台,例如:

  • 任天堂系:NES、SNES、N64、Game Boy / GBC / GBA、NDS、Virtual Boy
  • 世嘉系:Mega Drive、Sega CD、Sega Saturn
  • 索尼系:PlayStation
  • 雅达利系:Atari 2600 / 7800、Atari Lynx
  • 以及街机等更多核心

完整的核心列表可参考官方 Cores 文档。

版本与 CDN

项目提供三种版本,便于按需选择:

版本 说明 适用
stable 代码与核心均经过测试 生产环境(默认)
latest 最新代码 + 稳定核心 尝鲜
nightly 最新代码 + 每日更新核心 开发调试,不建议生产

官方提供公共 CDN:https://cdn.emulatorjs.org/,只需指定数据路径与 loader.js 即可使用。

// 示例:指定数据目录
const EJS_pathToData = 'https://cdn.emulatorjs.org/stable/data/';

本地开发

在仓库根目录执行:

npm i
npm run start

随后访问 http://localhost:8080/ 查看演示页面。部署到生产环境前,建议先对脚本进行压缩以优化加载速度与带宽占用。

使用建议

  • 生产环境优先选择 stable 版本,避免 nightly 带来的不稳定。
  • ROM 与部分 BIOS 需自行准备,注意版权与合规问题。
  • 项目以库形式集成,没有官方 Docker 镜像,需要自行嵌入到现有站点或框架中。
  • 遇到问题时,提交 Issue 请注明所用版本(Stable / Latest / Nightly)并附上浏览器控制台日志。

适合谁用

如果你正在做怀旧游戏站、在线游戏合集、前端 WASM 教学演示,或想给产品加一个「能玩经典游戏」的彩蛋模块,EmulatorJS 是一个成熟且接入成本很低的选择。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。