Декомпіляція, повторна реалізація та рекомпіляція: у чому різниця
Автор: DecompHub · Оновлено · Українська
Орієнтуйтеся на очікуваний результат. Відновлений код, сумісна заміна й нативна програма корисні по-різному. Однакова назва гри не робить їхні показники прогресу взаємозамінними.
Matching-декомпіляція
Мета — код, який компілюється в ті самі машинні інструкції, що й визначена оригінальна збірка. Важливі компілятор, параметри та ревізія. FAQ decomp.me пояснює порівняння функцій: успішний scratch не є відсотком усієї програми.
Це підходить для вивчення структури оригіналу й matching-внесків. З’ясуйте, що рахує звіт: байти, функції чи вибрані модулі.
Повторна реалізація та сумісність
Відтворюються поведінка або інтерфейси, без вимоги ідентичного виконуваного файла. Результат оцінюють функціональністю й тестами. ScummVM замінює виконувані файли підтримуваних ігор, використовуючи їхні дані.
Цей напрям корисний для працездатної заміни чи поліпшення сумісності. Не перетворюйте заяву про підтримку на відсоток бінарного збігу.
Статична рекомпіляція
Інструкції наявної програми перетворюються заздалегідь для іншого середовища. N64Recomp описує такий процес для N64; повноцінний порт також потребує інтеграції навколо перетвореного коду.
Це може дати нативний запуск до завершення ручної реконструкції, але не пояснює автоматично початкову структуру вихідного коду й не гарантує підтримку довільної гри.
Дизасемблювання й порти
Дизасемблювання подає машинні інструкції асемблером, не обов’язково відновлюючи C чи C++. Порт переносить програму на іншу платформу й може спиратися на будь-який із цих підходів. Позначки можуть перетинатися.
У каталозі використовуйте тип роботи як орієнтир, перевіряючи мету в джерелі. Посібник із прогресу допоможе коректно порівнювати вимірювання.