曇り。天気予報では降水確率は10%ということなので傘は持っていかないことにする。それほど湿度もなさそうだし。
気温は25度になるという話だったけど全然そんな感じがしない。
日本語フォーラムって、日本語にこだわっているという割にはコマンドがFNIHONGO(にほんご)なのはなぜだろう。FNIPPONGOではないのだろうか。
PNG用のSusieプラグインをダウンロードし直す。FIVAには入っているはずだが…。
とココまで書いたところでWZ Editorがコケ落ちた。どうやら
<P>PNG用のSusieプラグインをダウンロードし直す。FIVAには入っているはずだが…。</P>
と書いたところの</P>の/でEnterを押すと死ぬらしい。今までたまたまここでEnterキーを押したことがなかったのだろう。全然気がつかなかった。パッチが出ているかもしれないので後で探してみる。
で、PNGのSusieプラグインはソフトウェア工房αさんのLite版がサイズも小さくていいのではないだろうか。どうせ表示に使うだけだし。凝ったことをするのであればPaint Shop Proを使うので全く問題なし。
Vectorに登録してあるDFのダウンロード数の報告が届いた。191だそうだ。多いのか少ないのか。ちなみにBKEYは13,653。期間を考えるとDFよりはるかに多い。更新前のDFはどうだったろうかと思って調べてみると173。期間を考えると多すぎ。びっくり。多分、191というのは異様に少ないのだろう。
単に、公開直後にがくっとダウンロードされるのかもしれない。
朝から地下鉄止まる。勘弁して。
Libretto SSのディスプレイドライバを新しいのにしたら若干表示がまともになった。今まで、背景色が赤のところに赤で文字を書いてもうっすらと色むらが発生していて文字が読めていたのだが、読めなくなった。
なんだかんだけなしているように思われがちなやねうらお氏のアレだが一部共感できる部分もある。
第AB回。
まず、ゲームの素材はすべて使えるわけです。オープニングCGから、エンディングのCGまで。逆にメーカーが店頭デモを作ろうとしてもエンディングのCGを出すわけには行きません。使えるCGは、自ずと制限されています。さらに、マッドムービーの世界では(著作権的には違法ですが)曲の自由なセレクトが可能です。B’zであろうと、モーニング娘であろうと自分のイメージにあったものを選んでくることが可能です。そして、ムービーなのでFlush3などで加工が利くわけで、普通ならプログラムで書かなければならないエフェクト処理がいとも簡単に出来てしまいます。ムービーなので、多重エフェクトであろうと再生は遅くならないので、エフェクトかけ放題。残像など残し放題です。
エフェクト掛ければそれだけで出来が良くなるのか、というのはともかくとして、オリジナリティが欠けていてまるでなっちゃいないと言うのには同感。
どこかで見たキャラ、別のどこかで見た構図、さらにまた別のどこかで聴いたような曲、どこかで見たような動き…という感じで何から何までどこかで見たものを組み合わせて作ったようなものが多すぎる。というかソレしか見たことがない。
組み合わせの妙、というのもあるかもしれないけど、なんとなくマルチが動いてる〜で自己満足してしまったような作品が多い。いや、マルチに限らず。
というか、そもそもオリジナリティが少ない。ゲーム自体には割とオリジナリティがあふれるものが多いと思っている。でも、そのゲームをプレイするプレイヤーにオリジナリティが欠けている。自分で何かをやろうという勢いが感じられない。
他人が作ったゲームを他人が書いた攻略本の通りに進めて他人が書いたとおりのシナリオで進めて他人が作ったエンディングを見る。これで満足出来るのか?
それなら紙芝居を見ているのと変わらないじゃないか。しかも操作性が異常に悪く、なかなか先の展開を見せてくれない粗悪な紙芝居。
RPGやAVGなんかだと、攻略本を読んでゲームをクリアしても、それはカンニングしてクリアしたわけであってそれは他人に「このゲームはクリアした」と言える状況ではないと思う。
「エンディングを見た」とは言える。他人がプレイしたエンディングを後ろから一緒に見ているのと同じ。この場合、プレイしたのは攻略本を書いた人であってコントローラをもっていた人は指示通り動いていたコントローラ操作装置に過ぎない。
個人的には攻略本を作ろうとしても作れない、または作っても意味がないようなゲームを作ろうと思ったりした。その結果がBKEYであり打っとけであり特訓。
トルネコとかチョコボとか、ダンジョンがランダムというあたりでかなり期待したのだけど結果的には失敗したみたいで残念。
とにかく、データ、資料が増えてしまうと、そのデータを知ることで「攻略」が可能になってしまうみたい。「攻略」されてしまうのを防ぐには
のどれかだ。
つまり、パターンが作られなければOk。
しかし、データを増やしまくる手段は多分、無駄。データ蒐集に魂を削ってしまうような人がいるような気がする。一人ならともかく、複数が集団で攻めてきたら手に負えないような気がする。何しろ、攻略本っていうのはゲーム自体よりも売れるし。それだけゲームを「攻略」したいと思っているユーザが多いわけだ。
そんなに「パターン」にハマったゲームが好きなのか? 周りと同じことがしたいのか? 個性って何?
ゲームに周りと同じような展開を望んでいるようじゃ、毎回同じような展開を見せる水戸黄門を望んでいるじいさまと同じだよ。
あと、ゲームを作る方も作る方。なんで攻略本を見ないと解らないような場所に貴重なアイテムなんかを隠すわけ?
そんなに攻略本を売りたいの?
そりゃ一粒で二度おいしい商売になるような気もするけど。
攻略本を買う方も買う方。別売りCD-ROMを購入しないと音声が流れないというのには腹を立てるくせに、別売り攻略本を買わないとアイテムが手に入らない、フラグが立たない、イベントが発生しない、というのには怒らないわけ? どうして?
というわけで、特訓の攻略ページ希望。
頭痛が治まらない。風邪か?
大パニックとタイタニックって似てると思った。
またもネタを提供してくれたので取り上げねばなるまい。そう、スーパープログラマーへの道だ。
なんと、64Kでアラインされています!
ちょ、ちょっと〜。これは明らかにやりすぎです。やりすぎですよ、CreateDIBSection!!つまり16×16のDIBを作っても64Kも食うということですか?
食わない。
少なくともビットマップ(DIB)を1つ作っただけでは消費されるわけがない。もう一つビットマップを作ったらアドレス空間上に隙間が出来るかもしれない。が、作るまでは問題ない。
そもそも、64KB程度消費して何か問題があるの? アドレス空間は2GBあるわけだし。コレを全部消費すると言うことは尋常じゃないような。確かに、昔はRAMが1MBもあれば問題ないという感じであっという間に使い切って大笑いしたことがあったけど。
それはそれとして、アドレス空間の2GBを使い切ってしまった場合、通常のPCであればスワップしまくって使い物にならないハズ。大抵は128MBも載せていないのではないかと。ちなみに私は96MB。96MBのメモリで2GBのアドレス空間を処理させようとするととんでもないことになる。とてもじゃありませんがL1キャッシュに収まらなくてPentiumでペナルティを食らう、とかいうレベルじゃありません。
私はこまぎれのbitmapを数多く使うので、こんなことは許せません。少し遅くなりますがHDCが欲しいときは一時的CreateDIBSectionで作り、そこからコピーしてすぐ解放するように変更です。
ってゲームの作り方を知りませんか?
最近はバックサーフェス(表示されないVRAM)にキャラクタとかを保持しておいて、表示領域に表示したいキャラクタだけ転送します。VRAMが多い環境だからこそ出来る芸です。DirextXを使っていれば、VRAMがなくてもシステムメモリで代用できます。
そう、細切れのキャラクタとかをまとめた、一つの大きいビットマップを作っておいて、ソコから転送するわけです。
イチイチ、細切れのビットマップをチマチマ作って転送なんかしていたら遅くて遅くてお話になりません。笑い話にはなるかも。
ってゆーか、DIB(Device Independ Bitmap:デバイス非依存ビットマップ)のことを理解していないとしか思えない。もし理解していれば、
これでいけますか?CreateCompatibleDCでNULLを指定しているということは、現在のディスプレイモードに依存するような気がします。でも、ビットマップ側はDIBなんです。うーん?どうなるんや?というところですが、これでOKです。このhDCは現在のディスプレイモードには依存しません。うーん。謎多すぎ。それが出来るなら、指定のピクセルフォーマットでDIBを作れてもいいんでないのよー?などとWindowsに絡みたくなります(笑)
というタワゴトは出てくるわけがありません。ディスプレイモードには依存するデバイス非依存ビットマップってなんですか?
いいかげん、突っ込んどけと言う感じなので。
既にトンデモページの定番となりつつあるスーパープログラマーへの道にツッコミ。
第AD回。
さてさて。Windows2000で、あるソフトを入れてからペイントが立ちあがらなくなったんですよ。
よくある話です。ソレはともかく、この回のラスト。
ということは、いつの間にか、dllcacheのほうのファイルを古いバージョンに書き換えてた悪い奴がいるはずなんですが、それが何だか特定できません。かなり困った奴です。おそらくMircosoftの製品のような気がするのですが(笑)
さっき書いてたあるソフト
ってヤツじゃないの?
嗚呼。早くこんな生活から抜け出したいなぁ…。
DOSにすればよろしい。VRAMもサウンドカードも自由にアクセスできるからPCでゲームを作るには最適だと思う。
第B1回。はっきりいって意味不明。
アプリケーションクラスにつき一つ用意しなければならないものを記述するためのC++の構文が存在しないことです。
そのためのstaticメンバじゃないの?
クラスに存在するstaticメンバと言うのは、そのクラスから複数のインスタンスを生成してもメンバは一つだけに限定される。
つまり、
class Application{
int ABC;
static int XYZ;
};
と宣言した場合、Applicationクラスに対してXYZは一つだけ用意されるわけ。
Application app1;
Application app2;
Application app3;
と、Applicationクラスのインスタンスを3つ生成してもXYZは1つだけだ。app1のXYZとapp2のXYZ、app3のXYZはすべて同じものなのだ。きちんとアプリケーションクラスにつき一つ用意
できているように思えるんだけど。
また、ABCはアプリケーションクラスのインスタンスにつき1つ用意される。app1のABCとapp2のABC、app3のABCはそれぞれ別のものになる。
また、仮に道具に多少の欠陥があったとしても、それは使う側の方で対処するのがプロというか使う側の責任というものでしょう。自動車はアクセルを踏むと制限速度を超えても加速できるという欠点があるわけだけど、それを制御するのが運転手の役目。
第B4回。これはx86限定。x86は「読めれば実行可能」なので。他のプロセッサだと
というメモリ保護属性は分かれていることがあるのでNTで実行するときには注意。
ってゆうか、ふだんからアセンブラアセンブラ、クロック数がどう、MMXだとどうとか言うわりにはコンパイラの生成コードを見てないのね。
第B6回。L1キャッシュを全部使っちゃうとその後のペナルティがかなりデカイのですなおにMUL使ったほうが速い。実行クロック数なんて486かPentiumかでも違うんだし、試しに計測してみたら? L1キャッシュを使うのは自分のプログラムだけではなくてOSとかドライバも使うんだから。
ちなみに、私が実行速度優先よりも実行イメージサイズ優先でコードを生成させているのはコードキャッシュに入らなくなったときのペナルティを考えると多少速いコードを生成させても意味がないと思っているから。DOSとかゲーム専用機ならともかく、Windowsでゲームするとしたら普通、Explorerくらい立ち上げてるでしょう :-)。
第B7回。そもそも委譲する必要なし。委譲しなければ最適化する必要もなし。というか実行するコードもなくなるので問題なし。
同じインターフェイスの関数を用意するのなら、クラスの内部で
class CDraw {
public:
CDraw(void) {
switch (CCpuID::GetID()){
case 0 : m_lpDraw = CDrawPentium; break;
case 1 : m_lpDraw = CDrawPentiumMMX; break;
case 2 : m_lpDraw = CDrawPentium2; break;
}
}
~CDraw() { delete m_lpDraw; }
CDrawBase* m_lpDraw;
};
こんなことしなくても直接 CDrawPentiumとかCDrawPentiumMMXの描画関数を呼べばよろしい。
ちなみにクラス設計の基本としては
する。Draw(描画)というのは思いっきり動詞なので、普通はクラスではなくてメソッドにする。
メソッドの呼び出しもとで、どのクラスのインスタンスを生成するかCPUに応じて決定するのはみっともないと思うかもしれない。だったらクラスの中でCPUを判定してやればいい。コンストラクタをprivateにして、コンストラクタを呼び出すメソッドを用意しておけばいい。
class CCPU{
private:
CCPU(){
return;
};
public:
virtual ~CCPU(){
}
static CCPU *Create(){
switch(CPU_ID){
case P55C:// Pentium with MMX
return new CP55C;
case P6:// Pentium 2 or Celeron
return new CP6;
case P6III:// Pentium 3
return new CP6III;
case K6:// AMD K6
return new CK6;
case K6_2:// AMD K6_2
return new CK6_2;
case K6_3:// AMD K6_3
return new CK6_3;
default:// assume Pentium without MMX
return new CP54C;
}
}
};
使う側は、とりあえずCCPUクラスのCreate()を呼んで使う。何しろコンストラクタはprivateに成っているので、直接newしたりローカル変数として宣言はできない。auto_ptrと組み合わせて使えば解放する手間も発生しない。
CCPU *cpu;
cpu=CCPU::Create();
cpu->Draw();
と言うように何も気にしないで使えるハズ。
帰宅途中、友人に会う。そのまま家まで押し入られてしまう。Librettoで使っていたDFに興味津々という感じだったのでちょっち古いバージョンを見せてあげると感激していた。古いバージョンは何が違うかって、
とか
という予想できないようなマウスオペレーションだったのだ。
FIVA、無くなったと思ったら、今度は秋葉の電気街口の近くの店でまた売っていた。やはり買って楽になれということなのだろうか。しかし増設メモリ無しで同じ値段なのが引っ掛かるところ。
まあ、悩むくらいなら買いなさいというか。どうせ付属の増設メモリなんて32MBしかないんだし、後で64MB増設することを考えればじゃまなだけである。
バックナンバーはキャッシュに入っていなかったので後日。
ダウンロードしておいたlcc-win32をインストール。なんか、インストール先のディレクトリは初期値のまま変更しないでくれ、と言うようなことを書いてあったようだが、C:ドライブにはそんなに空きが無いので忠告を無視して別のドライブにインストール。
DFをlcc-win32でコンパイルしようとしてもうまくいかない。なんかInternal errorとか出て止まってしまう。残念。
ところで、リソースエディタとしては使えないのでしょうか、コレ。統合環境上からリソースコンパイラに渡すオプションはどこで設定したらいいのかさっぱり解りませんでした。ヘルプを引くとOptions menuとか書いてあったので期待していたのですが、そんなメニューはどこにも無いという状態。
あと、Shift_JISに対応していないというのはちょっち…。
先日破壊したRazorのタイヤ。
どういう衝撃を食らったのかよくわからないけど、内部に気泡ができてしまっているような。
投票に行く。行く途中、なんか前のめりに減速したので何か変なものでも踏んでしまったかと思って後ろを振り向くとこんなものが。
自転車とか歩く程度ではへこまないようだが、Razorで通過したら思いっきりめり込んだらしい。
天気もいいのでせっかくだから大通公園を散歩してみる。
パンフルートを吹きまくる謎のおっちゃん。
風が吹きまくっても吹き続ける。
何やら鼻花フェスタ2000だということで、いろいろと花壇が設置されている。
こんなのもあったのだが
噴水の近くだったせいで水をかぶる羽目になる。撮影時にはレンズに水がかからないように注意。って誰も撮らないか。
ちなみに、風向きによっては虹が出たりした。虹が出来た途端に歓声が上がったのが印象的。
他にも
とか。多分、細すぎて見えないと思うけど、パンタグラフまで作られているという逸品。見えないけど。
謎のアンデス民謡集団。ビール飲みながらライブ演奏。かなり観客を集めていた。
すぐそばで25歳位のにいちゃん二人組がギターの演奏をしていたが、全く客が寄りつかない。こっちに取られっ放しである。私なら場所を変えたくなると思うのだが…。
アンデス民謡の演奏で使用していたRolandのドラムパッド。Rolandのドラムパッドが民族楽器だったとは意外。
襲撃予告を受ける。いや、いきなりそんなこと言われても困るんですが…。
晩ご飯を一緒に食べよう、ということだったのでドコで食べようか悩む。とその時目の前に現れたのはッ!
ここで食えと?
何でもパソコンの修理をしたいそうだが、こちらに到着するのは20時とのこと。
店、閉まってるんですけど。
まあ、到着までまだ時間があったのでドトールでコーヒーを飲む。
でコーヒー飲みながら大通公園で撮った写真をLibrettoに転送、フラッシュカードを空にしてCOOLPIX 800の電池を交換。
現地に到着したとの連絡を受ける。スガイからテレビ塔に向かって進軍、テレビ塔に到着したとのこと。あの、私、その途中にあるドトールにいるんですが…。
とりあえず、テレビ塔に向かう。行ったらいない。
っていうか、人を無視してテレビ塔の下でDDRやってやがる。
で、真の待ち合わせ場所は、スガイとのこと。
戻るんかい。
っていうか、やる気満々。
奥義炸裂の瞬間。
で、今日の晩ご飯。
食えるのか?
疲れた。
とりあえずDF、Susieプラグインを解放しないオプションを追加。
ついでに使用するSusieプラグインを指定できるようにしておけばメモリリークはしなくていいかも。
この辺の改良が終わったら0.02としよう。
気分転換にフレッシュネスバーガーに移動してコーディング。とりあえず、指定したSusieプラグインだけロードするようにした。
Pentiumの命令消費クロックを調べようと思ったがよく解らなかった。
FCでの1番地とは何ぞや?という疑問
というのは元々の表現力が足りないせいではないかと。
とりあえず私はCOMETさん以外の1番地が8ビットでないプロセッサ
とか言われると1番地が8ビットなら2番地はなんだろうか、ということを考えてしまう。
書くとしたら、「1番地あたりの記憶容量」とか中身の容量をイメージさせるようにしないと。
偽偽夜食日記をみて「絶対撤回しない系」「FHPEXP」の二つのキーワードから飛鳥狂○(最後の字は伏せ字というか、思い出せない)さんを思い出したのだが、マルチグレップしたらヒットせず。いなくなったのか?
UNLHA32.DLLの作者が「付属のドキュメントってそんなに解りにくいかなあ」とかいう感じのことを書いていたので勢いあまって書く。全く理解できない場所が一ヶ所あるのだ。コレが理解できないばかりに簡単なUnlha()しか使う気が起きない。
UnlhaOpenArchive などで返されるハンドルの指すグローバルメモリは GMEM_MOVEABLE となっていますので,参照時にロックが必要となる場合があります。
なお,アプリ側で明示的に GlobalFree する必要はありません。が,解放しておいたほうがメモリの消費を抑えられます。
読み取れるのは「解放する必要はないが、解放したほうがメモリの消費を抑えられる」ということだ。解放するとメモリの消費を押さえられるってことは解放しないとメモリリークするのでは? アプリから解放すると多重に解放して一般保護例外とかでまくるのでは?
VAIO インフォキャリー。ドコがVAIOなんだろう。VとかAとは関係なさそうな。もしかしたら音とか鳴りますか? これでMP3プレーヤにもなるのであればAは認める。でも、全然Iしていないような気がする。
某所の未読ポインタが3/18日相当のところまで戻っていた。なぜ?
スタイルシートが普及しはじめてから、WWWページが読みにくくなったような気がする。backgroundcolorを指定するわりにcolorを指定してくれないページが増えたのだ。BODYタグで背景色を指定する場合にはBGCOLORとTXTCOLOR、リンクの方もまとめて指定してくれている人が多いのだが、なぜスタイルシートだと指定してくれないのだろう。
WATCOM C/C++11.0Jが販売停止になるのを受け、コンパイラを変えることを検討している。lcc32なんてどうだという感じだったのでとりあえずダウンロードする。
WonderSwanの開発ツール、価格は16,800円。7月18日発売だそうだ。ただ、店頭販売はしてくれないみたいなので入手するまでが面倒な気がする。
東芝がワープロの販売を停止。ルポとかワープロを作ったのは東芝が最初だと思ったけど、撤退するのも最初ですか。こだわりませんが。むしろ、赤字部門からはとっとと撤退したほうが身のためだとは思う。
ドコモ、スーパードッチーモ端末の販売を一時停止。安全宣言は一体なんだったのだ?受信したメールの一部が抜け落ちたりするそうだが、そういうテストもしていないのか?
Libretto、ドライバとか入れ直そうかとか思ったけどやめた。
BIOSはバージョン8.00となっているけど、コレって元から8.00だったっけ。
KERBORAD.DRV
ですが、もしかしたらDOSベースで置き換えているかもしれません。だとすると私にはよく解らない世界になります。DOS全盛の時代にはPC-8801を使っていたのでDOSの内部についてはよく知りません。
e-noetが結構重い
ってどのくらい重いんだっけと思ったので仕様一覧:e-note 645を見てみる。3.1kgですか。重過ぎ。Libretto 3台分…。
マンガで脇役に「おお、鷹が肩に止まったままとは」とか言わせるのもシラけるし、じゃあ絵だけでどうやって表現するかというと、はっきり言って私には思いつかない。
6月16日分より引用。
私なら、鷹に一声鳴かせる。軽くなでてやるというのも手だけど、武蔵が鷹をなでるというのはイメージが崩れる人もいるかもしれない。とにかく、鷹の存在感をアピールするような表現をしてやればよい。おえー鳥なんか、はみ出るほど存在感がある。鳴くは飛ぶはで大騒ぎするからアピールされまくりなのだ。ギャグ漫画的表現でよければ、矢印をつける。鷹がいるコマすべてに矢印をつけるのだ。他にもちょー巨大な鷹にするとか。武蔵よりも大きい鷹なら充分に目立つ。
21日の日経新聞で「竹下氏の死は日本の政治における一つの時代の終わりであるはずなのに、何も変わるような気がしない」というようなこと(うろ覚えなので)が書いてあった。確かに何も変わるような気がしない。それは単に「竹下氏の死は日本の政治における一つの時代の終わりである」という前提が誤っているだけなのではないだろうか。
WATCOM C/C++のダイアログエディタ、つかえねー。いや、バイナリリソースを直接編集できるというのはある意味便利かもしれないけど。今あるRCファイルを読み込んでくれないことにはお話にならない。
SDKのダイアログエディタって無かったっけ。んが、RCファイルを読み込んでくれない。まるでなっちゃいない。
そういえばSONYのVAIO SRって上位機種はXGAでした。店頭展示品がSVGAだったのでがっかりしただけの話。展示品って高いほうを展示しているようなイメージがありましたがそうでもないらしい。でも高いなー。
あ、Win32SDKのヘルプをインストールするの忘れた。Borlandのリソースエディタもついでにインストールしようか。
会議室に発言するとコメントがついたりするのだが、その時に「びい」ではなくて「ぴい」とか「びぃ」と呼びかけられていることがよくある。どういう心理で置き換えてしまうのかよくわからない。いや、「びぃ」の方はよく解る。手書きでシグネチャを書くときには「びぃ」と見えるような書き方をするから。そもそも昔は「びぃっ!」だったのだ。ローマ字入力では非常に面倒なので今の形に変形して落ちついているという歴史がある。って、私の手書きのシグネチャを見たことがあるのか?
FIVAPMで、ウインドウを閉じたときに設定を自動保存するようにしていたが、プログラム終了時に設定を保存することを忘れていた。さっそく修正…したいのだがFIVAの液晶が見えないので断念。
勤務先の新人研修用練習問題を見る。
char a; unsigned char b; a=-50; b=a;この時のbの値は?
'0'*'1'の値は?
char x='a'; char y; y=x&~' ';yの値は?
難しすぎる。答えられない。
Web日記というのは確かになんだか解らない風習になりつつある。読まれることを前提にしていながら、対象とする読者の層はさっぱり把握できない。っていうか、どういう人が読んでいるのかすら解らない。
ただ、こんなページでもある程度の読者はいらっしゃるようで時々日記からの反応があったりするのがおもしろい。
日記を読んでおもしろがってくれるとなると、ますますおもしろい方向に持っていきたくなるわけ。しかし、モノが日記だけにおもしろい日記を書くには毎日がおもしろくないといけない。
つまり、おもしろい日記を書くために毎日をおもしろくしようというベクトルが心理的に働いてしまうような気がする。
なんか本末転倒のような気もするけど、おもしろい毎日を過ごせるならソレでもいいんじゃないかという気がする。
毎日がつまらないというそこのアナタ。そう、あなただアナタ。試しにWebで日記を公開してみなさい。誰にも見せない日記じゃ意味がない。そのうち、書くことがなくなるはずだ。そうなったらチャンス。それでも日記を書きなさい。日記を公開しなさい。そのうちに書くことをひねり出すために日々苦労するようになってしまう。自分からおもしろいことは無いかと探し出すようになるはずだ。それでも飽き足らなくなればおもしろい事を自分から始めるようになる。こうなってしまうと、つまらないどころじゃない。つまらないのはおもしろい事をしない自分自身のせいだ。
フロッピーディスクに書き込んで別のマシンで読み込もうとしたら読めない。スキャンディスクを書けると500KBほど不良セクタが発生していた。もう一度ファイルを書き込んで、読み込ませる。まだ読めない。フォーマットしてみると不良セクタが700KB程度に増えた。なぜスキャンディスクは見逃した? 最初からフォーマットしたほうが早いらしい。
っていうか、このフロッピーディスク、半分以上汚染されているようなんですが…。
あ、Win32SDKのヘルプをインストールしていない。困った。日本語版APIのヘルプだけでは足りないんだってばぁ。
まだ懲りずに某社製ITRONエミュレータをいじっているわけだが、どうもOSが暴走するのでデバッグプリントを突っ込んでログを取って調べる。しかしログを取ってみると症状が変わってしまう。どうも、問題箇所に到達する前に暴走するように見える。仕方がないので逆アセンブルして調べると、原因はログ出力用のデバッグプリント関数がOSの内部フラグを破壊していた。いやーん。
ITRONの実機とエミュレータで構造体のアラインメントが違う。どうも、彼らの担当した部分のプログラムだけうまく動作しないらしい。構造体のメンバの位置が2バイトズレてしまうようだ。なんとか解決したらしいのだが、「インラインアセンブラまで使って苦労したよ」とか言われた自信作。
void *alignset(void *p){
struct BLOCK *blk;
asm{
mov eax, dword ptr [p];
sub eax, 2;
mov dword ptr [blk], eax;
}
return blk;
}
block.p=alignset(block.p)/* ズレているポインタを修正 */
なんて書いてあった(改竄済み)。
バカかおまいわ。
フリーセルが起動しないという話。 http://www.microsoft.com/JAPAN/support/kb/articles/j049/9/43.htm 内容未確認。
■2ちゃんねるのくさいだまスレッドと汚い部屋自慢スレッドを読む。すげー。恐れ入りました。負けました。っていうか、勝負になりません。掃除しようと思っている時点でもう負けです。
WZ EditorとかWXG3(仮名漢字変換)のカスタマイズを行う。
キーボードドライバの改竄。改竄するのはC:\WINDOWS\SYSTEM\KEYBOARD.DRV。
2F58の5Dhを12hに変更。コレでApplicationキーがAltキーのように振る舞う。
風邪を引いたらしく、だらだらして過ごす。またビデオテープがたまってしまった。
IE4を入れるとツリービューとかがアニメーションするようになる。私はコレがキライでIE4をインストールするのはイヤ。Explorerの動作がもたもたするようになってしまってわずらわしいので。これはDFを使うことでほぼ解決しているが、とりあえずこんなレジストリを追加するとおおむねOk。
REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Advanced\Visual\Animate] "Text"="表示のアニメーション" "Type"="checkbox" "HKeyRoot"=dword:80000001 "RegPath"="Control Panel\\Desktop" "ValueName"="SmoothScroll" "CheckedValue"=dword:00000001 "UncheckedValue"=dword:00000000 "DefaultValue"=dword:00000001
ちなみにWindows 98では最初から設定可能。なんでWindwos 95にはこの設定が無いのだ。
Librettoの液晶、さすがに4096色表示だと色が変。映らないよりましだけど。やっぱりVGAだと狭いねぇ。WZ4のメニューバーが二段になってしまうのには参った。フォントを小さくして回避。メニューバーをカスタマイズしてしまえばいいのだが面倒だし。新型Librettoの発表に期待。
ゲームボーイのHUNTERxHUNTER、なんであんなに絵が汚いんだろう。
FPROGのチャットでC:\PROGRAM.EXEがあるとおもしろい現象が発生することをネタにする。
C:\MY.EXEなんていうプログラムも大変なことになりそうだという話が出てくる。
一瞬、「C:\OFFICE\WINWORD.EXE "C:\MY DOCUMENT\文書1.DOC"」となるから問題ないのではないかと思ったが、ShellExecute()で実行しているようだと問題になると指摘され、超納得。
というわけで誰か、MY.EXEとPROGRAM.EXEというファイル名でウイルス作りませんか。
Razorのタイヤ交換。今まで水色だったので今度はオレンジ色にしてみた。
踊るダメ人間(限定解除)のRazorもどき、私のRazorより静かで性能がいい。
このRazorもどき、何が違うかというとハンドルの固定方法が違う。Razorはレバーを動かすとすぐにハンドルをたたんだりできるのに対して、Razorもどきの方はレバー自体もロックされているので、まずレバーのロックを解除してからレバーを操作してハンドルのロックを解除する。操作が面倒なわけだが、こちらのほうが、走行中に他人からハンドルを折り畳まれる心配が少ない。
いや、約一名ほど、すれ違いざまにRazorのハンドルを折り畳んでしまいそうなヤツがいるもので。
とにかくRazorもどきの方がハンドルのロックはしっかりしている。コレがRazorよりも静かな理由のようだ。Razorのハンドルは若干の遊びがあって振るとかちゃかちゃ音が鳴る。これが走行中に騒音を出す原因になるようだ。というかRazorってあちこちに遊びが多すぎる気がする。
マグロパーティ。後からもう一人知人が参加するとかいう話だったが、店に入るとデンパが届かないので残念な思いをした。ごめん。悪気はないのだよ悪気は。善意もないけどね。
DFのデバッグ。いや、特におかしいということではなくて。単にWATCOMのデバッガを使ってみたかっただけ。
とりあえずメモ。
コンパイル時に、どのデバッグ情報を使うか指定する必要がある。
あと、-d2を指定して、デバッグ情報の生成を指定する必要がある。
どうも、デバッガはDWARF形式のデバッグ情報を好むようだ。
リンカでもデバッグ情報を埋めこむことを指定する。
コンパイラの指定と合っていないとデバッガがデバッグ情報をロードできない。実行ファイルは生成されるし警告も出ないので油断する。
BoundsCheckerではCodeView形式を使っていたのでついついCodeView形式を指定してみたが、デバッガはうまく読み込んでくれなかった。ブレークポイントとかコード領域の情報は取り込めるみたいだけど、変数などのデータ領域の情報は取得できないようだ。
とりあえず-hdでコンパイルしてDWARF形式を使うのが吉。
とりあえず使い方は解った。
秀丸がDFから関連付けで起動しない件を調査。要は"でくくっているかどうかの違いなのだが、シェルはなぜC:\Program Files\HIDEMARU\HIDEMARU.EXEを起動できるのだろう。DFはC:\PROGRAMを起動しようとしてしまう。
というところで思い立ってPROGRAM.EXEというプログラムを作成する。コレをC:\に配置。
ExplorerからREADME.TXTをダブルクリックする。
PROGRAM.EXEが起動した(爆)。
Visual C++の統合環境からコンパイルすると、コンパイラの代わりにPROGRAM.EXEが起動しまくりまくって感動の嵐を呼び起こしたりする。一向にコンパイルが始まらないので何事かと思った。
勤務先の飲み会。費用は自腹である。
さて、その帰りにススキノのゲーセンをふらついてみると、クノイサスにテラクレスタがあったりした。すげー。その横にはファンタジーゾーンが。すげー。
とりあえずファンタジーゾーンをプレイ。
帰宅後、Librettoにエディタとか仮名漢字変換とかコンパイラをインストール。
HDDの容量が不安なので、今回はVisual C++をインストールすることはあきらめる。コンパイラはWATCOM C++のみ。
FIVAのバックアップ用にPDを三枚購入。文書用とプログラム用の二枚でいいかとか思ったんだけど、ヨドバシカメラブランドのPDが安かったので思わず。なんでこのPD、こんなに安いんでしょうか。不安を感じながら購入。
FIVAからデータを取り出す。FIVAのHDDとLibretto SS 1000のHDDでは容量が1GBくらい違うのでLibrettoには移しきれないデータも出てくる。
一部はデスクトップのHDDにすでにコピーしてあるが、ついでにPDにも予備としてコピーする。
気が付くと、複数のPDに重複したデータがある。PDからPDにコピーしたくなるが、そうなるとPDドライブをもう一つ買え、ということになるのか? それはちょっち。
自作プログラムのたぐいは今のところDFしか手をつけていないのでDFだけコピーしておこうかとか。さすがに気が引けたのでBKEYもコピーしておく。あと、特訓もいるかも。って選んでいるとキリがなくなるのでこの辺にしておく。
デスクトップのHDDがクラッシュ。あのー、昨日コピーしたデータは…。
クラッシュしたのはC:ドライブの方なので、全然起動しない。動かすとヘッドがカッタンカッタンいうだけ。どういう壊れ方をしたんだ?
ちなみにこのHDD、840MBという容量。5、6年経っているから寿命かも。
データをコピーしたのはD:ドライブ側で、これは1.6GB。多分、まだ動くとは思うのだが、どうやってこれからデータをコピーするか。LANは使えないし。パラレルケーブルでちまちまコピーするのが精一杯なのだろうか。
多分、50MBくらいだと思うのだが…。
FIVAの液晶が暗くなった。全体的に赤いフィルターがかかっているような感じでまともにも字を読むことはできない。輝度もかなり低下していて屋内でも明るいところでは使えない。
これは、今までのようなファーストフード店や喫茶店での作文が不可能になったことになる。喫茶店ならともかく、ファーストフード店の店内は結構明るい。日光の下では液晶は視認できないことはよくあるが、あの程度の明るさでも液晶が見えない程度には充分に明るい。
私の使い方では、これは限界を超えた状態である。
とりあえず修理が完了しているLibretto SS 1000を現役にすることにして、FIVAは修理。
明日、ヨドバシカメラからLibretto SS 1000を回収してもらうように手配する。
FIVAのHDDを消去できるように、一部のデータをデスクトップのへきちゃんにコピーする。
秀丸がDFから関連付けで起動しない件を調査。"でくくっているかどうかの違いらしい。シェルはどうやって区別しているのだろう。
とりあえず紹介。有限会社パックスシステムズのソースコード盗用について。こんなことがあるとますますソースコードを外には出したくなくなる。まあ、BKEYのソースは古いものは思いっきり大公開していたりするけど。
今日のDF。とにかくCtrl+Wのファイル検索、動くようになる。何をどう変えたかというと、今までは検索結果は別途ダイアログに表示していた。
だから、検索した結果のファイルを全部削除したい、というのはちょっち面倒な操作になる。検索して、検索結果のファイルを選択することでそのディレクトリに移動、削除、また検索…、の繰り返し。
今回、メインウインドウに直接表示できるようにしてみた。直接表示されているので直接操作できる。Okだ。
ただ、罠がある。登録コマンドで使っているマクロ、$Pとか$C。どこからどこまでがディレクトリ部分で、どこからどこまでがファイル名部分かなんて見ちゃいないんだなコレが。特に$cとか$pみたいなDOS8.3形式のエイリアスなんてどうしようという感じ。ファイル名部分については保持しているものの、ディレクトリ部分については保持していないので扱えない。Cのsplitpath()みたいな関数でも作るか。
登録コマンドに"VZ $C"なんて指定していた場合、FDと同じく$Cはカーソル位置のファイル名に展開することになる。上の画面の場合には"VZ BAK\0312\BMP.C"と展開するのがいいのか"VZ BMP.C"と展開したほうがいいのか。
FDはこんなけったいな画面表示をすることが無かったので参考(パクりともいう)にできない。どういう状態が使いやすいのだろう。
ラーメン食べにRazorでラーメン屋に移動。
なんかガタガタいうと思ったら、後輪が変形してやがる。バラす根性も無いので画像は後日。
DF大改造。
まだたまっているビデオテープを消化。
昨日は結局何もできなかったのでまたも外出。よさこい祭りだったかその辺で道混みまくり。
昨日は寄れなかった旭屋書店に寄る。特に目新しい本は無し。
ドトールでコーヒー飲みながらDFの改変。やっと、どういう動作にするか決められそうになる。決まってしまえば何とかなるんじゃないだろうか。
帰りは気が向いたので10kmほどRazorで走って帰る。さすがに10kmほど走るとタイヤが熱くなってる。
とりあえずたまっているビデオテープを消化。
飽きたところで外出。特に目当て無し。ドトールでコーヒーでも飲みながらDFの改変でもしようかとか。
狸小路にある旭屋書店に寄るつもりでアルシュビルに入ろうとすると、ビラ配りの兄ちゃんが、絵を見ていけという。あそこってラッセンの絵が飾ってあったような気がするが、ラッセンは嫌いなので断る。するとラッセン以外にもあるから見ていけという。それでも渋っているとその兄ちゃん、寒いから客を案内して中に入りたいのと、ちょっち休憩したいのだという。その心意気を買って案内されることにする。
店の中では姉ちゃんが案内。さっきの兄ちゃんは姿を消した。任務完了。
やっぱり、見ていくだけでは済まされなくて、買えとか言う。
まあ、めちゃくちゃ気に入った絵があったのだからそれはそれでいいのだが、が、が…。72万円。こりゃ手が出せない。というか元から出す気無い。ちょっちゴネてみると48万円に下がった。バカバカしくなったのでどういう値段なんだ、と問いただすと泣き出してしまって責任者をなのるおばちゃんがあわてて出てきた。
値段がころころ変わるようなものは安心して買えない、と言い放って帰る。
19時に入って出てきたのは0時だった。
一応、コーディングするつもりでFIVAは持ち歩いていたのだが意味がなかった。
BKEYのクローンを作っている人がいるようだ。おもしろいのでどんどんやってほしい。
DFでマウスオペレーションで終了させる時に確認無し終了(即座に終了)することはできないのかと訊かれる。できない。解決。
とりあえず、現状では作業中だと閉じないというような判定が入っていためちょっちやややこしい。個人的には
という順序で処理したいわけだ。「本当に終了しますか?」「yes」「いやあ、実は今は終了できませんぜ旦那」とか言われると腹が立つわけで。最初から「今手が離せないから後にしてくれ」と返したいわけ。
キーを押した時にはまだ、ウインドウを閉じることが通知されていないのでこの時点でいろいろ小細工することは可能。しかし、マウスで閉じようとした場合には小細工するタイミングが無い。もう閉じるつもりで処理を進めるしかない。
なので、現在はウインドウを閉じるように通知されたタイミング(WM_CLOSE)で上に書いたような処理を行っている。キーボードから閉じた時に確認を省略できるのは、WM_CLOSEを発行する時にひねりを加えているため。
マウスでウインドウを閉じる時にはこのひねりを加えるタイミングが無いのでちょっちやこしい。
やるとしたら、確認あり終了と確認無し終了を入れ換える、というところくらいしか思いつかないのだが、これでどうだろうか。
しかし、確認無しで閉じてしまって不都合は無いのだろうか。他のファイラーを使っている時には割とよく有るというか、何かの状態をキャンセルしたくてEscを押したらさっくりとウインドウが閉じてしまって呆然とすることがある。DOSだと、そのままもう一度コマンドをタイプするだけで起動するからいいのだが、Windowsだとそうはいかないというか、またスタートメニューをたどってファイラーを探し出して起動しなくちゃいけない。うっかりキーを間違って終了させてしまった時のペナルティが大きいのだ。
もっとも、なんかキーを押したらシャットダウンしてしまう、と言うのよりはマシだが。
Susieプラグイン、ロードしたらロードしっぱなしになるようにしてしまおうか。どうもメモリリークするやつはリークしてしまうみたいだし。使いもしないプラグインにアドレス空間使われるのは気に入らないけど。
そういえば、リストアしてからIE5.0なんだけど、IE5.0ってずいぶん軽くないか?なんか表示とかスクロールとか速いんだけど。あと\がちゃんと円マークにみえているのもgood。
今日のFIVA。省電力モジュールがインストールされていないためか、しばらくほおっておくとハングアップしている。Ctrl+Alt+Delも効かない。
全く難儀なPCだ。
一瞬VAIOのSRに心ひかれたが、解像度がSVGAなので却下。505かなあ、C1かなあ。でもファンがあるとうるさそうだし。Libretto SSのHDDが換装可能だと非常によかったのに。
目が覚めてからPaint Shop Pro5をインストール。MFCのバージョン違いで起動できなかったのだ。
とりあえずシステムディレクトリのMFC42.DLLをバックアップしてからインストール。
あれ、サイズも日付も変わらない…。
DLLの検索順序って
じゃなかったっけ?
取り合えず出勤。
今ごろ気付いたが、カシオ純正のFIVAツールもインストールしていない。ずいぶんとピュアな環境をバックアップしていたものだ。デスクトップの配色とかは設定済みだったので油断した。バッテリーがどのくらい残っているのかさっぱりわからない。
帰宅後、フレッシュネスバーガーに寄る。フレッシュネスサラダ、やはり塩がうまい。もう、うますぎ。
Razorってあまり速い速度が出ている感じがしないけど、それでも歩くのと比べれば3倍くらいの速度が出ているみたい。しかも自転車と比べるととにかく楽しいというのがすばらしい。なんだか解らないけど、とにかく移動しているだけで楽しいのだ。
で続き。
Safeモードでもダメ。
とりあえずsystem.iniを編集してDFをシェルにしてみる。なんというか、妙に笑える。画面が異常にシンプル。タスクバーとかデスクトップのアイコンとかが無いと違和感を覚えてしまう程度にWindowsの環境になじんでしまったらしい。
何度IEをインストールしても途中で失敗するのであきらめてもう一度リストア。
Windowsディレクトリまるごと削除したら、日本語関係のドライバを残すの忘れてしまい、画面が読めなくなる。
ソレは特に困らないのでいいのだけど、DriveSpaceで圧縮しているドライブが見えなくなる。PDをマウントする直前までは見えているようで、圧縮しているドライブにあるSCSIカードのドライバやASPIマネージャなどは読み込めている。
全く難儀なPCだ。
おかげで圧縮ドライブに入れておいたVFATBAKが使えなくなった。
とりあえずここであきらめて寝る。
目が覚めてから。さっそくLibretto 60でVFATBAKをダウンロードしてフロッピーディスク経由でコピーし、トライアルモードでリストアする。
その間にシャワーを浴びる。PDからリストアして30分かかるのだ。
とりあえず成功。
とりあえず仮名漢字変換にはWXGをインストール。バージョンは3。どうも4だと重く感じる。
時間も無いのでとりあえず出勤。
めちゃくちゃ眠かったので早めに帰宅して爆睡。一日一食。
なんかFIVAのWindows 98がイカれてきたのでPDからリストア。
っと思ったら戻しすぎて訳が解らなくなる。どうもIEが使っていたDLLのバージョンが合わなくなったみたいでExplorerが起動しなくなる。
ここで日付が変わる。
歯医者に行く。
麻酔が切れたら治療してもらったのとは別の歯が激しく痛みだしてたまらない事態になる。
思いっきり晴れまくり。
踊るダメ人間(限定解除)にスピンターンのやり方を教わる。
まずはウイリーできるようにならないと無理っぽい。
大通り公園、ハトがスゴ過ぎ。
たとえばコレ。
ちょっち餌を与えるとこの有様である。踊るダメ人間(限定解除)もさっそく挑戦。
こうなる。
とりあえず餌づけしてしまう。
とりあえずとうもろこしをばらまくところ。
ばらまき終わってこちらに3歩ほど歩いてきた時点ですでに食いつくしている。
4月に修理に出したLANカードはどうなっているのか問い合わせる。アライドテレシスのヤツ。3月にヨドバシカメラに修理に出した時には2週間で交換されて戻ってきたのだけど、九十九電機に出したヤツはいまだに連絡が無い。
で、九十九電機に行って修理伝票を出すと「おととい戻ってきてます」。
とっとと連絡よこせ。もしかしてこれは、おととい来やがれってこと?
いや、このLANカード、同じものを2枚持っているのよ。一つはヨドバシカメラで買ったヤツで、もう一つが九十九電機で買ったヤツ。
今度壊れたら九十九電機じゃなくてヨドバシカメラに持ち込もうかな。
外出しようとすると雨が降ってくる。
雨が降るとRazorに乗れないので「止んでくんないかなあ」とか思うと雨が止む。
しかし、天気がぐずついたまま日曜を過ごすのもアレだし今のうちに降りまくって日曜が晴れてくれた方が助かるとか思った。
直後、大降り。雷までなる始末。
椎名へきる様のCDアルバムが出ているハズなので買いに行く。
ってマキシシングルやん。これで2,000円くらい浮いたかとか思ったら、林原めぐみ様のマキシシングルとCDシングルがあったので購入。
出費は何も変わらない。
しかし、雨。雷まで鳴り響いてちょっち降り過ぎとか思ったら小降りになった。