TypeScript-порт DOS-игры «Поле Чудес» с побайтовым воссозданием ассетов

Появился TypeScript-порт классической DOS-игры «Поле Чудес», оригинальный исходный код которой считался утерянным. Проект pole-chudes-2 представляет собой полную реконструкцию приложения, созданную на базе дизассемблированного бинарного файла. Перенос логики из скомпилированного кода в TypeScript был выполнен с помощью нейросетевых инструментов кодогенерации Fable, что заняло несколько часов. Разработчикам удалось воссоздать все игровые сцены, алгоритмы поведения оппонентов и мини-игры, а готовая сборка доступна для запуска прямо в браузере.
Техническая структура порта примечательна полным отказом от хранения бинарных файлов в репозитории. Исходные форматы данных, такие как архивы со спрайтами POLE2.LIB и шрифты POLE.FNT, конвертированы в редактируемые исходники. Графика хранится в формате WebP, а словари с вопросами переведены в JSON. Система сборки устроена таким образом, что при компиляции эти ресурсы проходят обратное транскодирование, в результате чего генерируются файлы, побайтово совпадающие с оригиналами. Это позволяет модифицировать визуальную часть или текст в стандартных редакторах, сохраняя строгую совместимость с логикой движка.
Сама игровая среда реализована через кастомный модуль, эмулирующий работу DOS-машины. Внутри функционирует индексированный фреймбуфер с разрешением 640×750 пикселей, аудиосинтезатор с частотой 8 кГц и алгоритм генерации псевдослучайных чисел от Borland, что обеспечивает детерминированность игровых сессий. Подобный подход к реверс-инжинирингу показывает способность современных LLM-инструментов транслировать специфический легаси-код в читаемую кодовую базу без потери оригинальных механик.
Поделиться:
Ещё из архива
Все публикации
Интервью с Владимиром Аюевым: графический язык бигтеха, студия SASHA и дизайн-образование
1 месяц назад
Jockey от TwelveLabs: ИИ-агент для семантического поиска по видеоархивам и извлечения метаданных
1 месяц назад
Архитектура винной этикетки: баланс наборного шрифта и каллиграфии в кейсе Winecraft
1 месяц назад
Оптимизация контекста в Claude Code: как работает кэширование промптов и за что мы платим
1 месяц назад
Архитектура памяти для LLM-агентов: от базового SQLite до Graph RAG
1 месяц назад