DMAを使ったPCM再生の問題

今年初めての書き込みになります、本年もどうぞよろしくお願いします。
挨拶はここまでで、現在、ムック「Linuxから目覚めるぼくらのゲームボーイ!」のソースコードを参考に音入れ作業を行っています。
音は鳴るものの、終わりに別に用意した音が鳴ってしまう問題があり、去年からずっと悩んでいたのですが、割り込み処理の方法が間違っていたらしく、何とか解決しそうです。
ブログの書き込みが無いと、活動しているのかどうか皆さんにわかってもらえないと思い、現状を書き込んで次第です。
音問題が解決したら、エンディングの完成を目指します。

エンディング制作に取り掛かる。

久し振りに書き込みをします。
その間に、PCM再生を実装しました。
最後は、エンディングです。
オリジナルでもあったので、GBA版もアレンジしてやってみたいと思います。
まずは、オールクリアのメッセージのスナップショットです。

ステージクリア表示

しばらく作業が出来ずに止まってしまいましたが、ステージクリア表示が出来ました。

ステージクリア表示の文字はBGで行っているのですが、スプライト(オブジェクト)で隠れてしまうと困るので、オブジェクトを消して表示しようと考えています。
しかし、スプライト(オブジェクト)は、BG面の下にも表示出来ると思うので、そのへんをもう一度調べてみます。
これで、次のステージに移る事が出来れば、ステージデータ作成(現在2面まで)、ステージオールクリア処理の作成と移っていく予定です。

金塊を光らせる

ホントに地味なエフェクトなのですが、一定間隔で金塊を光らせてみました。
キャプチャした動画は、確かにわかりにくいのですが、心の目で見れば見えるかもしれません(笑)。

つぎは、ゲームクリア処理にかかります。

逆スパイラルアニメーション

先日、スパイラルアニメーションを作り、画面を真っ黒に覆うエフェクトを実装しましたが、その後にステージ数を表示させて、ゲーム画面を逆のスパイラルアニメーションで表示する様にしてみました。

文章よりも、キャプチャした動画を観てくだされば、どんなものかわかると思います。

スパイラルアニメーションが完成

デモ中にスタートボタンを押すとゲームが始まる仕様にしていますが、その時でも、ぱっと画面が切り替わってしまっては味気無い(と思いませんか?)と、黒色の16×16ドットのタイルを左上から順番に螺旋状に敷き詰めて画面を切り替えるアニメーションにしようと考えました。
別のプログラムで、X座標とY座標の配列を順番に吐き出すプログラムを作り、その配列を参照させてタイルを置いて行く様にしました。
次は、真っ黒になった画面にステージ数を表示させて逆の螺旋パターンでステージキャラクタを描いて行く予定です。