Szoftverfejlesztések

GEOS. A C64 beépített operációs rendszere egy 8kB-os KERNAL ROM-ból és egy másik, szintén ugyanakkora BASIC ROM-ból állt, mely utóbbi a Microsoft BASIC 2.0 interpretert futtatta. Ez a BASIC szörnyű volt, és primitív, nem sok értelmes feladatot tudott ellátni a programok kazettáról vagy lemezről való betöltésén, majd elindításán kívül (amivel a maga idejében mégis korszerűnek számított, az a szerkesztőrendszere, egy teljes képernyőre kiterjedő felületű, full-screen editor – ebben még az MS-DOS-t is pipálta). Alapjában nem is szánták túl sok egyébre; a nagyobb, komolyabb, s a hardver képességeit is kiaknázni szándékozó alkalmazásokat szinte kivétel nélkül Assembly-ben (avagy néha közvetlenül, manuális gépi kódban) írták meg. (Ugyan akadt néhány magas szintű fordítóprogram rá, mint pl. FORTH vagy C, sőt esetleg még valamilyen Pascal is, ám ezek sem álltak épp a helyzet magaslatán – nem is nagyon alkalmazta őket senki sem.) Az igazán fejlett technikával dolgozó, ellátottabb, magasabb költségvetésű szoftver-stúdióknak tellett rá, hogy a C64 mellett más, erősebb (16- vagy 32-bites) gépeket és fejlesztőkörnyezeteket is tartsanak, és a fejlesztői munkát inkább azon végezzék – magára a célgépre csupán már a lefordított, kész tárgykód került át, hogy teszteljék, majd pedig a végső produktumot összegyúrják belőle. (Az esetek többségében azért ez sem volt túl jellemző, hisz nem volt elég pénz…) De azért az alaprendszerrel is el lehetett lenni valahogy.

Amikor a grafikus környezetű oprendszerek divathulláma felcsapott, mégis kicsit változott a helyzet: megjelent egy ilyesmi a 64-re is: az ún. GEOS (Graphic Environment Operating System, 1986). Nyilván erősen hajazott a Mac OS-re, beépített szövegszerkesztővel (GeoWrite), rajzolóprogrammal (GeoPaint), egérkezeléssel (a Commodore-nak is volt már egere, a 1351), gyorstöltővel (DiskTurbo), sőt – virtuális memóriakezeléssel (1541-en!) stb. Attól kezdve mellécsomagolták a legtöbb forgalomba kerülő új géphez (igaz, csak egy floppy diszken, arról kellett elindítani – én hülye meg leformattáltam az enyémet), sőt, készítettek C128-ra egy továbbfejlesztett (és Plus/4-re egy átdolgozott) változatot, illetőleg portolást is más gépekre (pl. az Apple II) belőle. Kitűnően demonstrálta ezeknek a kis gépeknek a képességeit; valahogy a gyakorlatban mégsem terjedt el. 2003-2004 óta mindezeket a verziókat – kizárólag magáncélra – hivatalosan és legálisan ingyenesen letölthetővé tették. (Lehet tesztelni vagy játszani vele… Még 64HDD-hez optimalizált változat is van!) Minthogy azonban a nyolcbites platformokat világéletében túlnyomórészt játékgépként használta a jónép, ennek túlzott gyakorlati jelentősége még akkor közvetlenül nem volt. Ami viszont számít: megmutatta, lehet bizony készíteni komoly alkalmazásokat is rájuk.

   

Contiki. Thor Heyerdahl maga által barkácsolt kis lélekvesztőjére még az iskolából emlékezhetnek a szerencsésebbek, amivel átszelte a Csendes-óceánt, és nyolcezer kilométert hajózott, pusztán avégett, hogy bebizonyítsa: lehetséges megtenni. (Érdemes a kalandos életmódot választó norvég felfedező egyéb utazásainak is egy kicsit utánaolvasni, mint például Odin keresése Azerbajdzsánban… Sajnos ez most nem tartozik itt és most a tárgyunkhoz.) Az eredetileg még Kon-Tiki helyesírású név egy idő óta bevonult az informatikába is, jóllehet úgy, mint Contiki. Mi is ez? Ugyancsak egy (virtuális) kis hajó, egy modern – nyílt fejlesztésű, hordozható, hálózati alapokon álló – általános multitaszking operációs rendszer kis teljesítményű és kis memóriájú hardver környezetekre (ez nemcsak a nyolcbites mikroszámítógépeket jelenti, hanem például a beágyazott mikrokontrollereket és további csöppségeket is). Most kapaszkodjunk meg: a teljes, alapvető rendszermag az implementált TCP/IP hálózati protokollal együtt (!) alig néhány kilobájtot igényel (plusz néhány száz bájt operatív RAM a változóterületeknek); egy tipikusabb, komplett rendszer, mindenestül (az ablakkezelő, grafikus felhasználói felülettel együtt) pedig akár 30-40kB-ból kijön már. Ezen még a GEOS fejlesztői, akik amúgy előzőleg Atari 2600-ason edződtek – az a rendszer pedig többek között arról hírhedt, hogy mindösszesen 128 bájt (igen, BYTE!) RAM memóriája van, és minden rajta futó játékprogram ki kellett, hogy jöjjön ennyivel –, is felvonnák a szemöldöküket… A C64-tulajdonosok meg még inkább, hiszen ehhez képest az ő gépük valóságos erőmű. (A PC-tulajdonosok meg sírva fakadnak.)

A Contiki szülőatyja Adam Dunkels, a Svéd Számítógéptudományi Intézet kutatója volt; majd pedig a 8-bites Commodore, Atari és Apple platformokra Oliver Schmidt portolta át. Természetesen egy ilyen szinten lecsupaszított rendszer már a napi gyakorlatban elég kevés hasznos szolgáltatást képes nyújtani a felhasználóknak; de – mint említettük – az elsődleges cél a képességek demonstrálása. Utóbbi szándékukat pedig mi sem testesíti meg jobban, mint egy (tetszőleges hálózati kapcsolattal) C64-ről működtetett webszájt! Igen, tényleg, van ilyen: kellemes kis bemutatkozó oldalt lehet róla megnyitni és böngészni. A szerver gép – a saját leírása alapján – már 2007 óta folytonosan működésben van, és nem mást, mint a legkorábbi modellek egy díszpéldányát választották e célra: egy ’82-es évjáratú alapgépet, módosítás nélkül, ugyancsak egy korabeli lemezegységgel. (Jelenleg a Contiki szoftver 2011 februári, legutóbbi 2.5-ös verzióját futtatja. Egyik saját fotóján az üzem alatt álló webszerver gép megtekinthető.) Gondoljunk bele, mikor megnyitjuk az oldalt: valahol a világban, egy csendes szobában épp most felkerreg egy (harminc éves) floppy drive…

   

Prince of Persia. Mind a mai napig készülnek még játékprogramok a 64-esre. Jelen pillanatban kettőt emelnék ki közülük. Mind a kettő egy-egy több évvel (khm, évtizeddel…) ezelőtti, úgymond „klasszikus” név újra-felelevenítése. Az első közülük a Prince of Persia, mely először még 1989-ben született meg Apple II számítógépen, majd hamar átírták és átportolták különféle fejlettebb képességgel bíró játékgépekre, így Atarira, Amigára, Amstrad CPC-re, végül pedig IBM PC-re is, amelyeken keresztül az évek alatt minden idők egyik legsikeresebb és legismertebb alapjátékává vált. Ennél tovább fölösleges mesélni a sztorit (hisz jó eséllyel mindenki már kitűnően ismeri, hacsak messze nem a legfiatalabb korosztályba tartozik, vagy eleve nem érdeklik a játékok); olyan „kis” gépekre, mint a C64, azonban sosem adták ki. Ennek több különböző oka volt, amelyek közt – mint mindjárt meglátjuk – az elsők között szerepel a játék mérete. Annyi hosszú esztendő után egy szent őrült most nemrégiben végül mégis nekiállt, és egy az egyben átkódolta 64-esre az egészet (bitről bitre teljesen az eredeti pályákat, a csorbítatlan játékmenetet és grafikát). Mindez oly friss és ropogós, hogy még alig néhány hónapos e cikk írása idején (2011 végén jelent meg!); s a késlekedés egyik magyarázata is kiderül: az – ingyenesen letölthető – játékprogram ugyanis egy mintegy fél megabájtos, egybefüggő cartridge formátumban van jelen (vagyis lehetetlen floppy lemezekre kiírni). A futtatáshoz tehát vagy egy emulátor szükséges (a CRT kiterjesztést ma már minden valamirevaló, modern emulátor ismeri és betölti), vagy pedig egy speciális hordozó cartridge, melybe magunk bele tudunk írni ilyen méretet. Történetesen ez az ún. EasyFlash formátumot jelenti (egy 1MB-os flash EPROM memóriát tartalmazó cartridge, ami tetszés szerint feltölthető, törölhető, újraírható), avagy pedig annak valamilyen utángyártását vagy emulációját. (Ennek megfelelő emuláció található többek közt a Turbo Chameleon és a 1541 Ultimate kártyákon, így ezek szerint azokkal is lefuttatható a kód.) Másik szokatlan aspektusa még a jelenségnek, hogy a portolást végző delikvens az Apple II verziójú kész, kiadott, lefordított tárgykódból fejtette vissza utólag az egész játékot (disassembler révén – erre mondják azt a tudálékosok és az okosok, hogy „reverse engineering” – megfordított tervezés), tekintettel rá, hogy az eredeti terv és forráskód már réges-régen elveszett… (Illetőleg most a legutóbbi hírek szerint újra megkerült.) Név szerint az úriember: Andreas Varga, Ausztriában (amúgy Mr. SID néven a HVSC gyűjteményben egyik közreműködő). Az eredeti játékszerző Jordan Mechner volt (ő ebben a fejlesztésben nem vett részt, de nyilván tud róla – a hivatalos blogban elsők között személyesen gratulált).

 

   

Newcomer. Ez a másik, és a maga módján nemcsak ugyanolyan áll-leesős, mint fejlesztés, de – határozottan, és – még jobban… Ráadásul ez egy magyar játék, ha valaki nem tudná, a valaha készült egyik legóriásibb szerepjáték, azaz RPG a 8-bites platformokon bárhol. Eredeti változatát 1994-ben adta ki a Valhalla Páholy könyvkiadó (akkortájban volt egy kisebbfajta, kissé talán meg is késett „robbanás” a magyar C64 játékpiacon); nem kevesebb, mint négy éven át tartó fejlesztés után a készítők – a C. I. D. Stúdió – részéről. Akkor ez egy magyar nyelvű játék volt; azonban a fejlesztéssel nem álltak le, évek múlva átdolgozták, kibővítették, javítottak benne hibákat, és lefordították angolra. 2001-ben újra kiadták azt Enhanced Newcomer néven, ám ekkor már a Protovision cég, és nemzetközi vizeken. Ezt követően a fejlesztés még mindig tovább folytatódott… Egy bő évtizedig, nagyjából. A régi programozó gárda (Lay András, Gonda Zoltán, Fóris Csaba) időközben teljes egészében lecserélődött más, újabb nevekre (Belánszky István, Szemeti Mihály, Kajtár Zsolt), akik a korábbi játékot nemcsak szimplán folytatták, de nekikezdtek újraírni nulláról az egészet. Tehát végül lett egy új játék, az Ultimate Newcomer – ami megint sokkal nagyobb, sokkal bővebb, dramaturgiailag is hibátlanul átgondolva felépített, „újravágott” cselekményű, mindkét nyelven külön-külön futtatható, támogatva mindenféle újkeletű hardver ketyeréket stb. Elméletileg ez 2011-ben már egyszer „elkészült”, sőt be is mutatták a 2011-es Árok Party rendezvényen Ajkarendeken (majd beneveztek vele a 2012-es nemzetközi IGF független játékfejlesztői versenyre); gyakorlatilag jelen pillanatban még mindig csiszolják az alkotók, mert kizárólag tökéletes munkát hajlandóak kiadni a kezükből… Talán, így bő két évtized távlatában gondolkodva, az a plusz/mínusz egy-két év már ide vagy oda, nem számít… Tényleg nem; de remélhetőleg idén azért most már ténylegesen végre kézbe kaphatják a rajongók. Akárcsak a fentiekben ismertetett PoP, ez is ingyen letölthető lesz az emulátorozók számára a netről (a teljes játékméret olyan 2MB körül van, és többféleképpen optimalizálva szerkesztik az eltérő futtatási környezetek részére; különböző csomagokba kiszerkesztve válogathatunk); cserébe – bár nem kötelező, de – kimondottan illik megtámogatni az alkotókat tetszőleges pénzösszeggel: kinek mennyit ér ez meg. (Hogy legyen miből új gépeket venni majd a nyugdíjas otthonnak a következő ötven évig tartó végső fejlesztésekhez…) Ugyanakkor külföldön a Protovision kiadó – sajnos csak az angol nyelvű programból – egy extra díszdobozos (borítós és nyomtatott kézikönyves stb.) verziót is forgalmazni szándékozik hivatalos formában.

 

   

Videolejátszás a 64-esen. Talán ez a leglátványosabb és legdöbbenetesebb az összes újabbkori fejlemény közül – emiatt is hagytam legvégére, zárásként, amolyan slusszpoén gyanánt. (Igen, igen, jól olvasta, kedves Olvasó: videolejátszás…) Ami pedig egyáltalán lehetővé tette ezt: a (relatíve nagykapacitású és olcsó) memóriabővítések egyre könnyebb hozzáférhetősége a legutóbbi néhány év során. Mint írtam, a maga idején is létezett a Commodore-hoz (a C64-hez és a C128-hoz) hivatalos, gyári memóriabővítő, a REU – csak hát ugye nem igazán terjedt el. (Azonkívül az is inkább pár száz kilobájt volt többnyire.) Ennek elméleti, maximális korlátja ama bizonyos 16MB RAM (mely az alkalmazott 24-bites címzésmódból fakadólag épp ennyi); annak idején ez elérhetetlen álom volt csupán: egy csillagászati és mindennapos értelemmel felfoghatatlan mennyiségnek tűnt. Ma azonban elérhető, ráadásul nem is nehezen: fillérekért kapunk CF, SD, MicroSD memóriakártyákat, és ezeket a Turbo Chameleon vagy a 1541 Ultimate (s más további kártyák) be is fogadják, és szabvány REU emulációhoz tudják használni. (A Commodore cég saját gyártmánya, a REU, azaz RAM Expansion Unit, egy sokoldalúan rugalmas, ún. DMA technológiával dolgozik, ami azt jelenti: teljességgel tetszőleges helyzetű és méretű memóriablokkokat lehet villámgyorsan ide-oda átmásoltatni vagy megcseréltetni a C64 belső, saját RAM-ja és a külsődleges tárbővítő közt. Léteznek még ezenkívül másfajta elven alapuló bővítések is, amelyek pedig az ún. „bank switching”, lapozási technikákkal élnek – például a fent említett EasyFlash.)

   

Hogy egy ilyen módon 16MB-ra felbőszített (egyébiránt érintetlen) puszta, közönséges C64 alapgép milyen hihetetlen módon megtáltosodik egy, azt kellőképpen kiaknázó szoftver segítségével, a legkitűnőbben a legutóbbi egy-két évben felbukkanó videolejátszók demonstrálják előttünk. Amire érdemes a világhálón rákeresni, az a NUVIE, vagy más összefüggésben a NUFLI video kodek. Nyilván nem mindenki képes otthonában reprodukálni az eredményt (hisz nincsen hozzá gépe és plusz bővítőkártyája), de a jutyúbon is föllelhető számos – a legszebb és a legjobb esetekben ténylegesen lélegzetelállító! – felvétel a lejátszásokról. A legjobbakban ezenkívül közrejátszik még egy másik tényező: a gyári grafikai felbontások és/vagy színkészletbeli korlátok meghaladása hardver/szoftver trükkök segítségével. (Természetesen – mint oly sok más hasonló esetben – a videochip bugjainak, hibáinak a fölfedezéséről és szemfüles kihasználásáról van szó.) Az FLI (Flexible Line Interpolation) néven emlegetett grafikai formátum és társai (AFLI, IFLI stb.) már elvezetnek bennünket a demóprogramozás világába, ahová most nem szeretnék külön kitérni… A lényeg nagyjából, hogy kifinomult, különleges programozási módszerekkel lehetővé válik például a C64 teljes 320x200 pixel felbontású képernyőjén mind a 16 szín alkalmazása (ezt már a ’90-es években is láttuk, nemcsak demókban, hanem többek közt a Soul Crystal című kommersz játékprogramban); mint ahogyan más, változatos grafikai „kiterjesztések” és (látszólagos) képi hatások (mint például a nevezetes „256 szín”, ami valóságban persze nem annyi, csak ügyes kombinációk a 16 szín „keverésével”). Ami viszont végzetesen komoly hátulütője e módszereknek egyfelől, hogy tetemesen rabolják a gépidőt a CPU elől (egész halom mindenféle raszteridőzített IRQ-nak kell folyton futnia az egyes pixelsorokban a háttérben), másrészt pikkpakk fölfalják a tárat (egy-egy ilyen grafika már önmagában több tíz kB). Azaz, végül, mindezek után, egy-egy gyönyörűszép, kidolgozott állókép szemlélésén kívül nem sok gyakorlati hasznuk van. És itt kerül a képbe (szó szerint!) a memóriabővítés: 16MB-ban immár rengetegen elférnek – s néminemű, még további technikai bűvészkedés útján pedig kellő gyorsasággal lehet őket visszajátszani… Jó szórakozást!

   

   

   


Következő: „Linkgyűjtemény”

 

 

Szoftveres emulációk

Kábelek és pécék

A C64 utódai és a kiegészítők

A SID-ek bosszúja

Szoftverfejlesztések

Linkgyűjtemény