■ [Update]: 白い弾幕くん 1.2.3
よもやこんなに早く次バージョンを出すとは。 大原さんに、弾幕をさらに4つと、バグ報告も頂いたので。
ありがたいことです。
ちょっと作りが変わっているんで、 バグがあるかもしれません…
adasさん にフォントのことについて教えてもらったので、 ちゃんと何メートル進んだかわかるようになりました。
■ [Program]: リナザウのおはなし。
えと、前回の saga1 が遅いってのは、嘘でした。すいません。 本体メモリの物体を SD に移したらほとんど解決しました。 まあほとんどフルスピードと言ってよい状態になっています。 画面ずれ。 SDL 側で xy が逆転してるんかな。 暇な時に眺めてみます… あと、 SL-5500 はネットで見る限りは、SL-B500 と 同じ扱いで問題無さそうな感じがします。自信皆無ですが。
■ [Update]: 白い弾幕くん 1.2.2
弾幕を 大原さんに頂いたのでリリースでございます。 今回は リナザウ版 も同時リリースです。
リナザウ版は 30FPS 弱。浮動小数点を全部 固定小数点数に置きかえたのにまだ遅い。 まあでもゲームにはなります。 これで街に出て弾幕をその場コピーが可能か?
弾幕といえば、 Bulletnote をやっと試せました。 Linux に Eclipse がなかなかインストールできなかったので、 Windows で。ああ面白い。 カルネージハート気分で弾幕書ける日も近いか? とりあえず Linux で Eclipse 動さないと。 めんどくさそうなんだよねえ。依存ライブラリとかが。
リナザウ版の GUI 作る時に zgnuboy のソース借りたんですが、 SDL ゲームを Process::exec で動かすと、 defunct ができまくるんですが、なんでだろう。 とりあえず system で一時しのぎをしました。
■ [Program]: リナザウ最後の日記的報告。
1月12日晩。SL-B500 と SDカードを見に渋谷へ。
B500 問題を見る。ソース見てもラチがあかんので、 唯一のてがかりである スクリーンショットを分析。 見たところ全てのドットが打たれているようだったので、 状況を理解するために復元するプログラムを書いて、 もとの画像を復元してみる。できた。 で、しばらく頭をひねっていると、ただ x-y が反転しているだけだと気付く。 凄くいい加減な B500 専用コードを書く。
1月13日。この日はほとんどネットに繋げない。 2ch に実験してくれんかと書き込み。 よし。嬉しいね。協力ありがとう、690, 691氏。
ネットから切れので、SD カードを買いに行こうと思った。 近所のビックカメラは 128MB が 7800円だったけど、 価格.com では通販価格 5500円だと。 秋葉に行く。6000円が一番安かった。Sandisk の 128M。 そこらのネットに繋がっている展示機で 動作実績があるかチェック(すいません)。 もろ 鬼門。 次善の 6400円の東芝の 128M になりました。 ビックカメラは一割還元で 7000円だとすると、 6400円 + 往復 380 円でロクに安くなってない。敗北感。 だいたいこんな吹けば飛ぶような (2グラムだそうな) ものが 何でドリームキャストより高いねん。 もともとあまりメモリを使うような作業をしない人間なので swap は保留。 ソフトを SD に移すとずいぶん速くなった。
1月13日晩。SDL のパッケージ化、KoboDeluxe の移植など。
せっかく母艦側で Webサーバが動いてるのだから、と、 母艦からソフトをネットワークインストールできるようにしてみた。 とても便利になりました。
だいぶ動きが鈍ってきた。
1月14日。 やっと qtopia の勉強。 sharp のチュートリアル がよくできていると思いました。 ありがとう sharp。 そろそろ熱が冷めないと真剣に放校になりそうなので、 もうこんなことを書くのはやめようと思う。
ていうかまだ貰ってから一週間たっていないのね。
■ [Program]: qtopia SDL
で、A300, B500 の fix をした SDL の ipk パッケージ。 パッチ。
本当は escape で SDLK_ESCAPE を発生させるんじゃなくて、 escape+space 位で SDLK_ESCAPE を発生させるように 環境変数で切り換えられる裏技を仕込みたいなあとか思ってるんですが、 いくらなんでも汚なすぎだよなあ… でも左押す時に絶対触っちゃうんだよね。
白い弾幕くんは BulletML ビューアにはなっているので、 ゲーセンで弾幕をコピーする、 という当初の目的は果たせそうなので半分満足していたりしますが、 ありがたいことに楽しみにされているとのことなので、 高速化してみたいと思います。 現状弾が増えると 10FPS 未満と死んでいます。 C700 なら15FPS 位にはなるのかな。 まあとにかく double の排除をすれば速くなるのではないかと。
パッチの件ですが、 とりあえず無闇に isSla300, isSlb500 などと増やしていますが、 どう考えても enum かなんかでマシン情報を保持すべきだと思います。 で、なんでそうしなかったかと言うと、 audio でもその情報を共有したいなーなどと思ったのですが、 はてさてどうやったものやら、というところで思考停止したからです。
zgnuboy は、GB の saga1 がまあ快適に動いています。 音飛びは常時我慢できる程度起こっていて、 絵の方はたまにフレームスキップ or 処理落ちしている感じです。 たぶんアクションゲームじゃなきゃ快適だと言えると思います。 GBC は本体及び ROM カートリッジを所持したことが無いので試せません…
案外頑張れているのは恐らく、blitRotate0 を使えているからではないかと。
NES が案外きついのはちょっと意外です。 移植頑張ってください。 私もなんか大物に手を付けたいな、などと思っていますが…
■ [Program]: ポータブルなコード
MetaProgramming 関係で。 そうじゃなくて、 MPL は凡人の意識できる限界を越えかねない、 C++ MetaProgramming を STL ライクな文法を持った 私みたいな凡人でも理解できる形式に ラップしてくれるライブラリなんだってば。 とかポストしようかと思ったけどまあやめた。 で、ここで言い捨て。ひでーヤツだ。
K.INABAさんも面白いものを作られていますね。 一度 ioccc を全部読みたいなあ。 月刊企画もむちゃくちゃ面白いです。 頑張って下さい。 私が Cマガで一番楽しんでる記事は千言万語だからなあ。
■ [Program]: リナザウ続き
1月10日夕方。 うげげ、B500 は全然違う。 前回の勘違いはとんだ恥さらしということで。 で、SDL を眺める。コードを大体把握してきたけど、 B500 問題の解決法はわからじ。 とりあえず、B500 に関しては昔に戻すのもありだろうけど。
1月10日。18時から25時までバイトでそれから。 現実逃避に白い弾幕くん移植。完了。が、遅すぎ。 プロファイルしてみたところ、浮動小数点が遅すぎるっぽい。 そりゃそうか。 固定小数点数 に置きかえていくもうまくいかない。
1月11日。 とにかく移植。 ドリラー、 FALLING TOWER、 wok、 bmda。 ゲーム機にするつもりなのだろうか。
合間に SL-A300 のダメダメ十字入力をアドホックに修正。 十字キーの左を押したら隣りのキャンセルに 触っちゃった現象以外はだいぶ修正できていると思う。 emacs の c-basic-offset を変えまくった一日でした。
1月12日。公開できるものは公開しようかと思う。 リナザウゾーン。 白い弾幕くんと wok は処理が遅いからとりあえず保留。 bmda は BMS の圧縮とか色々しなけりゃならんことが。
SDL 本体についての SL-A300向けパッチ。は消しました。 続きをどうぞ。 入力周りが結構マシに。 阿川さんの成果物からの差分です。 ipk パッケージ。は消しました。 続きをどうぞ。 こんなところで A300 で結構満足にゲームができますので、 阿川さん、暇ができましたら C700 での動作確認の上、 パッチを取り込んで頂けんでしょうか?
■ [Program]: SL-A300
が届きました。楽しすぎ。 もうある程度ノウハウが出回っているかららくちんらくちん。 全力で後を追うべか。
1月8日。届く。とりあえず TCP/IP を USB ごしに通す。
1月9日。ROM を 1.2 に。PDA としての体裁を整えるため、 handskk 関係や Opie Player とか文庫ビューアとかインストール。 クロスコンパイラを RPM で拾う。 宝箱 Pro から。 コードさえポータブルに書いていれば、 クロス開発で一番めんどくさいのはクロスコンパイラの コンパイルじゃないかと思うから、ものすごくありがたい。 ありがとう、シャープ。
で、SDL をコンパイルして、testsprite を動かす。6FPS。絶望的。 とりあえずいつも通り stetris を動くように持っていく。 -DQWS は超重要な模様。まあとにかく stetris は動いてます。 一応 ipk で入れてみる。TGM シリーズクローン。 万が一欲しい方はメールなりなんなり下され。
阿川さんが gnuboy 移植の偉業で 神になられた模様。 後を追うべし、と、 謹製 SDL をインストール。 はい画面が逆。
1月10日。 B500 で起こっているらしい問題 も同じ理由だろうて。 一瞬で解決。 適当パッチ、は消しました。 続きを見て下さい。 阿川さんはこれから しばらく network unreachable らしいんで、とりあえず、 暫定 ipk パッケージ、も消しました。 続きを見て下さい。
えと、testsprite が 51FPS とかになってるんですけど。わーい。 とりあえずこれをベースに、SL-A300 向けの改造を試みたいと思います。
あと、キーコードの話ですが、 SL-A300 では、十字のまん中が space、OK が enter、Menu が f11 だそうです。 だから、
bind enter +b bind f11 +a bind space +start
$HOME/.zgnuboy/zgnuboy.rc に、 こんな感じで書くと良いかと。
■ [Program]: SDL と zgnuboy を SL-A300 向けに
SDL へのパッチと SDL ipk パッケージは消しました。 続きをどうぞ。 やったことは、さっきの SL-C700 以外だと画面が反転しちゃうのの修正と、 阿川さんが取り込まなかった SL-A300 用音パッチの取り込み。 これは SL-A300 の時にだけ反応するようにしています。 SL-B500 の情報も欲しいっすね。 C700 でも問題無く動くはず。
gnuboy へのパッチ。 zgnuboy ipk パッケージ。 A300 はボタンが足りん、ということで、ペンで入力可能に。 $HOME/.zgnuboy/zgnuboy.rc に
bind penup +up bind penright +right bind pendown +down bind penleft +left bind pencenterright +a bind pencenterleft +b
てな感じで。centerright ってのは画面中央ちょっと右ってこと。 ちょっと中央が狭すぎるかもしれない。 ロープレとかならペンだけでできるかと。
気付いた嫌なこと。 まんなかの十字は上下左右と真ん中で、五つのボタンになっているんだが、 それらを同時押しすると、後で押した方の RELEASE イベントが発生してない。 そのボタンはずっと押しっぱなしになっちゃうの。
■ [Book]: マルチパラダイムデザイン
ピアソンエデュケーション、3800円、ジェームズ・O・コプリン。
今さらながら。図書館に注文して速読。
なんかいろいろ感銘を受けた気がします。 「なんでもかんでも OO っつう今の狂信的な風潮はだめだ、 OO だけで記述しきれるわけじゃない。現実はそんなに単純では無い。 さまざまなパラダイムを組み合わせて記述することが必要だ。」 という主張が痛快。
そのためには共通性と可変性を分析して… とか簡単に要約できるといいんだけど、 結構難しい内容だったんで私にゃ要約する自信が無いです。 各章の最後に要約が付いているんで、 忙しい方はそれを全部読んでいくと良いかも。
プログラムから職人気質が失なわれつつあるような昨今にあって、 プログラムはアートだ、などという筆者の主張は、 常々 Java に愚痴ってる私にはとても面白かったです。
ただ残念なのは、これを読んでも、周りの OO 信者を 改宗させるに足る理論が私の中に構築できなかったこと。 なんていうか、ああそうだよね、と共感してくれる人と 熱く話すことはできても、全くそういう世界を知らない人とは この内容で会話することは難しいだろうな、という、そういう感じ。
もうちょっと、「OO、カプセル化、継承、多態、マンセー」 みたいなスローガンと、それを簡潔に実装できる言語サポートが 無いときついんだろうな。現状の C++ ではなかなか…
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。