Kit je stavěný tak, aby ho řídil AI agent. Jednostránkové zadání agentovi řekne pravidla (měřit, nehádat; herní data zůstávají mimo git), jak kit nastavit a v jakém pořadí jít. Claude Code ho načte jako CLAUDE.md; jiný agent ho dostane jako první zprávu.
Stáhnout zadání (arek-agent.cs.md) English version
Čtyři kroky, nic dalšího se nenastavuje. Agent si od vás vyžádá cestu k obrazu diskety; obraz zůstává na vašem počítači.
pip install "amiga-re-kit[mcp]"
mkdir hra && cd hra && arek init .
# do local.conf zapsat cestu k .adf (ADF1=…)
# arek-agent.cs.md uložit sem jako CLAUDE.md
claude # „Přečti CLAUDE.md a změř disketu.“
Každý krok dává měření, proti kterému se kontroluje krok další. Nic dál po proudu nestojí na odhadu, a proto takto vzniklým dokumentům může věřit i ten, kdo hru nikdy neviděl.
Velikost, SHA-256, boot blok. Každé pozdější tvrzení se vztahuje přesně k tomuto obrazu; crackované dumpy se liší.
Kde je kód, kde zabalený blob, kolik souborů tam nejspíš je – dřív, než se dekóduje jediná instrukce.
Projít boot blok, sledovat trackloader k další fázi, najít packery podle signatury nebo přečtením rozbalovací rutiny. Každý rozbalovač ověřit bajt po bajtu proti RAM emulátoru.
Číst tabulku souborů tak, jak ji čte loader. Datové formáty mají mnoho věrohodných čtení; kód má jedno.
Které rutiny jsou čistý výpočet a které opravdu řídí Agnus, Denise a Paulu. Většina hry bývá to první.
68k do C, rutinu po rutině, spustit nad otiskem RAM originálu a porovnat s otiskem pořízeným poté. Shoda, nebo není hotovo.
Deterministické snímky z bezhlavého emulátoru ve známých časech, se skriptovaným vstupem, jako regresní kontrolní body.
Dlouhá verze s příkazy: docs/METHOD.md (anglicky). Nastavení bezhlavé vAmigy: docs/HEADLESS.md (anglicky).
MCP server nabízí stejné přístroje Claude Code nebo kterémukoli MCP klientovi. Každý nástroj bere cesty na vašem počítači a vrací měření – mapu entropie, výpis, diff – nikdy obraz samotný. Relace se čte jako laboratorní deník: zmapuj disketu, najdi zabalené bloky, rozbal ten na 0x1f40 a projdi ho od vstupu, řekni, které rutiny sahají na hardware, jednu rekompiluj a porovnej její zápisy s otiskem originálu.
Nainstalujte pip install "amiga-re-kit[mcp]" a zaregistrujte server:
// .mcp.json ve vašem projektu
{
"mcpServers": {
"arek": { "command": "arek-mcp" }
}
}
// 26 nástrojů v pořadí, v jakém je použijete
kit_info adf_info adf_map adf_regions
adf_ls adf_file adf_extract scan_packed
unpack hunk_info hunk_load disassemble
walk hwscan xref copper
recomp recomp_profile ram_at headless_shot
headless_bpstate diff_captures render trace_records
trace_compare trace_bus
| modul | co dělá | odkud |
|---|---|---|
| arek.adf | geometrie, kontrolní součet boot bloku, mapa entropie a oblasti, inventurní záznam | nové |
| arek.amigados | čtečka souborového systému OFS/FFS: výpis adresáře, vytažení souborů, bezpečné cesty | Alien Breed |
| arek.packers | PowerPacker 2.0, Bytekiller B a varianta SWIV se slovním proudem, třístupňový Turrican II, Atomik (ATN!); hrubé prohledání s ověřením | SWIV, Turrican II, Superfrog |
| arek.hunk | ohraničená čtečka AmigaDOS HUNK: CODE/DATA/BSS, RELOC32, dělené proudy; stavitel malých sond | Superfrog |
| arek.copper | disassembler copper listů se jmény custom registrů | SWIV |
| arek.m68k.decoder | přísný dekodér 68000, který odmítne vše, co nemodeluje; průchod grafem toku hlásící hranice | Superfrog |
| arek.m68k.hwscan | rutiny jen nad RAM versus rutiny hardwaru, s neznámými bázemi adresových registrů držených explicitně | Turrican II |
| arek.m68k.recomp | statický překlad 68k do C s ověřovacím driverem: RAM dovnitř, RAM a log zápisů ven; skokové tabulky, nepřímé cíle, externí rutiny, překryvné moduly, volitelné počítání taktů | Superfrog, Alien Breed |
| arek.m68k.timing | počet taktů 68000 každé instrukce včetně těch závislých na datech; shoda s Moirou na všech 42 247 dekódovatelných opkódech | nové |
| arek.m68k.xref, audit | křížové odkazy z výpisů objdumpu; inventura řízená profilem a dosažitelnost jako JSON | Superfrog |
| arek.headless | skripty RetroShellu, snímky, otisky na breakpointu a průběžné stopy přes patchovaný VAHeadless; patche jsou součástí | Turrican II, Superfrog, Alien Breed |
| arek.contract | porovnání otisků po bajtech, rozdíly registrů, tvrzení „nesmí se dotknout“ | Superfrog |
| arek.m68k.profile | volání, takty a stránky paměti po rutinách z profilované rekompilace: kterých rutin se vylepšení musí dotknout | nové |
| arek.display, parity | snímek vykreslený z chip RAM barevným řetězcem vAmigy, 0 pixelů rozdíl; dlouhodobá shoda přestavby s logy registrů a vstupů z emulátoru | Turrican II, Alien Breed, Superfrog |
| arek.seal, web | co potřebuje hratelná stránka: kontrakt obrazu (celé pixely zařízení, CRT, testy), kód zapečetěný k disketě návštěvníka, kontrola zveřejněného balíku; kánon plynulého obrazu a zvuku (presenter na GPU, takt, zvuk přes sdílenou paměť, scéna složená na GPU z jednoho záznamu na snímek hry s referencí na procesoru, měření) | Alien Breed, Superfrog, Alien Breed II |
| arek.m68k.cover, fuzz, parity suite | pokrytí běhu překladu a náhodný vstup pro obě strany (kde se dlouhý běh zasekne, je chyba); sada scénářů proti originálu: stav, obraz, zvuk po ticích | Superfrog |
| arek.m68k.timing.bus | přístupy každé instrukce na sběrnici, ne jen takty: co potřebuje model sběrnice Amigy po slotech DMA | Alien Breed |
| arek.bus | sběrnice Amigy po DMA slotech pro rekompilované hry: kdo vlastní který slot, blitter po taktech, procesor podle svých přístupů – na kterou instrukci padne přerušení, kdy skončí blit, jestli originál nestihl snímek; proti bus logu emulátoru přes arek selftest bus | Alien Breed |
| arek, arek-mcp | příkazová řádka (32 podpříkazů) a MCP server (26 nástrojů) | nové |
2482 testů: syntetická data (ručně assemblované programy, náhodné buffery, generované boot bloky a obrazy disket) a takty 68000 změřené na Moiře.