DOS-игру F-15 Strike Eagle II полностью воссоздали из исходников. Ищут тестировщиков
Энтузиасты завершили масштабный проект восстановления исходного кода боевого авиасимулятора F-15 Strike Eagle II (1989) путём анализа бинарных файлов. За месяц команда перешла от глубокого рефакторинга ассемблера в C к состоянию, когда весь код всех трёх исполняемых файлов переписан на C, все данные мигрированы из сборки, большинство подпрограмм получили осмысленные имена. Игра уже готовна к тестированию: разработчики выпустили версию 0.9.1, которая работает с оригинальной игрой версии 451.03 с дополнением Desert Storm.
Проект использует инструменты верификации для контроля верности нового кода. Авторы открыли версию для тестировщиков и просят сообщать о крашах, графических глюках и проблемах с управлением. Важный нюанс: это реконструкция "глюк в глюк", поэтому баги оригинальной игры (например, исчезновение 3D-объектов или падение самолёта вверх при инверсии) остаются нетронутыми. Авторы планируют вскоре развернуть форк проекта для портирования на современные платформы.
Ключевые факты
- Все три исполняемых файла F-15 SE2 (1989) успешно переписаны с ассемблера на C с сохранением поведения оригинала
- Проект использует автоматизированную верификацию на соответствие оригинальным опкодам, но ручное тестирование критично для поиска багов в логике данных
- Версия 0.9.1 совместима с оригинальной игрой 451.03 с Desert Storm и готова к замене исполняемых файлов в папке игры
- Разработчики ищут тестировщиков для поиска регрессий перед форком на портирование
- Это проект «глюк в глюк» - оригинальные баги сохранены для верности воссозданию, что требует сравнительного тестирования
Ред. Редкий случай, когда «самолёт падает в небо» это не баг, а пункт техзадания.
Почему это важно
Реверс-инжиниринг легатеных программ позволяет понять дизайн-решения разработчиков 1980-х и сохранить мягкое обеспечение, которое иначе теряется при смене аппаратуры. DOS-эра создала огромное наследие кода, недоступного для современных платформ. Когда весь исходник восстановлен на более портативном языке, игра получает второй шанс: возможны порты на современные системы, модификации, исторический анализ. Проект демонстрирует масштаб успешного сообщественного сотрудничества в области сохранения цифрового наследия.
Ред. Сохранять культурное наследие 1989 года вручную переписывая ассемблер на C, это тот вид любви, который не объяснишь тем, кто не помнит дискеты.
Кому это важно
Историкам компьютерной архитектуры и игровых движков интересны решения и ограничения той эпохи. Разработчикам эмуляторов и портировщиков это показывает, как воссоздать поведение на уровне опкодов. Ностальгирующим геймерам даёт возможность снова поиграть с комфортом современного ПК вместо виртуальной машины DOS. Энтузиастам модинга откроется путь к расширениям, недоступным с оригинальными бинарниками. Сообществу open-source методология проекта показывает эффективный способ организации масштабного восстановления.
Ред. Список «кому важно» получился длиннее списка потенциальных тестировщиков, у которых до сих пор лежит оригинал 451.03.
Как это применить
Если у вас есть копия оригинальной F-15 Strike Eagle II (версия 451.03 с Desert Storm), загрузите выпуск 0.9.1 из репозитория проекта. Замените исполняемые файлы в папке игры новыми, убедитесь, что удалён f15.com (чтобы не запустился вместо f15.exe), и запустите. Программа будет работать в режиме MCGA/VGA без звука и без джойстика. Протестируйте все три части: брифинг миссии, полёт и дебрифинг. При обнаружении проблем сделайте скриншот (Ctrl+F5 в DOSBox) и опишите последовательность действий, которые привели к багу.
Ред. «Удалите f15.com, чтобы не запустился вместо f15.exe» это инструкция, после которой половина тестировщиков уже сделала всё неправильно.
Можно ли доверять
Проект использует инструменты верификации для сравнения каждого изменённого опкода с оригиналом, что обеспечивает высокую точность низкоуровневого соответствия. Однако такие инструменты не ловят всех логических ошибок, особенно связанных с расположением данных в памяти. Это и является причиной запроса тестировщиков: нужна человеческая проверка на предмет регрессий в геймплее и графике. Авторы прозрачны в том, что версия 0.9.1 находится на пути к финалу, но ещё нуждается в отладке. Сохранение оригинальных багов как части спецификации показывает честный подход.
Ред. Доверять коду, который сверяется с оригиналом по опкодам, можно. Беспокоит только то, что оригинал тоже не очень доверял законам физики.
Риски и подводные камни
Основной риск для тестировщиков: без оригинальной игры под рукой сложно различить баг восстановленного кода и баг оригинала. Авторы рекомендуют держать копию оригинала для сравнения. Технический риск проекта: даже при идеальном соответствии опкодам могут остаться ошибки в интерпретации структур данных, которые проявятся только в экстремальных условиях игры. Есть риск платформных различий: поведение DOS на старом железе отличалось от эмулятора. Сохранение глюков оригинала означает, что баг является целевым поведением, что требует дополнительного внимания при документировании результатов тестирования.
Ред. Главный подводный камень тестирования прост: чтобы найти баг, нужно сначала вспомнить, был ли он в 1989 году. Архивная археология без зарплаты.
«This is a bug-for-bug reconstruction, so any behaviour also present in the original game needs to stay as is (for now). The original has some problems with 3d objects disappearing, plane falling towards the sky when inverted and out of fuel etc.»
— LowLevelMahn, HN #48609766