今月はそこそこ頑張っていたわけですが、それもこれも一先ずGBA に区切り をつけて、あわよくば GBAX.com - GBAX2005 Coding Competition に応募し ちゃおうという魂胆があったわけです。だってPSPNDS 欲しいし。まぁでも 間に合わなかったわけで。次の目標はこれか、ネンマツに開催されるであろ うgbadevもしくはpdromsのコンポかなぁ。なんにせよまた、まったりモード 突入ですがな。 それにしても、先月コンポのルールが発表されたときはまさかと思ったけど、 そのまさかでこんなに早くPSP の非公式開発環境が整うとは、といった所。
だりぃ。だんだんソリッドな描き方が分かってきた。ほんとにソリッドかしら?まだ なんだか丸い気がする…。一体描くのに時間が掛かりすぎてモチベーション が低下しまくるのでなんとかしたい。
一画面とみなすには、それぞれの画面が離れすぎじゃないですか?繋がって いるか、せめてもう少し近ければ 384x256 は魅力的なんですが。現時点ではやはりSPかと。GBプレイヤを使えばモニタ縦置きプレイも可能で すし。
PSPスターソルジャーの縦持ち めっちゃやりづらそう。これに比べりゃGBASPの縦持ちは数百倍やりやすい だろうな。
荒らし対策にDSBLというのを教わる。Cyber Syndromeのアレで試してみたら アレだった。ふーむ…。外人避けや業者に対する抑止力にはなるだろうけど、 厨房や潜在的荒らし、無自覚荒らしには当然効果がないわけで。面倒だけど 一個一個要因を取り除いていくしか無いかな。子どもが多すぎんのが一番の 原因なわけだけど。
まだグラディウス外伝やってる。重力面が妙に難しいと思ったら、エミュの ため処理落ちが無いからか。これが本来の姿だとすると素晴らしいぜよ。
レイブン、助けてくれ!化けものだぁ!ってことで久しぶりに蒼穹紅蓮隊を 出してきた。PS2でやったら再現性が結構アレだったのでePSXeでやる。まぁ ePSXeはePSXeで、プラグインの選択によってえらいことになるんだけども。レーザーやミサイルの軌跡はポリゴンだったんだねーって、そりゃそうか。 1面スコアアタック、全敵撃破と黒瞥稼ぎで160万はいったんだけど、300万も いくかぁ?ロックオンの順番考えて、倍率かなり稼がないといけないのかな。 あとグラディウス外伝も出してきた。多関節オブジェっぷりが異常。何でも かんでも多関節だし(;´Д`) この頃のコナミPS作品は、月下といいグラ外 といい、なんだか突き抜けたものが感じられるな。
爆発エフェクトがベタだったりするんだけど割と自然で全然気にならない。 魅せ方によるんだなぁ。つーか今気が付いた!今日はグラディウスの20周年 記念日だったんじゃないか!大変だ!
だりぃ。解像度がアレなので雑魚は24*24で作ってるんですが、OAMに割り当てるとき は32*32だしVRAMにも32*32のサイズ(右下を空ける)で転送するので勿体無 いなぁと思いました。 つーかめんどくせええええええええええええええええ!!!!1!111! 誰か描いてくれよ。頼むよ。俺がやると見ての通り丸っこくなっちまうから さぁソリッドな感じで誰かお願いしますよ。ソリッドがいいんですよ。まぁ でもこのまま突き進んでマホタイを目指すというのもありかもしれません。
日記とアンテナを統合してみた。見づらくなったような気がする。 日記ちょうの構成を参考にしたんだけど、うちのレイアウトだとabsolute とtop/leftで位置を固定できない(管理画面のFORMに被ってしまう)ので 結局テーブルを使ってしまった。まぁいいか。(;´Д`)
というわけで作ったものの、xreaで動かそうとして嵌まった。threadsが 使えないのはまぁ予想通りとして、XML::RSSも使えないよ。調べてみると Shift_JIS.encがインストールされてないっすよ。何考えてんの。 参考リンク:Perl XMLでencoding='Shift_JIS'や'euc-jp'を使う 手動でインストールして事なきを得たが、後でサポートに要望出しておく べきかな? で、出来たのがこのページ。 開いたり閉じたりが面倒くさいので、レイアウトの調整が必要かも。 つーか日記と統合するかなぁ。
なんとかする方法無いかのう。
久しぶりにやりたくなったのでCD-ROMを探してうんづでプレイ。ハードの 制約で二重スクロールが再現出来なかったり、遊ぶのに支障無い細かい部 分がほんのちょっと再現されてなかったりするのだけど、基本的に素晴ら しい移植だ。 画面が縦に狭いので、これで練習してから基板で遊ぶと微妙に簡単になっ たような気分になれます。先読みエスパー養成ギプス。
ちょっとした変更で負荷が大幅に軽減した。「80:20の法則」だっけ?あれが モロに出るなー。弾400発くらいならなんとかなるようになったし、まぁ通常 はその半分も出さない予定なので大丈夫かな。 後回しにしていたランキングをゲームオーバーの後に表示するようにしたら、 思ってた以上にゲームっぽい体裁になったのでニンマリ。
タスクによって処理の負荷が全然違うので、プロファイラを入れて計測してみ ようということになった。が、ここで大嵌まり。 libpgba を組み込んでみたものの、リンク時に "relocation truncated to fit: R_ARM_PC24 mcount" がめっちゃ発生する。libpgba の該当関数をIWRAM に配置してみるとリンクは 通るのだけど、今度はプログラムが動かん。gdb で追ってみるとcrt0の初期化 以前の部分で死んでることが判明。IRAM のmcount を呼んでるのに肝心の関数 が転送されて無いんだからそうなるわな。本当か?仕方ないので全ての関数を .text セクションに置き直す。どうにか動いてログも採れた……が 俺たちの戦いはこれからだ! 〜柏先生の次回作にご期待下さい〜
peak hell → 音読すれ → pikhel → pickle (pythonのmodule名)という ところまでは分かった。が、python使ってないのでもう無理だー。諦め。
The Python Challengeをperlでチャレンジしてみる。 Level.5まではクリアしたものの、Level.5は…なんだこれ。 brainf**kの類かしら。
まだ誘導レーザーです。 減速条件・加速条件・回転角度などのパラメータを色々弄って遊んでますが、 あんまり精度が良くても駄目なんだな!軽い切り返しで気持ちよく避けられ る程度の精度になるように調節しなきゃいかん。 今んところはこんな感じ。 050522laser.avi (1.8 MB)
先日作ったレーザーは「一定時間で消える尾ヒレ」を一定時間毎に吐き出す タイプだったのだけど、今日は「尾が親の位置を見る」タイプの誘導レーザー を作ってみた。それで思ったんだけど、そろそろハンドル型タスクシステム への切り替えが必要かもしれない。
子供が持ってきた答案を採点するゲームを作ろうとして、絵が描けなくて 止めた経緯があるんだが、みんな同じこと考えるんだなぁと思った次第。 ・脳を鍛える大人のDSトレーニング ・かわいいキャラクターと大人のドリル! DS用ソフト『らき☆すた』で脳のトレーニング○×の検出とかやったりしたけど完成しなきゃ意味が無い。 一人で全部やろうとするのがいけないのかも。そうは言ってもなぁ。
誘導レーザーを作ってみる。 昨今の環境だとポリラインってゆーのを使うのかな。んなもんNNには無いので スプライトでやるんですが、最大移動速度を8ドット/フレームに限定すること でそれっぽくなった。レイフォースとか、ALLTYNEXとか神威とかそんな感じだ。 速度を上げたいときは端を補間してやる必要があるかな……。
システム以外の全てのタスクを仮死状態にするのと、大元のタスクマネージャを スキップするのと、どっちがいいんだろ。前者の問題点は特に思いつかなくて、 後者の問題点はゲーム以外の部分でうっかりポーズしてしまうかも。なんだ答え は出てるじゃないか。とかそんな感じで。
固い敵は一瞬だけ色変えたりするじゃん? オブジェクト毎にパレットを割り振るか(16本しか無いので難しい)、色変え した後のパターンを別に持っておくか(容量とDMA資源の無駄遣いが大きい)で 悩んでいたんだけど、よく考えてみたら16色全て真っ白のパレットテーブルを 一個作っておくだけでよくね?よくねくねくね?
描いてます。 爆発は試行錯誤したけど上手く描けないのでDetonationを使ってる。 このソフトはパラメータの調節が難しくて、すぐ飽和して真っ白に なってしまう。あとどうしてもR-Type型になってしまう。一発で作 ろうとしないで、何個か作って組み合わせないといかんね。 煙幕をこのソフトで作るのは困難っぽいなぁ。
内科で診てもらってきたけど、やっぱり血が混じってるって炎症止め貰ってきた。 腎炎とかじゃなくて多分ペニスの方でアレしてたんだろうなぁ。だって【検閲】 だったし。どうせなら内科じゃなくて泌尿器科にして、俺のカワイイおひょんひょ んを玩ばれてくると良かったかもしれない。
血尿が出たにょ〜。 ふざけてる場合じゃないな。 休みが明けたら病院に行くか……。
なんで見辛いのかを考えてて、それについては答えが出たんだけど、 じゃあわざと見づらく作るとしたら、俺だったらどうするかってのを 考えてみたら、なんということでしょう見やすくなったよ。B1までは 余裕でいけるようになった。
2005/01/27の日記の続き。 最近は「取り合えず-O3でいいかぁ」という感じで盲目的に-O3指定している のだけど、このオプションは出来る限りインライン展開しようとするのね。 まぁそれは知ってたけど、この頃妙にIRAMが圧迫されるなぁと思ったら…… 例えば mtrand を実装したがあるとして、#define CODE_IN_IWRAM __attribute__ ((section (".iwram"), long_call)) CODE_IN_IWRAM unsigned long genrand(void);それぞれの型で返す関数を作るとする……と、全部展開されるし(^^;ニラ こんなのはマクロで書けっつう話でした。CODE_IN_IWRAM u32 rand32(void) { return (u32)(genrand()); /* あまり意味は無い */ } CODE_IN_IWRAM u16 rand16(void) { return (u16)(genrand() & 0xffff); } CODE_IN_IWRAM u8 rand8(void) { return (u8)(genrand() & 0xff); }
後先考えずに突貫工事してきたせいか、ソースによって小数部が8bitだったり 7bitだったり15bitだったりして混乱してきたからなんとかする。sinテーブル を符号1bitの小数部7bitで持ってるから、それに合わせりゃいいか。こういう ノウハウって教科書化されてないのかね。つーても設計によるから意味ないか。 ちょっと考えりゃ分かるはずだし。俺は馬鹿なので分かりませんでしたよ。
GBA液晶の応答速度のことをすっかり忘れてた! どういうことかというと…… (´Д`) 「高速弾を少しでも撃つとだな…… 尾を引くようにグラデーションがかって見える」 (゚Д゚;) 「えッ!」 (ノ )ヽ < < (´Д`)y-~~ 「あぁ、嘘だぜ……。だがマヌケは見つかったようだな」 いや嘘じゃないが。 グラデーションがかることより「半透明に見える・輝度が薄い」ことが 問題だ。特に後者が問題だ。見えなきゃ困るのに見難い。これは困る。
以前からやってみたいと思っていたカオスエンジェルスのMSX版が手に入ったので GBAに持っていって遊んでみる。こういう機会でもなければ一生やることは無かっ ただろうと思う。 カオスエンジェルズ for GBA http://ueno.cool.ne.jp/lsound/chaos.html スリープモードが欲しい気がする。電池はともかくとして、LRボタンにコマンド が割り当てられている(TYPE 2)ので、鞄の中でいつの間にか死んでることがある。 まぁTYPE 1で遊べばいいんだけど。四階でError in 38856に遭遇。ソフトウェア のバグもちゃんと再現されてるわけね。青龍を倒したときの描画がおかしい気が する(あさっての方向に線が引かれ、あらぬところをペイントしている)。これ はMSX実機でもそうなるのかな。 四日かけてクリアしたがなかなか面白かった。とぼけたゲームであるな。
爆発のエフェクトやアニメパターン、また、その散らし方などを模索。 ─────────────────────────────────────→ 欝 が 加 速 し て 行 き 収 束 する ─────────────────────────────────────→ 火→→炎→破→→→→→→→→→→→→→→→→→→煙→→→→→→→→ 花 片 みたいな感じ。小さなスプライトをモリモリ使って、内側からモリモリと噴き 上がらせるのが理想だけど、あまり消費するわけにもいかないのでなかなか難 しい。ダブラに手を入れる必要があるかなぁ。いっそのこと割り切って、全て サイズ16x16固定の代わりに640個同時表示が出来るようにするか?
掃除をしようと思ってたんだけど……。
思いついてモニタを縦置きしてみた。すっごくいい感じ! なんでもっと早く思いつかなかったんだろう。 winx68k高速版はスプライトのライン制限が忠実に再現されていて素晴らしい。 VBAも再現して欲しいところだ。一番再現度が高いと思われるNO$GBAでも再現 されてないんだよなぁ。
死ぬほどつまんね。 もう二度とやることは無いだろうな。
二日かけてドラオエ1・2をクリアした。 なんだか今更x68kが欲しくなってきたな。 お前スプライトと複数BGが使えりゃなんでもいいんじゃないの とか言われそうだが、実際その通りだ。