2018年2月27日火曜日

楽曲作家探検

音楽を参加アーティストで辿れると面白いのに、そういうサービスって出てこない。っていうか、情報が残ってないんでしょうね。スタジオミュージシャン自身、自分が参加してる楽曲を把握しきれてなかったりするようですし。

なので、たまに今まで好きだった曲を作家で辿ってみたりすると楽しかったり。でもまぁ、結局はスタジオミュージシャンまでは滅多に追えないので作曲、作詞、編曲で追うくらいしかできないんですけど。で、まぁ、そんなのを記録に残しておけば、誰か反応してくれたり、未来の自分が喜んだりするかな、って事で雑談メモ的なのも残してみる事に。

という事で、今回は某田村ゆかりさんがライブでカバーしてた高橋由美子さんのGood Loveが起点。Tenderly TOUR '94のLDで歌ってたのでTenderlyのアルバム曲かと思ってたんだけど普通にドラマ主題歌のシングルだった。ドラマ見ない人だったからなー。というか今気づいたけど、このツアー、アルバムの曲あんまり歌ってない(笑)

で、高橋由美子さんで好きな曲を上から順にいくつか調査。

  • 3年過ぎた頃には
    • 作詞が白峰美津子さん。白峰さんと言えば個人的ベストはribbonのVirgin Snow。そしてVirgin Snowの作曲は松浦有希さんなんですよね。この時、松浦さん21歳、若い。白峰さんは名曲多いわりに個人情報あまり出てこなくて正体不明。80年代から作品出てるのでもう1世代前からいる人かとは思うんだけど。田村さん関係だとブラックダリアとか。
  • コートダジュールで逢いましょう
    • ふぅ、作詞は秋元康さん。この人はいつの時代にも物凄い頻度で出現する魔王。収録アルバムのParadiseは他にも後藤次利さん、及川眠子さん、筒美京平さんとか強すぎる布陣。
  • 笑顔の魔法
    • 川井憲次さんっぽい音使ってるけど、根岸貴幸さんだった。根岸さん今までノーマーク。
  • Good Love
    • 作詞の柚木美祐さん、笑顔に会いたいの人ですよ。編曲の岩本正樹さんはBaby's Breath、9月の扉、Bon Voyage!とかキングレコード系に繋がる。なるほど、岩本さんの曲は結構個人的お気に入りに入ってるな。
  • 友達でいいから
    • TAMTAM、初仕事で37.5万枚売ったのに、ほぼほぼ一発屋になってしまった。南くんの恋人抜きにしても良い曲だったと思うけど…。
で、今までノーマークだった根岸貴幸さん掘り下げ
  • Fight!(編曲)- 他の高橋由美子さんの曲は定額制にあるんだけど、これだけ無い!
  • コンディション・グリーン(編曲)
  • もっと!モット!ときめき(編曲)
  • 教えてMr.Sky(編曲)
なるほど。この辺は一度了解すればわかる。「全部同じじゃないですか!」
  • 初恋はかなわない(編曲)
岡崎律子さんとのコラボあったー。普段より昭和感たっぷり。

しかし、アニメ関係はもっぱら定額制サービスに無くて、あってもアニュータだけとか。すごく面倒。

あと、当時から曲は若手に書かせても作詞は実績のある人、みたいな風潮あったんですかね。西脇辰弥さんがribbonの編曲をメインで担当してた頃も20代半ばだったと思うし。わりと今活躍してる人達は20代から大きな仕事してる。もちろん消えていった人も多い。作曲家・編曲家が入れ替わり激しいのに比べ、作詞家は少数で長命な印象だなぁ。

2018年2月23日金曜日

俺のIOボードでスーチーパイが動かないわけがない。

しばらく前に作ったJVS IOボードの実験も兼ねてスーチーパイIIIを入手してみた。JVS 3版に麻雀基板向けの入力の扱いが定義されてたんで、それをサポートするだけで良いのかと思ってたんだけど、予想に反して独自プロトコルだったので少し調べて対応してみた。

ちなみにNAOMIはJVS最初期のボードなので麻雀まわりが決まる前だったんでしょうね。独自プロトコルをとっている以上、I/Oボードは選ばざるを得ないという……。

ちなみに対応してないIOボードの時はこんなメッセージが出てゲームは起動しません。


まぁ、自作なんで最悪どうにでもなるかな、と。まずは情報収集。

BONZE ADVENTUREさんによると「NAOMIの麻雀はカプコンコンバータでは動かずセガコンバータなら動く」と。セガコンバータのEXT I/Oの結線方法なんかも書いてあり、中で何をやってるのか朧気ながら想像つきます。出力ドライバと組合させてJAMMAに似たスキャンを使った入力の多重化をやってるんですね。

さらにGAME屋萬年堂さんが動作するIOボードのJVS TESTのスクリーンショットを公開してくれていました。これを元に同じcapabilityを持つボードをエミュレートすれば最低限動作するだろう、と。

で、無事に動作して、少しずつ情報を落として動作するだけの最低要件をまとめたら、必要なのは二点でした。JVS的に必須項目になってる機能は条件から落としてます。


  • I/O IDで返す名前は「SEGA ENTERPRISES,LTD.」から開始していなければならない(User-Agent問題……)
  • 汎用ドライバ出力を8スロット備えている
前者はセガを名乗るのか……と気がひけますが、後ろに「compat」とか付ければ嘘じゃないのでいいでしょう(User-Agent問題……)。出力ドライバも実際に出力できる事は要求されてないので大丈夫。スキャンラインの切り替えに使ってるだけなので「持ってるよ」と機能チェックで返してあげればOK。


JVS TESTで見える情報はこんな感じですね。DIPスイッチで切り替えた時のみ、このモードに切り替わるようにしました。幸いJVSは3版を名乗っても大丈夫そう。


スーチーパイさんも怒りません。


無事に起動しました、よしよし。

実際のプロトコルについてはゲーム側のテストモード使って入力に探りを入れて解決。ざっくり以下のようなプロトコルでした。
  • 8-bitsの出力ドライバに対し、bit 4からbit 7に対してone-hotを出力
  • その時に出力されているbitに応じて、SW入力のうち各プレイヤー向けの情報の第1バイト(元々START/SERVICE/UP/DOWN/LEFT/RIGHT/B1/B2がアサインされてたバイト)の意味が変わる
スキャンは負論理じゃなくて正論理なんですね。もしかしたらセガコンバータはJAMMA側のスイッチがpull-upじゃなくてpull-downになってるのかも。でなければドライバの出力をどっかで反転させないとだし。JVS側が正論理だからこの作りもわからないこともないけど、そっちはパケットだし、回路側は負論理のままの方がすっきりするんだけど……。

で、その後テストモードで調べた入力マトリクスは以下の通り。

|OUT\Bit||  B7 |  B6 |  B5 |  B4 |  B3 |  B2 |  B1 |  B0 |
+-------++-----+-----+-----+-----+-----+-----+-----+-----+
|  0x40 ||  A  |  -  |  E  |  I  |  M  | KAN |START|  -  |
|  0x20 ||  B  |  -  |  F  |  J  |  N  |REACH|  -  |  -  |
|  0x10 ||  C  |  -  |  G  |  K  | CHI | RON |  -  |  -  |
|  0x80 ||  D  |  -  |  H  |  L  | PON |  -  |  -  |  -  |

伝統的な麻雀コンパネと同じ組み合わせになってますね。まぁ、無理して変える必要もなかったんでしょう。ひとまず十字とボタンの組み合わせで入力とるようにしたバージョンをコミット。そのうち麻雀エッジに直接対応させようかと。

はて、通常のJVSの麻雀配列は何でテストしたら良いのやら……。

2018年2月17日土曜日

MVS入手の話とステレオ化

MVS(いわゆるNeoGeoの業務用基板)を入手するのに色々と調べていたら、国内だと安いタイプでも1万円以上が相場らしいのだけど、中国から輸入すれば6〜7千円くらいで済むことがわかった。出回ってるタイプはMV-1BとMV-1Cで、どちらも後期型と呼ばれる音声ステレオ出力には改造が必要なタイプ。値段にそこまで差はなく、MV-1Cの方が改造の手間が少ないのでMV-1Cを購入する事に。

そして誤算。写真を見る限り基板に日本語で注意書きとか入ってたので、てっきり日本から流出した基板かと思ってたんだけど、BIOSはしっかりアジア版でした。特に差し替えた形跡もないので純粋にアジア向けに作られた基板ぽい。しかも後期型はBIOSだけ交換しようにもDIPのソケットじゃなくSOPで要ハンダ。まぁ、これは後で気が向いた時に考えよう。

ステレオ化は色々なサイトで紹介されてる通り。


スピーカーのボリューム+用途不明8pin端子のすぐ近くにある9480Fって書いてある8pinチップが音声が出てくるD/Aコンバータになります。データシート見る限りピン割り当ては

1. 右チャンネル出力
2. REF
3. GND
4. 左チャンネル出力
5. LRCK
6. SDAT
7. BCLK
8. VCC

となってます。5〜7はI2Sの信号ですね。ここから出力を取るには、1、3、4の信号を貰えば良い事になります。上の写真では左側の奥から赤、1つ開けて黒、白とケーブルを繋いでいます。一般的なカラーに従い、赤が右、白が左、黒はGNDとしました。

ちなみに奥に寝てるレギュレータに大きくGNDと書いてあるのでそこからGNDを取りたくもなるのですが……ハンダのノリがめちゃくちゃ悪い上に、テスターで調べた限りGND通ってません。なので、ちょっと狭いけどD/AからGNDも取っちゃいましょう。D/Aが見てるGNDなので、引き回し的には理想的なGNDがとれるはず。

ケーブルはそのままRCAとかミニジャックでも良かったのですが、部品代をケチってSYSTEM-GXと同じ端子を付けてます。


もともとGX用に作ったケーブルで手持ち最後のステレオRCAのメスを使ってしまったんですよね……。

まぁ、そんなわけで音声だけでも無事にステレオ化できたので良しとします。

しかしあれだな、MVS使えばFM音源からの出力をI2Sで簡単にデジタルで捕捉できるのね。

2018年2月12日月曜日

今度は今時の新JAMMA(JVS)環境とか

なんか新JAMMAも作れそうな気がしたので、I/Oボードが作りたいがゆえにNAOMIを入手しました(なんか違う)。


元々JAMMAのコンパネ持ってた人は、旧JAMMAに変換するブリッジを通してたりしたんでしょうが、現状で考えると画面や音声はJAMMAに変換するまでもなく直接扱った方が簡単です。だって画面はVGAだし、音声はステレオのラインなんだもの。VGAも一部15kHzのタイトルがあるものの、基本31kHzで出てくれるので特に変換する事もなく現行のモニタで対応できる事が多いかと思います。(ちなみにNAOMIはDIPSWの一番左のやつで31kHz/15kHzの切り替えっぽいです。前のオーナーが15kHzで使ってたみたいなんですが、最初映らなくて焦りました。)電源は右下に見える四角が並んだ端子なので、ちょっと工作が必要。ヤフオクではAT電源改造したJVS用電源が5,000円くらいで売ってました。電源容量も十分に大きいやつだったし、下手に材料揃えて作るよりは安いかも。電源が一番お金かかるのは新JAMMAでも同じですね。

少し難しいのがI/Oボードと呼ばれる部分。見た目はUSBなんだけど中身は独自規格という代物です。主にコントローラを繋げる部分ですが、ボタンの数とかかなり融通が効くし、電光掲示板的な物に文字を表示させたりとか、外部機器との通信一般が行えるようになってます。まぁ、ざっくりHID/USBで出来ることをもっと簡単に実装したもの、だと思えば良いです。タイミングが悪かったんでしょうね、新JAMMAはUSB1.0と1.1の間に制定されたようなので。USBがまだ海の物とも山の物ともつかない頃の話です。USBがここまで成功するとわかってればそのままUSB使ったんでしょうけど……いや、でもなんでコネクタだけ採用したんだろう……闇だ。

で、このI/Oボード、旧JAMMAより難しいってだけで、最近の技術と比べれば簡単な部類。それこそ本物のUSBよりずっとずっと簡単です。そんなわけでArduino Nanoを使って試しに自作してみたのがこちら。


Arduinoの足をポチポチっと短絡させれば入力が入ります(笑)。デバイス名とか適当。写真撮った時はver0.1だったけど、最終的に0.9にしました。名前はIONA。なんか当時のセガのアーケード基板っぽい感じに命名。

で、このままじゃ遊べないので、結局自分も手軽にコントローラを繋げる入力インタフェースとしてJAMMAの口を出すことに。


Arduino Nanoも基板に直接ハンダ付けしてしまうのが俺流!まぁ、中国製の互換機が凄く安いですしね。5個入りで2,000円以下。日本じゃ部品代にもなりません。とりあえずJAMMA側からの電源はON/OFFできるようにしてみました。あと、将来の拡張用にDIPSW付き。たぶん麻雀配線と内部的に切り替えたり、連射のON/OFFしたり。いずれバージョナップで載せそうなものは予め載せてみました。ピンの節約って事でアナログ入力にしか使えないA6/A7にアナログ値で入力。ちなみに同等の変換基板買うとお店だと5,000円より高いかな、くらい。今回の部品は手持ちの在庫からだけど、だいたい500円くらい。

前に作ったJAMMA環境と繋げることで、真のUSBゲームパッドを新JAMMAに繋げることができます。とりあえずPS4とか360のコントローラで遊べてます。外見だけ見るとなんでUSBを大げさな装置通してUSBに繋げてるんだよって感じかもしれませんが……。


そんなわけで新JAMMA向けのIOボード、GitHubの方にコードと回路の説明をアップロードしてみました。JAMMAしか環境ないけどexA-Arcadia買うんだ……って人は自作に挑戦してみてもらえると。電源必要なのが玉に瑕ですが、その気になればメガドラやサターンのコントローラを分解して中身にArduino Nanoを内蔵、とかできそうです。