8bitゲーム機の音を出すアプリは、たいてい2種類に分かれます。既存の曲を再生するプレイヤーか、「8bit風」のプリセットを選ぶシンセか。前者では自分の曲が作れず、後者ではデューティ比を変えたら音がどう変わるのかという、あの音源を触る面白さが手元に残りません。
その隙間を埋めるために開発した5チャンネルのチップチューン作曲アプリ 「M-NES: 8bitチップチューン作曲」 を、App Storeで公開しました。
▶ App Storeで見る(1,200円・買い切り) | 製品ページ:M-NES
📌 M-NESの3行まとめ
① 8bitゲーム機の音源チップ RP2A03 APU をレジスタ単位で再現した5チャンネルの作曲環境
② NSF / NSFeを内蔵の6502 CPU+APUエミュレーションで再生し、編集できる音符へ起こせる
③ 独自の6502ドライバを埋め込んだ実機準拠のNSF書き出しと、48kHz WAV / プロジェクト保存
「それっぽい音」ではなく、チップそのものを鳴らす
ファミコン(NES)の音源であるRP2A03 APUは、矩形波2ch、三角波、ノイズ、そして1bit DPCMサンプルの5チャンネルで構成されています。M-NESのピアノロールは、この5本と1対1で対応した固定レーンです。トラックは増やせません。
増やせない代わりに、画面で見ているトラックと、実機で鳴るチャンネルが常に一致します。UIで動かすパラメータは、内部でAPUレジスタへの書き込みへそのまま落ちます。だからこそ、作った曲を実機準拠のNSFとして書き出せます。
| チャンネル | 実装している要素 |
|---|---|
| Pulse 1 / 2 | デューティ比4種、ハードウェアスイープ、音量エンベロープ、Length counter |
| Triangle | リニアカウンタまで再現。音量調整を持たない仕様もそのまま |
| Noise | 16種の周期と、短周期(93ステップ)モード。音の高さで周期を選ぶ |
| DMC | 1bit DPCMサンプル再生とDMC状態機械 |
出力は実機と同じ 48kHzモノラル。Blip Bufferによる帯域制限変換と、Pulse / TNDの非線形DAC経路を通しています。三角波とノイズの音量関係が実機と違って聞こえる、という問題が起きにくい経路です。
さらに NTSC 2A03 / PAL 2A07 / Dendy のクロックを切り替えられます。同じ譜面でも、地域によって音高とテンポがわずかにずれる——その差を、切り替えて確認できます。実音高、タイマー値、cent誤差も画面に表示します。
NSFを「聴く」から「編集する」へ
M-NESでいちばん時間をかけたのは、NSF / NSFeの取り込みです。
.nsf / .nsfe を開くと、まず内蔵の6502 CPUとAPUエミュレーションで原曲をそのまま再生します。ここには Game Music Emu(LGPL-2.1)のNESコアを使用しています。ゲーム固有の音楽ドライバで書かれた曲でも、ファイル内の6502プログラムを実行するため、そのまま鳴ります。複数曲入りのファイルは曲リストから1曲ずつ選べます。
そのうえで、選んだ曲を再エミュレートし、APUレジスタへの書き込みを1フレームずつ追跡します。音程、タイミング、音量、デューティ比、ノイズ周期を復元し、5トラックの編集可能なノートとしてピアノロールへ取り込みます。
💡 なぜ「取り込み」が要るのか
NSFは楽譜ではなく、音を鳴らすプログラムです。中を開いても、そこにあるのは6502のコードとデータテーブルであって、音符の並びではありません。だから「鳴らす」ことと「編集する」ことの間には、レジスタ列を音符へ戻すという一段が必要になります。
耳コピの下敷きにする、アレンジの素材にする、フレーズの組み立て方を調べる——取り込んだ曲はそのまま編集・再生できます。
⚠ M-NESには、著作権のあるゲーム素材は一切含まれていません。NSFやDPCM素材の読み込みは、必要な権利をお持ちの素材にのみご利用ください。解析・変換・保存はすべて端末内で完結します。
DPCM:8bit機で「サンプル」を鳴らす
5本目のDMCチャンネルは、1bitのDPCMサンプルを再生します。8bit機のドラムや声ネタは、ここから鳴っていました。
M-NESは .dmc の生1bitデータをそのまま読み込めるほか、手持ちの WAV / AIFF / CAF を実機仕様のLSB-first 1bit DPCMへ自動変換します。波形プレビューを見ながら、ドラムや声を配置できます。
1bitという極端な量子化のため、変換すると音は必ず粗くなります。それを「劣化」ではなく音色として扱えるように、変換前後を比べながら素材を選べる作りにしました。
実機準拠で書き出す
書き出しは4種類です。
| 形式 | 内容 |
|---|---|
| NSF / NSFe | 独自の6502再生ドライバと、レジスタ差分列を生成。標準的なNSFプレイヤーや実機で再生できます |
| WAV | 48kHzモノラル。オフラインレンダリング |
| DMC | 配置したDPCMサンプルの生データ |
.nesseq | 全編集データを含むJSONプロジェクト |
NSF書き出しは標準APUの5チャンネルを対象とし、1曲・非バンク切替の互換ファイルを生成します。DPCMは1プロジェクトにつきNSFへ配置するサンプルを1つ選択します。
テストでは、DPCMのビット順と飽和、プロジェクトの往復、地域別の音高、WAVとNSF / NSFeの構造検証に加えて、生成したファイルを実際にGame Music Emuで再生し、無音になっていないことまで確認しています。書き出せたが鳴らない、という失敗が最も見つけにくいためです。
できることと、保証しないこと
M-NESはゲームエミュレーターではありません。ROMの読み込みも、映像も、ゲームコードの実行もありません。エミュレートするのは音源チップと、音楽ファイル内のCPUルーチンだけで、出力は音のみです。
NSF / NSFeの読み込みはファイル内の6502プログラムを実行しますが、ピアノロールへの自動逆変換を万能に行うものではありません。取り込みはレジスタ書き込みの追跡による復元であり、元の作曲データそのものではありません。
できることと保証しないことを分けて示すのは、HexaChip、MegaTuneから続けている方針です。
オフラインで完結する
アプリはネットワークを使いません。アカウント登録なし、広告なし、トラッキングなし、完全オフラインで動作します。作曲、再生、書き出しはすべて端末内で完結します。
画面はiPadで3ペイン、iPhoneで4タブに切り替わります。トラック、ピアノロール、音色パネルのどれを大きく見せるかを、端末の画面幅に合わせて変えています。
製品概要
| 項目 | 内容 |
|---|---|
| 名称 | M-NES: 8bitチップチューン作曲 |
| 提供開始 | 2026年8月 |
| 対応OS | iOS 17.0以降 / iPadOS 17.0以降 / macOS 14.0以降(Apple M1以降)/ visionOS 1.0以降 |
| 価格 | 1,200円(買い切り・追加課金なし) |
| 対応言語 | 日本語・英語 |
| カテゴリ | ミュージック |
| 配信 | App Store |
| 開発・提供 | 株式会社Code and DESIGN |
M-NESは独立した製品であり、いかなる家庭用ゲーム機メーカーとも提携・承認関係はありません。NSF / NSFeは8bitゲーム音楽の保存に使われるコミュニティ策定のファイル形式です。
会社概要
| 項目 | 内容 |
|---|---|
| 会社名 | 株式会社Code and DESIGN(Code and DESIGN inc.) |
| 代表者 | 代表取締役 中島安彦 |
| 事業内容 | iOSアプリ・ゲーム・Webサービスの企画・開発・運営、受託開発 |
| Webサイト | https://code-and-design.jp/ |
| App Store | 開発者ページ |
関連する記事
音源そのものの仕組みはファミコンの音源の仕組みに、NSFというファイル形式の中身はNSF・NSFeとはにまとめています。機種ごとの違い全体はチップチューン完全ガイド、最初の1曲の組み立て方はチップチューンの作り方入門をご覧ください。
デューティ比を1段変えるだけで、同じ音符がまったく別の性格になる。その手触りごと持ち歩ける制作環境として、M-NESを育てていきます。ご意見・ご要望はお問い合わせからお寄せください。



