← На главную

Энтузиаст с AI реверсировал карты Test Drive III и выложил инструменты

31.05.2026 09:45 · hackernews

Энтузиаст реверсировал карты DOS-игры Test Drive III: The Passion от Accolade. Он много играл в детстве — не ради гонок, а чтобы исследовать мир. Пять лет он то брался за проект, то откладывал. Теперь с помощью AI почти закончил, хотя изредка машины летают, а спрайты пропадают.

Формат 3D в игре несложный, но есть нюансы. Каждый тайл или объект — маленькая сетка, хранящаяся как три параллельных массива 16-битных signed-координат X, Y, Z, за которыми идут 8-байтные записи полигонов: тип, индексы вершин и цвет палитры. Перед этим — короткий заголовок в 4 или 8 байт. Карта — сетка 32×16, каждая ячейка — 2 байта: ID тайла (выбирает одну из сеток) плюс упакованные биты поворота и высоты.

Готовые Wavefront OBJ-файлы лежат в objs/. Для сборки нужен Node.js 20.19+ (требуется Vite 7). Браузерный просмотрщик открывается на http://localhost:5173. Сборка в dist/. Скрипты на npm экспортируют карты и объекты в objs/, извлекают DOCUMENTED DAT-изображения в индексированные PNG в images/, а также прозрачные спрайты сцен из известных дескрипторов рендера (включая вариант серии SCENE02).

Есть утилиты для просмотра: npm run lstview показывает содержимое LST-файла (например, public/base/SCENE01.LST), npm run imgview извлекает VGA-изображение из DAT-файла по смещению и размеру. Исходники лежат в src/ с модулями: browser/ — Three.js-вьювер, shared/ — логика извлечения и декодеры LZW/RLE, tools/ — Node.js-инструменты для экспорта OBJ, пакетного извлечения DAT→PNG, спрайтов, просмотра LST и VGA.

Полная галерея извлечённых изображений — интерфейс, спрайты сцен, палитры карт и автомобили — доступна в индексе галереи проекта. В поддиректориях — собственные визуальные галереи. В spec/ — документированные обратным инжинирингом спецификации форматов файлов Test Drive III.

Читать оригинал →