Назад
Гру 1993 року для Amiga перезібрано в Godot: LLM прочитала 72 758 рядків асемблера 68000
SiTech AI Team3 წთ. საკითხავი

Гру 1993 року для Amiga перезібрано в Godot: LLM прочитала 72 758 рядків асемблера 68000

Babylonian Twins Рабаха Шихаба, написана в Багдаді 1993 року для Amiga 500, переїхала в Godot 4 — порт виконав AI-агент за оригінальним кодом асемблера. Автор розповідає, де модель мала рацію, а де тижнями помилялася.

Гра з Багдада, відбудована заново

1993 року в Багдаді Рабах Шихаб створив Babylonian Twins на Amiga 500: 512 кілобайтів пам'яті, без жорсткого диска, чистий асемблер 68000, написаний вручну; графіку намалював Муртада Салман, музику написав Махір АльСалман. Під санкціями, з електрикою на кілька годин на день, команда програмувала обладнання напряму, маючи один примірник Amiga Hardware Reference Manual. Гра стала першим комерційним продуктом, зробленим в Іраку, але Commodore збанкрутувала, видавці відступили, і форум Amiga знайшов її 2008 року після відео, які виклав брат автора. Порт на iPhone 2010 року, виконаний вручну на 34 000 рядках C++, написаних з нуля, перетнув два мільйони завантажень.

Три умовні завдання

У публікації від 1 вересня Шихаб пише, що новий порт на Godot 4 робив не він: він просив про нього, грав щовечора і ухвалював рішення, які вимагали людини, котра була там 1993 року. Читання коду виконала модель, що працювала в Claude Code, з терміналом і доступом до його файлів. Перше, «безпечне» завдання — перенести його власний рушій 2010 року в Godot 4. Від порожнього проєкту до персонажа, яким можна грати, минула 21 хвилина; о 02:15 проєкт уже експортувався на macOS, iOS та Android. Доведення відчуття руху зайняло ще близько трьох днів.

Друге завдання — оригінальні 72 758 рядків асемблера 68000 у 26 файлах, написаних для машини, знятої з виробництва десятиліття тому, майже без коментарів. Перш ніж щось переносити, модель знову зібрала ці джерела за допомогою vasm і продовжувала, доки результат не збігся з випущеними бінарниками байт у байт — за п'ятнадцять хвилин після імпорту. Формат рівнів цього разу розкрився за один прохід і без підказок, а повторно відрендерені рівні збіглися зі знімками автора 2020 року з нулем відмінних пікселів. Третє завдання — запуск гри 1993 року всередині сучасної, з перемиканням рушія на 50 Гц для ретро-збірки — зайняло один вечір.

Де були помилки і що виходить тепер

Не все витримало перевірку. На другому рівні гравці отримували удари від ворога за тринадцять клітинок вище, між ними — суцільна скеля: порт зберіг нижню межу перевірки вертикального діапазону й відкинув верхню, тож поштовх, розрахований на три ряди, проходив усю колонку карти, крізь підлогу. Крім того, рендеринг прихованого шару плиток залишив усі таємні проходи відкритими, а оновлення ворогів до гравців рахувало стрибок на батуті двічі. Модель позначила неоднозначність у планарних спрайт-листах Amiga і поставила питання замість того, щоб угадувати. Відгук на одну зірку, який вона знайшла — двері відчиняються, але рівень не завершується — описував реальний дефект, виправлений у версії 2.0.3.

Оригінальні диски 1993 року безкоштовні на itch.io; Definitive Edition уже на iOS та Android, у Steam є безкоштовне демо, а повний випуск для Windows, Mac і Linux заплановано на цю осінь — гра 1993 року входитиме до нього як другий варіант запуску. Шихаб також зазначає, що допис підготувала модель з його нотаток, а він редагував його вручну протягом тижня, єдине, чого він не перевірив сам, — пояснення моделі щодо 108 упертих байтів у випущених бінарниках.

SSiTech

SiTech — веброзробка з підтримкою AI

Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.