QR-kódból tölthető le a TinySol, a mindössze 3 kilobájtos DOS-os pasziánsz játék

tiny-sol

A száz gigabájtra hízott modern videojátékok korában egyetlen apró QR-kódba sűrítették a teljes nyugalmat.

A TinySol nevű program megmutatja, mire képes a kézzel írt gépi kód a felesleges sallangok ellenében.

Miközben napjaink legújabb címei több száz gigabájtot követelnek a legdrágább tárhelyből, és az indításukhoz különálló keretrendszerekre van szükség, a fejlesztők egy szűk köre visszatér az alapokhoz. A ClassicBits néven alkotó retro-programozó bebizonyította, hogy egy hiánytalanul működő, teljes értékű kártyajáték elfér akkora helyen, amit akár egy papírra nyomtatott mintázatból is be lehet olvasni. A fejlesztés eredménye a TinySol, egy MS-DOS rendszerekre tervezett Klondike pasziánsz, amely mindössze 3 kilobájtos méretével szembemegy a modern játékindusztria méretbeli pazarlásával.

Kézzel írt gépi kód három kilobájtban

A TinySol nem használt semmilyen modern játékmotort, magas szintű programozási nyelvet vagy automatizált kódgenerátort. A szoftver teljes egésze kézzel írt, 16 bites x86 assembly nyelven készült, és a Netwide Assembler segítségével fordították le futtatható bináris állománnyá. Ez a megközelítés közvetlen hozzáférést biztosított a processzor utasításaihoz és a memória kezeléséhez, ami lehetővé tette a minimális méret elérését.

A projekt legkisebb, mindössze 2,2 kilobájtos kiadása még a futtatható állományok tömörítésére használt algoritmusokat is mellőzi. A fejlesztő szerint egy ilyen apró fájlnál a tömörítési overhead többet ártana, mint amennyit használ. Ennek a szélsőséges optimalizációnak köszönhetően a program teljes kódja elrakható egyetlen nagy sűrűségű QR-kódba. A felhasználónak csupán be kell szkennelnie az optikai mintát egy kamerával vagy vonalkód-olvasóval, és a bináris adatfolyam azonnal áttölthető a lemezmeghajtó nélküli, korabeli számítógépre.

Grafikai módok automatikus felismerése és egérkezelés

Bár a TinySol mérete elhanyagolható, funkcionalitás tekintetében nem köt kompromisszumot. A játék képes automatikusan felismerni a számítógépben található grafikus kártyát, és támogatja a CGA, EGA, valamint VGA megjelenítési módokat. Külön érdekesség, hogy még az AT&T 6300 számítógép ritka, 640×400 pixeles felbontású módját is kezeli, amely például a GRiD hordozható gépek gázplazma kijelzőin volt használatos. A grafikai módok között a billentyűzet F1–F4 gombjaival menet közben is váltani lehet.

A fejlesztő két fő változatot készített a programból. Az alapértelmezett, 3 kilobájtos verzió tisztán billentyűzettel irányítható, tartalmazza az automatikus lapbefejezést, a klasszikus Microsoft-stílusú pontozást, és felismeri a győzelmi állapotot. Akinek szüksége van az egérhasználatra és a játékállás elmentésére vagy betöltésére, a 3,5 kilobájtos bővített változatot választhatja. Ez a fél kilobájtos többlet biztosítja a teljes egértámogatást és a lemezre történő mentést.

Papírra nyomtatott szoftver a floppylemez borítóján

A TinySol premierjére a Vintage Computer Festival Southwest rendezvényen került sor, ahol a fejlesztő fizikai formában is terjesztette a játékot. A látogatók 5,25 és 3,5 hüvelykes hajlékonylemezeken kapták meg a programot, ám a lemezek papírborítójára rá volt nyomtatva maga a QR-kód coverszerkezete is. Így a szoftver akkor is betölthető és használható marad, ha maga a mágneses adathordozó az évtizedek során megsérülne vagy olvashatatlanná válna.

A hardveres kompatibilitás rendkívül széles skálán mozog. A játék problémamentesen fut az 1981-ben megjelent eredeti IBM PC 5150 modellen, amely mindössze 8088-as processzorral és 64 kilobájt RAM-mal rendelkezik, de gond nélkül elindul egy Pentium korszakbeli számítógépen vagy modern DOSBox emulátorban is. A tesztelések során a program FreeDOS és MS-DOS 2.0 feletti rendszereken egyaránt stabil teljesítményt nyújtott.

A kézműves programozás diadala a gigabájtok korában

Egy olyan korszakban, amikor egyetlen játék frissítése is tíz gigabájtot emészt fel, a TinySol emlékeztetőül szolgál a szoftverfejlesztés mérnöki precizitására. A projekt bebizonyítja, hogy a mesterséges intelligencia által generált kódok és a többszörös absztrakciós rétegek helyett az emberi logika és a gépi szintű optimalizáció még mindig képes felvenni a harcot a méretbeli korlátokkal.

A pasziánsz játék nem csupán egy technikai demonstráció vagy nosztalgikus időutazás, hanem gyakorlati bizonyíték arra, hogy a digitális adathordozók fizikai elhasználódása ellen létezik alternatív útvonal. A papírra nyomtatott szoftverkód korszaka nem ért véget, csupán modern köntöst kapott a QR-kódok technológiájával.

Források: