# 逆コンパイルの進捗レポートを正しく読む

Author: DecompHub
Updated: 2026-10-10
Language: ja
Canonical: https://decomphub.com/ja/guides/understanding-decompilation-progress

進捗の割合は、何を、どのビルドで、いつ測ったかと併せて初めて意味を持ちます。DecompHubは指標名、測定範囲、出典を値とともに表示します。信頼できる測定が得られていない場合は不明のままです。不明は0%ではありません。

## コードの一致と動作の再現は別の目標

マッチング逆コンパイルは、特定のオリジナルビルドと同一の機械語を生成するソースを目指します。コンパイラと設定も重要です。[decomp.meのFAQ](https://www.decomp.me/faq)は関数単位のscratchによる比較を説明しています。一つのscratchの結果は、ゲーム全体の進捗ではありません。

互換実装は動作の再現を目指します。[ScummVMはゲームの実行ファイルを置き換え、元のゲームデータを利用します](https://docs.scummvm.org/en/latest/help/faq.html)。ゲームへの対応状況を、機械語の一致率に読み替えることはできません。移植やハードウェア調査も、一致率がなくても価値があります。

## 分母を確認する

関数、バイト、ファイル、シンボル、特定済みアセットは異なる単位です。**仮の例**として1,000関数中900関数が一致すれば、関数数では90%です。しかし残りの関数がコードの半分のバイト数を占めるなら、バイト単位で90%ではありません。これは計算の説明であり、掲載プロジェクトの測定値ではありません。

次を確認してください。

- 指標は一致したコード、逆コンパイル済みコード、特定済みアセットなどのどれか。
- 割合か件数か。件数なら、元の資料に総数があるか。
- 実行ファイル全体、ライブラリ、地域版、プラットフォーム、選択したファイルのどこまでが対象か。
- 測定元のレポートを開けるか。

[objdiff](https://github.com/encounter/objdiff)はオブジェクトファイルの比較や進捗情報の生成に使われます。ただし、導入されているだけで具体的な分母や設定は分かりません。

## バージョンと指標を混ぜない

ある地域版やデバッグ版の完了は、別バージョンの完了を意味しません。[Ocarina of Time](https://github.com/zeldaret/oot)は対応バージョンとビルド対象の選択を説明しています。

コードの一致とアセットの特定も別の作業です。コードが一致しても、すべての画像、音声、データ構造が理解されたとは限りません。発行元が合成指標を定義していない限り、勝手に平均しないでください。

## 日付の種類を区別する

**レポートの日付**は発行元が示す測定日です。**取得日**はDecompHubが資料を読んだ日です。今日取得したページに古い測定が載っていることもあります。リポジトリ情報や掲載内容の更新日も、測定の新しさを保証しません。

[データ仕様書（英語）](/data)に出力フィールドを説明しています。引用するときは、プロジェクト、指標、範囲、出典URL、該当する日付を残しましょう。

不明には、レポートがない、取得できない、範囲を確定できない、収集がまだ届いていない、といった理由があります。100%を超える値、分母の変更、矛盾するバッジは確認が必要です。値を黙って切り詰めたり、不明をゼロやスター数に置き換えたりしないでください。

[測定値のあるプロジェクト](https://app.decomphub.com/ja/explore?progress=in-progress)から出典を開いて比較できます。誤りを見つけたら、掲載ページの報告機能で根拠となる資料を示してください。
