アフィリエイト広告を利用しています
 

2024年03月25日

【ツール制作】MMLコンパイラ(通常版) 第4回



5_7_1.png

MMLコンパイラ(通常版) 第4回です。

「MMLコンパイラ(通常版)」と「BGM演奏ルーチン(通常版)」のバージョンアップ順調に進んでいます。
今回追加した機能「T」、「V」、「(」、「)」、「S」、「M」、「Z」に対応しました。
「T」、「(」「)」はBASIC部のみでの対応です。
ついでに、今まで1チャンネル分のルーチンが小さかったこともあり、A、B、C、3チャンネル分そのままルーチンを組み込んでいましたが、機能追加で1チャンネル分が大きくなることから、1つのルーチンを3チャンネル分ループさせることにします。

因みにこちらが、今までの「BGM演奏ルーチン」3チャンネル分。
1チャンネル分のルーチンが小さいですが、音を鳴らすだけならこれで十分でした。
24_3_26_5.png

「MMLコンパイラ(通常版)」BASIC部。
「簡易MMLコンパイラ」への追加分です。
まずは機能追加した各コマンド「M」(エンベロープ周期)、「S」(エンベロープ波形)、「Z」(ノイズ)、「V」(ボリューム)対応です。
24_3_26_6.png

次は「T」(テンポ)対応。
最後に「テンポずれ」しないテンポへの強制変更をしています。(790行〜)
24_3_26_7.png
1分間の走査線割り込み発生回数3,600から、テンポを割って求めます。
24_3_26_8.png
「付点音符」も4段まで可能とします。
24_3_26_9.png
小数点以下を足していき、繰り上がったところで音長に「1」加えます。
24_3_26_10.png
テンポへの強制変更データ設定。
24_3_26_11.png

A・B・Cチャンネル3チャンネル分ループします。
24_3_26_12.png

コンパイル終了後、演奏開始します。
24_3_26_13.png

「BGM演奏ルーチン(通常版)」マシン語部。
まずはいつもの走査線割り込み処理。
24_3_26_1.png

次に曲を切り替えるための選曲処理。
24_3_26_2.png

そして、3チャンネル分ループするよう改良したロジック。
上にある今までの「BGM演奏ルーチン」と比べれば、長くなったのが一目瞭然。
24_3_26_3.png
コメントのある場所で、それぞれのコマンドの処理をしています。
最後の音階をPSGに送るとき(680行〜)、同時にボリュームとエンベロープ波形も送ることでエンベロープ対応にしています。
このルーチンならノイズもエンベロープもBGMデータから設定できるので、効果音も自由に鳴らせます。

最後、BGMデータの開始アドレスを格納するワークエリアです。
24_3_26_4.png

では、次回公開します。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/12439972
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
検索
<< 2024年04月 >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
最新記事
ブログランキング
にほんブログ村 ゲームブログ ゲーム制作へ
カテゴリーアーカイブ
プロフィール
J-JSOFTさんの画像
J-JSOFT
高校時代、あれほど熱心に取り組んだMSXに触れなくなって30年余…。 MSXエミュレータとの出会いで、MSX愛が再燃中。
プロフィール
ファン
QRコード