LSDjライクなFC/NES実機用Tracker『Risa Tracker』を使う

M8 TrackerLSDjでの音楽制作活動や、M8関連ツールのm8cの開発でも知られるlaamaaが、LSDjの操作系や画面仕様からインスパイアされた、Risa Trackerという新しい作曲ツールを開発・無料公開しました。
Risa TrackerはFC/NES用の実機上で動作するTrackerという点がポイントです。
FC/NES音源向けのツールは、FamiTrackerFamiStudioに代表されるようなTrackerやピアノロールで制作するものや、nsd.libmck系のようなMMLで記述してCLIでコンパイルするものがありましたが、前述のいずれもPC上で使用することで実機向けの演奏データを出力できるものです (.nsfファイル等)。
今までにもNTRQのような実機用Trackerの試みはありましたが、Risa Trackerは完成度の面で過去の実機用制作ツールよりも明らかに上をいっていると感じています。
(もちろん、長年を経て磨かれてきたLSDjの功績があってこそだとは思いますが。)

そんなRisa TrackerをLSDjやM8に長年親しんできた自分が触った感想としては本当によくできていて、迷いなく音を並べられるツールがまた一つ増えたという気持ちです。まだ開発途上で機能の拡充が進められており、今後の進化も楽しみです。
現時点で日本語でまとめられた記事は恐らくないので、これから気になった人がこの記事にたどり着いた時のために、概要や導入に関する注意点などをまとめておきます。
具体的な操作方法等にはあまり触れず、導入や動作に関係する部分の情報に絞ります。
(先にBlueSkyで軽くまとめてくれたK->さんに触発される形で書き始めました。感謝!)

以下の情報は、2026/07/10時点でのものです
執筆時点での最新バージョンは、v2.2.0です

【Risa Trackerの仕様の特徴】
・FC/NES実機形式のROM
・エミュレーターもしくは実機で動作
・カートリッジタイプ (マッパー) はMMC5
・音源は内蔵の矩形波x2, 三角波x1, ノイズx1, DPCMx1と、MMC5に搭載されている矩形波x2 (ただし、内蔵の矩形波x2に連動して動作するような、補助的な役割に限定)
・楽曲データのセーブ/ロードが可能
・DPCMのサンプリング音声をユーザーがカスタマイズ可能
・RP2A03側のタイマーでテンポを管理している様子で、VSyncタイミングに依存しないBPM設定が可能 (VSync依存の実装ではBPM150の倍/半分等に限定されがちだが (NTSC環境の場合)、Risa Trackerでは例えばBPM128や173といった値を設定できる)
・GB実機用音楽シーケンサーのLSDjと操作やコマンド名、シーケンサー仕様レベルで多くの共通点を持つ

 

【エミュレーター等での動作に必要なもの】
・Risa TrackerのROMデータ
・動作に対応するFC/NESエミュレーター等 (後述)

【対応するエミュレーター等について】
Risa Trackerはv2系とv1系で若干動作要件に変更がありましたが、ここではv2系の話をします。
エミュレーター向けに簡単に書くと、Risa Trackerは次の環境での動作を前提としています。
・マッパーはMMC5 (mapper 5)
・SRAMは64KB (512kbit)
マッパーの要件は、よく知られているものであればほぼ全てのエミュレーターで問題ないはずです。
SRAMの条件が少々曲者で、MMC5で市販されたゲームで使われたのは32KB (256kbit) まででした。MMC5のチップ自体は64KBまで対応しているため、Risa Trackerではこの容量を要求しています。
市販ゲームで使用されなかった容量のため、このSRAMサイズに対応していないエミュレーター等も多いです。自分の検証結果をまとめます。(全てWindows 64bit版で確認)

[確認した恐らく正常動作可能なエミュレーター等]
MesenCE (v2.2.1) (開発者もこちらで確認とのこと)
FCEUX (v2.6.6)
NintendulatorNRS (202602081929)
puNES (v0.111) (SRAMデータの拡張子は.prb)
BizHawk (v2.11.1)
higan (v110)
libretro-fceumm (Commit 0d610d9 以降)
openFPGA-NES by spiritualized1997 (v1.0.2) (厳密にはFPGAコア)
openFPGA-NES by agg (v1.0.1) (厳密にはFPGAコア)

[確認したが現状では動作不能なエミュレーター等]
VirtualNES (v0.97) (グラフィックが崩れる)
Nintendulator (v9.985Beta) (SRAMが32KBで作成される)
Mesen (v0.9.9) (SRAMは65KBで作成されるが動作が異常)
Nestopia (v1.40) (SRAMが32KBで作成される)
Nestopia UE (v1.53.2) (SRAMが32KBで作成される)
MAME (v0.288) (セーブ時にエラー)
ares (v148) (グラフィックが崩れる)
Mednafen (v1.32.1) (グラフィックが崩れる)
libretro-mesen (v0.9.9) (SRAMは65KBで作成されるが動作が異常)
libretro-nestopia (v1.53.2 b0fd87d) (SRAMが32KBで作成される)
libretro-quicknes (v1.0-WIP 5ae7551) (グラフィックが崩れる)

PC/mac/Linuxの方はMesenCE、RetroArch系のユーザーの方はlibretro-fceumm、openFPGA (= Analogue Pocket) の方は主要NESコア2種のどちらでも大丈夫そうなのでお好みでよいと思います。

 

【ROMの種類について】
公式サイトでROMをDLすると、中にNTSCとPALの2種類のROMが入っています。
この日本語で書かれた記事を読むような方はNTSCで十中八九問題ないと思いますが、少しだけ説明しておきます。
日本版ファミコンや北米版NESを念頭に置くのであればNTSCを、欧州・オセアニア等のNESを念頭に置くのであればPALを使用します。
それぞれ、当時使用されていたアナログテレビの映像方式の名前です。色々と違いはありますが、NTSCは1/60秒周期で画面を書き換えていて、PALだと1/50秒周期でした。
FC/NESにはソフト側からどちらの種類の本体で動いているかを判別する方法が存在しなかったはずなので、代わりにROMを分ける事にしていると思われます。

 【曲データの管理等について】
公式サイトにRisa ROM PatcherというWebブラウザー上で動作するツールが同時公開されています。
ROMを読み込ませるとKITS (DPCM音源)、THEMES (カラーテーマ)、FONT (フォント)を編集できますが、左上のSONGSタブに切り替えるとSRAMが読み込めます。
ここから単曲データ形式の.risongをエクスポート/インポートすることができます。例えばライブ用に今まで制作した曲を整理するなど、LSDjのLSDPatcherのような管理作業が行えます。

 【操作等について】
基本的にはユーザーガイドを参照するべきだとは思いますが、LSDjの使用経験がある方であれば迷う事もないと思われます。(そもそもユーザーガイドの冒頭で「LSDjのマニュアルを見てね」って言ってしまっている…)
Aで入力、A+Bで消去、 A+方向で値変更、SELECT+方向でスクリーン移動…などです。
LSDjの使用経験が無い方は…前述の通りLSDjの説明を見るなり、ユーザーガイド上にはキー操作の説明はあるので、そこをご参照ください…。

 

【補足寄りの話1 SRAMデータのサイズについて】 
SRAMデータのサイズは上の方で64KBと説明しましたが、エミュレーターによっては65KBのデータを出力し、またRisa ROM PatcherのGUIにも『.sav (65 KB)』と表示されるため、この点で少々混乱がある可能性があると感じています。
これは状況からするとMMC5内部にある、1KBの拡張RAMの領域をセーブデータの中に含めるか否かという点に関係しているようです。(アドレスマップ上では$5C00-$5FFFとのこと)
ただ、これは作業用のRAMのはずなので、実機では電源を切ると保持されないはずなんですが…少なくともMesenCEでは64KBのSRAMの末尾に1KBついて、65KBとなっているように見えます。
そういった事情のため、64KBのSRAMデータでも問題ないはず (というより、本来は64KBが正しいのでは) と見なしています。

 

【補足寄りの話2 実機動作について】 
Risa Trackerを実機で動作させるには、以下が必要です。
・FCまたはNESの本体 (NTSCまたはPAL)
・Risa TrackerのROMを書き込んで動かせるカートリッジ
前者は説明するまでもありませんが、後者はiNES Headerの情報からより正確に表現すると、
・MMC5 (mapper 5) に対応
・SRAMは64KB (512kbit)
・MMC5で度々見られるCHR-RAM等のWRAMは不要
開発者のlaamaa自身はEverdirve N8 Pro (FC用 / NES用)での実機動作確認を行っているとのことでした。こちらについては以前、自分も.nsfプレイヤーとしての使用感をレポートした記事を書いたことがあります。
上記の要件に合った、実際のMMC5カートリッジ等を改造したFlashcartでの動作も期待できます。(持ってないので未確認です)

 

【補足寄りの話3 所謂エミュ機での動作について】
LinuxをベースとしたOSを利用し、エミュレーターの動作が可能で、ゲームパッド等のゲームに特化した構造をもつハードウェアの事をしばしば『エミュ機』などと表現しますが、Risa Trackerは前述の通りエミュレーターで動作するため、こういった機種での動作を期待する方もいると思います。

実際に検証した所としては、エミュレーターをlibretroコア (ライブラリ) として扱うマルチエミュレーター、RetroArchと前述のlibretro-fceumm (Commit 0d610d9 以降) コアであれば動作が可能です。
ただ、このコミットの適用日は2026/07/07です。それ以前のバージョンではセーブデータが32KBしか作成されず、正常に使用できません。
こちらについては手持ちの機種で使用しているカスタムOS等がこの日以降に更新されて、libretro-fceummも該当リビジョン以降の新しいものになっていれば問題ありませんが、この記事を書いている4日前の話ですので、執筆時点では正常に動作しないコアがどの機種にも入っていると思われます。
(実際の所、Risa Trackerで発生した不具合を報告した結果として修正してもらっています)

オンラインで最新のlibretroコアを取得できる環境の場合は別ですが、大抵のケースではカスタムOS側の更新を待つのが基本になってしまうとは思われます。
待てない方 (自分みたいな人) は、コアだけ手動更新するのも手です。ただ、元のOSの構成からは変化してしまうので自己の責任で、上書きする元のlibretroコアなどのファイルはバックアップを取って行いましょう。
※libretroコアのバージョンを変更する場合、その間に大きい変更があると設定ファイルの互換性が無くなったりする事もあると思われます。

RetroArchとその多くのlibretroコアを管理しているlibretroでは、一日一回自動でビルドするnightlyビルドを公開しています。
こちらの中に自身のエミュ機で使っているSoCのARM CPU側のアーキテクチャーと合致するものがある場合は、大抵の場合はそのlibretroライブラリファイルを置き換える事で手動更新が可能です。
自分のTrimUI Brick & KNULLIや、K->さんのRG28XX & muOSで、実際に動作することが確認できました。 この二機種のCPUアーキテクチャーは、どちらもaarch64です。
見た感じ、Linux向けはaarch64, x86_64, x86の三種類のみ更新が続けられているようです。システム側のデータを書き換えるにはどうしたらいいかもよく確認して、作業を行ってください。(例えばBatoceraベースの場合は、batocera-save-overlayコマンドを何らかの方法で動作させる必要があると思われます。)

 

だいぶ文章量が多くなりましたが、現時点での知見や情報などを一通りまとめられたかなと思います。

コメント