
mt-32piとはRolandのMIDI音源「MT-32(LA音源)」をRaspberry Piでエミュレーションするソフトウェアです。
せっかくなら「これ1台でGS音源(SC-55)も鳴らせないのかな……?」と思っていたところ、SC-55のROMを利用してmt-32piを鳴らせるようです。
ちなみに同じことができるハードウェアMIDI音源として近いものはRolandのCM-500でしょうか。
こちらはLA音源とGS音源が入っているので、これ1台あれば大体のMIDIデータの演奏はカバーできると思います。


果たしてGS音源として使い物になるのか?
SC-55(初期型)のSoundfontの作成
それではSC-55のROMデータから、mt-32piで利用できるSoundfontを作成していきましょう。
GitHub - Kitrinx/SC55_Soundfont: Converts SC55 ROMs to a working soundfont
SC-55を分解して目的のROMを取り外していきます。
ちなみにSC-55には「初期型」「中期型」「後期型」と3種類ありますが、「初期型」が良いらしいので初期型SC-55を用意しましたが恐らくどれでも良いと思います。

フロントに「GS standard」と書かれているのが初期型です。(中期型はGSマークのみ、後期型はGSマーク+GMマーク)
SC-55のROM取り外し
分解して基板を慎重に取り外します。
対象となるROMは全部で4つ。コントロール用ROMが1つに、波形データ用ROMが3つです。
コントロール用はICソケットに刺さっているので抜けばよいのですが、波形データ用は基板に直接はんだ付けされてるのを剥がさないといけないので初心者にはハードル高そうです。

左上がコントロール用ROMで、右の3つが波形データ用ROM(A,B,C)です。
機体によってはROMがEPROMになってるものもあるそうです。

まず背面から追いハンダをして、それをハンダ吸い取り線で剥がしていきます。

こんな感じで3つはずしていきます。丁寧に作業すればそこまで難しくは無いです。
ROMデータの吸い出し
ROMデータを吸い出すハードウェアとソフトウェアを用意します。
今回はこちらを利用しました。
TL866 High Performance Universal Programmer
※2024現在、私が購入したサイトは在庫切れのようです。
Aliexpressにもあるようですがずいぶんとお安いので品質は不明です(自己責任で)
コントロール用ROM
R15209337(256KB)

波形データ用ROM
A:R15209276(1MB)
B:R15209277(1MB)
C:R15209281(1MB)

それぞれ吸い出したデータをファイルに保存します。
最初、↓のように右の画面に「X」がついていたのですが、残っていたハンダをフラックスクリーナーで綺麗にしたら読めました。

吸い出し後にはずした3つのROMをそのまま元に戻そうとおもったのですが、せっかくなので丸ピンの32ピンソケットを秋月電子@90円で買ってきてICソケット化しました。ソケット経由だと接触不良などのリスクもありますが問題なさそうです。

Soundfontの作成と動作テスト(X68000)
Soundfontの作成にはROMデータを元にgccでコンパイル等するそうなのですが、今回は知人の方にやっていただきました(感謝)
出来上がったファイルをmicroSDに入れ、mt-32piを起動しSoundfontモードに切り替えます。

無事に鳴りました。手持ちの実機のROMから作ったSoundfontって手作り感があって良いです。
ちなみに巷に多く流通しているSC-55mkIIのROMは表面実装されているので吸い出しはかなり困難なようです(こんな感じ)
動作テスト(FM-TOWNS+RS-MIDI)
FM-TOWNS用のRS-MIDIアダプターはなぜかPC9801用やX68000用と互換性がないらしいです。
これまた知人からいただいたので、FM-TOWNS専用のRS-MIDIアダプタ経由での接続で鳴らしてみました。
今回準備したのは、FM-TOWNS版の「ジェノサイドスクウェア」です。

CD-ROMからゲームを立ち上げてCONFIG画面でRS-232Cを選択します。

あらかじめ背面のRS-232C端子へRS-MIDIアダプターとその先にmt-32piを接続しておきます。

ミュージックモードからこちらも特に問題なく鳴りました!

まとめ
