2026-10-27 · ← Novinky
Gemini psal emulátor Game Boye pro konferenční visačku, nejtěžší chyby ale našly až skutečné hry
Steve Francia s pomocí Gemini rozběhl na visačce z GitHub Universe emulátory NES a Game Boy Color, které se vejdou do snímku 16,6 ms. Model navrhoval smyčky, člověk držel architekturu, měřil na hardwaru a chyby lovil v Zeldě a Pokémonech.
Obrázek se nepodařilo načíst.
Na letošní konferenci GitHub Universe hraje visačka na krku Zeldu. Steve Francia, který dřív v Googlu vedl jazyk Go, na ní s pomocí Gemini rozběhl emulátor NES a pak i Game Boye a Game Boye Color. Upozornil na to Simon Willison, který podobnou visačku hackoval už loni.
Visačka s procesorem RP2350 zvládá Link's Awakening v 60 snímcích
Visačka se jmenuje Badger. Má dvoujádrový čip RP2350 taktovaný na 230 MHz, barevný displej 320 × 240 pixelů, 16 MB flash paměti a 8 MB PSRAM. Běží na ní MonaOS 4.0, prostředí postavené na MicroPythonu. Francia ji dostal pár dní před akcí s kartičkou, na které stálo „hack this“.
Nejrychlejší cesta by byla nahrát hotový emulátor v C. Podle Francii to zabere asi dvacet minut, jenže visačka by pak přišla o své aplikace, výměnu kontaktů přes Bluetooth i hru s infračerveným hledáním po sále. Chtěl proto emulátor jako běžnou aplikaci uvnitř MicroPythonu. Obyčejný MicroPython ale zvládne zhruba 100 až 200 tisíc instrukcí za sekundu a NES potřebuje asi desetkrát víc.
Pomohl režim Viper, který překládá typovaný Python přímo do strojového kódu ARM. První emulátor NES má kolem 1 100 řádků a Zeldu podle autora hraje zhruba ve 32 snímcích za sekundu. Game Boy Color byl těžší: jeho procesor SM83 má 512 instrukcí proti 56 u NES. Francia přesto uvádí, že výpočet procesoru trvá méně než 12 ms a vykreslení méně než 3 ms, takže smyčka se vejde do 16,6 ms na snímek při 60 Hz. Hraje se na dotyková tlačítka po otočení visačky vzhůru nohama.
Model psal smyčky, člověk rozhodoval a měřil
Zajímavější než samotná hra je dělba práce, kterou Francia popisuje nezvykle přesně. Gemini 4 Argon podle něj navrhoval vnitřní smyčky z promptů, které popisovaly procesor 6502, grafický čip a přepínání paměťových bank. Francia určil architekturu se čtyřmi ukazateli do paměti, ladil kernely ve Viperu a každé číslo změřil na skutečném hardwaru přes USB. Zbývající chyby jsou podle něj takové, na které přijdete jen tehdy, když to spustíte.
U Game Boye to platilo doslova. Pokémon Crystal po startu ukazoval prázdné rámečky, protože hra si ukazatel zásobníku namíří do ROM a tak rychle kopíruje písmo. Francia přiznává, že nevěděl, že to hardware vůbec dovolí. Link's Awakening DX zase při chůzi dolů na jeden snímek rozpůlil postavu, protože emulátor nepočítal s dvojnásobnou rychlostí režimu Game Boy Color. Pokus o přetaktování na 300 MHz visačku úplně zamrazil.
Pro vývojáře z toho plyne praktický vzorec. AI pomohla člověku bez znalostí hardwaru Game Boye dostat se k fungujícímu jádru za zlomek času. Skutečným testem ale byl rozpočet 16,6 ms a sbírka cartridgí z devadesátých let, které nemilosrdně ukázaly každou chybnou domněnku.
Kolik kódu napsal Gemini, autor neříká
Z popisu se nedá zjistit, jaký podíl kódu pochází od modelu a kolik toho Francia přepsal. Neexistuje ani přehled, kolik pokusů padlo, než smyčka prošla. Bez toho je projekt spíš povedená ukázka zkušeného inženýra než důkaz, že model napíše emulátor sám.
Projekt má i obyčejné limity. Visačka nemá reproduktor, takže port NES běží bez zvuku. Kód je open source, hry ale autor nedodává a každý si musí nahrát vlastní legálně pořízené ROM. Pro konferenční visačku je to hříčka na pár dní, ne platforma.
Jestli se triky z Viperu ujmou, ukážou další hackeři visaček
Francia zveřejnil repozitář a pět triků, které z Game Boye přenesl zpátky do emulátoru NES a zrychlily i ten. Prvním signálem bude, jestli je převezmou další majitelé visaček nebo komunita kolem MicroPythonu.
Druhý signál se týká způsobu práce. Pokud další podobné projekty začnou zveřejňovat i záznamy promptů a podíl kódu od modelu, jako to loni u své visačky udělal Willison s Claude Code, bude možné porovnat, kde AI opravdu ušetřila týdny a kde jen přesunula práci do ladění.
Lilithin verdikt
Gemini napsal Game Boy, který prošel všemi prompty, a pak přišel profesor Oak s prázdnými rámečky. Kdo chce vědět, jestli AI kód funguje, potřebuje vedle modelu i čtvrt století starou cartridge, která nečte dokumentaci a neodpouští.