Commodore 64 Pixel Art Gallery

 2013.02.07. 17:57

Még az előző poszt írása közben botlottam bele újra egy, korábban már sokszor megcsodált, majd méltánytalan módon elfelejtett weblapba, mely a Commodore 64 Pixel Art Gallery nevet viseli, és elsöprő mennyiségben (és minőségben!) tartalmazza az elmúlt három évtized során felhalmozódott 64-es állóképeket. Természetesen ezek java része már a modern demo scene-ből származik, ám akad köztük néhány régi játékprogram nyitóképernyője is – utóbbiak pedig kiváló kontraszt gyanánt szolgálnak az előbbiekhez, még inkább kiemelendő azok mind fejlettebb technikai tökélyét, színes kreativitással teli eredetiségét és művészi színvonalú kidolgozottságát egyaránt.

64pix01.jpg

Van itt minden, még a puszta formátumok nevét végigsorolni sem könnyű: AFLI, Charmode, FLI, Hires, IFLI, MCI, MUCSU, Multicolor, MUIFLI, NUFLI, SHI, SHIFLI, UIFLI, XFLI… csak a „kifli” formátumot nem találták eddig fel. (Akit érdekel, az itt talál meg többek közt egy rövid leírást, hogy melyik mit jelent.) Jellegénél fogva talán legszebbek a NUFLI és az MCI képek. (S borzongató belegondolni, hogy manapság is tucatjával születnek még hasonlók.)

64pix02.jpg

64pix03.jpg

64pix04.jpg

Személy szerint nekem mégis azok tetszenek a legjobban, amelyek a Commodore gép két „gyári” (azaz eredeti építői által tudatosan tervezett, és különleges technikai trükközések nélkül elérhető) alapfelbontását használják, a Multicolor és a Hires üzemmódokat. Ezeket a legkönnyebb beleképzelni a C64 korabeli (azaz nagyjából a ’80-as és ’90-es évek táji) közegébe – hiszen bízvást születhettek volna akár akkor is.

Címkék: commodore c64 leon gallery gfx demo scene hires multicolor pixel art 4emelet szemeti mihály

ConGo Unchained

 2013.02.02. 17:28

Régi C64-fanok (egyik) (kedvenc) nosztalgikus szórakozása, hogy különféle fotókból (tipikusan például a saját fényképükből) 64-es képernyőket csinálnak. Vannak erre relatíve népszerűnek tűnő eszközök, pl. egy olyan weboldal, mely tetszőleges képből gombnyomásra kiköpi a művet. Bár ez nekem személy szerint kissé gyanús, mivel sokszor úgy tűnik, mintha „túl szép” lenne utána az eredmény (túl azon, hogy milyen könnyű hozzá eljutni). Ezért inkább azt feltételezem, az ilyesféle eljárásoknak egy része legalábbis átverés: nem építenek fel mögötte egy valós C64 Multicolor/Hires képszerkezetet – hanem egyszerűen annyit csinálnak csak helyette, hogy egy kutyaközönséges 160x200 vagy 320x200 felbontású, 16-színű PC-grafikává konvertálják át (a Commodore színeinek megfelelő palettakészlettel). Ugye nyilván mondanom sem kell, hogy ettől az még nem lesz „64-es kép”… csak legfeljebb hasonló, vagy ránézésre annak látszó valami.

galleon-congo.jpg

Szintén ezt a gyanút erősíti bennem az a tény, hogy kizárólag valamilyen pécés (BMP, JPG stb.) formátumban lehet őket menteni; ugyanakkor sosem lehet 64-es formátumokban (pl. Koala vagy Art Studio stb.). Egyúttal ez használhatatlanná is teszi ezeket az eszközöket számomra: nekem ugyanis most az a célom, hogy fényképekből készítsek majd grafikákat a későbbiek során megírandó játékaim számára. Éppen elég bajom van a programozással; arra végképp nem futja az időmből és energiámból, hogy újra nekiálljak Commodore-on rajzolni (ráadásul utóbbi már annak idején sem volt az erősségem túlzottan).

A korombeliek még emlékeznek rá, hogy milyen szájtátva bámultuk a csodaszámba menő, ún. „digitalizált” képeket – például a Magnetic Scrolls játékokban lévőket. (Valójában ezek rajzolt képek voltak, többségüket Geoff Quilley készítette Atari ST-n a Neochrome szoftverrel és kézzel. Csak mi akkor azt hittük, hogy nem.) Éppenséggel létezett is digitalizáló kártya, mellyel videókból lehetett képkockákat kilopni, néha-néha felbukkan még bolhapiacokon itt-ott (noha kérdéses, hogy ki tudná még beüzemelni azt manapság). Ma már erre az igényre is vannak (ingyenes és hobbiprogramozók által kifejlesztett) pécés alkalmazások – sajna ezek többsége még holmi DOS-os, parancssoros csökevény.

Címkék: windows borító c64 vice koala congo gfx hires multicolor unchained a gálya art studio magnetic scrolls geoff quilley

Kwayne64

 2013.01.24. 16:50

Találtam egy (minden valószínűség szerint magyar) grafikust a DeviantArt-on, aki láthatólag előszeretettel dolgozza fel őt megihlető játékprogramok szereplőit az alkotásaiban. Persze, meglehet, hogy (talán sokan) mások is szoktak ilyet csinálni, vagy hasonlót (ezt nem tudom eldönteni, hisz ritkán mozgok ma már ilyen körökben), viszont jelen esetben mindenképpen van egy olyan momentum, mely egyedivé teszi számunkra: a galéria tartalmaz pár olyan képet, ami a Newcomer és A gálya története nyomán született. Nyilván ami engem érint, ebből is az utóbbi, ez kettő darab kép (ki tudja, tán lesz majd több is később mellettük), mely egyfelől a Teleport Demon, míg másfelől a Tongrak + Raernon címet viseli (a szignó szerint mind a kettő 2012-es alkotás).

teleport-demon.jpg

Ezúton is üzenem hát Kwayne64-nek, hogy egyfelől nagyon szépen köszönöm, másfelől meg remélhető módon nem tiltakozik majd túlságosan ellene, hogy átemeltem mindkét grafikát a saját oldalamra magam is (itt meg itt). A teleport-démon portréja teljességgel elnyerte a tetszésemet (annyi legalábbis bizonyos, hogy sokkal jobb az eredetinél…); bár a másik rajzot azért lehetne már kritizálni, de most inkább nem teszem. (Getto maestro anno valamelyest pontosabban és realisztikusabban ábrázolta a főszereplők képzeletbeli anatómiai jellegzetességeit, azaz kissé karakteresebb a vonalvezetés. De annyi baj legyen.)

Címkék: cartoon deviantart c64 if cov gfx newcomer interactive fiction kwayne64 a gálya teleport-démon tongrak raernon kis gettó

Borító’s WANTED!

 2013.01.21. 22:57

Még valamikor tavaly ilyentájban kezdtem fogalmazni két nagyobb lélegzetű írásművet, melyből az egyik aztán el is készült, és a weblapomon publikáltam (Gép az emulánsok ellen – harminc éves és még mindig él, a C64 harmincadik szülinapjára, s mint úgy alakult, sajnos valamiképpen Tramiel bácsi halálának napján sikerült épp kitenni; szomorú, de szép szimbolikus egybeesés volt); a másik viszont félbemaradt, mikor nekiálltam programozni inkább, és az időt és az energiát helyette a fejlesztések vitték el… Azóta sem nyúltam hozzá, ugyan most már lassan tovább kéne folytatni. A címe: Volt egyszer egy inputsor, s amiről szól pedig: a(z) magyar kalandjáték-programozás történetéről egy rövid összefoglaló. Feltett szándékom, hogy idén azért elkészül…

bw1.jpg

Az eltelt idő alatt sokminden más történt, például egy igen kedves ember elküldte nekem egyik régi játékom, Az Alvilág Ura, mostanra már teljességgel elveszettnek hitt (és előzőleg általam még sosem látott!) eredeti Novotrade-es kiadású borítóját (plusz a lemezt, de az nem túl érdekes). Más emberek pedig küldtek mást (pl. A bosszú c. Rátkai-játékét). Korábban már turkálgattam magam is a különféle retroweboldalakon, és begyűjtöttem néhány hasonlót, ugyanis a cikkhez ilyen képanyagra feltétlenül szükség lesz. Továbbá egy remek dolog lenne, hogyha nemcsak képek formájában, hanem azok fizikai valójában sikerülne a régi magyar számítógépjátékokból összehozni valahogy egy mind teljesebb gyűjteményt az évek során, melyhez azt szeretném kérni mindenkitől, akihez majd eljut ez a hír, hogy amennyiben bárki, bárhol összeakad ilyesmivel, akkor (lécci! lécci! lécci!) üzenjen, vagy szóljon, küldjön stb. (Még nem tudom, hogy milyen módon, de valahogyan meghálálom később ezt.)

bw2.jpg

Címkék: játék magyar cartoon retró commodore borító c64 doboz wanted plus/4 kalandjáték if gfx időrégész rátkai istván covering c16 olessák róbert az alvilág ura novotrade interactive fiction a hős lovag tihor miklós a bosszú iskolaszámítógép tehernapló

Furcsa egérbug a VICE-ban

 2013.01.19. 04:15

Régen egzotikus ritkaságnak számított a Commodore egér, és csak nagyon kevés alkalmazás használta (pl. az Art Studio vagy a GEOS). Ma már más a helyzet: létezik egy adapter, amivel tetszőleges PC-s egér illeszthető a C64-hez úgy, mintha az egy 1351-es lenne (ez a Micromys); illetőleg létezik már hardver-emuláció (pl. a Turbo Chameleon-ban), és szoftver-emuláció (pl. a VICE-ban). Továbbá még akár van is mihez használni (pl. a MSSIAH). Ezek után, ha valaki új programot ír, már érdemes is lehet támaszkodni rá. (Többek között ugye én is ezt tettem.)

1351.jpgA VICE-ban pedig az a jó, hogy szinte mindent kiválóan emulál; nemcsak az egeret, hanem még a fényceruzát is. Utóbbit is egérkattintáson keresztül: amikor egy Windows-ablakban fut a VICE (és aktiválva van a fényceruza-emuláció), olyankor ha belekattintunk az egérrel, az egy, a fényceruzának a képernyő adott pixeléhez való érintését emuláló (vagyis annak megfelelő) megszakítást vált ki az emulátorban. (Amennyiben a 1351-es egéremulálást szeretnénk inkább helyette, úgy azt is engedélyeztetni kell – például az ALT + Q billentyűzetkombinációval, vagy pedig a menüből –, így az ablakban az emulált egér átveszi a Windows-egér szerepét.) Mindez pedig (többek között) arra jó, hogy tudunk olyan C64 alkalmazást írni a segítségével, mely harmonikusan beleilleszkedik a Windows futtatási környezetébe; hasonlóan az olyan, kissé „oldskool” stílusú (azaz eredetileg még DOS-os karakteres felületből kiinduló) programokhoz, mint pl. a különféle „Commander”-ek (pl. a Star Commander). Ha igazán jók akarunk ebben lenni, akkor viszont mind az egér-, és mind pedig a fényceruza-emulációkat le kell programoznunk benne korrektül.

Persze, egyik sem egy egyszerű eset, bár én most már félig-meddig megküzdöttem velük (mind a kettővel). Eltartott egy ideig, mire megfejtettem, hogyan működik az egész; pl. a fényceruzához egy (a raszter IRQ-hoz hasonlító) külön megszakításrutint kellett írni, ami az érintéskor vagy a nyomvatartáskor folytonosan végrehajtódik, majd ezen belül átlagolni az eredményeket (a vízszintes koordináta pontatlansága miatt); az egérhez pedig a SID chip megfelelő A/D regisztereit a megfelelő ütemezésben olvasni (sem túl sűrűn, sem túl ritkán, miután az analóg/digitális átalakítóhoz alkalmazott kondenzátor feltöltődési és kisülési idejének van egy optimális ritmusa), majd a relatív elmozdulási értékeket addig-addig gyúrni, számolgatni, mígnem kialakul belőle egy használható érzékenységű és viselkedésű valami. Beletellett néhány hétbe; utána még szintén néhány hétig szívatott egy furcsa bug, mely eleinte kimondottan parajelenségnek látszott. Azóta már megfejtettem, mi történik (azt még mindig nem, hogy miért), és leírom, mert hátha később másnak hasznos lesz.

Címkék: windows bug programozás egér sid c64 sc sprite vice irq chameleon micromys c128 fényceruza 1351 art studio geos

Az első simítások

 2013.01.17. 00:14

Amit eddig nem árultam el még senkinek, hogy valójában tavaly júniusban elkezdtem már programozni ezt-azt (szokás szerint afféle spontán elhatározásból – egyszerre csak elkezdtem, majd abbahagyni pedig nem bírtam…), melynek eredményeképpen néhány hónap alatt kb. hat-hétezer sornyi Assembly kód(tömeg) született. (Mármint 6510 forráskód, mely lefordítva kb. 10-12 kB-nyi tárgykód jelenleg.) Azaz még az Árok Party előtt, csakhogy bölcsen nem beszéltem róla. Először egy általános rasztermegszakítás-rutint kezdtem írni (nyilván, mi mást), ami aztán rengetegszer átalakult, bővülgetett… stb. Ez lesz majd a rendszer legbelső magva, igaz, jelenleg az egész csak egy gigantikus bughalmaz.

Miután a leendő (és ún. óperenciás) rendszeremnek – az előzetes elvárások után immár kötelező jelleggel és megkerülhetetlenül – muszáj realtime jellegűnek lennie (anélkül ugyanis lehetetlen volna többjátékosnak és többszereplősnek lennie, és márpedig éppen ez a cél), ezért a megszakítás megfelelő kezelése kulcsfontosságú benne. (Aki nem érti, hogy miről beszélek, az vagy próbálja ki A babó c. játékomat, vagy legalább olvassa el, korábban mit írtam.) Természetesen a „gyári” megszakításrutin teljes egészében ki van iktatva belőle, mint ahogy a gyári keretrendszer összes többi része is (ROM-ok végleg kikapcsolva stb.), és mindent én csinálok helyette. Mindez magában foglalja a képernyőkezelést (nem csupán a szövegek és képek és az üzemmódok közti váltást, hanem például a folyamatos szövegmegjelenítést és a szövegablak fel-le való görgetését, sőt – ez egy kissé meglepően hangozhat, de később fény derül majd rá – még néminemű sprite-multiplexálást is) éppúgy, mint ahogy a beviteli perifériákat (egér, billentyűzet, fényceruza), meg egy csomó egyéb teendőt (mint pl. C128 esetén az 1-2 MHz-es kapcsolgatást stb.). Igen bonyodalmas, kényes egyensúlyú és időzítésű, és összetett a feladat. (Egyelőre nem is nagyon működik még úgy, mint ahogyan azt kéne.) Rendkívül fontos ugyanis, hogy bármi történjék a programfutás során egyébként (pl. egy hosszú másodperceken át tartó keresést vagy számítást végez el a processzor), azalatt a látszólagos aktivitásnak sosem szabad – egyetlen pillanatra sem – megakadnia. (Ez alól csak kivétel a lemezműveletek lesznek, amelyeket azonban a memóriabővítők és EasyFlash cartridge használata révén szeretnék majd túlnyomórészt száműzni.)

scpu.jpgA raszteridőzítések összeomlásmentes fenntartása már csak azért sem túl könnyű jelen esetben, mert úgy kell készülnöm, hogy (a sztenderd kb. 1 MHz helyett) elviekben bármennyi lehet majd az órajel (pl. a Chameleon kártyával, ha jól tudom, akkor kb. 8-12 MHz közé lehet turbósítani, vagy a SuperCPU-val 20 MHz-re; nem beszélve a PAL és NTSC közti eltérésről stb.), s én azt szeretném elérni, hogy minden környezetben fusson. (Ennek érdekében többek közt egy bootoláskor végzett sebességteszt megméri az órajelet és más aktuális hardverjellemzőket, melyek függvényében – egy önmódosító kód formájában – adaptívan átalakítja a továbbiakban a futását. Más szóval a programkód a saját utasításait átírja.) Extra „élvezet” a billentyűzetmátrix-lekérdezés programozása (többszörös billentyűlenyomás-kombinációkkal és a C128-as kiterjesztett klaviatúra teljes támogatásával), vagy az egérkezelés (a SID chip beépített A/D konvertereit kell egy adott ütemezés mellett frissítgetve kiolvasni, amelyeket eredetileg két „Pong” típusú analóg potméterhez terveztek, az egér viszont helyettük a vízszintes és függőleges irányú elmozdulást küldi rajtuk keresztül), sőt, mint említettem, lesz még ezenkívül fényceruza is… (Ebből kifolyólag speciális menüvezérlés.) Plusz nyalánkság gyanánt egy-két screensavert is terveztem…

Címkék: windows retró bug sid c64 rosetta hobbit vice irq assembly kalandjáték chameleon megszakítás c128 6510 árok party 6581 supercpu 8580

Megszületett a kis Rhesus

 2013.01.13. 21:30

Tavaly (azaz 2012-ben), egy-két évnyi rákészülés/hezitálás után, végtére is nekikezdtem újfent egy kis kalandjáték-programozásnak. Év végére aztán elérkezett az ideje, hogy úgy érezzem, ezt már jelezhetem is – most ennek egy következő állomása látható: egy blog, amelyen (talán nem túl gyakran, de remélem, hogy azért rendszeresen) jelentkezni fogok időnként az aktuális eredményekkel. (Mondjuk olyan néhány havonta…) A jobboldalon lévő panelok közt található továbbá még egy-két link, amelyekre érdemes lesz rá-rákacsintgatni kicsit addig is.

iny.jpg

Szóval, mi is ez? Röviden: a(z) Rosetta egy (születőben lévő) óperenciás rendszer, melyet szeretnék majd portolgatni mindenféle platformra, bár egyelőre elsődlegesen a C64 oldal lebeg szem előtt (azon pedig immár végre vicc nélkül is felvállalható, hogy valójában ugye nem más: „operációs”). Célja: beágyazott futtatási környezetet biztosítani egy saját IF (azaz Interactive Fiction) szkriptnyelvnek, melyben újra lehet írni néhány ódivatú kalandjátékot. Mint látható, egy erőteljes retró színezetű téma ez… Szerencsére azonban a „retrózás” (mint szabadidős szórakozásforma úgy, mint életmód vagy látásmód) újra aktuális manapság. (Miért, mikor nem? – hát, nem tudom, miért, talán most az évek óta tartó gazdasági válság rátett még egy lapáttal.)

Címkék: játék retró c64 rosetta első poszt kalandjáték if ados ros olessák róbert rhesus interactive fiction rif

süti beállítások módosítása