コピープロテクトの思い出
こんなtweetした。
昔、PC版の『オホーツクに消ゆ』で行き詰って、poke使って暗号化BASICリストを出力させてしのいだことがある。後、BLACK ONYXのソースいじくって「イロイッカイヅツ」の回る順番をプリントさせて調べたことも。https://t.co/DWUhijuDfd
— 北斗柄@生涯六壬者.多分 (@hokutohei) September 11, 2020
“THE BLACK ONYX”もPC版の『オホーツクに消ゆ』もN88-BASICで書かれていた。当然、媒体であったフロッピーディスクには暗号化BASICで格納されていた。なのでソースをダンプした所で読めるものではなかった。もっともディスクからロードした段階でメモリ内には読むことのできる形態で格納されている。ところが暗号化BASICをロードするとリスト出力を抑止するフラグが立ってしまう。そのためlistコマンドが効かない。そこでロードが終わった段階で、メモリに直接書き込むコマンドのpokeを使ってフラグを折ってやればリストを出力させることができる。
この方法を使って“THE BLACK ONYX”と『オホーツクに消ゆ』でチートしたことがある。『オホーツクに消ゆ』では“オクムラキスケ”という名前に辿り着くことができないと網走刑務所に収監中のウラタのじっちゃんから最後の話を聞くことができない。ところが、この“オクムラキスケ”という名前の苗字については、3番目の被害者のシラキの秘書がポツリともらすだけなので、大詰めにさしかかった段階で「そんなの覚えてネーヨ」となったわけだ。そこでpokeの呪文を唱えて無事、“オクムラキスケ”の名前に辿り着いたというわけだ。
“THE BLACK ONYX”では“イロイッカイヅヅ”という言葉を手掛かりに地下最下層で7色の迷路を特定の順番で回らないと最後の扉が開かない。解いてしまえば何のことはないカラーコードの数字の順だったのだけど手探りの状態だったので、またpokeの呪文を唱えてソースを編集してチェック用の文字列をプリンタに出力させて“イロイッカイヅツ”の壁を突破した。
ああ、この時は研究室に入ったばかりのPC-98を様々に使い倒したのだった。“THE BLACK ONYX”をやってた頃、フロッピーディスクのフォーマットについて調べていてN88-BASICからモニタを起動して、ハンドアセンブルでディスクコピーのプログラムを作ったりしてた。“THE BLACK ONYX”のディスクは一番内側*1のトラックだけ単密度のフォーマットになっていて、それを検出することで違法コピーかどうかを決めるようになっていた。私のコピープログラムは元のディスクのフォーマットをトラック毎に検出してから先のディスクのトラックをコピーしてデータを写すことにしていたので難なくコピープロテクトを突破してしまったというわけだ。
こうして私は所属研究室のあった溶接工学研究所内で私的な違法コピーネットワークの中心になっていった。『オホーツクに消ゆ』もコピーした。『夢幻の心臓』の改造版もコピーした*2。『ザース』も『ウィル(WILL)』もコピーしたし、エッチな『マカダム』もコピーした。『マカダム』は5インチから8インチへのコピーに成功して色々な所に配布されたっけ……
ただこういう非合法な活動のおかげで、自動制御やってた井上研とつながりができで、MS-FORTRANを使わせてもらうことができたのが大きかった。FORTRANでFFTのプログラムを書くことでコンボリューションの計算が当時としてはPCでそこそこ速く行うことができた。これは、学位論文の最後のネタになった“Effect of plasma opacity on the Doppler-free polarization spectrum in a hydrogen plasma.”につながった*3。ワシも昔はちょっとヤンチャしてたことがあったんじゃよ、若い衆、ゴホゴホ。