拾光遊戲廳(dsh-game-bench):在 DSH 側邊欄裏跑瀏覽器紅白機

前言

在 DeepSeek Harness(DSH)里長時間做對話、編排或調試時,偶爾需要一塊不離開工作區的「休息角」——既不必另開桌面模擬器,也不必把上下文切到別的應用。拾光遊戲廳(Game Bench)是維護者 zeelinkCN 發佈的一類 客戶端 插件:在左側欄增加手柄入口,點開即在瀏覽器內運行基於 jsnes 2.1.0 的紅白機模擬,並附帶本地遊戲庫、可選的遊戲市場、存檔與 CRT 濾鏡等能力。DSH 的生態理念是「一切皆插件」;社區插件目錄由獨立站點維護,與 DeepSeek / 幻方無官方從屬關係。本文依據倉庫 README 與 manifest 介紹其定位、能力與安裝方式,安裝前請自行閱讀源碼與許可證。

這是什麼

拾光遊戲廳(Game Bench) 是 DSH 的 Web 客戶端插件(package.json 中 dsh.client.platform 爲 web,並注入側邊欄相關 UI 包)。Host 側由 index.js 提供 /game-bench/api/* 等路由;前端 client.js 負責遊戲庫、市場、播放器與設置面板。

插件解決的是:在已有 DSH Web UI 的 macOS / Windows / Linux 上,用同一份代碼在瀏覽器裏即開即玩 NES,並把擴展 ROM 通過市場安裝到本機數據目錄,斷網後仍可玩已緩存內容。

核心功能

遊戲庫與內置 ROM

面板打開後默認進入遊戲庫。隨包分發 8 款 內置遊戲:7 款經典紅白機作品(README 列舉:超級瑪麗、魂鬥羅、赤色要塞、雪人兄弟、坦克大戰、松鼠大作戰、雙截龍2)以及作者原創 demo「星光試航 Star Pilot」。ROM 與封面在 games/ 目錄,斷網也可玩內置內容。

README 說明:7 款經典 ROM 爲第三方版權作品,不由 MIT 許可覆蓋;倉庫聲明所有者已取得再分發許可,使用前第三方應自行確認權利,詳見 GAME-RIGHTS.md。

遊戲市場

市場對接私有資源庫 zeelinkCN/game-bench-library(README 稱 1100+ 款、帶封面與 SHA-256)。讀取 catalog.json / store.json,點選即可下載安裝;ROM 與封面校驗 SHA-256 後寫入本機緩存,之後可離線遊玩。

訪問市場需要 GitHub 讀權限。Host 側憑據查找順序爲:

  1. 插件設置裏粘貼的 Personal Access Token(寫入數據目錄 settings.json,權限 0600)
  2. 環境變量 GITHUB_TOKEN / GH_TOKEN
  3. 本機 gh auth token(README 推薦先執行 gh auth login)
  4. 資源庫公開時可匿名訪問

均無憑據時,市場頁顯示授權引導;內置遊戲不受影響。

模擬器與操作

模擬器封裝在 engine.js,分發未改動的 vendor/jsnes.min.js(jsnes 2.1.0,Apache-2.0)。README 記載:瀏覽器內目標 60fps(實測約 0.9ms/幀),支持 Web Audio 立體聲、鍵盤/手柄、倍速、CRT 濾鏡、截圖、全屏。

鍵位與手柄(摘自 README 操作表):

功能 鍵盤 手柄
方向 ↑ ↓ ← → 十字鍵 / 左搖桿
B(跳/開火) Z A
A(跑/跳彈) X B
Start Enter Menu / Start
Select Shift View / Back
暫停 / 返回 Space / Esc —
2P WASD + J/K 第二隻手柄

存檔:工具欄「存檔 / 讀檔」提供 3 個手動槽 + 自動槽(每 60 秒、暫停、退出、頁面切走時寫入)。存檔在瀏覽器 IndexedDB(庫名 game-bench),不在 Host 數據目錄;刪除遊戲不會刪除存檔。

安裝與啓用

README 給出的安裝方式爲從本地插件目錄安裝 bundle(開發/自用場景):

# 從本倉庫目錄安裝(開發/自用)
plugin_manager install_bundle target=/path/to/dsh-game-bench

將 target= 換成你本機上的 dsh-game-bench 目錄絕對路徑。安裝後左側欄應出現手柄圖標,無需重啓 DSH;若未出現,刷新 Web 頁面。

插件以當前 DSH 進程權限運行,並可能訪問本機文件、GitHub API 與網絡以下載 ROM。安裝前請審閱 index.js、server/ 與相關文檔(docs/API.md、docs/ENGINE.md、docs/CONTRACT.md)。

數據目錄與環境變量

Host 側緩存與市場元數據落在下列路徑(可用 DSH_GAME_BENCH_DATA=/custom/path 覆蓋):

平臺 路徑
macOS ~/Library/Application Support/DSH Game Bench
Windows %APPDATA%\DSH Game Bench
Linux $XDG_DATA_HOME/dsh-game-bench 或 ~/.local/share/dsh-game-bench

目錄內通常含 catalog.json、store.json、roms/、covers/、library.json、settings.json。

典型用法

  1. 安裝 bundle 後,在 DSH 左側欄點擊手柄圖標,進入「遊戲庫」。
  2. 選擇內置或已安裝遊戲,在播放器內用鍵盤或手柄操作;需要時打開設置調整 CRT、倍速等(以面板爲準)。
  3. 若需從市場擴充:在插件設置中配置 GitHub Token,或配置 GITHUB_TOKEN / 使用 gh auth login,再在「遊戲市場」按合集或搜索安裝;安裝完成後回到遊戲庫啓動。
  4. 遊玩中用工具欄存讀檔;長時間遊玩可依賴自動存檔槽。

倉庫還提供自測命令,供開發者在本地驗收 Host 接口與模擬器(需 Node,README 示例使用 NODE=node):

node dsh-game-bench/server/selftest.mjs
node dsh-game-bench/engine.selftest.mjs
node dsh-game-bench/selftest/run.mjs
node dsh-game-bench/selftest/real-api.mjs

適用場景與注意

適合:已在用 DSH Web UI、希望在同一界面內進行短時復古遊戲放鬆;需要可離線遊玩的內置包,並可選地從 game-bench-library 擴充庫的用戶。

注意:

  • 插件爲 客戶端 類型,依賴瀏覽器 Web Audio、IndexedDB 與手柄 API。
  • 市場 ROM 版權與再分發責任由使用者自行確認;內置經典 game’s 權利說明見 GAME-RIGHTS.md。
  • GitHub Token 會以受限方式寫入 settings.json;請勿在不受信環境粘貼高權限 Token。
  • 星標與社區熱度不等於安全審計;以源碼與許可證爲準做安裝決策。

結尾

拾光遊戲廳把 jsnes 2.1.0、本地遊戲庫與可選 GitHub 驅動的遊戲市場收成 DSH 側邊欄裏的一個面板:內置 8 款可離線玩,擴展 ROM 校驗後落盤,存檔留在瀏覽器 IndexedDB。若你要在 Harness 工作流里加一塊紅白機角落,可從目錄頁與倉庫進一步瞭解細節。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜