Разработчик Сэмюэль Парсонс представил открытый проект Retro Boy. Это простой эмулятор Nintendo Game Boy, написанный на Rust и TypeScript, в который можно играть в веб-версии на сайте автора (при наличии внешних ROM с играми у пользователя, поддерживаются файлы .gb и .gbc).
«Retro Boy — это точный по циклам эмулятор Game Boy, написанный на Rust. Он использует wasm‑pack для перевода кода Rust в WebAssembly, чтобы его можно было воспроизводить в интернете. Затем веб‑интерфейс использует Web Audio API и HTML Canvas для аудио и графики. Он также использует локальное хранилище браузера для сохранения данных ОЗУ для картриджей MBC (battery‑backed MBC cartridges)», — пояснил разработчик проекта.
Особенности проекта:
точный по циклам ЦП, прошедший все проверки JSON CPU tests;
точная эмуляция звука;
графическая эмуляция, созданная с использованием рендерера на основе сканирующей строки (scanline-based renderer);
поддержка MBC1, MBC3, MBC5 и HuC1;
поддержка читов GameShark или GameGenie;
веб-интерфейс, поддерживающий полноэкранный режим, паузу/возобновление, монохромный или цветной режимы;
настраиваемые клавиши для игрового управления;
адаптивный дизайн для мобильных устройств.
«Веб‑фронтенд для этого эмулятора — это приложение React/TypeScript, разработанное с использованием Material UI. Оно находится в папке frontends/web. UI предоставляет возможность загружать ROM, а также воспроизводить, приостанавливать или сбрасывать эмулятор. Он также предоставляет полноэкранный режим», — добавил автор решения.
Ранее Nintendo направила GitHub DMCA-запросы на удаление форков эмулятора Ryujinx в соответствии с американским Законом об авторском праве в цифровую эпоху (Digital Millennium Copyright Act, DMCA). Ryujinx — это эмулятор Nintendo Switch с открытым исходным кодом, но в конце прошлого года владельцем этого проекта стала Nintendo.
Представители Nintendo рассказали, что продолжают блокировать эмуляторы на разных платформах, так как компания занимается «защитой тяжёлого труда инженеров и разработчиков видеоигр». Использование эмуляторов и обход защиты, по мнению компании, вредит развитию и уничтожает инновации.
Источник новости: habr.com