ぱじ氏がしばらく前から作っていたFlashゲームが完成。デナスサイトで公開してみる。いわゆる脱出ゲー,でいいのかな。「忘れもの」。
I・O DataからUSB2-PCADPGのVistaドライバが公開されていた。さらにVista x64版も公開されていたのでついでに入れてみる。これでx64でもある程度生活できるかも。やる意味があまりないけど。
新ノートが来てからWeather TypingとWorld TesterのVista対応,Visual Studio 2005対応,Unicode対応,64bit対応をやっている(つまり機能追加の全くないバージョンアップ)のだが,Vista対応はちゃんとやろうとすると難しい。問題は主に2つ。
1つ目はUAC。管理者権限でもProgram Filesなどが書き込み禁止になるというもの。MS推奨的にはユーザごとに異なるデータはAppDataに入れよ,とのことなんだろうが,フリーソフトとしてはアンインストールが面倒になるので辛い。市販ソフトは普通アンインストーラがあるのでMS推奨通りにやればいいんだろうけど,フリーソフトはたいていデスクトップとかドキュメントフォルダにダウンロードしてその場で展開,いらなかったらそのまま削除,といった手順になると思う。でも設定をAppDataに入れてしまうと,まずデータを消してからプログラムを削除になって面倒になる。結局今は中途半端な策として,プログラムがProgram Filesなどに入っていたら設定は書き込まない方針で実装中。つまりVistaに仮想化されて変な場所にファイルができたり,ファイルに書き込めなくて落ちるといったことだけはないようにする,と。インストーラのないフリーソフトのためのもっといい方法はないのかなあ。
2つ目はUIPI。アプリケーションごとに(というかカーネルオブジェクトごとに)権限が決められていて,自分より高い権限には手出しできないというもの。これに影響を受けるのは…ロビーの自動退席機能。ロビーを起動しておいて,例えば1分間マウス,キーボード操作がなかったら状態が「退席」になるという機能だが,UIPIによって,ロビーを起動中に管理者権限のアプリケーションで作業をしていると,マウス,キーボード操作をしていても「退席」になってしまう。対策するとしたらどうやるんだ。電子署名とManifestでいいようなことも書いてあったりするけど,フリーソフトで電子署名は無理っぽいし,マウスとキーボードドライバでも書くしかないのか。って64bitだとドライバにも電子署名必須だし。てことで現状こういう制限にするしかないと。
Vista x64を入れるため,パーティションを縮小できるフリーソフトを探していたら,Vistaでは標準でパーティションを縮小したり拡大したりする機能があることが分かった。てか,「コンピュータの管理」の「ディスクの管理」でできるんだけど,「ボリュームの圧縮」というメニュー名はどう考えても誤訳にしか思えない。「ボリュームの圧縮」って言ったら懐かしのDriveSpace,じゃなくてNTFSの圧縮機能を思い浮かべると思う。
とはいえ,Vista標準のパーティション縮小はファイルの位置をずらしてくれないので,いろいろ工夫する必要がある。SysinternalsのDiskViewで一番後ろのクラスタにあるファイルを他のHDDに移したり,Pagefile.sysを一時的に消したりして,なんとか15GBのパーティションを確保。
てことでVista Ultimate X64をXPS M1710にインストール。特に何事もなくインストール完了。ドライバとかソフトウェアとかが64bitに対応していないので何もできないのだが,とりあえずウェザタイの64bit版は開発できる。
Visual Studio 2005のVista用パッチが出ていたので早速入れてみる。
今使っているノートはVistaのx64版が入るっぽい。といってもHDDのパーティション切らないと入れられないけど。ウェザタイとかの64Bit化もやってみたいのでインストールしてみるか。
最近Vistaで休止状態やスリープから復帰するとブルースクリーンになっていた。カーネルメモリダンプをデバッグしてみてUSB関連ということは分かったので1つずつUSBデバイスを外していったら結局USBマウスが原因だったっぽい。このメーカーのUSBマウスなのかUSBマウス一般なのか分からないけど。
# その後マウスを抜いていてもブルースクリーンになったのでこれが原因ではないかも。
ウェザタイのUnicode化をやってみる。ライブラリとWorld TesterのUnicode化は既に終わっているのだが,ウェザタイは日本語をたくさん扱うのでかなり面倒。
MFCアプリケーションのデバッグをやっているのだが,以前はMFCのソースコードデバッグが行えたのだが,VC2005 SP1上ではアセンブリになってしまう。確か以前はMFCのソースの場所を聞いてきたのだが,VC2005 SP1ではPDBファイルに書いてあるパスしか読み込めないっぽい。XPのときはどうだったかなあ。
World Tester。ウィンドウサイズの変更サポートとズーム機能の改善をしてみた。今使っているノートは画面が1920×1200となかなか広い。この画面でさすがに640×480はないよなあ,ということでウィンドウサイズを動的に変更できるようにして,さらに設定保存できるようにした。で,画面を広くしたらオブジェクトがでかすぎたりするようになったので,ズーム機能を改善することに。今まではカメラのパラメータをいじって無理矢理拡大,縮小してたのだが,やりすぎると画面が歪んでしまう。そこで,オブジェクトの方を拡大,縮小するようにして自然な感じにした。
ついでに,現バージョンでは影が真っ黒になっていたので半透明にした。
趣味プログラミングはエンハンスするときにがんがんリファクタリングできるのがいい。機能を加えるたびにコードがすっきりしていっている気がする。これが仕事だったら怖くてリファクタリングできないからどんどんコードが汚くなっていくという。
PCの性能が良くなったので開発を再開。前のノートではVisual Studio2005を使っているとインテリセンスの更新でちょくちょくCPU100%になっていたのだが,今のノートではマルチコアのおかげか全く気にならない。てかマルチコア,マルチCPU前提の作りな気がする。
Virtual PC 2007正式版リリース。そろそろDirect3D動かせるようにして欲しい。
DELL XPS M1710にVistaクリーンインストール。付属のDVDにはVista用のグラフィックドライバが入ってないので結構探し回ってしまった。結局米国のDELLサイトから日本語ドライバを落とせばOK。
タイミング良くNortonのVista対応版がダウンロードできるようになっていたのでインストール。しばらくAvast! を使っていたのだがやっぱりNortonが落ち着く感じ。根拠なし。
環境構築も終わったので早速World Testerをやってみる。ブランコが60FPSになってリアルタイムに動く。なかなかいい感じ。せっかくDirectX9対応+VRAMが512MBもあるので、3D関係をいろいろやってみたいところ。
Newノートが来た。Core2Duo 2GHz + GeForce GO 7950 GTX。早速メーカの人が一生懸命キッティングしてくれたVistaを消して,2000/XP/Vistaのトリプルブートにしてみる。
Vista発売後,各メーカから対応状況が出ている。で,今使っているものの対応状況を見てみたが,あんまり対応できてない感じ。で,こんなところでガセ情報流してもアレなんだけど,2ヶ月Vista使ってていくつか回避方法があるので落書き。
例えばNECのSmartVision Pro2 for USBなんか(TVキャプチャ)は「Vistaには対応していません」と宣言されていたりする。UACさえ回避すればちゃんと動くみたいなので,関連するアプリケーションが全て管理者権限で動けばいいと。自PCはAeroじゃないのでAeroだとどうなるかは不明。
#その後Aeroでやってみたが,Smart Vision起動時だけAeroがオフになるだけで動くことは動く。終了時に落ちることがあるのでちゃんと動くとは言い難いが…。
I・O DATAのUSB2-PCADPG(PCカード→USBアダプタ)は以前Vista対応状況が出ていたような気がするが,今はなくなっている。usbser.sysがVistaでなくなってしまってインストールができない。検索してみたらMSのKB837637で解決できた。
# その後I・O DATAから公式にドライバが公開された。
Nortonは…Vista発売後アップデートみたいなことが書いてあったけど,今見ても変わってない。対応するのかなり大変そうだけど。
Atokは17がそのまま使えてたのだが,現在JustSystemのページには「いくつかの制限事項が存在します。」で詳細は2月末公開予定となっている。なんか変なところあったっけ?
Vista発売ってことで。ホントは1月中にDenasuのソフトのVista対応版を出そうと思ってたのだが,特に今のままでも問題なさそうなのでそのままにしている。唯一の注意事項として,プログラムをProgram Filesとかに入れてしまうと記録ファイルとか設定ファイルとかがC:UsersxxxxxAppDataLocalVirtualStoreProgram FilesWeatherTypingみたいな変な場所に保存されてしまうので,c:WeatehrTypingとかデスクトップとかに入れること,というのがある。本来ならユーザごとのフォルダに入れるのが正しいんだろうけど,このくらいの規模のソフトだったら,そこまでやるとかえってうっとおしいので変えない方針。「よくある質問」に追加しておこう。
Weather Typingの記録が反映されないという指摘をメールで頂いた。これは不正ツール対策で,特定条件を満たすと記録を反映しないようにするという内部仕様のためだが,質問がくるということは通常でも発生するということなので,次バージョンでは緩和するか,他の対策をとる方針。詳しくは「よくある質問」のところに記載したのでそちらを参照。
結構前からランキングのCGIが頻繁に落ちていたのだが,原因判明。ランキングの一番下に,全記録を1ページで表示するリンクがあったのだが,それをクリックすると落ちる。多分処理に時間がかかってフリーズしたと思われたか,ページがでかくなりすぎたんだろう。なのでひとまずリンクを外しておいた。一応「表示数」を調整すれば1ページの表示数は調整可能なので,そちらで好きな数を入れて下さい。最大500件までに変更したのであんまりたくさん表示できないけど。
さて,ちゃんと対策するとしたらどうするのがいいんだろう。処理を速くするとかJavaにするとかはひとまず置いといて,HTTP+Perlでは一気に1ページ出力しないといけないし。CGIで206とか返してもいいのかな。
年末に39度の熱が出たので年越しロビーは行けなかった。なのでこっちで。本年もデナスをよろしく,てな具合でお願いします。
Visual Studio 2005 SP1をあててみる。テレビを観ながら入れてたら6時間かかった。調べてみると普通のマシンでも数時間かかるとか。何してるんだろう。それはともかくVista用パッチを早く出して欲しい。
タイピングラリアット。お店で見かけたのでパッケージだけ見てみたけど,ネット対戦は2台のLAN限定で,画面は片方しか表示されません? うーむ。よく分からん。
ネットランキングが復活するんだったらPCを新しくしてでも参加したいところ。
Vistaの評価と称していろいろ使ってみているが,Outlook Express改めWindows Mailは来るメールをどんどん迷惑メールフォルダに入れてくれるので結構便利。マインスイーパは爆弾がちゃんと爆発するし。マインスイーパはMSに専属のチームがあるんですかね。
MSDNの会員証が届く。ぺらぺらの紙切れからカードになっていた。
Windows Updateで,GeForce2 GoとAirEdge AH-N401CのVista版ドライバが配布されていたのでインストール。元々問題なく使えてたので特に何も変わらない。ちなみにうちのノートはVRAM 32MBなのでAeroにはならない。全体的にUIが重い。
# 2006/12/16 GeForce2 GoのドライバではなくてInspiron8100用のディスプレイドライバだったっぽい。
そういえばMSDN Professionalの契約が今月で切れるので更新せよとの手紙が来た。今年はVisual Studio2005とVistaがあったのでお徳感があったのだが,来年はどうなんだろう。Orcas? がどうのこうのって話を聞くけど,このあたりがキーワードなのかなあ。
beanfan.comの管理人から連絡。回線が早くなったらしい。今は復活している。
Vistaインストール完了。とりあえずWeather TypingとWorld Testerは、Program Files以外にインストールしていれば普通に動く。Program Filesにインストールしている場合、仮想フォルダにリダイレクトされるので記録ファイルはどこ? みたいな感じになる。これだとあえてVista版を作る必要はないかな。まあとりあえず一通りの機能を試してみないと。
ちなみにInspiron8100のビデオドライバ(GeForce2 Go)はXP用がそのまま使えた。Smart Vision Pro2 for USBは、C:Program Filesにインストールするとおかしな動きをするのでc:SmartVisionとかにすれば動くことは動く。割と不安定だけど。AirEdge AH-N401Cは確かインストーラではじかれたので、ドライバを直接入れれば使えた。
# 2006/12/16 Smart Vision Pro2 for USBは結局UAC関連でちゃんとは動かない。無理矢理な方法もあるにはあるけど…。
で、Vistaでテストするためにロビーサーバを荒らしていたのだが、どうもbeanfanが落ちている模様。例によって管理人と連絡が取れるまでは止まったまま。ロビーサーバは第2サーバがあるので特に問題はない。ワードサーバはしばらく止まると思う。
Windows Vista日本語版は落とし終わったのだが,今使っているノートだと,DVD-Rが読み込めない+USBブート不可でどうやってインストールしよう,ってところで止まっていた。で,まっつー氏やA氏に相談してみた結果,XPを起動して別ドライブにVistaをインストールすれば,仮想CDからでも(1台のPCで)インストール可能なことが判明。今日別のPCで実際にうまくいったので,近々今のノート(Dell Inspiron 8100)に昔のHDDをつないでインストールしてみる予定。
で,今の目標としては,Vista一般販売の1月までにウェザタイVista対応版とWorld Tester Vista対応版を出すこと。恐らく今のままだとProgram Files等のファイルに書き込めないため,設定や成績の記録に失敗すると思われる。ウェザタイに関しては,この際なのでコンパイラをVisual Studio2005にしたりUnicode化したり(Unicode化はWin98系不可になるのでやめるかも知れないけど)しようかな。目玉機能が欲しいところだが,さくっと実現できそうな要望はなさそう。
Windows Vista日本語版がダウンロードできるようになった。ってAirEdgeでダウンロードしてる人なんて他にいるんだろうか。
とりあえずVirtualPC 2007 βに入れれば何の苦労もなくインストールできることは分かったので,まずはそれでウェザタイを試してみるって感じか。World Testerは実機じゃないと試せないからどうしよう。DVDライター持ってないし。
4号にWorld Testerを試してもらったが,爆発が気になるとのこと。以前のバージョンではパラメータが固定だったので爆発することはほとんどなかったはずだが,今回のバージョンは巨大な力を加えたりできるので,めり込みが起きたり,めり込みすぎると反発力が強く働きすぎて爆発が起こる。これを直そうとするとスピード(めり込まないように時間の最小単位を十分小さくする)と物体の大きさ(小さい物体だとめり込みやすいので大きい物体しか作れないようにする)が犠牲になるわけだが,今は安定性よりいろいろパラメータをいじれる楽しさを優先している。根本的に数値計算の精度を上げられればいいんだけど…。
まあそうはいっても爆発するのはなんかやな感じなので,めり込みすぎたら潔くすり抜けるようにしてみた。どっちもどっちな感じもするけど,とりあえずもう少しテストしたら開発版にアップする予定。
World Tester。万有引力を実装したものを開発版に置いてみた。これにともなって,今まで重力をmgで求めていたのを万有引力定数と地球の質量,半径から求めるように修正。
調子に乗って太陽と地球をシミュレートしようとしたが,スケールが合わなくて断念。今のWorldTesterでは球の最小半径が3cmくらい(そういえばマニュアルに書き忘れた。重要な制限事項なのに…)なので,地球を3cmにしても太陽が3mくらいでばかでかくなるし,軌道半径も350mくらいになってしまう。そもそも1回転するのに1年かかるし。てことでボール2つが回っているだけのサンプルを追加。追加する前に重力を0にしておくこと。
World TesterをVectorに登録してみた。World Tester
最近(?)ランキングがCoreを吐いて落ちている。CGIだから何もなかったかのように続いているんだが,何だろう。「最近おかしいよ」っていう情報があれば知らせてもらえるとありがたいです。
平成教育委員会で無重力振り子の実験をやっていた。WorldTester付属の振り子は回転しないようになってるので平成教育委員会のようにはならない。てことで回転するようにしたバージョンも作って開発版に置いてみた。ジェット機をチャーターしなくてもPCで実験できるのがいいところ。
物理シミュレータ World Tester1.1を公開。物体を定義できるようにし,サンプルもいろいろ追加してみた。今後はDenasuサイト上でピタゴラ装置みたいなのを公開していけるといい,なあ。
ここまでで最初の構想は実装できたのでVectorにでも登録してみようかな。といってもどのカテゴリになるのかよく分からない。
ウェザタイランキング。本人からのメールがあって重複記録を削除した。
WorldTester。今まで衝突判定の前処理に境界球による判定をしていたのだが,軸に沿った箱(AABB)判定に変えてみた。結果,一番効果のあったドミノ倒しで1.3倍くらいの速度向上になった。この後は空間分割をやって,オブジェクトが多い場合でも遅くならないようにしてみるか。
ランキングに変動が。えと,重複削除してもよろしければ,掲示板にでも連絡を下さるとありがたいです。