Egy bedugható cartridge, amitől egy negyvenéves Commodore 64 okosotthon-kezelőpult lesz. Bekapcsoláskor a myIO menüjébe indul, WiFi-n beszél a myIO vezérlővel, egérrel és billentyűzettel kezelhető, és böngészőből, sőt egy AI-asszisztensből is elérhető. Ha nincs kéznél C64, a cart emulál egyet. Két cartridge-dzsel a Wizard of Wor hálózaton játszható.
A ROM csak indító. Minden képernyő program az ESP32-n, így frissítéskor nem kell a ROM-hoz nyúlni.
Ugyanazok az eszközök, mint a myIO appban, fülekre bontva: pult, logika, kimenet, redőny, termo, szenzor.
Drótvázas 3D ház a myIO alaprajzból, az eszközök ikonjai a helyükön. A bekapcsolt lámpák szobájának padlója kivilágosodik, a fűtött helyiség padlója pirosas. Egérrel forgatható, eltolható és nagyítható.
A képet az ESP32 számolja ki, a C64 csak megjeleníti, ezért marad folyamatos a mozgás.
A 3D-nézet nem egy beégetett ház. A myIO Stúdióban megrajzolt tervrajz egy kattintással átvihető a C64-re: falak, ajtók, ablakok, szobák és a lerakott eszközök, a myIO kimenetekhez kötve.
house.jsn fájlba./myio mappába, house.jsn néven.Az ESP32-S3 futtatja a programot, a kész képkockát DMA-val írja a C64 memóriájába. A C64 joystickkal vagy billentyűzettel irányít. Választható image-ek:
Image-váltáskor az ESP újraindul, ez kb. 15 másodperc. A gombkiosztás a webes felületen állítható.
Az egyik cartridge a szerver: a játék a beépített C64-emulátorában fut. A résztvevők C64-ei a pályát a saját videochipjükkel rajzolják, a saját SID-jükkel szólnak, 50 kép/s-sel; a WiFi-n csak a joystick és a játékállapot változása megy. Böngészőből bárki benéz, vagy beáll a sorba, telefonról is.
A Wizard of Wor a jogtulajdonosáé; a játékfájl nem része a cartridge-nek, a hálózati változatot zárt körben próbáljuk.
A cartridge-ben egy teljes Commodore 64 is fut, saját emulátorként. USB-C-tápról, C64 nélkül magától elindul, és minden ugyanúgy megy rajta, mint a valódi gépen: a menü, a Smart Home, a 3D-ház, az AI Ninja, a BASIC @-parancsai és a játékok. A képet a böngésző rajzolja a /mon oldalon, telefonon is.
A cartridge figyeli a C64 buszát, és elkapja a programok minden SID-írását. A /mon oldal ebből a böngészőben szintetizálja a hangot: a 🔊 gombbal a laptop, a telefon vagy egy fülhallgató szólaltatja meg a C64 zenéjét.
A hang a processzor írásaiból készül, nem a SID chip kimenetéből, ezért akkor is szól, ha a gépben a SID már nem ad hangot. Így próbáltuk ki: a tévé néma maradt, a böngésző játszotta a zenét.
A cartridge saját weboldalt szolgál ki a helyi hálózaton, a c64cart.local címen. Ha nem talál ismert WiFi-t, saját hozzáférési pontot nyit, így a beállítás első alkalommal is elvégezhető. Jelszóval védhető.
WiFi, memória, microSD, a myIO vezérlő kapcsolata és az AI-végpont egy pillantásra.
Szöveg vagy BASIC-program begépelése a C64-re, funkcióbillentyűk és RUN/STOP a böngészőből.
Kétpaneles fájlkezelő a belső flash és a microSD között. Feltöltés, letöltés, BASIC-lista, hexa nézet, és egy kattintással futtatás a C64-en.
C64-programok keresése és letöltése a netes katalógusból (például a Magyar C64 H.Q.). Letöltéskor a cartridge jelzi, ha egy program saját gyorstöltőt használ.
WiFi, myIO szerver, AI-végpont, gépelési ütem, microSD; a Smart Home csempéinek neve, ikonja és pulton-helye.
ROM-feltöltés ellenőrzőösszeggel, firmware-frissítés WiFi-n, eseménynapló.
A játékok gombkiosztása image-enként (Doom, Game Boy, Game Gear): C64-billentyű, USB-billentyű és joystick is köthető.
Élő kép, gépi kódú monitor és AI-asszisztens. Lent részletesen.
A /mon oldal a cartridge freezerére épül: a futó programot néhány ezredmásodpercre megállítja, kiolvassa, és továbbengedi. A C64-en futó program ebből nem vesz észre semmit.
A cartridge nem tárol API-kulcsot. Az AI-t egy kis Python-szerver szolgálja ki a Macen, amely a Claude Code parancssori programját hívja (claude -p), így a meglévő Claude-előfizetéssel fut. A cartridge Beállításaiban elég megadni a címét: http://<mac-ip>:8642.
Két dolgot szolgál ki:
ui.js) is a reléről töltődik, ezért az AI fül a cartridge újraflashelése nélkül fejleszthető.python3 MyIO_C64/tools/c64ai_server.py # Claude Code python3 MyIO_C64/tools/c64ai_server.py \ --backend ollama --model llama3.1:8b # helyi modell
A c64mcp.py egy Model Context Protocol-szerver: a cartridge monitorát eszközökként adja oda bármely MCP-képes AI-kliensnek, például a Claude Code-nak. Nem emulátor: minden hívás a bedugott gépen fut, az írás is valódi.
| Csoport | Eszközök | Mire jó |
|---|---|---|
| Látás | c64_screen_text, c64_screenshot, c64_status, c64_events | A képernyő szövegként vagy PNG-ként, a gép állapota, a freezer eseménynaplója. |
| Memória | c64_read_memory, c64_write_memory, c64_fill, c64_find, c64_basic_list | Olvasás és írás CPU-, RAM- vagy I/O-nézetben, keresés, a BASIC-program visszafejtése. |
| Vezérlés | c64_freeze, c64_resume, c64_set_registers, c64_exit_viewer | Megállítás és folytatás, regiszterek átírása, kilépés a player-nézetből. |
| Hibakeresés | c64_break, c64_wait_break, c64_disassemble, c64_assemble, c64_monitor, c64_io_state | Töréspontok, 6510-visszafejtés és -fordítás, VICE-szintaxisú monitor, VIC/CIA/SID-dekód. |
| Bevitel | c64_type, c64_key, c64_wait_for_text, c64_load_prg | Gépelés, funkcióbillentyűk, várakozás egy szövegre, PRG betöltése a Macről. |
Egy képernyő szövegként kb. 3 ms-os megállítással olvasható, egy bitmap-kép 11–24 ms-sal. A szerver vékony réteg a cartridge REST-felülete fölött, ezért később a cartridge-re is átköltöztethető.
Az ismertető „valódi C64” képei is így készültek: a c64_screenshot a VIC-II regisztereiből és a videomemóriából rajzolja meg a képet.
{
"mcpServers": {
"c64": {
"command": "python3",
"args": ["MyIO_C64/tools/c64mcp.py"],
"env": { "C64_URL": "http://c64cart.local" }
}
}
}
Három réteg, mindegyik azt csinálja, amihez ért. Az ESP32 tartja a ház teljes állapotát és a neveket, a C64 kész, fix hosszú kereteket kap. A myIO vezérlő mindig egyetlen kliens terhelését látja, bármit nyomkodnak a C64-en.
| STM32F405 | 168 MHz, a C64 buszán EPROM-ként válaszol: 8 KB ROM-ablak, regiszterek, 256 bájtos postaláda, freezer |
|---|---|
| ESP32-S3 | 16 MB flash, 8 MB PSRAM, WiFi; programok, képrenderelés, myIO-kliens, webszerver |
| CH9350L | USB HID hoszt: szabványos USB egér és billentyűzet |
| microSD | programok, lemezképek, játék-image-ek |
| 74LVC245 | 5 V-os adatbusz-puffer a C64 felé |