PCゲームほぜんのはなし
少しアングラというか, 法的にグレーな話になる. しかし誰かが書かないといけないと思うので, ここに書こうと思う. まだ勉強中なので適宜追記修正する.
- 序論
- 多くのPCゲームは, 現在でこそDL販売とディスク販売が並行して行われるのが基本となった. しかしSteamやFANZAやDLsiteが
広く普及する前は, 当然ながらディスクでのみ販売が行われていた. ここで一つ, 大きな問題が浮上する. こういったディスクは光学ディスクであることが多いが,
このような光学ディスクは基本的に寿命が短く, 2~30年程度で劣化してしまうことが知られている. つまりPCゲーム黎明期に発売された光学ディスク媒体によるゲームの多くが失われつつあるのだ.
- もちろん, 業界全体がこの状況を黙ってみているわけではない. 先述したDL販売によって膨大な数のソフトが復刻した.
最近(でもないか?)だと「さよならを教えて comment te dire adieu」が再販されて大きな話題になったことは記憶に新しいだろう.
- ではこれでPCゲームは安泰か, というと否である. 膨大な数のソフトが復刻されているとはいえ, それでもまだほんの一部に過ぎないことを,
この記事をご覧の諸兄姉は認識しているだろう. 本来であれば, このような文化保全は国が率先して行うべきである. しかしながら大変情けないことに,
もっともその役割を期待される国会図書館のゲーム保管数は, コンシューマーゲームを含めても3000本強にとどまっている
(「国立国会図書館のゲーム3300点、利用は2年間で16件と低迷…「ゲーセン化」懸念しPR控え」 読売新聞オンライン 2024-07-16).
つまり現状として, このような作品の保管はほぼ完全に民間に頼っているのである.
- ではなぜ, このような作品の保管・再販が難しいのだろうか? 2025年現在一切の再販がなされていない「ジサツのための101の方法」の関係者によると,
一般にこのようなゲームは多くの人間がかかわるため, 権利関係が非常に複雑になっていることが理由だという(出典は確かすば日々10thの付録本, 今埃っぽいところにしまっちゃってるので後で引っ張り出して確認).
また「未来にキスを -Kiss the Future-」のファンブック「『未来にキスを』 otherwise & みさくらなんこつ 公式ファンブック」には, 連絡の取れない関係者の消息を求める記載がある.
黎明期のPCゲームは権利母体が不安定なケースが多く, 権利者の音信不通・消滅によって権利の居場所が特定できないケースが非常に多いと考えられる.
- このような話は何もPCゲームに限った話ではなく, 初期のアニメ作品やコンシューマーゲームでも「オーファンワーク(孤児著作物)」「アバンダンウェア」といった用語によって同様の問題が
指摘されている. 日本では「星の子ポロン」というアニメ作品がオーファンワークとして有名である. これは1974年に一部地域で放映されたと考えられているアニメ作品で,
かの有名な野沢雅子氏が主演声優を務めたにもかかわらず, 制作会社の解散によって権利者不明となってしまった作品である.
シロクマくんは公式配信諦めるんだな.
- 少し話が脱線してしまったが, 私が主張したいのは「国家がこのような保全を怠り, 民間の手が回りきっていない以上, 我々個人の手でこのような作品の保存を行わなくてはならない」ということである.
ここではその手法等について述べたい.
- コピーについて
- 一番簡単で確実な保存の手法はゲームディスクを仮想化し, ISOなどの形式で保存してしまうことである.
- 実際, 古いソフトであればコピーガードがかかってないのでうまくいく. ただしコピーガードがかかっている場合, 必ずしもうまくいくとは限らない.
- 詳しい話をする前に, コピーガードの原理に少し触れておく. ただ私は素人なので, 間違いがあったらTwitter等でリプ飛ばして指摘してほしい.
- ゲームの記録方式としてよくあるCD-ROMを例にとる. CD-ROMにおいてデータはディスクの中心から外側に向かってらせん状に記録される.
このディスクからデータを取り出す際, 「セクタ」と呼ばれる単位(CD-DAでは1セクタ=2352バイト)で読み込みが行われる.
- コピーガードの原理は, ディスク内にエラーセクタ(読み込みができないセクタ)を意図的に混ぜ込み, 仮想化などのコピーを防ぐというものである.
有名なコピーガードの手法としては「リングプロテクト」「SafeDisc」などがある.
形式ごとの詳細はこちらを参照されたい.
- じゃあコピーガードがかかっているソフトはどのようにコピーするのか. 身もふたもないことをいうと, コピーガードに強いCDドライブ, 読み込みソフトに突っ込んで「祈る」のが基本になる.
後でも少し触れるが, エラーセクタにぶつかるとドライブは止まり, 読み込みが可能になる場所までスキップする機構が働く. この制御がしっかり行われて,
エラーセクタ部分だけを回避したディスクデータが生成され, それがしっかりと動作するかは, ある程度試してみないとわからない部分がある. なので「祈る」ことになる.
ディスクの複製自体は成功したとしても, ものによっては「セットされたディスクにエラーセクタが存在するか」というのを目ざとくチェックするソフトもあり,
正規のディスクじゃないだろコレと弾かれるケースもよくある.
- ディスクにどのようなプロテクトがかかっているかは, 先ほども紹介したこちらのサイトで検索したり, あとほかにも何個かまとまっているページがある.
ただしこれらのサイトは情報が古く, 「今のドライブの性能ではコピー不可能」と書いてあるようなプロテクトでも2025年の技術をもってすれば簡単にコピー可能ということもよくある.
- さて, ぶっちゃけこのへんのサイトを見ればコピーで詰まることなんてそうそうないと思うのでここで筆をおいてもいいのだが, ちょっと内容が少ないのでもう少し追記.
ディスクをコピーするソフトはかなり種類がある. 有名どころだとフリーソフトのImgburnなどが有名だろう.
Imgburnは確かに直観的に操作できてとても良いソフトなのだが, 先ほど挙げたリングプロテクトのディスクは読み込みに難があるようで,
リングプロテクトがかかっているディスクでは止まってしまうことを確認している. 結構よくあるプロテクトなのでこれは致命的である. また一部のSafeDiscソフトもやはり止まるようで,
まあ良くも悪くもフリーソフトである. 有料ソフトでよかったのはCD革命などだろうか?
こちらはリングプロテクトでもSafeDiscでもグイグイ読んでくれる(ただし死ぬほど時間がかかる)が, 結構使いづらいのと値段がお高い. 慎重に検討すべきだろう.
- また重要なのはディスクドライブの選定, つまりハード面の話である. バッファロー製のディスクドライブとアイ・オー・データ製のディスクドライブを持っているが,
これは個人的な感覚として後者のほうが読み込みが速い(ような気がする). ただお高いの買うかやっすいの買うかでも話変わってくるので, このへんも検討の余地ありだろう.
- ディスク認証について
- さてさて, 上記のケースで「ディスクの取り込みはできたけど正規ディスクでないといわれ弾かれる」ケースを考える.
- まあこのようなケースでは諦めてしまうのが視野だが, 一応「起動させる」ことが目的なら必ずしも不可能ではない.
- ただし, この方法は極めて危険であり, また高度な専門知識を要求し, おまけに成功率も低いため, おすすめはしない. なので簡単に触れるだけにしようと思う.
- 一般に, コンピュータ上のプログラムは機械語で動く. 当然, PCゲームもしかり. JavaやPythonのような中間表現をインタプリタで解釈して解釈して動いているものもあるが,
まあエロゲーに限って言えばexe形式で頒布されるのが普通だろう.
- さて, バイナリ形式は当然普通の人間には読めないわけであるが, 逆アセンブルという手法によって, ギリギリ読めるレベルくらいには戻すことができる(この状態をアセンブリと呼ぶ).
(バイナリ形式をソースコードまで戻すことは不可能である, もしexeファイルの逆コンパイラなんて売ってたら詐欺かウイルスなので注意).
- また, 「機械語の命令をアセンブリに戻し, アセンブリを書き換えてそれを反映させる」みたいなことは, 原理上可能であり, それを行うソフトウェアもある.
- そろそろ何が言いたいかわかってきただろう. つまり「ディスク認証を行った後のjmp文の行き先を書き換え, 常にディスク認証が成功する」ように書き換えを行うことは,
理論上可能である.
- さっきから理論上を強調しているのは, 実際にはこのような作業はかなり困難であり, またそうやって改造した結果マトモに動く保証もないからである.
- それでも挑戦したい諸兄姉はまずWindows仮想環境の導入をお勧めする. このような書き換えは深刻なエラー(セグメンテーション違反など)を引き起こすことが多く,
手持ちのパソコンでそのまま作業するのは危険である.
- そのうえでまずC言語とアセンブリ, 欲を言えばWindowsのAPIまわりの知識を身に着ける必要がある. なぜC言語が入っているかというと, アセンブリ学習の本はC言語の基礎的な知識があることを前提にしているので, C言語がわからないなら話にならないからである.
C言語は巷に腐るほど本があるが, アセンブリはわざわざ勉強する物好きが少なく, また環境によって記法が変わるため資料が少ない.
おすすめは「独習アセンブラ」(翔泳社)であるが, まあ好きな本を選ぶといい. ただしx86アセンブリに関する本を選ぶこと. ある程度アセンブリの基本が身につき, 自分がCで書いたコードをGCCとかでコンパイル,
デバッガでアセンブリをダンプさせてなんとなく何やってるか掴めてきたなというレベルまで学習する.
続いて実際に解析を行う. こちらのサイトや「解析魔法少女 美咲ちゃん マジカル・オープン!」(やねう解析チーム),
「デバッガによるx86プログラム解析入門 【x64対応版】」(うさぴょん)あたりが参考になるだろう.
- ここまで長々喋っておいてなんだが, この手法は危険なので決して推奨しない. 人生においてもっとやるべきことは, いろいろあるんじゃないか.
もどる