iPad専用アクションゲーム「スライムは投げる」

最近のエントリー

10/5日の日記でスーパーマリオランドのリミックス曲について触れましたが
(iTunes入れてる人は視聴できます↓)
Supermarioland / Ambassadors of Funk

スパキンを誘惑してきた友人が、「ギフト」機能で買ってくれました!
(なんか新機能らしいんですが)

今日は一日中ピコピコ音が鳴り響いてます。
 
 
マリオランドは、最後の中国っぽいステージの曲も好きだったな~。

そうだ、

京都

行こう
 
 
 
 
車で。

2005
10月
12

おもすれ~
 
 
 
 
・・・我慢できなかった_| ̄|○
↑ポイント使って買ってきた

2005
10月
11

スパキンオモスレー」という内容のメールが来た。

大ダメージ。

(昨日の続き)
MMXやアセンブラで検索すると、参考になるサイトがありましたので、そのサイトと睨めっこしつつアセンブラコードを書いてみました。

C言語の時は、アルファブレンド計算結果をあらかじめ配列(ルックアップテーブル?)につっこんでおいて、画像1と画像2のRGB値毎に、そのテーブルを参照して結果を求めるだけだったのですが、 MMXを使う場合は、そうしたルックアップテーブルを使う事が出来ず、毎回その場で計算しないといけなさそうだっため、本当に速くなるのか疑問でしたが、実際にやってみたところ、2倍以上の速度アップになりました!

test.LZH (718KB)

(今回から60FPSリミッターを外しています)

mmx pentium2 233MHz (昔のvaioノート)で、
2枚画像のアルファブレンド処理部分のFPSは、

C言語版:8~9FPS
MMX版:20FPS

・・・という結果になりました。

もちろん開発マシン(pentium4)では60FPSを超えています。

MMXを使うといくつかのデータに対して同じ処理を一度に出来るのですが、今回は掛け算なども使用する制限上、4つの数値を同時処理しています。

C言語の時に使ったルックアップテーブルは使えなくなったものの、この4つ同時処理が効いて、最終的に2倍程度になったようですね。

まだ改良の余地は多々有ると思いますが、とりあえずこの程度動けば、アドベンチャーゲームとしては成立するんじゃないかなぁと思いたいです。
(全画面アルファブレンドが出てくるシーンなんてあんまり無いでしょうから^^;)

実際にはBGM処理なども入るでしょうから、もうちょっとFPSは落ちると思いますので、動作環境はpentium2か3の500MHz以上(MMX必須)って所でしょうかね。

#ちょっと寄り道しすぎたので、EDGE2開発に戻ります。

記事検索

コミュニティ

Banner designed by しょさ様
ドット絵掲示板
ドット絵掲示板
自作の「ドット絵」を投稿することができます。ドッターさん同士の交流の場としてご利用ください。
TakaboSoft Wiki
TakaboSoft Wiki
ソフトウェアに関する質問・不具合報告・要望などを書き込むことができます。