「マリオストーリー」をリバースエンジニアリングでゼロから再現することに成功

GIGAZINE



ニンテンドー64で2000年8月に発売されたアクションRPG「マリオストーリー」をリバースエンジニアリングで再現するプロジェクトがついに北米版で100%成功したと報告されています。この「マリオストーリー」再現プロジェクトでは、元のゲームデータからテクスチャや音楽が一切流用されておらず、ゼロからゲームのソースコードを再現しているとのことです。

papermario
https://papermar.io/

GitHub – pmret/papermario: Decompilation of Paper Mario
https://github.com/pmret/papermario

I’m extremely happy to announce that after 3+ years of working on a decompilation project for Paper Mario, we have reached 100% completion for the US version of the game. Every compiled function has been matched!https://t.co/2iwkrFmK4h pic.twitter.com/KRCd25u4Tf

— Ethan Roseman (@ethteck)

北米版「マリオストーリー」を3年以上かけて完全に再現したプロジェクトを率いていたのが、Ethan Roseman氏です。ゲームのリバースエンジニアリングでは完成品である元のゲームから絵や音楽などを抽出して流用することがありますが、Roseman氏らによる「マリオストーリー」のリバースエンジニアリングでは、元のゲームからデータを抽出して使うのではなく、すべてC言語を手打ちすることで作業が進められたそうです。

Roseman氏は、今回のプロジェクトは「ゲームの保存」「ゲームがどのように設計されたかを詳しく知る」「最速攻略を目指すスピードランナーと、ゲーム中のバグを探し出すグリッチハンターがバグの理由を理解するのを手助けする」「MODの作成を容易にする」「逆コンパイル自体を楽しむ」という技術的な目的で進められたと述べています。

Roseman氏は3年にわたるリバースエンジニアリングの軌跡を以下のムービーにまとめています。

Paper Mario Decomp Retrospective & An Announcement – YouTube
[embedded content]

「マリオストーリー」のリバースエンジニアリングプロジェクトが始まったのは、2020年1月のこと。


リバースエンジニアリングの作業は有志によるチーム制で、Discordで連絡を取り合いながら行われました。


リバースエンジニアリングは「ゲーム内の処理を行う関数をすべてコード化していく」ことであり、ゲーム内の関数を再現できた割合が作業の進捗状況となります。


作業が進むにつれて、少しずつ画面が「マリオストーリー」に近づいていきます。


そして完成した画面が以下……と思いきや、権利的な問題からかマリオのグラフィックの上から赤いカピバラの画像が重ねられています。


今回リバースエンジニアリングが完了したのは北米版の「マリオストーリー」ですが、他のバージョンの「マリオストーリー」も逆コンパイル作業が進められています。日本版の「マリオストーリー」は2023年2月15日から作業が始まり、記事作成時点の進捗状況は7.95%。


日本版や北米版がNTSC出力方式であるのに対して、ヨーロッパ版の「マリオストーリー」はPAL出力方式で、記事作成時点の進捗状況は61.48%。


さらに「マリオストーリー」は、中国ではニンテンドー64をベースとしたiQue Playerというゲーム機でリリースされています。iQue版「マリオストーリー」の逆コンパイル作業の進捗状況は記事作成時点で15.33%でした。


なお、リバースエンジニアリングが完了したニンテンドー64向けタイトルは「スーパーマリオ64」「ゼルダの伝説 時のオカリナ」「マリオストーリー」の3本のみだとRoseman氏は述べていますが、2022年10月にプログラマーのRyan Dwyer氏が「パーフェクトダーク」の北米版を完全にリバースエンジニアリングしています。

この記事のタイトルとURLをコピーする

Source