Bad Apple but it's played inside Super Mario Bros
В Super Mario Bros. для NES реализовано произвольное исполнение кода (ACE) через манипуляции с игровым состоянием. Используется старт на уровне 'N' для инициализации объекта C9, который перезаписывает память и позволяет выполнять пользовательский код. В демонстрации воспроизводится видеоклип Bad Apple!! с синхронизированным звуком через контроллер, преобразуя музыку в нажатия кнопок. Для графики применяется эффективное кодирование кадров в тайлы NES с оптимизацией через пакеты данных. Эмулятор BizHawk 2.9.1 обеспечивает точность, включая работу с "открытой шиной", что подтверждено запуском на реальной консоли. Достигнуты полное прохождение, максимальный счёт и время 4:52.65.
Комментарии (24)
- Аудио на NES стримится через контроллер с помощью миллионов быстрых нажатий кнопок (5.8 млн), что является формой векторного квантования.
- Воспроизведение требует модифицированного ROM или ручной настройки памяти для загрузки кода, но возможно на реальном железе.
- Частота аудиострима достигает ~25 кГц, периодически снижаясь до ~9 кГц при обработке видео.
- Полный файл TAS (~16 МБ) значительно превышает объем RAM NES (4 КБ), поэтому данные стримятся в реальном времени.
- Результат впечатляет качеством звука, сохраняя аутентичный 8-битный стиль, особенно в басах.
Optimizing our way through Metroid
Почему мы играем в Metroid
Мы не используем Nintendo в качестве маркетингового трюка. Именно через игры мы научились строить Antithesis. Задаваясь вопросом «почему фаззер не может пройти Zelda», мы шаг за шагом вывели архитектуру платформы.
Красная дверь в Metroid
Автономная система Antithesis без труда проходит большую часть Metroid (1986), но застревает у красной двери. Анализ позиций Самус показывает, что исследована вся карта, кроме зоны за этой дверью.
Диагностика
Перезапуская любой момент кампании, мы видим: у Самус кончились ракеты. Чтобы открыть красную дверь, нужно 5 ракет. Система подбирает их, но тратит на врагов или случайные действия и больше никогда не возвращается с ≥5 ракетами к двери.
Комментарии (21)
- Участники вспомнили старый «лексикографический» солвер для NES-игр и обсудили, как fuzzer-компания Antithesis ищет баги в играх вроде Castlevania и Metroid.
- Отмечены проблемы с прокруткой и воспроизведением видео в Firefox (особенно в приватном режиме), которые частично решаются CSS-фиксом.
- Появилась идея использовать fuzzer для постановки новых TAS-рекордов; сама компания уже устраивает «человек против машины» на Mario 1-1.
- Несколько человек пожелали более краткого «введения для новичков» на сайте Antithesis, хотя документацию находят полезной.