Help us understand the problem. What is going on with this article?

アーケードゲームが輝いていたあのころと同じFM音源を鳴らしたい

More than 3 years have passed since last update.

FM音源と私

この記事はCrowdWorks Advent Calendar 2016の13日目のおっさん向け記事です。

FM音源が好きですか。筆者は大好きです。ピコピコサウンド、チップチューンなどと巷では言われるような音色を鳴らすことができる音源のことですが、コンピューターらしさが色濃く残ったサウンドが逆に懐かしくゲーム・ミュージックのサントラを買い漁っていたころをの想いを呼び醒まします。

そんなFM音源のなかでもYM2151、通称OPMと呼ばれるYamaha製のFM音源チップが印象深く、SEGAのファンタジーゾーンやナムコの妖怪道中記などメーカーを越えて1980年代を代表するようなさまざまなアーケードゲームに採用されていました。OPMはYamahaが開発しているFM音源の中でOPL,OPLL,OPNから数えて4世代目にあたり電子音はもとよりピアノからシンバルのような音色を合成できるような当時としては表現力の高い音源でした。

opm.png

そんなOPMですが、1987年に発売されたシャープ製のX68000というパソコンにも搭載されていました。当時パソコン少年であった筆者は、電気店の店頭に展示してあるX68000でデモされるグラディウスなどアーケードから移植されたゲームを見てはそのグラフィックや音楽に魅了され憧れたものです。

それから数年たち新聞配達のアルバイトで資金をつくり、はじめて買った自分のパソコンがX68000XVIとなるのも自然な流れだったのです。すぐに火を入れられる状態というわけではありませんが、手放すのが惜しく部屋の隅に今でも鎮座しています。

IMG_1905.JPG

今でこそ打ち込み音楽が一般的となりシーケンサーや弾いたものと演奏データにしたりすることがあたり前になりましたが、当時のパソコンを使った音楽制作といえどちらかと言うとゲームのBGMを鳴らす向けに開発された音源ドライバを用い、音楽データはMML(Music Macro Language)と呼ばれる音楽の演奏情報を記述するDSLのようなものをテキストエディタ記述するスタイルでした。

X68000にも草の根で開発されたMDXDRVやZ-MUSICといったドライバがあり、それぞれのドライバ向け音楽データも流通していて、当時のX68000ユーザーであれば曲データが入ったMOが残っていたりするのではないでしょうか。また筆者自身も音源ドライバを使ってバンドスコアを見ながらMMLにおこして打ち込んでみたり、ドラムがいない友達のバンドのドラムパートを打ち込んでバンドの手伝いなどをちょっとした趣味としてました。

このような音楽データを過去の資産として現代に活かそうとしたときでも、昨今は便利になっておりX68000のエミュレータを利用したり、MXDRVをWindowsやiOSに移植したものを利用することができます。またFM音源のエミュレーションも精度が高くなっていて、Yamahaが直々にOPMをソフトウェアとして実装したものもリリースされるなど通常の利用には困らない環境が整備されていると言えます。

一方でというか、だからこそエミュレーションではなくOPMの実機で当時のそのままで鳴らしてみたいという、特に理由もない想いもあったところ、願いが叶えられそうなハードウェアを見つけたので遊んでやろうというのがこの記事の趣旨です。

G.I.M.I.C Project

さて、前置きが長くなりましたが、これからOPMを鳴らしてみようが本題です。鳴らすにはOPMを入手する必要がありますが、利用するのがG.I.M.I.C Projectが開発している同人ハードウェアです。http://gimic.jp にて情報が提供されています。G.I.M.I.C(以下GIMIC)は、アキハバラ@BeepのBASEショップなど通販でも買えます。

GIMICの特徴

GIMICはマザーボードと音源部分が分かれており、OPMだけでなくOPNやSPC7001などを差し替えて使える拡張性があります。PCからUSBで接続して制御できる他に、microSDメモリカードに音楽データを保存して読み取ることでGIMIC単体でも音楽再生が可能です。2009年5月号のインターフェース誌に回路図が掲載されるなど技術情報が公開されており最近でもファームウェアが更新されるなど開発が継続されています。

IMG_1906.JPG

ショップにはいくつかのGIMIC関係のパーツが置いてあります。鳴らすのに必要な最低限のセットは以下になります。

  • マザーボード(Lite/Standard/Professional)
  • OPMユニット
  • クリアケース

マザーボードは3種類のどれを選んでもいいですが、筆者は主に経済的な理由でStandardを選びました2。その他に単体動作時の選曲を手軽したいという向きには専用の液晶ディスプレイのパーツもあります。

組み立て

GIMICは半完成品となっていて自分で組み立てる必要があります。ハンダも不要なので組み立て所要時間は1時間ぐらいでした。届いたらまずすべてのパーツが揃っているか確認します。特にビス、ナット、ワッシャは予備が無い状態で封入されているので揃っているかどうかもそうですが焦って落として無くさないように気をつけます。

IMG_1866.JPG

2016年12月に届いたモデルに関して、基本的には公式サイトのここにあるGMC-MB2_HardwareManual_rev1.3.pdfというマニュアルにそって作業すれば組み立てられますが、マニュアルにないちょっとしたことを捕捉していきます。

1.マザーボードの4箇所にナット、ワッシャ、ポリカワッシャを挟んで基盤に傷をつけないようにとりつけます

基盤の負担にならないようネジを締めすぎないのがポイントです。手で締めるぐらいでいいかもしれないですね。

IMG_1871.JPG

2.音源モジュールと接続する用のモジュール接続ケーブルをマザーボードに接続します

どちらの端を接続しても向きは問題ないようです。

IMG_1872.JPG

3.マザーボードの穴が開いているところを通してアナログケーブルを接続します

ケーブルが固いのでちょっと力が入ります。

IMG_1873.JPG

4.OPMモジュールを取り出します

輝くYM2151。

IMG_1874.JPG

5.OPMモジュールにモジュール接続ケーブルとアナログケーブルをつなげて最初に取り付けたビスと穴を合わせて取り付けます

ナットを締めすぎるとはまらないことがあります。

IMG_1875.JPG

6.4箇所のナットにポリカワッシャをはさんでローレットナットで締めます

IMG_1876.JPG

7.アクリルケース用の手回しネジにポリカワッシャをつけます

無理にはめずにネジに合わせて回し入れるとよさそうです。

IMG_1878.JPG

8.アクリルケースにぴったりくっついている紙を剥がします

ガムテープで剥がしましたがデザインが施された部分が残るので爪で剥がしました。軽く湯煎するとはがしやすいらしいです。

IMG_1879.JPG

IMG_1880.JPG

ガムテープ張ったところ。
IMG_1882.JPG

デザイン部分が残ったところ。
IMG_1884.JPG

爪で削ったところ。
IMG_1888.JPG

9.へこみ部分とスイッチ部を合わせてアクリルパネルを固定します

IMG_1889.JPG

完成!

IMG_1890.JPG

USBに接続してスイッチを押して青LEDが点灯すれば動作しているかと!

IMG_1890.JPG

macOSからGIMICを使ってみる

GIMIC利用環境としては正直Windowsのほうが充実しており対応ソフトがいくつかある状況です。とはいえ筆者の身近なのはMacなので、macOS環境から利用してみます。

macOSからファームウェアの更新

GIMICは初回の利用時にファームウェアの更新を推奨しています。最近ではmacOSでのファームウェア更新にも対応しており、こちらの手順どおり特に迷うことなくできました。

まずSilicon LabsからmacOS用のドライバをダウンロードしてインストールして再起動します。再起動は促されないので注意。

次にGIMICのページからGIMICUpdaterをダウンロードして右クリックで開くを選択して起動します。

スクリーンショット 2016-12-11 15.42.29.png

ファームウェアアップデートモードになっていないとこのようにアップデート開始ボタンが押せなくなります。

スクリーンショット 2016-12-11 15.55.08.png

ドライバが正常でGIMICもアップデートモードになっていればアップデート開始ボタンが押せます。
スクリーンショット 2016-12-11 16.03.45.png

アップデート中。

スクリーンショット 2016-12-11 16.04.06.png

完了です。
スクリーンショット 2016-12-11 16.04.37.png

macOSから操作してみる

macOSやLinuxからアクセスするには screen でシリアルコンソール接続するのが手軽かと思います。mdxファイル名の表示がShift_JISで送られてくるのでターミナルをShift_JIS表示設定する必要があります。

正常に接続できているか以下のコマンドで確認できます。

ls /dev/tty.*

/dev/tty.SLAB_USBtoUART が見つかれば正常に接続されています。見つからなければドライバがインストールされているか正しく動いているか、ケーブルの不良などが考えられます。

見つかったなら以下のようにscreen /dev/tty.SLAB_USBtoUART 230400を起動すると接続できます。

スクリーンショット 2016-12-12 15.41.19.png

真っ白(あるいは真っ黒)な画面で固まっても焦らずエンターを押します。

スクリーンショット 2016-12-12 15.41.28.png

microSDメモリを指してスタンドアローンモードにしていれば次のファイルセレクト画面がでます。

スクリーンショット 2016-12-13 23.03.06.png

OPMそのものを鳴らせる環境を構築することができました。ここから過去の資産を発掘したり、新たなハックしたり可能性が広がります。これを足がかりにお正月のネタに実行環境を整えていこうと思います。

参考文献

明日は

@yo-iida さんが書く予定です。おつきあいありがとうございました。


  1. スーパーファミコンに搭載されている音源 

  2. 書いてるそばからStandard版が売り切れました。同人ハードは出会ったときに買わないとチャンスを逃してしまいますね。 

koichiro
speee
株式会社Speeeは「解き尽くす。未来を引きよせる。」というミッションを実現すべく、中長期的な目線で企業価値を最大化させていくため、組織・事業のStyleを大切にした永続的な価値創造を目指しています。
https://www.speee.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした