程式忍者PGNinja

Hacker News

開發者把任天堂紅白機編譯進 Qwen 模型權重裡執行

· 開源專案 nesformer 把完整的 NES 6502 CPU 編譯進 Qwen3.5 模型權重,讓模型逐個 token 推理出遊戲畫面。

nesformer 是一個開源實驗專案,把任天堂紅白機(NES)的 6502 CPU 完整編譯進 Qwen3.5 大語言模型的權重中,讓使用者直接透過模型的推理過程執行超級瑪利歐兄弟等經典遊戲。這個做法延續自 Divyansh Agrawal 的 Qwenputer 專案,Qwenputer 先前已把 CHIP-8 與 RISC-V 處理器編譯進 Qwen3.5 權重,nesformer 重用了其中的編譯器與記憶體狀態設計。

專案使用 Qwen3.5-4B 架構,內含 7 層 Gated DeltaNet 層,模型有 4.66 億參數,但編譯器把大部分權重設為零,只留下約 930 萬個非零權重(壓縮後約 3.3 MB)。關鍵做法是把 Gated DeltaNet 的狀態矩陣直接當成機器記憶體使用,每個頭維持 128×128 的狀態矩陣,透過 delta 規則更新,模擬出 16,384 個記憶單元存放 CPU 暫存器與 RAM。模型內部處理 6502 的 151 個官方操作碼與畫面渲染,主程式則負責控制器輸入等周邊工作。

作者用 nestest 的 3,348 條指令測試驗證電路邏輯正確,確認模型逐 token 推理出的執行結果與傳統 6502 模擬器完全一致。預設引擎用 numba JIT 編譯,可達每秒約 1,650 個 token,並透過跳過等待畫面更新的閒置迴圈,把需要的 token 數量減少 2.6 到 4.2 倍。不過目前只支援沒有記憶體分頁切換的簡單遊戲卡匣,也沒有聲音與中斷功能,算是展示語言模型能力邊界的實驗而非實用工具。

這個專案比較像是展示大語言模型「到底能做到什麼」的極限測試,不是一般學程式會用到的技術,但對喜歡動手做專案、對硬體模擬或復古電玩有興趣的孩子來說,是個有趣的例子:它說明了 CPU、記憶體這些電腦基礎概念,原來也可以用完全不同的方式重新實作出來。

AI開源復古電玩

其他新聞