セガ社内の書類事務や、生産工場に対する申し送り業務を誰かがやらなくてはなりません。研のテクニカルサポート、僕のことです。生産と流通はセガが行いましたが、セガがお金を出したゲームではありません。ゲーム内容には口を出さない。通り一遍のバグチェックを行い、発売するための社内規定を満たしているかのチェックを行い、書類を整えて申し送りをするだけです。ゲームは、開発用のフラッシュロムカートリッジに入れられた状態で送られてきました。このデータを他のカートリッジにコピーし、部内でチェックプレイを行う必要があります。ところが、ここで問題発生。コピーすると、なぜか実物と違って、ゲーム中の速度が速く...なんだか、2倍速で回しているような動きになってしまい、ゲームにならないのです。コピーミスかと思って、いろんなカートリッジを使い、何度コピーしても同じ。テクモの担当者に電話をして何が起きているのか聞きました。「その症状は、コピープロテクトに引っかかってしまっている」とのこと。ここで初めて知りました。カートリッジ」というものがあり、このゲームはそれに対応していたのです。普通のカートリッジにコピーすると、プロテクトに引っかかってしまうのでした。ハードウェア部署に、対応カートリッジについて問い合わせます。通常のカートリッジを改造して作ったもので、貸し出せる在庫はないとのこと。マスターとなっているカートリッジをそのまま使うしかありません。うまく動かなかったとはいえ、コピーの際にデータはファイル化していました。化するためのデータを作ります。ゲームの大量生産用のマスターロム作成は、少しおかしなことになっていました。チェックサムをつけて申し送るのです。2つあわせた容量になっているため、チェックサムは異なります。生産を頼む段階でのミスは防げますが、上がってきたものが正しいかどうか確かめる方法はない、という状態でした。いう慣例だったので書類などもそのように作ります。その間に、マスターのカートリッジの方のチェックプレイもある程度やってもらいました。ゲームにもおかしそうなところはありませんし、各種テスト項目も満たしていました。生産の申し送りは出来ました。チップを生産しなくてはなりません。チップを数個、手作りします。チップを作るための道具は、特別なカスタマイズ品でハードウェア部署に1つあるだけでした。この「道具」を借りてきて数個生産します。プロテクトの仕組みについて説明しましょう。プロテクト用途に開発されたものではなかったそうです。じつは、静的ハフマン圧縮されたデータを展開するハードウェアチップ。セガのハードウェア部署が開発したものでした。使用されている圧縮方法です。特徴の一つは、圧縮を「辞書」によって行うこと。展開のためには、圧縮データ中にこの「辞書」を一緒に入れておく必要があります。辞書を入れることでデータが増えますが、それによって圧縮できる割合が増加分以上であれば、入れる価値があります。そのため、一つの圧縮データ中でも、時々辞書を入れ替えるのが一般的な方法です。局所的にデータの特徴が変わることは多いので、場面ごとで適切な辞書を使うことで圧縮率を上げるのですね。ハードウェア部署が作成したチップでは、静的ハフマン圧縮を使っていました。「辞書」を回路の中に最初から作りこんでしまい、交換できません。チップごとに1度だけ書き込むことが出来ました。作れば、それなりの効果があります。...いや、あまり効果なかったそうです。ゲーム中に使われる多くのデータを「全部まとめて」圧縮できるような辞書を作ると、データの特徴が平均化されてしまい、圧縮効率が上がりません。そのままでは、圧縮用途としては使えません。そこで、「プロテクト用」と目的を変えて使うことにしたのです。カートリッジのバスの途中に挟み込まれていました。通電した最初は「互換モード」になっています。何もせず、アドレスバスに示されたデータアドレスからデータを読み出し、データバスに返します。ポート経由で「展開モード」にすると、実際のカートリッジのデータを加工して返すようになります。アドレスを最初に指定してから連続して読み出しを行うと、最初に指定したアドレスからのデータを「展開して」データバスに返すのです。最初は互換モードで、ゲームの初期化を行うプログラムを読み込み、動き始めたとします。このプログラムが「展開モード」を指定し、ゲーム本体プログラムを読み込んだとしましょう。これで、圧縮されていたゲームプログラムが展開されながらメモリに読み込まれます。当たり前のことながら、ゲームプログラムを呼び出せばゲームが動きます。チップが入っていても別のゲームのものだったりしたらどうなるでしょう?ゲームプログラムは正しく展開されず、呼び出しを行った時点で「暴走」します。チップの中には「辞書」が含まれていて、この辞書はゲームごとに異なるものです。一般的なものではなく、セガだけが持っているものです。これは、ゲームのコピーを防ぐための仕組みになりえます。コピープロテクト用としても十分に使えるのです。対応したのだそうです。そのため、プログラムを圧縮するような方法は使いませんでした。画面に表示するテクモの会社ロゴを、圧縮と非圧縮の2つ持っている、と聞いたように思います。アドバタイズの冒頭にはテクモのロゴが表示されますが、これは圧縮データを展開したもの。この表示の際に、展開後の表示データと、非圧縮データを比較します。違っていれば、違法コピーです。違法コピーなら「事実上ゲームにならない」ように、2倍速で動かすようにしました。現状「2倍速」の部分にパッチが当たり、遊ぶことはできるようです。「ゲームが止まる」ようなプログラムを組めば、その部分を探し出して回避されてしまうかもしれない、と考えたようです。それよりも、一見動いているように見えて実はゲームにならない、というようなものであれば、コピーに失敗していることにすら気づかず、回避策はとられないかもしれません。ゲームのコピープロテクトなんかでも使われた考え方ですね。僕はこれ以外のゲームで見たことがありません。カートリッジ開けない限りわかるものでもありませんし、もしかしたら他にも使われているのかもしれませんが。申し訳ありませんが、現在意見投稿をできない状態にしています。