Arduino+YMZでドラクエ2の「Lovesong探して」を鳴らしてみた。
お疲れ様です。高橋です。
先日作った「DQ2 – Lovesong探して」for Arduino+YMZ294を実機で鳴らしてみました。
前半と後半の間に、ArduinoとYMZの結線を逆転させています。(後半は牧野アンナバージョンにしてます。)
合わせて、「YMZシールドの基板設計」及び「YMZシールドの基板設計 #2」で発見した課題である、「Arduinoの上にYMZシールドを挿すと、ArduinoとYMZの間のデジタル0~7番の結線が逆転する問題」についても、ビット逆転(10011111を11111001にする)する事によって問題なくYMZを操作出来る事が確認出来ました。
結線を逆にする方法
まず、wp.hrmux.comさんのサイトで公開されているYMZ294ライブラリを展開し、クラス名を「YMZ294」から「YMZ294R」に変えます。
そして、YMZ294.cppの一番下の方にbitReverseというメソッドを追加します。こいつは1バイト(8ビット)の並びを逆転させてます。
byte YMZ294R::bitReverse(byte v)
{
v = ((v & 0xf0) >> 4) | ((v & 0x0f) << 4);
v = ((v & 0xcc) >> 2) | ((v & 0x33) << 2);
v = ((v & 0xaa) >> 1) | ((v & 0x55) << 1);
return v;
}
で、既存のset_regiseterのPORTDに与える1byteを、先に追加したbitReverseで逆転させるよう、下記のように修正します。
void YMZ294R::set_register(byte addr, byte value)
{
// addr
digitalWrite(WRCS_PIN, LOW);
digitalWrite(A0_PIN, LOW);
byte addr_rev = bitReverse(addr);
PORTD = addr_rev;
digitalWrite(WRCS_PIN, HIGH);
// value
digitalWrite(WRCS_PIN, LOW);
digitalWrite(A0_PIN, HIGH);
byte value_rev = bitReverse(value);
PORTD = value_rev;
digitalWrite(WRCS_PIN, HIGH);
}
そして、YMZ294.hのprivate宣言箇所に、bitReverseメソッドの宣言を追加しときます。
最後に、既存のライブラリとの衝突を防ぐために、YMZ294R.cppとYMZ294R.hというように名前を変更しておき、2つのファイルをYMZ294R.zipとして圧縮してしまいます。
Arduino IDE側で「スケッチ / ライブラリを使用 / Add Library…」でzipを指定した後、下記のように選択します。
あとはいつもの様にSMFをArduinoコードに変換するツールを使って変換すればOKです。
スケッチは下記からDL出来ます。
- dq2_ls – Arduinoデジタル0~7番と、YMZの18~11番が対応している。
- dq2_ls_reverse – Arduinoデジタル0~7番と、YMZの11番~18番が対応している。
今回の実験によって下記実体配線図がそのままイケると踏んだので、いよいよ今度は半田付けです。
以上、よろしくお願い致します。
関連記事
-
-
異邦人をArduino+YMZ294で演奏させてみた
お疲れ様です。高橋です。 Arduino+YMZ294で、久保田早紀の異邦人(1 …
-
-
異邦人・改 for Arduino+YMZ294
お疲れ様です。高橋です。 先日耳コピした異邦人、なんとなくYMZ294に合わない …
-
-
【完全版】グラディウスメドレー by Arduino+YMZ294
お疲れ様です。高橋です。 前に作ったグラディウスメドレーを増強したものを作りまし …
-
-
スーパーの焼き芋製造機近くで鳴っている音楽をArduinoとYMZ294で鳴らしてみた。
お疲れ様です。高橋です。 先日ArduinoでPSG音源 YMZ294を使って単 …
-
-
シャロム 海の音楽
お疲れ様です。高橋です。 長きに渡ったシャロムの耳コピは、この曲でそろそろ終わり …
-
-
「DQ2 – Lovesong探して」for Arduino+YMZ294
お疲れ様です。高橋です。 最近、音系を全然やってなかったので、久しぶりに耳コピし …
-
-
シャロム オープニング
お疲れ様です。高橋です。 もう30年以上昔、MSX2を持っていた私 …
-
-
Perfume「未来のミュージアム」をYMZオルゴール用に耳コピ
お疲れ様です。高橋です。 電子オルゴールに投入するための楽曲として、Perfum …
-
-
グラディウスの音楽をArduinoとYMZ294で3和音で鳴らしてみた。
お疲れ様です。高橋です。 先日、「スーパーの焼き芋製造機近くで鳴っている音楽をA …
-
-
YMZ294で鳴らすためのビッグブリッヂの死闘を作ってみた。
お疲れ様です。高橋です。 Arduino+YMZ294で鳴らすため、「ビッグブリ …





