← На главную

Claude Code нашёл баги в эмуляции Pippin и Power Mac 7200/6100 в MAME

18.06.2026 08:28 · hackernews

Эмуляция Power Macintosh в MAME долгое время почти не двигалась с места. Слишком сложно отлаживать: код написан на трёх языках (PowerPC, эмулированный 680×0 и FORTH), плюс куча машинного кода, с которым разработчик не так хорошо знаком. В 2026 году он решил попросить помощи у Claude Code. AI согласился, но с оговорками — в итоге использовал связку из Lua-скриптов и логов самой MAME.

Первой подопытной стала консоль Pippin. Она вообще не загружалась. Claude довольно быстро нашёл, что проблема в эмуляции 6522 VIA — из-за неё ломалось общение с микроконтроллером Cuda 68HC05. После исправления дело сдвинулось, но недалеко. За неделю AI откопал ещё полдюжины багов в эмуляции PowerPC и несколько — в поддержке PCI-маков. В итоге Pippin заиграла стартовым звуком, показала логотип «P!P P!N», и даже курсор мыши двигался. Параллельно разработчик Vas заметил анти-паттерн в PowerPC DRC: там при исполнении использовались значения из кэшированного сгенерированного кода вместо реального состояния машины. Это ничего конкретного не починило, но корректность подняло.

Чтобы проверить, насколько фиксы применимы к реальному «Маку», взяли Power Macintosh 7200 — он близок к Pippin по железу. Он завёлся, дошёл до опроса загрузочных дисков, но не инициализировал встроенное видео. Claude нашёл два бага в эмуляции PowerPC 601. Экран включился, показал дискету 3.5″, но мигающий знак вопроса — что диска нет — не появлялся. Прогресс, но работу отложили.

Следом взялись за Power Macintosh 6100. Он зависал при загрузке любой системы новее 7.5.0. AI выяснил: проблема в том, что старая System 7 использует эмулированный SCSI Manager на 680×0, а новая — нативный PowerPC. Тот падал из-за неправильной эмуляции атомарных инструкций load/store в PowerPC. Эти инструкции критичны для прерываний. Оказалось, у разработчика gm-matthew уже был пул-реквест с фиксом для Sega Model 3, но он застрял в ревью. Изменения применили — и System 7.5.3 и 7.5.5 загрузились прямо в Finder, да ещё и быстрее за счёт нативного SCSI. Побочный эффект: у Pippin появилась анимация с просьбой вставить CD, а у Power Macintosh 7200 наконец-то замигал знак вопроса.

Потом взялись за знаменитый Graphing Calculator из поставки Power Mac. Он не работал. Claude быстро указал, что ни одна FPU-инструкция не обновляет статусные флаги — аркадным играм это не нужно, а операционкам и библиотеке SANE нужно. Разработчик наполовину починил: 2D-демо заработало, 3D — нет. Но позже пофиксил и 3D — оказалось, неправильно работали исключения выравнивания на процессоре 601.

Кроме отладки MAME, AI отлично справляется с реверс-инжинирингом прошивок клавиатур, мышей и синтезаторов: с ходу угадывает карту памяти и основные подпрограммы. GPT 5.5 Pro (via Codex) в этом особенно хорош, хотя Claude тоже неплох. Главное — сразу дать ему утилиту unidasm из MAME.

Автор подчёркивает: AI работал под присмотром опытного программиста, который пресекал погоню за маловероятными теориями. AI находил баги, но фиксы писал человек — за исключением пары тривиальных однострочников, и те редактор подгонял под свой стиль. В MAME пока нет формальной политики по AI, но «vibe code» там не приветствуется. Пул-реквест, написанный AI, гарантированно разозлит команду. Код должны понимать те, кто его отправляет.

Читать оригинал →