前言¶
在 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 負責遊戲庫、市場、播放器與設置面板。
- 維護者:zeelinkCN
- 倉庫:https://github.com/zeelinkCN/dsh-game-bench
- 目錄頁:https://www.skillhub.cn/plugins/zeelinkCN/dsh-game-bench
- 許可:MIT(第三方 ROM、jsnes 等另見
THIRD-PARTY.md、GAME-RIGHTS.md) - 版本(manifest):
@local/game-bench1.0.0
插件解決的是:在已有 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 側憑據查找順序爲:
- 插件設置裏粘貼的 Personal Access Token(寫入數據目錄
settings.json,權限 0600) - 環境變量
GITHUB_TOKEN/GH_TOKEN - 本機
gh auth token(README 推薦先執行gh auth login) - 資源庫公開時可匿名訪問
均無憑據時,市場頁顯示授權引導;內置遊戲不受影響。
模擬器與操作¶
模擬器封裝在 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。
典型用法¶
- 安裝 bundle 後,在 DSH 左側欄點擊手柄圖標,進入「遊戲庫」。
- 選擇內置或已安裝遊戲,在播放器內用鍵盤或手柄操作;需要時打開設置調整 CRT、倍速等(以面板爲準)。
- 若需從市場擴充:在插件設置中配置 GitHub Token,或配置
GITHUB_TOKEN/ 使用gh auth login,再在「遊戲市場」按合集或搜索安裝;安裝完成後回到遊戲庫啓動。 - 遊玩中用工具欄存讀檔;長時間遊玩可依賴自動存檔槽。
倉庫還提供自測命令,供開發者在本地驗收 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 工作流里加一塊紅白機角落,可從目錄頁與倉庫進一步瞭解細節。