GBAプログラミング

ICE-MAN Advance ver1.00公開です

サイトの準備も整い、やっと公開出来るようになりました。 自分で作ったゲーム(移植ですが)を多くの人に遊んでもらえると思うと、喜びもひとしおです。 まだまだ、改良点はありますが、暫定版という事で。 ↓サイトはこちらから http://www.piko2tech.com/

ICE-MAN Advance(仮)ほぼ完成

長かった移植作業も、ようやくゴールにたどり着けそうです。音とエンディングの実装を経て、完成しました。現在、数名の方達にデバッグ作業をお願いしています。デバッグが完了したら、一般公開しますので、お待ちください。一応、1面クリアまでの動画をキャ…

エンディング制作中

音問題は無事に解決したので(割り込みの制御方法が問題でした)、エンディング制作に取り掛かっています。 ちょっとしたデモも付け加えたので、まだ完成はしていませんが、そのワンショットをモザイクで公開です(ネタバレの為)。 エンディングが完成した…

DMAを使ったPCM再生の問題

今年初めての書き込みになります、本年もどうぞよろしくお願いします。 挨拶はここまでで、現在、ムック「Linuxから目覚めるぼくらのゲームボーイ!」のソースコードを参考に音入れ作業を行っています。 音は鳴るものの、終わりに別に用意した音が鳴ってしま…

来年に持ち越しです

ICE-MAN Advance(仮)の完成は、来年に持ち越しです。 この一年、時々投稿するブログをご覧くださり、誠にありがとうございます。 来年もどうぞよろしくお願いします。 それでは皆さん、どうぞ良いお年を。

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

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

ステージクリア表示

しばらく作業が出来ずに止まってしまいましたが、ステージクリア表示が出来ました。 ステージクリア表示の文字はBGで行っているのですが、スプライト(オブジェクト)で隠れてしまうと困るので、オブジェクトを消して表示しようと考えています。 しかし、ス…

金塊を光らせる

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

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

先日、スパイラルアニメーションを作り、画面を真っ黒に覆うエフェクトを実装しましたが、その後にステージ数を表示させて、ゲーム画面を逆のスパイラルアニメーションで表示する様にしてみました。文章よりも、キャプチャした動画を観てくだされば、どんな…

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

デモ中にスタートボタンを押すとゲームが始まる仕様にしていますが、その時でも、ぱっと画面が切り替わってしまっては味気無い(と思いませんか?)と、黒色の16×16ドットのタイルを左上から順番に螺旋状に敷き詰めて画面を切り替えるアニメーションにしよう…

画面切り替えのアニメーションを作る事に

画面を切り替える(デモ画面から実際のゲームに切り替わる時など)のに、一瞬で切り替わってしまうのも味気無い(寂しい)ので、ちょっとしたエフェクトを使ってフェードイン&フェードアウトの関数を作る事に決めました。今考えているのは、画面左上から始…

タイトル&デモが完成

予定していたデモも完成したので、キャプチャしてみました。 後、微調整や追加もあるかもしれませんが、個々で一区切りという事で。 次は、デモからゲームに移る部分を作る予定です。

レイアウトに必要なスケールを表示させる関数を実装

「何マス目から表示したら良いんだ」「この辺りだと大体何マス目だろう?」などと、目を凝らして確認するよりも、実際に8×8ドットの数字を縦横に並べて表示したら便利だろうと思い、そんな関数を作ってみた。

キャラクタ説明

チマチマ進めています。今日、デモ画面のキャラクタ説明の画面を作り終えました。オールドゲームなら、お約束のキャラクタ説明。次は、操作説明に取り掛かります。

状態推移の応用で、タイトル画面を作り始める

状態推移の実験で得た方法を応用させて、タイトル画面(まだ途中まで)を作ってみた。 作っているうちに、8ビットパソコンでプレイした数々のゲームを思い出した。 つまりこれは、リスペクトってやつですよ!! この後は、キャラクタ紹介と操作方法の説明を…

タイトル画面を2パターン作ってみた

元々GBAは画面が狭い為、一度に表示出来る情報量がどうしても小さくなってしまう。 そこで、PC-8001のゲームなどを見てみると、ある程度情報を分別して、それぞれを画面を切り替えて表示している事を参考にしてみた。 一応2パターン作ってみたが、あとはキ…

ICE-MAN Advance(仮)タイトルロゴのずれを修正

修正前 修正後ビミョーなのですが、「これをbmpファイルで保存→bmp2cでテキストデータに変換→修正箇所の部分を置換」という作業で、コンパイルして実行し、確認出来ました。次は、タイトル画面を作成する予定です。

タイトルロゴを表示してみるが・・・あれ?

あれ?ロゴの下の部分がずれてる・・・。パターンエディタで修正か。

二重宣言エラー

gccコンパイルで、 error: two or more data types in declaration specifiers というエラーが出た。これは、二重宣言されているというエラーで、定義はわかっていたけれども、宣言も多重にするとエラーが出るという事を初めて知った。 あははっ・・・・、初…

ICE-MAN Advance(仮)タイトルロゴをタイル化にしてみた

タイトルロゴ用に作成したモノ(今の所8ドットフォントを3倍に拡大しただけだが)をバックグラウンドタイルにして既存のタイルデータに追加してみた(一部分を入れ替えたという方が正しい)。入れ替える前 入れ替えた後

タイトル画面作り

ただ文字の拡大では味気無いと思い、これにちょっと色付けしてみようかと思う。

ゲームの状態推移の実験

久々のICE-MAN Advance(仮)の更新です。ゲームの状態推移の実験で、 「一定間隔をおいて一番後ろの背景を表示したり、非表示にしたりする」 という事を行った。関数ポインタを配列に登録し、順番に実行していくというアルゴリズムを使い、タスクの一番最後…

ゲームの状態推移に付いて考えている

しばらく間が空いてしまいましたが、取り掛かっています。 ゲームを良く観察してみると、色々なシチュエーションが有るのがわかります。 タイトル画面 デモ画面 ステージ表示 実際のゲーム クリアした時のメッセージ ゲームオーバー ネームエントリー などな…

ICE-MAN Advance(仮):主人公(バッキー)のアニメーションを実装

どういう方法をとったかというと、・前回のキャラクタの動作状態を参照し、同じならカウンタにプラス1、違ったらゼロクリアする。 ・そのカウンタを4ドット動くごとにパターンを変える為、4で割り切れた時に違うパターンに変える。そんなアルゴリズムで実…

ICE-MAN Advance(仮):金塊を表示し、重なったら消える様にした

今回は、アイスブロックの置くアルゴリズムを変更、動作状態の表示(printfデバッグ)などを実装。大分ゲームらしくなって来た。次は、キャラクタのアニメーションだ。

ICE-MAN Advance(仮):A、Bボタンでアイスブロックを左右に置く実験

なんとかアイスブロックを置く所まで来ました。 アイスブロックのあたり判定もちゃんと実装済み。 次は、金塊ゲットプログラムかな?

ICE-MAN Advance(仮):グリッドムーブシステム

RPGのドラクエの様に、キャラクタ単位でスムーズに動いて止まるシステムを考えて、プログラムを書いてみました。

キー入力情報とスプライト移動

前にもやったけれど、今回はprintfで各ステータスも表示してみた。 左下はキー入力情報で、各ビットでオンが1、オフが0。 上の文字や記号は、各ビットの意味で、 L:Lボタン R:Rボタン ↓:十字キーの下 ↑:十字キーの上 ←:十字キーの左 →:十字キーの…

v-blank switchの実験

メイン処理を一通りこなしたら、v-blankの書き換えを待つというスイッチングの実験。スナップショット に出ているV-COUNTERはv-blankの回数で、W-COUNTERはv-blank待ちのカウントです。これを見ると、大体52〜53カウントをしています。

v-blank割り込みでカウントアップ

取組中のGBA Homebrew「ICE-MAN Advance(仮)」ですが、割り込みの入り口とも言うべき(?)v-blank割り込みを組み込むテストをしてみました。v-blank中にカウンターがアップする仕組みで、printfで確認してみました。