細かな話題
目次
コントローラー
サターンのコントローラーは、非常に巧妙に考えられていました。
コントローラーからは、チャンク構造のデータが送られてきます。チャンクと言うのはプログラマーならわかると思いますが…
えーと、身近な例では JPEG ファイルがチャンク構造を使っています。
元々は画像形式だったのに、互換性を保ったまま後からカメラの撮影情報入れたり、GPS の位置情報入れたりできるのは、この構造のおかげです。
チャンク構造とは、データ形式の変更に強いフォーマットなのです。
で、サターンのコントローラーは、通信をチャンク構造で行っていました。
基本部分は規定されていて、最低限デジタル上下キーとスタートボタンには対応しないといけない、となっていたように思います。
そして、ゲーム開始前のタイトルやメニューでは、上下キーとスタートボタンだけで操作できないといけない、と言う規定もありました。
つまり、どんなコントローラーを接続していても、最低限の操作が可能なように工夫されているのです。
そのうえで、コントローラーごとの「拡張」部分を追加で送れます。
たとえば、アナログコントローラーであれば、アナログ操作のどこかに閾値を設けて「上下」と「スタート」は送信しつつ、アナログ値も送信できるのです。
後に発売された「マルチコントローラー」(マルコン)も、アナログコントローラーと同じチャンク構造を利用していたため、アナログコントローラー対応ゲームでも遊べました。
スタートと引き金はあったけど、これだと足りませんね。たしか、引き金で「下」に対応していたと思うのだけど。
普通はメニュー項目の最後までカーソルが進んだ際に、さらに「下」を押すと一番上に戻るので、これで操作可能なはず。
でも、これは保障された動作ではないので、下だけだと操作不能になることもあったかもしれない。
規定が初期に決められたものだから、バーチャガンの時には特別扱いされたかもしれませんね。
#追記2017.6.26 コメント欄で指摘いただいていますが、バーチャガンは引き金を引くときに「画面を向いているか否か」で、上下を出し分けていたようです。
なので、ちゃんと上下+スタートが使えています。
プレステでもコントローラー同士の互換性はある程度考慮されていましたが、データ構造に裏打ちされたようなものではなく、コントローラーごとに工夫して何とかしていた、と言うのが実情だったようです。
ここらへん、ゲーム機を作りなれたセガならではの工夫だったのでしょう。
サターンリングプロテクト
セガサターンのCD-ROM の記録面の外周を眺めると、SEGA ロゴが見つかります。
これ、有名な話ですが、この SEGA ロゴがないとプログラムが起動しません。
この話を始めると、かなり深い因縁話になってしまいますし、サターン以外の話に波及するのですが、面白いから書いておきましょう。
話は、ファミコンディスクに任天堂が仕掛けたプロテクトにさかのぼります。
ファミコンディスクは、RAM カートリッジ内に Boot ROM があり、まずは ROM プログラムが動作しました。
そして、そのプログラムがディスクを読み込み、プログラムを起動させます。
この際、ディスク上に NINTENDO を示すアスキーコード文字列が入っていることを ROM がチェックします。もし入っていない場合、起動は失敗します。
文字列を読み込んだ場合、ROM 内に格納されている NINTENDO のライセンス表記を画面に表示し、その後読み込んだプログラムを起動します。
さて、ディスク用にコピーツールが発売されたとき、任天堂は裁判所に訴えを起こしました。
パソコンなどではソフトの発売にライセンスなど必要ありません。同じ理屈でいえば、ファミコンでもライセンスなくソフトの販売はできるはずです。
たとえそれがゲームのコピーソフトであったとしても、購入者が自分用のバックアップを取ることは法律上許諾された行為ですので問題はありません。
しかし、任天堂は何としてもコピーツールの販売を止めなくてはなりませんでした。
コピーされてしまう、と言うことになれば、ディスク版のソフトを供給するメーカーは無くなってしまうでしょうから。
任天堂は、許可を受けていないのに NINTENDO の文字列を記述したり、ライセンス表記を出したことは違法性がある、と訴えました。
しかし、この主張は通りませんでした。裁判所の判断の概要を示すと次のようになります。
1) NINTENDO の文字が書かれている、というが、書かれているのは2進数のアスキーコードであり、必ずしも NINTENDO を意味するものではない。
別のコード体系では別の文字になるし、そもそも人間に読めないのでライセンス表記だとは言えない。
2) そのデータを用意しなくては起動が行えない、というものなので、このデータはライセンスの有無を意味するものではない。ディスクシステム用に作られたプログラムが必ず入れなくてはならない、という仕様に該当する。
3) ライセンス表記画面は、任天堂が作成した ROM 内に収められており、起動時に勝手に表示される。プログラム作成者の意図とは関係がなく、許可を得ていないのにライセンス表記をした、とは判断できない。
これを受けて、ゲームボーイでは「ROM 内に規定された任天堂ロゴの画像データを納めなくては起動しない」仕様になります。
そして、電源を入れるとまず、このロゴが表示されます。ゲームボーイでカートリッジを入れずに起動すると、四角い塗りつぶしが表示されるのはこのためです。
1 の問題に対しては「書き込まれたデータが直接人の目に触れる」ようにしたことで、人間に読めないという問題を解消しています。
2 3 の問題に対しては、起動させる意図ではこのデータの存在は「仕様」となりますが、商法的には任天堂のロゴを勝手に使用した商標権侵害で訴えることが可能です。
表示を行っているのは起動 ROM ですが、そのデータはカートリッジ内の決まった場所にあるのですから、その場所にデータを置いた時点で「表示する意図はなかった」とは言えないようになっています。
興味ある人はこちらのページ(英語)を読んでみてね。
さて、他にも類似の面白い話は多数ありますが、本題であるサターン CD 外周の SEGA ロゴの話。
CD のデータ記録方法は決まっていて、一定のデータごとに、エラー補正信号を記録する必要があります。
ところが、SEGA ロゴ部分は、絵として表示されることを目的にデータを作っているため、このエラー補正信号がおかしく、読み込むと必ずエラーになります。
起動ロムではこの部分を読み込み、エラーが出ることと、読み込んだデータが決まった形になっていることを確認します。
(読み込んだデータがエラーだ、と言う報告は行われるが、データ自体は読み込まれる。これをチェックすることで、ただエラーを出せばよいのではなく、SEGA ロゴを記録しなくては起動しない)
CD-R などでコピーをしようとすると、書き込み時点でエラー補正信号を作り直してしまうため、読み込みエラーが出なくなります。これによりコピーを判別できます。
もし、特殊な方法で SEGA ロゴを再現したコピーが作られたら…その時は、SEGA ロゴを勝手に使用した、という商標権侵害で訴えることができます。
うん。完璧なプロテクト。
…ところが、これでもコピーする人はいるのですね。主に3つの方法がありました。
1) 本体に手を加える。
CD-ROM 読み込み LSI の信号線に手を加える LSI が作成されました。
これを信号線に挟むと、「SEGA ロゴのある最外周を読みに行く」という命令が来た時に、即座に「エラーだったけど、SEGAロゴデータを返す」という動作を行います。
この改造を行うと、エラーチェックの時間が省略され、起動が速くなったそうです。コピーしない人にも嬉しい改造。
2) CD の外周だけ本物を使う。
不要な、本物のサターン CD-ROM を用意し、外周だけを残して中をくりぬきます。
(バーチャファイターの画像集が発売されており、瞬帝は人気がなく 480円程度で投げ売りされていたので、よく使われました)
CD-R にコピーを行った後、外周部分を同じ大きさ切り取り、本物の外周を装着、ラベル面からセロテープで貼り合わせます。
セロテープは簡単にはがせるため、複数ディスクをコピーしても、外周は1つだけで使いまわせます。
3) プロテクトチェックの直後にディスクを入れ替える
本体のディスクトレイを開くと、そのことが検出されてリセットがかかります。しかし、これはスイッチで行っているだけなので、「改造」とも言えないような簡単な回路変更で回避できます。
そして、CD-ROM の外周の SEGA ロゴが読み込まれた時点で(これは慣れると動作を目で見てわかるようになります)、ディスクを即座に入れ替えます。
交換中に一瞬読み込めない程度なら、読み込みエラーを想定して読み直しますから、これで問題なし。ちゃんと起動できます。
僕はいずれもやったことありませんが、8bit パソコンの時代から「プロテクトをかける人と破る人の戦い」は好きです。
高度な知能戦だから。
プロテクトを「知恵を絞って」外すのは高度な遊びだと思うし、自分で購入したソフトでどんな遊び方をしようと、それはその人の自由。
けど、他人が考えた方法を使ってコピー「だけ」するのはただの犯罪者です。
…自分が作る立場だから、ここはしっかり主張させてもらいます。