Как читать отчёты о прогрессе декомпиляции

Автор: DecompHub · Обновлено · Русский

Процент имеет смысл только вместе с контекстом: что считают, для какой сборки и когда измеряли. DecompHub сохраняет название показателя, его охват и ссылку на источник. Без надёжного измерения прогресс остаётся неизвестным — это не ноль.

Совпадение кода и работоспособность — разные цели

Matching-декомпиляция стремится получить машинный код, идентичный определённой оригинальной сборке. Важны компилятор и его настройки. FAQ decomp.me объясняет сравнение отдельных функций в scratch-среде; результат такого сравнения не равен проценту всей игры.

Совместимая замена воспроизводит поведение. Например, ScummVM заменяет исполняемые файлы игр, используя их данные. Поддержку игры нельзя превращать в процент бинарного совпадения. Порты и исследования оборудования полезны и без matching-отчёта.

Посмотрите на знаменатель

Функции, байты, файлы, символы и определённые ресурсы — разные единицы. В вымышленном примере 900 из 1 000 функций дают 90% по количеству. Если оставшиеся функции содержат половину байтов кода, это не 90% по байтам. Это пример арифметики, а не измерение проекта в каталоге.

Проверьте:

objdiff поддерживает сравнение объектных файлов и отчёты. Наличие инструмента не определяет знаменатель конкретного проекта — читайте его настройки и отчёт.

Не смешивайте версии и показатели

Готовая региональная или отладочная версия не означает готовность остальных. Ocarina of Time описывает выбор поддерживаемой версии для сборки.

Совпадение кода и определение ресурсов отражают разную работу. Первое не означает, что понятны все текстуры, звуки и структуры данных. Не усредняйте их, если автор отчёта явно не определил общий показатель.

Различайте даты

Дата отчёта предоставлена автором измерения. Дата наблюдения показывает, когда DecompHub прочитал источник. Только что прочитанная страница может содержать старый результат. Обновление метаданных репозитория или записи каталога не делает измерение новым.

Документация данных на английском описывает эти поля. При цитировании сохраняйте проект, показатель, охват, URL источника и соответствующую дату.

Неизвестное значение может означать отсутствие отчёта, недоступный источник, неоднозначный охват или ещё не завершённый сбор. Значения выше 100%, изменившиеся знаменатели и противоречащие значки требуют проверки. Не обрезайте число молча и не подменяйте неизвестное нулём или звёздами GitHub.

Откройте проекты с измерениями и сравните источники. Действие сообщения об ошибке в записи позволяет указать конкретные данные, которые нужно исправить.