2009年4月27日月曜日

なんか、非常に申し訳ない…

4/30あたりで正式に(?)DXPの開発を中断しようと思います。
えーと、なんというか時間不足の中でやっつけに作ったところもあるので機能不足やバグがあって本当に申し訳ないです・・
バグ修正や実行速度に大きな影響をあたえる更新以外は行いませんし、それも他の人からの報告があった場合のみとなります。
学園祭いろんな意味で終わった・・・
結局展示用プログラムは致命的なバグがあって出品できなかったですorz
追記
学園祭のゴタゴタの中でPSPを紛失してしまいました…orz
未だ非公式エミュレータが充実していないので実機が無いと開発不能です。
よって今日から開発を中断させていただきます。
再開は私が志望校に合格するまでです。だから早くて来年の3月頃ですかね?落ちたらごめんなさい!一年延長です。
とりあえずDXPの事はしばらく忘れてください。PSP開発やってみたい!という方を見かけて、かつ気が向いたら教えてあげてください。
それと、ブログの管理がどうしても甘くなりそうなので今後の記事ではコメント機能を凍結します。
なにかありましたらBBSにお願いします。そしてBBSに変な書き込みがあった場合は全力でスルーしてください。

2009年4月20日月曜日

今月いっぱいでDXライブラリPortableは更新を停止します。

エイプリルフールじゃないです。今月いっぱいで更新を停止します。正確にはプログラミング全般から手を引きます。
再開は大学受験で志望校に合格するまでです。学内ではおちこぼれの部類に入るので本腰いれなければいけないのです。
といった暗い話は置いといて、Ver0.4.12をリリースしました。
ほとんどの更新はバグフィックスです。タグデータ付のMP3を正しく扱えるようになったりとかですね

2009年4月13日月曜日

0.4.10

Ver0.4.10をリリースしました。
ブレンドモード関連を本家に近づけました。というかほぼ完璧のはずです。
さて、ここで宣伝です。武蔵高等学校中学校記念祭が月末に開かれます。
私はCPU愛好会でなんらかの発表を行っている・・・はずです。
http://musashianniversary.net/

2009年4月11日土曜日

Ver0.4.5リリース

Ver0.4.5をリリースしました。
描画関連の最適化を行いました。
また、シューティング大好きさんの協力を受けて音楽再生機能のバグ除去が行われました。
個人的にはもう少しで安定版と名乗れる気がします。
追記
しょうもないバグがあったので修正しました。
さらに追記
描画関連がバグだらけ・・・しばらくバグとの格闘が続きそうです。

2009年4月7日火曜日

開発状況

だいぶDXPも安定してきたかな?と思います。油断は禁物ですが
現在、内部のソースコードを整理する作業中です。数十KBほど使用メモリも減りました。小さいようですが、積み重なるとPSPのメモリ量(プログラマが使えるのは24MB)の中では無視できなくなってきます。千里の道もスキマから、幻想郷は1日にして成らずってやつですね。

2009年4月5日日曜日

サーバーの移行中…

というわけでサーバーの本格的な移行を開始しました。
旧ページはアクセスできなくなります。新しいアドレスはdxlibp.sourceforge.jpの予定です。
追記:移行完了しました。

Ver0.4.3リリース

LoadDivGraphとDerivationGraphが実装されました。動作は本家のものと同じです。
ただし、LoadDivGraphは読み込み時に最大でLoadGraph使用時の倍のメモリを消費します。メモリに余裕があるときに実行するといいと思います。
また、本家では1枚のテクスチャを共有する形になっていますが、DXPではグラフィックハンドル毎に1枚のテクスチャを持たせる形になっています。そのため、分割サイズが2のn乗になっていないと全ての生成されたハンドルに無駄な領域が発生し、予想外に大量のメモリを持っていかれるので注意してください。

2009年4月4日土曜日

バグ修正作業とゲーム作成

まずは、たくさんのDLありがとうございます。二桁いけば良いほうかなーとか思ってたので、一晩でダウンロード数が30とかいっててびっくりしましたw
あと、ソースコードのダウンロード数の方が多かったのもちょっとびっくりでした。あまり見せられるようなコードではないので、うれしさと恥ずかしさでいっぱいです。
さて、早くもVer0.4.1を(バイナリだけ)公開中です。一部の関数に不具合が見つかったので、特定の条件を満たす場合のみ他の関数で代替しています。詳しい話は最後に書きます。
それから、昨日あたりからSTGを作り始めました。いろいろな都合のため締め切りが今月下旬でかなり厳しいですが、高校生活最後の作品としてがんばりたいです。終わったら受験モード全開です。
あ、もちろんDXライブラリPortableを使ったPSP向けゲームです。ライブラリのデモンストレーションとバグチェックを兼ねているわけですw
以降、今回直したバグに関するちょっと詳しい話。


ソースコードを見るとわかると思いますが、DrawGraphとDrawTurnGraphは内部的にDrawExtendGraphを呼び出して描画しています。
ところで、DrawExtendGraphは高速化のためにスプライトとしてGPUに描画コマンドを発行しています。スプライトというのはつまり、四角形の対角頂点の情報だけで描画する方式です。傾いた描画ができない代わりに、通常では4つ必要な頂点情報が2つで済みます。うまく使えばメモリの節約と若干のパフォーマンスアップをすることができるわけです。
そして、さらにDXライブラリではSlice描画を自動で行っています。GPUのキャッシュメモリを有効利用できるように一枚の画像を短冊状にバラして表示するわけです。
それでは今回のバグ、スプライトとSliceが織りなしたカオスワールドについてダイジェストでお話します。
①スプライト方式は2つの頂点情報しか使わない。そのため画像の左右(上下)が通常の反対になったとき上下(左右)も反転してしまう。
②Sliceを行っているために描画コマンド一回で表示する画像の領域の縦横比が大きくなりがち。
③結果としてよくわからない縦縞らしき模様が表示される。
図にするとこんなかんじ。
0.4.1にするとき直したバグの詳細

2009年4月2日木曜日

Ver0.4.0リリース

やっとこさのリリースです。
DrawString関数の追加と音楽再生機能の充実が大きな変更点です。
あー、それから、ファイルの場所がいつもと違います。Sourceforge.jpを拠点とするのが私の出した結論です。
なぜかって?
サーバーのメンテナンスが思った以上に面倒だから!
半分冗談ですw
つまり原因の半分はコレです。Wiki作ってみましたけど、本当はPukiWiki導入したかった><。なぜ私のサーバーで動かないorz ←設定ミスってるだけだと思われる。
というわけでダウンロード先が変更となります。
http://sourceforge.jp/projects/dxlibp/
ライブラリ自体の使い方に変更はないです。そのうち(Wikiの文書を移行したら)私のサーバーは活動を停止します。それだけです。
あ、そうそう、大事なこと書くの忘れてた。
入力、描画、音声等と一通り揃ったので、今後はバグフィックスが中心となります。
もう完成したよ!と出してもいいのですが、私一人だけではバグのチェックが甘いと思います。誰か実際に使ってみて、バグ報告などをしてほしいです。バグがひとしきり出尽くした頃合を見計らってVer1.00、つまり完成版としたいと思います。