SSブログ

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

今回は突っ走れないで酒におぼれている。飲みながらのヘボ記事でごめんなさい。

最初に書いておく。ブログ記事タイトル「孤独へ向かって突っ走れ」は今までプログラミング系の話だったはず。それが今回は横道に逸れてPC-98的な話になる。

同タイトルの前回の記事(5)が「音量を少しずつ均等に下げてゆくにはどうしたら良いのだろう」で終わった。あれがいけなかった。その答えはうすうす気づいていたんだ。アンチログ。またアンチログなのか。若い頃にアナログシンセのCVにアンチログを使って以来、なんだかアンチログには縁がある。でも私は、ウルトラマンが地球上では急激にエネルギーを消耗するように、数学が始まると急激に気力を消耗するのだ。昔のRPGゲーム風に言えば体力は残ってるが気力ゼロで動けない、みたいな。

それで私は逃げた。なにもこのまま最後まで逃げたままとは限らない。でもひとまず逃げた。

逃げながらネットサーフィンしていたら、PC-98ゲームのデータベースと称するサイトに行き当たった。そのことは少し前の記事に書いた。その時に、どこかで見たようなゲーム画面とどこかで見たようなゲームタイトルを見つけた。「エルムナイト」という。これはたぶん、私が雑誌の付録ディスクで体験版を少しだけやったゲームではないだろうか。3Dバトルが魅力的ながらも難しそうだったからか、私は結局買わないで終わってしまった。もっと情報はあるかなと思い、昔の雑誌を見てみた。そうしたら記事があった。

h583.jpg
極秘なわけないだろ、と、いちいちツッコミ入れてもつまらないので先へ行こう。

h584.jpg
記事のコンテンツはこんなになってる。私は体験版しか知らないから、いまひとつ記憶に残っていない。やはりゲームは自分で買って最後までプレイするのが大事だ。

h585.jpg
200ラインだそうだ。そういえば私が知っているマイクロキャビンの別のゲームも200ラインだった。当時のPCは処理速度が亀、いやナメクジ位の遅さだったので、素早い画面の動きが求められるタイプのゲームでは画面の解像度を落としてそのぶん描画の処理速度を上げるのは有効な手段だった。

私は根っからのゲーマーではない。若いころの私はCやBASICのプログラミングが好きで、ゲームは少しだけやっていた。そういう事情だから、今回せっかく見つけた「エルムナイト」も私の気力を復活させるアイテムにはならなかった。でも私はここでヒントをもらった。ある別のゲームのことを思い出したのだ。

「テニステニス2」というPC-98用ゲームがある。私はこれを若いころに買ってプレイしたことがあり、その後処分してしまったが、後年また中古を買った。2回も買ったわけだからそれなりの回数プレイしたが、それでもゲームに多くの選択肢(このゲームでいえば対戦相手)があれば、まだ一度も見ていない選手の顔がある。でもそういうのの完全制覇を目指せるのは元気な若者の頃だけで、私のようなおじさんはもう気力も体力も追いつかない。それでは、私の本来の趣味に戻り、このゲームをゲームとしてでなくプログラムとして楽しむのはどうか。

もしも私が機械語を使いこなせていたら、プログラムをたどってゆくと、そのプログラムを作った人の頑張りやこだわりが見えてきて有意義に違いない。でも残念ながら私は、昔の元気な若者の時ですら、ニーモニックをちょっと覚えた程度だった。それももうとっくに忘れた。

私は思った。若いころの私はBASICはできた。Cもできた。でも機械語の解析は大変すぎてできなかった。それが若いころの私の限界だった。いま、この歳で改めてその限界の突破に挑戦するってのはどうだ。

その試みは、例えて言えばヨボヨボのジジイがフルマラソンに参加するみたいなものだ。途中で体調を崩してリタイヤし、自分には無理だったと思い知る可能性が一番高い。もちろん、今回のこれはマラソン大会と違ってゴールまでの制限時間がないから、体調を崩したらそこまでにして後日またそこから走るというのはある。その結果、何年も後にゴールまでたどり着く可能性はある。何年も・・・何年も後に。たとえ忘れたほど後年にでも、私はゴールまでたどり着けるのだろうか。それとも今回の記事だけで、立ち消えか。

「テニステニス2」の頃は、たぶん、BASICでプログラムを組むのが主流だった時期が終わり、MS-DOSを手本にしたオリジナルOSで動くものが多い時期だったと思う。もしそうならば、内部のテキストデータは現在の日本語版Windowsと同じShift JISで読めるかもしれず、システムコールの類もMS-DOSに倣っているかもしれない。はじめ私はフロッピーのブートセクタとかいう部分から解析を始めなければならないかと悲痛な決心をしていたが、もう少し楽かもしれない。

その後いろいろあって、すでに年とったおじさんの私はバカな失敗をしつつも、ディスクAの中身を確認するまでに至った。おおもとのフロッピーを使うとPC-98実機に挿入しなければならず、その後の事が大変なので、すでにイメージ化してあるファイルを使った。そのイメージをまずvficを使ってDiskExplorerに読み込める形に変換するのだが、この時点でディスクBはなぜかエラーが出て不可。でもディスクAが変換できれば大丈夫だろう。ディスクAだけを挿入して起動しても最初の動作選択メニューまでは表示されるのをあらかじめ確認済みだ。つまりゲームを動かすプログラムはディスクAにある。

tt01.png
で、ディスクAの中身はこうだった。ラッキーだ。MS-DOSに似ている。ディスクの先頭にまずIO98.SYSとMEGDOS.SYSがある。でもこの2つはシステムだから、ゲームを動かすプログラムは別にある。あからさまにそれらしい巨大なサイズのT.EXEがあるが、先入観で決めてかかっちゃいけない。AUTOEXEC.BATはない。となると、CONFIG.SYSの中身を確認。

files=40
buffers=60
device=stmouse.sys
shell=t.exe

あった。shell=t.exe。これで、ゲームのプログラムはT.EXEということがわかった。ここまで来たら(いや、ここまで来なくても)、「メモ帳」にファイルを読み込んで表示させるとたまに面白い結果が見られる。

tt02.png
最初のMZは、このファイルが本当に実行可能ファイルだということを意味する。その後の文字化け部分は「メモ帳」では何もわからない。スクロールする。

tt03.png
なるほど、ゲームのテキストがそのまま実行可能ファイルに入ってる。ということは、このプログラムはこのゲーム専用のもので、次回作にこのプログラムを利用する気はなかったようだ。「本ゲームはコピーディスクでは動作しません」というのは実に当然のことだが、もしもユーザーがPCのディスプレイでこのメッセージを見たら「ガビーン!!」となる所だ。もちろん正規ディスクを使っていればこのメッセージは一生見ることがない。上の画像が一部黒塗りになっているのは、住所が書いてあったので私が焦って塗りつぶした所だ。今その住所に何があるか知らないが、個人情報に厳しいこんにち、住所なんてものは塗りつぶしておくほうがいい。

ここまでは、できて当然みたいなものだった。問題はここからだ。私はこれから一体どうすればいいのか。バイナリエディタ(ビューアー)を使うのか。データを1バイトずつ解析か。実行可能ファイルの解析という大変な作業を、私はやったことがない。

でも、ここまで書いてきて私はひとつ気づいた。この記事を書き始めた時あれほど無気力だったり逃げたりしていた私が、こんなに元気になった。やはり人間にはその人なりの得手不得手があり、その人なりの気力復活アイテムがあるんだ。

コメント(0) 

コメント 0

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