2010年1月25日 のアーカイブ

最適化の世界って怖い

2010年1月25日 月曜日

特に難しい計算をしているはずが無い機械語を手動でC言語に翻訳していたところ
突然桁違いに複雑な処理に遭遇して理解できずに苦しむ羽目になりました。
ある程度わかりやすくまとめたものをC言語として書き出してみると
bool proc(int32 a){
int64 b = (int64)a * 0xAAAAAAAB;
b = b >> 34;
b = b * 6;
if(a-b == 0){
return true;
} else {
return false;
}
}
こんなことをやっているコード。

このコードが一体何をやっているのか即答できた人が居たなら自分はその人に弟子入りしたい。
答えは、a%6==0をやっているだけである。

小難しい話はぐぐればわかるのでそちらにお任せするとして、要は時間のかかる除算をしないで%演算をするための最適化コードだったわけだ。
実際の機械語としては、a-b==0がsub命令だったり、*6がLEA+ADDだったりと更に読みにくくなっている。
これでどれだけ早くなるのかと言えば雀の涙程度(といっても倍率で言えば結構差があるのだが)だというのだから泣けてくる。
最適化の世界って怖いね。

爪の怪我?

2010年1月25日 月曜日

年末休みに調子乗って1日百戦*3日間やり左手の親指を痛めた事があったのですが、
その際に内出血していた部分が爪先(?)に至ったところ、そこだけ爪がはがれてしまっている状態に
爪と指の間触らない限り痛くもなんともないんですけどね。

軽くググった感じよくある症状で、むしろ全損でなかっただけマシという事らしい。
ちなみに、触ると結構痛い、たぶん炎症を起こして触らなければ平気だけど触ると痛いぐらいの状態と同じ。
でも爪越しに触る分には何の問題もないのが不思議、元々くっついていたはずとはいえ、一度はがれてしまったら痛そうなものだけどね。

教訓:なれないゲームで指の酷使はやめましょう

多分解析改造屋一番の悩み

2010年1月25日 月曜日

非想天則1.10になりましたが、世紀末緋想天の中の人(3人ぐらい)はどうするのかな?

d3d9.dllをフックしているからうちのAIほど酷くはなってないだろうけど、動作改変するために大分バイナリ弄ってる雰囲気がするから心配。
どう考えてもAIじゃできないこともやってるしね、たとえばdatではなく生ファイル読ませるようにする変更とか。

1.03ベースのまま続けるっていうのが一番現実的そうだけど、モチベダウンとか色々あるからなぁ
とりあえずがんばれ、むっちゃがんばれ