OBONO’s Diary

へっぽこプログラマの戯言

プチコン4

ということで、第五回プチコン大喜利以来のプチコン4でのコーディング――とは言っても、基本的には3号で実装したときのコードがあるので、それをベースにちょこちょこ書き換えていくだけ。
「だけ」と言っても、プチコン4のコーディング経験が浅くてまだまだ勝手が分からない上に、だいぶ間も空いてしまって感覚が鈍っており、リファレンスとにらめっこしながらジワジワと作業を進めていった。

少しハマったのが音関係。なんか、すごい音痴なんですよ。

いろいろ調べた結果、リファレンスの WAVSETA 命令の説明に、

・サンプル長と基準音程によっては正しい音程が出ないことがある。

と書かれているではないか。んで、基準音程に指定していた値は、省略した時よりも3オクターブ低い 33。どうもコイツが悪さをしていたみたい。
対処として、まず、波形データを元々の4周期分にして、基準音程の指定を省略(すなわち標準値である 69 を指定)し、念のため WAVSETA の代わりに WAVSET 命令で設定。その上で MML 再生時に1オクターブ高く鳴らすようにしてみた。これにより、音痴になってしまうのは解消できた。
しかし、これだけでは不十分で、パート間で音が鳴るタイミングが微妙にずれてしまっている。いろいろ試行錯誤して調べた結果、どうもボルタメント(MML での "_")した音の直後にタイ(MML での "&")で繋げた場合の挙動が3号と異なっているようだ。なので、今回はその条件下ではタイで繋げないようにしたら、タイミングもばっちり合うようになった。

最後に PC でデザインしたアイコン(Web 検索で見つかったスクリーンショットをトリミングしただけ)を目コピで打ち込んで、無事に公開できた。

f:id:OBONO:20200517222715j:plain
f:id:OBONO:20200517222721j:plain
f:id:OBONO:20200517222727j:plain
f:id:OBONO:20200517222732j:plain
レトロなゲームを出す際は、画面外に付加情報を示したガジェット機能を追加実装するのがトレンドなのだが、そこまでサービス精神が旺盛ではないので。あしからず。