Добавить в корзинуПозвонить
Найти в Дзене

Запуск ретро-игр/программ в браузере без виртуальных машин

Бесплатный сайт открывает старые программы по перетаскиванию.
Современные операционные системы безжалостно обрывают связи с прошлым. Microsoft давно вырезала поддержку 16-битных приложений из Windows, заставив пользователей искать альтернативные пути. Хотите запустить старый софт — готовьтесь тратить время. Придется ставить тяжелую виртуальную машину, искать образ старой ОС, настраивать драйверы
Оглавление

Бесплатный сайт открывает старые программы по перетаскиванию.
Бесплатный сайт открывает старые программы по перетаскиванию.

Бесплатный сайт открывает старые программы по перетаскиванию.

Современные операционные системы безжалостно обрывают связи с прошлым. Microsoft давно вырезала поддержку 16-битных приложений из Windows, заставив пользователей искать альтернативные пути. Хотите запустить старый софт — готовьтесь тратить время. Придется ставить тяжелую виртуальную машину, искать образ старой ОС, настраивать драйверы или разбираться с синтаксисом монтирования дисков в DOSBox. Этот процесс легко съедает полчаса времени ради пяти минут работы. Проект RetroTick решает задачу иначе: он запускает классические приложения для DOS и Windows простым перетаскиванием файла прямо во вкладку браузера. Никаких установок, образов и конфигурационных файлов.

Инструмент идеально подходит тем, кому нужно быстро открыть старую узкоспециализированную утилиту, прочитать забытый формат данных или запустить оригинального «Сапера». Кому это точно не подойдет: любителям тяжелых 3D-игр. Виртуальная файловая система пока не гарантирует надежного сохранения результатов работы между сессиями, а сложные приложения, написанные на Delphi, стабильно падают с ошибкой при попытке запуска.

Изображение из репозитория на GitHub
Изображение из репозитория на GitHub

Архитектура браузерной ностальгии

Разработчик не стал компилировать существующие движки на C++ в WebAssembly, а пошел по пути максимальной прозрачности. Весь x86-эмулятор, парсер заголовков и слой совместимости API написаны с нуля на TypeScript. Пользовательский интерфейс, который детально копирует логику и поведение элементов Windows 2000, собран на современных фреймворках Preact и Tailwind CSS. Система даже имитирует классический менеджер окон с поддержкой правильного порядка наложения.

Механика работы выглядит элегантно. Вы кидаете исполняемый файл в окно браузера. Утилита на лету парсит бинарные заголовки и разбирает структуру.

RetroTick понимает сразу три эпохи: старые DOS-файлы (формат MZ), 16-битные приложения времен Windows 3.1 (NE) и привычные 32-битные программы (PE). Инструмент работает из коробки — система сама определяет нужную среду и загружает файл в виртуальную оперативную память.

Чтобы всё это не тормозило, автор применил грамотный костыль. Вызовы отрисовки и системные команды не проходят через медленную эмуляцию старого процессора. Базовые библиотеки Windows, такие как gdi32 (отвечает за графику) или comdlg32 (отвечает за диалоговые окна), заменены на нативные аналоги JavaScript. Графические команды транслируются напрямую в WebGL2 браузера, что позволяет отрисовывать интерфейсы без задержек.

Встроенный скальпель для файлов

То, чего совершенно не ждешь от веб-эмулятора — это мощный инструментарий для реверс-инжиниринга. Если кликнуть правой кнопкой мыши по загруженному EXE-файлу, откроется встроенный инспектор ресурсов.

Скрипт раскладывает внутреннюю структуру приложения на составляющие компоненты. Через удобное древовидное меню можно в пару кликов извлечь старые иконки, курсоры, посмотреть логику построения диалоговых окон и вытащить аудиофайлы в формате WAV. По сути, разработчик встроил в эмулятор полноценный аналог программы Resource Hacker. Это крайне удобно, когда нужно достать графические ассеты из старой игры, не устанавливая ее на свой рабочий компьютер.

Цена простоты

Проект создавался энтузиастом в качестве эксперимента с активным использованием нейросетей, и автор открыто заявляет об архитектурных компромиссах. Главная техническая проблема RetroTick заключается в полном отсутствии JIT-компиляции.

Процессор эмулируется базовым, самым медленным методом интерпретации. Каждая инструкция старого кода читается, декодируется и выполняется в браузере строго последовательно. Это означает, что ваше современное многоядерное железо будет нагружено значительно сильнее, чем при использовании классических нативных эмуляторов. Иллюзия скорости создается исключительно за счет того, что тяжелые системные вызовы перехватываются и выполняются напрямую движком.

Наблюдать за развитием таких проектов особенно интересно на фоне действий крупных вендоров. Microsoft годами заставляет корпоративных клиентов скачивать гигабайтные образы для среды Hyper-V, чтобы просто обеспечить работу старых бухгалтерских программ. Корпорация объясняет это невероятной сложностью обеспечения обратной совместимости. Тем временем независимый разработчик просто взял и реализовал базовые функции ядра Windows в обычном веб-браузере. Очевидно, что поддержание работы старых стандартов — это вопрос желания, а не непреодолимых технических барьеров.

Код RetroTick полностью открыт под максимально свободной лицензией CC0 и выложен на GitHub. Проект абсолютно независим от сторонних серверов, весь процесс происходит локально. Любой желающий может форкнуть репозиторий и допилить недостающие фичи под собственные сценарии использования.

Готовы ли вы доверить запуск старых рабочих программ браузерному скрипту, или локально установленные виртуальные машины все еще кажутся вам более надежным решением?

Источник: репозиторий проекта

🔔 На канале «КликХак» мы регулярно тестируем инструменты, которые возвращают пользователю контроль над своей техникой и экономят время. Подписывайтесь: КликХак. 📰