或曰

金曜日, 9月 28, 2007

バイク修理完了

8月半ばにミッション壊して修理に出していたバイク ZX-6R が、ようやく修理完了して戻ってきました。交換した主なパーツは
  • シフトドラム
  • シフトフォーク
  • ローギア
  • 3rdギア
  • 5thギア
といったところで、工賃含めてしめて 153,363円也。いや、直って良かった。

様子見がてら首都高を流してくる。池袋線から都心に向かい、東京タワーの脇を抜けてお台場・レインボーブリッジ方面へ。夜景と満月を堪能したところで給油ランプが点灯したので、高速を降りてガソリンスタンドに寄り、あとは下道で帰宅。

ラベル:

水曜日, 9月 19, 2007

ico for win32 (2)

ザルガラー多面体表示 初期パラメタをスクリプトで指定できるようにした [638:f0e586985b62]
よしよし、想定通りにスクリプト追加するのも、スクリプトを修正して実機側プログラムで再実行かけるのも楽だ。この辺の作業は大量かつ頻繁に発生するから、作業効率を上げられるように準備しておかないと、後で苦労する。

あとはアーカイブファイル読み込み時の処理でヒープ使わないようにしたりとか、ハンドルの閉じ忘れバグ直したり、細々とした変更。

ラベル:

木曜日, 9月 13, 2007

ico for win32 (1)

ザルガラー多面体の 3D 表示実装中。

ザルガラー多面体の頂点データを頂点バッファに書き込める形にコンバートするツールを作成し、出力したデータをアーカイブファイルに組み込み。メインプログラムに、アーカイブファイルを読み込んでモデルを表示する処理を実装

よし、とりあえず動いてるな。
  • 表示色・回転速度・移動速度あたりをスクリプトで調整可能にして見栄えを良くする
  • 他のザルガラー多面体も選択可能に
  • ザルガラー多面体の情報(名前とか)を画面表示
まずは、ここまでやるか。あと WM_CLOSE の処理をマジメに見直す必要ありだが、ちょっと面倒なので後回し。

アプリ動作ムービー

ラベル:

月曜日, 9月 03, 2007

DirectX プログラミング

スクリプト言語の方がひと段落したので、久しぶりに DirectX プログラミングに復帰(さっそくキャッシュ処理にバグ見つけた……)。

すっかり忘れてるので、サンプルコード (dbTask*Test.cpp) 読んで思い出し中。あと基礎システムでできてないのがサウンドと 2Dスプライト、3Dモデル、モーション、シェーダー管理あたりか。とりあえず、そのあたりは脇に置いてザルガラー多面体と星型多面体のビューア作るかね。

スクリプト D&I (Fin) 組み込み

Win32 版のスクリプトコンパイラ (cscrc.exe), 逆アセンブラ (cscds.exe), C++グルーコード出力プログラム (sysdecl.exe) の実行ファイルを作成して commit すると共に、GameObj.exe 本体に VM インタプリタ組み込み。これで、ひとまずスクリプト言語処理系は終わり。
組み込み前に簡単な最適化をいくつか追加して、実行ファイルに定数プールセクションを出力できるようにした。

Win32 版の実行ファイルは FreeBSD 上で MinGW gcc version 4.2.0 を使って作成。FreeBSD システムコンパイラの gcc 3.4.6 や、Cygwin 版の gcc 4.1.1 だと、意味不明のコンパイルエラーになる。なんか微妙なバグを突いてしまった雰囲気。

関係ないけど Lua は 5 から仮想マシンがスタックマシンではなくレジスタマシンになってるんですね。レジスタマシン流行りなのかなと思って調べてみたら、いくつか paper 発見。

現実のレジスタマシンだと、レジスタの割り当てと、関数呼び出し時の引数設定・破壊されるレジスタの退避・復元処理なんかが面倒。どう処理してるのかと思ったら、レジスタの本数を多めにとるのと、レジスタウィンドウ的なアーキテクチャを採用してレジスタの退避・復元処理をインタプリタ側で手助けする形になってる。なるほどね。

あと Lua 5 の VM 命令セットはシンプルで素敵。さすがによく考えられてる。

ラベル: