Skip to content

carzygod/eGBA

Repository files navigation

eGBA Library

一个基于 Chrome Extension (MV3) 的 GBA 游戏库与启动器。核心模拟器采用 EmulatorJS(mGBA 核心),在弹窗内直接游玩,并提供 ROM 管理、缓存与存档功能。

主要功能

  • 弹窗内游玩:不跳转到新页面,所有交互都在扩展弹窗完成
  • 游戏库:列表/网格视图、搜索、收藏、我的游戏
  • ROM 缓存:Service Worker + Cache Storage 管理,支持缓存列表与清理
  • 存档系统:
    • SRAM 存档:导入/导出/删除,持久化
    • Save State:多条存档,不覆盖,可下载/导入/删除,带时间戳
    • 自动存档:弹窗关闭时自动保存(SRAM + 自动存档)
  • 多语言:简体中文、繁体中文、英语、俄语、日语(默认英语,记录在 localStorage)
  • 暗色 UI:支持游戏画布优先展示

目录结构

  • popup.html / app.css / app.js:主界面与交互逻辑
  • ejs.html / ejs.js:EmulatorJS 宿主与桥接逻辑
  • ejs/data/:EmulatorJS 资源与 mGBA 核心
  • sw.js:ROM 缓存与进度管理
  • sample-games.json:内置 ROM 列表样例
  • options.html / options.js:选项页(用于配置等)

游戏列表

扩展会优先读取已保存的游戏列表;若为空则加载 sample-games.json 作为示例数据。ROM 链接由 romUrl 提供。

字段示例(最小化):

[
  {
    "id": "pokemon-emerald",
    "title": "Pokemon Emerald",
    "romUrl": "https://example.com/roms/pokemon-emerald.gba",
    "region": "US",
    "version": "1.0",
    "tags": ["rpg"]
  }
]

安装与运行

  1. 打开 chrome://extensions,开启“开发者模式”
  2. 选择“加载已解压的扩展程序”,指向本项目目录
  3. 点击扩展图标打开弹窗并进入游戏库

存档说明

  • SRAM 使用 localStorage 保存,适合长期存档
  • Save State 存为多个独立条目,带时间戳,可导出/导入
  • 弹窗关闭时自动保存(SRAM + 自动存档)

ROM 缓存说明

ROM 缓存使用 Cache Storage。可在 “ROM Cache” 页面查看与删除缓存条目。

多语言

默认英语,可在首页语言下拉切换。选择会写入 localStorage 并持久化。

注意事项

  • 本扩展不提供 ROM 下载,只使用你提供的 ROM URL
  • 大量存档占用 localStorage 空间,请定期清理
  • EmulatorJS 资源在 ejs/data/,只保留 mGBA 核心可显著减小体积

About

Chrom extension GBA Player

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published