このプロジェクトについて
JSNESは、JavaScriptで書かれたフル機能のニンテンドーエンターテインメントシステム(NES)エミュレータです。ブラウザとNode.js環境の両方で動作し、Webベースのレトロゲームプロジェクト、組み込みエミュレータ、サーバーサイドツールに適しています。
このライブラリは、主に2つのエントリポイントを提供します:
- `jsnes.Browser` — キャンバス描画、Web Audio API再生、キーボードとゲームパッド入力、フレームタイミングを自動的に処理する高レベルラッパーです。URLまたは生データからROMを読み込むことができ、スクリーンショット、一時停止/再開、クリーンアップのメソッドを提供します。
- `jsnes.NES` — カスタム統合用の低レベルコアです。コールバックを介して生のフレームバッファ(256×240 ARGB Int32Array)とオーディオサンプルを出力し、タイミング、レンダリング、入力処理は開発者に委ねられます。
主な機能は以下の通りです:
- 設定可能なキーバインド(localStorageに保存)を備えた標準NESコントローラ(2人プレイ)のサポート。
- 最新コントローラ向けのGamepad APIサポート。
- ザッパーライトガンエミュレーション。
- セーブ状態用のコールバックを介したバッテリーバックアップSRAM永続化。
- セーブ/ロード状態のシリアライズ(`toJSON`/`fromJSON`)。
- 調整可能なフレームレートとFPSモニタリング。
- Reactコンポーネントの例が含まれています。完全なReactフロントエンドは`web/`ディレクトリにあります。
インストールはnpm(`npm install jsnes`)またはunpkg CDNのスクリプトタグで直接行えます。ビルドはPrettierフォーマットを使用し、テストスイートが含まれています。
JSNESはJames SandersのvNESに由来し、Matt WescottのJSSpeccyに触発されました。現在も積極的にメンテナンスされており、インターネット経由のマルチプレイNES向けNEStationなどのプロジェクトで使用されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.