SSブログ

孤独へ向って突っ走れ (36) [  PC-98x1(補完計画)]

不思議なプログラマー怪談+ついに出た。正念場は間近か


人の脳は時に不思議なことをする。夏は怪談の季節だが、私はいまだかつて自分で怪談話を作ったことがない。それが今日の明け方に見た夢で、私の脳は不思議な話を作った。

たぶんPC-9801シリーズ用のMS-DOSの話なのだと思う。一般に知られていないが、あるアドレスにEXEファイルの内容をロードした場合、そのメモリ内容はロードした内容とは異なる特定の値になってしまうというプログラマー怪談だ。普通はそのアドレスを使わないようになっているという話で目が覚めた。


さて、ようやく本題だ。ついに出た。ビットマップデータであるpicファイルの読み込みルーチンで、どのファイルを読み込むかが即値ではなく計算によって求められているという、その部分が。同様にパレットファイルであるpalファイルの読み込みにも、そういう部分が現れた。
tt30.gif
手ごわい。プログラムを最初から全部解析したら仕組みは理解できる。でもそれでは何年かかるかわからない。そろそろ私の足は恐い感じになってきているんだ。休まなきゃいけないんだ。そういう健康の危険を回避しつつ解析していたら本当に何年もかかる。でも、本当にそこまでする意義があるのか。大事な人生の余暇を全部使って、今後数年も?自作プログラムのライフワークを作ろうというのではないぞ。他人のプログラムの解析で、仕事でもなく、大昔のソフトだから他人は見向いてくれず、それを何年もか。

これで私が逆アセンブル解析をやめたら、アセンブラは私から永遠に遠ざかる。決断の時が近づいているのかもしれない。

ひとつ考えていることがある。「何のためのプログラマーだ」ということを考えている。つまり、ずらずらと数千行だか数万行だか表示されるニーモニックを最初から見てゆくだけの単純作業なら、パートで雇った人に指示を与えてもやってくれるんじゃないのか。頭を使うんだ。また自作プログラムを組んで、EXEファイル内の必要な部分を見つけ出し効率的に解析することはできないか。今回の必要な部分は、どのpicファイルを読み込むかを決定する元になっている数値だ。もしもpicとpalが同じ数値に基づいて読み込まれていれば、picに必要なpalを探し出すのは簡単だが、もしもpicとpalが別の数値に基づいて読み込まれ、両方の数値に何らかの関連性があるのだったら、これは大変な作業になる。

また作業は増えてしまったが、とにかくもう少し進めてみよう。

追伸
絵の色が暗かったのは、デバッグ完了した。あなたのご想像通り、下位4ビットにしか色値が入っていないというのを私が思い至らなかったせいだった。各色値を左へ4ビット シフトした。つまり16を掛けて最大値を255にした。

コメント(0) 

コメント 0

コメントの受付は締め切りました