Классика демосцены запускается в браузере — через перекомпиляцию в WebAssembly
Энтузиаст собрал проект, который позволяет запускать прямо в браузере знаменитые демки эпохи DOS — без эмулятора в привычном смысле. Вместо того чтобы «проигрывать» старую программу поверх виртуальной машины, автор пошёл путём статической перекомпиляции: оригинальный код переводится в современный формат инструкция за инструкцией.
Как это устроено
Сначала демка прогоняется на эмуляторе x86, который фиксирует каждый блок кода, реально исполненный процессором за всё время работы. Эта запись переводится в язык C — те же самые инструкции, одна к одной, с точным потактовым таймингом эмулируемой машины. Затем C компилируется в WebAssembly вместе с моделями железа, к которому обращается демка: таймера, видеокарты VGA и звуковой платы Sound Blaster.
Результат сверяется с эмулятором событие за событием — каждое прерывание, каждое обращение к порту, каждый кадр происходят в тот же момент эмулируемого времени. Собственные загрузчики, музыкальные плееры и эффекты демок работают ровно так, как в 1992 и 1993 годах; смоделировано только аппаратное окружение.
Что можно посмотреть
В коллекции — Unreal и Second Reality от Future Crew, Crystal Dream II от Triton и Stars: Wonders of the World от группы NoooN. Все они в своё время были выпущены для демосцены бесплатно. Оригинальные файлы релизов подаются без изменений — именно в том виде, в каком демки читают их во время запуска.
Есть одна тонкость: демки работали на VGA с частотой 70 Гц, поэтому плавнее всего они выглядят на мониторе с 70 Гц — либо 140 Гц и выше. Посещения считаются анонимно, без IP-адресов, трекинговых cookie и идентификаторов.
Источник: Hacker News
Комментарии
Войдите, чтобы комментировать.