NSF Player

在瀏覽器裡直接還原任天堂紅白機(Famicom / NES)的 2A03 聲音晶片,播放 .nsf 多軌音樂檔,不需外掛或伺服器。

點一下選擇 .nsf 檔案 或把檔案拖放到這裡

—

REALTIME CHANNEL MONITOR
PULSE 1
—
PULSE 2
—
TRIANGLE
—
NOISE
—
DMC
—

作曲 —

版權 —

音軌

播放控制

重複播放本曲

請先載入一個 .nsf 檔案。

給開發者:可重用的播放介面(window.NSFPlayer)

本頁面的播放引擎(6502 CPU 模擬、2A03 音源晶片、NSF 解析)都封裝在下方 <script> 區塊裡,並統一掛在全域物件 window.NSFPlayer 上。把整個 <script> 區塊複製到其他網頁,再接上你自己的介面元素,即可重用:

// 載入 NSF(接受 File 物件或 ArrayBuffer),回傳 Promise<metadata>
await NSFPlayer.loadNSF(fileObjectOrArrayBuffer);

// 選擇要播放的音軌(0-based 索引)
NSFPlayer.selectTrack(0);

// 播放 / 暫停 / 繼續
NSFPlayer.play();
NSFPlayer.pause();
NSFPlayer.resume();

// 停止(重置到尚未初始化狀態)
NSFPlayer.stop();

// 設定或讀取「是否重複播放本曲」
NSFPlayer.setLoop(true);
NSFPlayer.isLoop(); // -> true / false

// 讀取目前曲目資訊 / 引擎狀態
NSFPlayer.getMetadata(); // { name, artist, copyright, totalSongs, currentTrack, startSong }
NSFPlayer.getState();    // { loaded, playing, loop, currentTrack }

// 訂閱狀態變化(載入、切換音軌、播放/暫停皆會觸發)
NSFPlayer.onStateChange(state => console.log(state));