← Вернуться к игре

MEGA ROOM / Netplay Lab

Прототип 0.2: локальная игра и приватные комнаты для двух игроков через интернет. Игра исполняется у каждого; выбранный хозяином ROM автоматически передаётся гостю, затем синхронизируются начальное состояние и нажатия. Используется буфер 6 кадров с ожиданием фактического ввода. Rollback в этой версии не реализован.

Эмуляция: jgenesis, версия 0.14.1, ревизия 0a00c47ba7a16bd6e77ef7e0b6c8fab2fc603cba. Лицензия: GNU GPL v3. Программное обеспечение предоставляется без гарантий.

Браузерный адаптер находится в core/, исходники ядра — в vendor/jgenesis/. Для сборки WebAssembly отключена необязательная C-библиотека fast_zstd; используется реализация на Rust. Код эмуляции Mega Drive не изменён.

Скачать соответствующие исходники браузерного компонента: ядро, адаптер, браузерный код, зависимости и инструкции сборки. ROM-файлы и данные комнат в архив не входят. Лицензии библиотек: THIRD_PARTY.txt.

HTTP-доступа к папке roms нет. Хозяин выбирает картридж, гость получает его автоматически в память вкладки. Картридж передаётся только напрямую между браузерами по WebRTC, без пересылки через игровой сервер. Если прямое соединение не установлено, получение можно повторить. Начальное состояние игры и резервный ввод пока проходят через сервер. Целостность проверяется по SHA-256. При выходе из комнаты экземпляр эмулятора и полученный ROM освобождаются. Браузер не сохраняет ROM автоматически, однако получатель технически может его скопировать. При прямом WebRTC-соединении IP-адрес игрока может быть виден другу; при резервном соединении игровые нажатия проходят через сервер.

Голосовой чат включается вручную после разрешения микрофона. Аудио передаётся напрямую между браузерами отдельным WebRTC-соединением; сервер комнаты передаёт только настройки связи. TURN и передача голоса через сервер отключены. Громкость игры и голоса друга регулируется отдельно и сохраняется в этом браузере.