「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



日高さんの機械語の本が気になって仕方なかったので、
さっき倉庫のダンボールを調べてみました。ラッキーな
ことに、入り口の一箱目でこの2冊を発見。



右の「Z80マシン語秘伝の書」が日高さんのZ80関係の
機械語の本。
これ以外にも日高さんの機械語関係の本を何冊か買った
記憶があるんですが見つからず。

左は「サウンド&グラフィックス入門」(矢沢宏行他著)。
PC-8801mkⅡSR以降シリーズのBIOS関係のうち、
グラフィックやサウンド関係のところだけ抜き出して、
その応用について書いてある本。スグレモノ。
(この分野では秀和のTECH KNOW 88関係よりも解りやすかった)

日高さんの本にもこの手のモノが有ったはずなんですが、
どこいったんだろう?見つからず…

特にFM音源についてはこんなところまで言及↓。

テクニックの本というより、アプリケーションの本ですね。

キャリアとモジュレータの周波数比をどの程度に
設定するとどんな音になるかっていう目安を、
とても感覚的に解り易く説明してくれているので、
1冊読めば自分で音色作りが出来ちゃう!


この本にも書いてあるんですが、FM音源の仕組み
自体はそんなに難しいわけではないので、
マイコンでFM音源の生成をすること自体は
それほど難しくは無いはず。

さて、あとはどんな方向性に持っていくかだな…

アルゴリズムの種類や繋ぎ方のバリエーションを
どうするか、オペレータ(SIN波を発声させる回路
…キャリア+モジュレータ)の数を幾つにするか、
エンベロープパターンをどんな風に設定させるか、
和音は幾つまで発声させるか…などなど。

いずれにしても、厳格なMIDIに則りたいわけでも
ないし、シンセサイザークロニクルと同じモノを
作りたいわけでもないし、目指すのは

 「手で実際にグリグリと触って音が出る快感」

なので、入力デバイス~出力アンプまで一体型に
したいところ。

アルゴリズムなんて、幾つかの決まったパターンから
選択させるのが一番簡単なんだろうけど、面白さで
言ったら、アルゴリズム自体も自分で配線繋ぎ換えて
おこなう方が楽しいはず。

そして、音階の入力はやっぱピアノ式かギターのTAB式、
もしくはウクレレのTAB式もいいな。

…書いてて思った。ウクレレのTAB式にして、
4和音程度出せれば、かなり遊べそう!
ウクレレなら4弦しかないから、理論的には
4和音であらゆるコードが弾けちゃう。


クロックを20MHzとすると、サンプルレートを
40000Hzにするには1サンプルあたり500命令。

MEGAシリーズ使って、2クロックのハードウェア乗算
命令駆使しても、たった500命令でこれらの処理全部を
1個のマイコンで行おうとすると、アセンブラでガリガリ
に書き上げても結構厳しそう。
(スプライト表示器書いたときの経験から言って)

入力デバイスと音源をIC2個に分けたほうが
デバッグや仕様変更は楽だな。まずはその線かな…

うーむ。こんな妄想段階が一番楽しいな。



コメント ( 0 )




このあいだ見つけて、当時痛く感動したこのページ
http://www.ipc-tokai.or.jp/~ytanaka/pc88/sorc_pi.shtml

FM音源などの話に最近触れていたので、
改めてブックマークから引っ張り出してきました。

ファルコムというメーカーからPC-8801mkⅡSR以降用
に発売されていたソーサリアンと言うゲームを
リバースエンジニアリングして、その中身を堪能
しましょうという感じのお話。


ページを読んでも、PC88シリーズのメモリマップや
SR以降に登載されたALU機能などの意味が解らないと
チンプンカンプンなところが多いのですが、
非力でメモリも小さいワンチップマイコンの
プログラミングにも通用するような示唆が
色々あったので、取り上げたくなりました。

と言っても、私しか興味ないことかも知れませんが…


で、この記事の中で特に私の気を引いたところ。

・表示エリア外のVRAMとALU機能を用いた
 RGB3画面同時の高速重ね合わせ処理

・VRAMのバンク切替を意識したメモリ配置

・マルチウィンドウ表示の方法

・128重3D表示処理

・元のページに戻るためのリンク(HTML)に0C9Hとか書いてある


等など。ちなみにC9はZ80のアセンブラではret命令。
最後のはどうでもいいですね。っていうか、Z80触った
こと無いヒトには全く解らないっす。

まぁ、マイコンでビデオ表示やりたいって思う
私のような人間でもない限り、あまり興味は無い
コンテンツなのかな?


それにしても当時の貧弱なハードや、遅くて
貧弱な命令のCPUや周辺機で、ファミコンに
負けない為に色んなテクニックを駆使して、
各メーカーが創意工夫を凝らしていたのを
思い出しました。

今考えても、よくZ80であそこまでやったもんだなぁ…と。

THEXDERにしても、ソーサリアンにしても、
シルフィードにしても… 凄かったなぁ。
PICにしてもAVRにしても、趣味なら極めて
ああいうレベルまでたどり着きたいなぁ。

シルフィードとTHEXDERについては
ムービーがあったのでリンク貼っときます。

(シルフィード)
http://jp.youtube.com/watch?v=RnBksWog1a4
     (プレイシーンはビデオの後半)

(THEXDER)
http://jp.youtube.com/watch?v=RnBksWog1a4
     (88版が無かったので98版)


4MHzのZ80でここまで高速処理が出来る
っていうのは、やっぱ今考えても奇跡的だなぁ。

20MHzのAVRなら、もっと色んなことが
出来るはずなんだよなぁ…



コメント ( 0 )