WASDPad+ – avagy milyen kontrollert készítenénk ma a Commodore 64-hez?
Van az úgy, hogy az ember egy teljesen egyszerű ötletből indul ki, aztán mire észbe kap, kapcsolási rajzot rajzol, NYÁK-ot tervez, alkatrészeket rendel, 3D nyomtat, forraszt, méricskél, hibát keres, újratervez, tesztel, majd az eredeti elképzelésből lassan kinő valami egészen más. A WASDPad+ története nagyjából ilyen.
Ráadásul az egész nem úgy kezdődött, hogy egy szép napon leültem az asztalhoz azzal, hogy márpedig én most új kontrollert fogok tervezni a Commodore 64-hez. A történet tavaly decemberben indult a Commodore Reunion Miskolc csoportban, amikor Puskás Tibivel beszélgettünk a C64-ről, játékokról és vezérlésről. Tibi dobta be az ötletet: mi lenne, ha a hagyományos joystick helyett készülne egy WASD kiosztású kontroller a géphez? Egy olyan eszköz, amely a PC-s játékokból évtizedek alatt belénk égett WASD vezérlést átülteti a Commodore világába.
Az ötlet elsőre egyszerűnek tűnt. Négy gomb, néhány vezeték, DB9 csatlakozó, aztán kész. Persze aki valaha épített már valamit saját magának, az sejtheti, hogy általában az ilyen mondatokból szoktak hónapokon át tartó projektek születni.
Minél többet gondolkodtam rajta, annál inkább érdekelt a kérdés: ha ma terveznénk kontrollert a C64-hez, tényleg ugyanazt építenénk meg, mint negyven évvel ezelőtt? Szeretem a QuickShotokat, Competition Prókat és a korszak többi klasszikusát, de közben mi magunk és a játékokhoz fűződő szokásaink is rengeteget változtak. A WASD kiosztás mára gyakorlatilag izommemóriává vált, a modern kontrollereknél pedig természetesnek vesszük, hogy egynél több akciógomb áll rendelkezésünkre.
Innen már csak egy lépés volt az eredeti ötlet továbbgondolása: ne egyszerűen egy joystickot helyettesítő négygombos dobozt készítsünk, hanem próbáljuk meg kitalálni, milyen lehet egy mai szemléletű, gyors és kompetitív játékra alkalmas C64 kontroller
Nem emulátorhoz, nem USB-n keresztül, hanem az eredeti joystick portra, valódi Commodore hardveren.
WASD – de joystick helyett
A név nem különösebben rejtélyes. A WASDPad+ közepén négy mechanikus kapcsoló található a klasszikus W-A-S-D elrendezésnek megfelelően. Ezek adják az UP, LEFT, DOWN és RIGHT irányokat, az átlós mozgás pedig természetesen két irány egyidejű lenyomásával működik.
A cél kezdettől az volt, hogy a vezérlés digitális, gyors és határozott legyen. Nincs analóg kar, nincs holtjáték és nincs hosszú joystickút. Megnyomod a kapcsolót, létrejön a kontaktus, a gép pedig megkapja az irányt. Az egész nagyon közvetlen, és néhány perc játék után meglepően természetessé válik annak, aki az elmúlt évtizedekben játszott már WASD kiosztással.
A billentyűk mechanikus kapcsolókra épülnek, a fejlesztés későbbi változataiban pedig a hot-swap kialakítás is megjelent, így a kapcsolók cseréjéhez már forrasztópáka sem feltétlenül szükséges. Ez elsőre talán túlzásnak tűnhet egy C64-es kontroller esetében, de játék közben nagyon is érezhető különbség lehet két eltérő karakterisztikájú mechanikus kapcsoló között. Kompetitív játéknál különösen számít, milyen gyorsan és milyen határozottan lehet két irány között váltani.A négy irány azonban csak a történet kezdete volt.
Két FIRE? C64-en?
A Commodore joystick portja többet tud annál, mint amit a klasszikus egygombos joystickok többsége kihasznált, ezért a WASDPad+ két egymástól független FIRE funkciót kapott. Az első a hagyományos FIRE1, a második pedig FIRE2-ként használható az ezt támogató programokban.
A fizikai kialakításnál fontos szempont volt az is, hogy a tűzgombok kényelmesen elérhetők legyenek. A FIRE gombok ezért a kontroller mindkét oldalán megtalálhatók, így a kialakítás nem kényszeríti rá a játékosra, hogy csak egy meghatározott kéztartással használja az eszközt. Ez a megoldás a WASDPad+ jellegzetes szimmetrikus megjelenésének is fontos része lett.
A két független FIRE önmagában is érdekes lehetőség, engem azonban ennél jobban izgat, hogy mit lehet kezdeni vele egy olyan új C64-es játékban, amelyet már eleve kétgombos vezérlésre tervezünk. A FIRE1 lehet az alapvető támadás, a FIRE2 egy másodlagos képesség, a kettő kombinációjából pedig akár egy harmadik akció is születhet.
Pontosan ebből az ötletből kezdett időközben kinőni egy másik projekt is: egy gyors, 2–4 játékos western aréna shooter koncepciója, amelynek jelenlegi munkacíme REVOLVER. Ebben például a FIRE1 a normál lövés, a FIRE2 egy speciális akció, a kettő egyidejű lenyomása pedig egy rövid kitérő, dodge lehetne. Gyors, rövid menetek, négy játékos, minimális szabályrendszer és lehetőleg maximális káosz – nagyjából ez az elképzelés.
Itt kezd igazán értelmet nyerni számomra a WASDPad+ mögötti gondolat. Nem azért került rá második FIRE lehetőség, mert ha már van rá mód, miért ne legyen, hanem azért, mert szeretném, ha idővel olyan új játékmechanikák is születnének, amelyek ténylegesen kihasználják.
Egy kis csalás: autofire
Ha már kompetitív kontroller, természetesen előbb-utóbb felmerült az autofire kérdése is. A legegyszerűbb megoldás valamilyen mikrokontroller használata lett volna, de hol lenne abban a móka?
A jelenlegi WASDPad+ autofire áramköre ezért egy 7555 timerre épülő, teljesen hardveres megoldás. Nincs firmware, nincs bootidő és nincs szoftveres állapotgép: az elektronika állítja elő az impulzussorozatot, a kimeneti fokozat pedig úgy kezeli a joystick vonalát, ahogyan azt maga a gép is elvárja.
Az autofire külön kapcsolható, és két sebességfokozat választható. Ez utóbbi egyébként remek példája annak, miért nem ér véget egy hardverprojekt azzal, hogy az első prototípus „működik”. Az egyik korai FAST beállítás ugyanis tényleg fast lett. Olyannyira, hogy néhány játék egyszerűen nem tudta megfelelően érzékelni az összes lövést. Elektronikailag működött a kapcsolás, játék közben azonban gyorsan kiderült, hogy a gyorsabb nem feltétlenül jobb.
Így következett az időzítés további finomhangolása, próbálgatása és természetesen a játék. Sok játék. Elvégre valahogy csak le kell tesztelni egy kontrollert. 🙂 Ebben a fázisban sokat segített Norbert Krisz is, aki a WASDPad+ különböző változatainak tesztelésében vett részt. Egy saját fejlesztésű hardvernél könnyű beleesni abba a csapdába, hogy az ember már pontosan tudja, hogyan „kell” használni. Egy másik játékos keze alatt viszont nagyon gyorsan kiderülhetnek olyan dolgok, amelyeket tervezőként már észre sem veszünk. A különböző verziók kipróbálása és összehasonlítása ezért legalább olyan fontos része lett a fejlesztésnek, mint maga az elektronikai tervezés.
Mi van a dobozban?
A WASDPad+ időközben jóval több lett annál, mint néhány mechanikus kapcsoló, amelyeket vezetékkel rákötöttem egy DB9 csatlakozóra. Az autofire saját logikai áramkört kapott, a joystick vonalainak kezelését külön elektronika végzi, és a fejlesztés során egyre több figyelmet fordítottam arra is, hogy a kontroller ne csak működjön, hanem elektromosan is kulturáltan viselkedjen az eredeti hardverrel.
A Rev1.2 már megmutatta, hogy maga az alapelképzelés működőképes, de ahogy egyre többet használtuk és teszteltük, természetesen gyűlni kezdtek azok az ötletek is, amelyeken még lehetne javítani. Így született meg a Rev1.5.
Ebben már továbbfejlesztett ESD-védelem, a tápág védelme, hot-swap kapcsolófoglalatok és számos kisebb elektronikai módosítás kapott helyet. Ezekből kívülről gyakorlatilag semmi nem látszik, mégis éppen az ilyen részletektől kezd egy hétvégi prototípus valóban kiforrott hardverré válni.
A Rev1.5 másik újdonsága az opcionális háttérvilágítás. Ha már mechanikus kapcsolókat, cserélhető keycapeket és saját 3D nyomtatott házat használunk, adta magát a gondolat, hogy a kontroller megjelenésével is tovább lehessen játszani. A háttérvilágítás nem szükséges a működéshez, és természetesen semmivel nem lesz tőle jobb az ember reflexe, viszont sötétben egy C64 mellett ülve kétségtelenül van hangulata. 🙂
Persze mindehhez kellett valami, amibe az elektronikát bele lehet tenni.
Az elektronikának ház is kell
A WASDPad+ jellegzetes formája Dester3D, azaz Sebesi Sanyi barátom munkája. Sanyival ráadásul nem ez az első közös körünk: több korábbi projektem 3D nyomtatott burkolatait is együtt raktuk össze, így teljesen természetes volt, hogy amikor a WASDPad+ túlnőtt a kezdeti prototípusfázison, ismét együtt kezdtünk gondolkodni a mechanikai kialakításon.
Az elektronika elrendezése és a kezelőszervek helye természetesen adott néhány támpontot, de ebből még olyan házat kellett készíteni, amely nemcsak befogadja az alkatrészeket, hanem játék közben kényelmes is. Sanyi munkája szerintem nagyon sokat tett hozzá ahhoz, hogy a WASDPad+ ne egy újabb „NYÁK egy projektboxban” jellegű házi építés legyen, hanem ránézésre is saját identitással rendelkező kontroller.
A széles, lapos kialakítás játék közben stabil, a levágott sarkokkal kialakított forma pedig időközben ugyanúgy a WASDPad+ megjelenésének részévé vált, mint maga a nagy, graffiti jellegű grafika a felső panelen.
Sanyi azonban itt sem állt meg. Egy speciális, puha, gumiszerű 3D nyomtatható anyaggal kezdett kísérletezni, amelyből végül elkészített egy külön csuklótámaszt is a WASDPad+-hoz. Ez már nem egyszerűen látványelem: hosszabb játék alatt ténylegesen kényelmesebbé teszi a használatot. Megint egy olyan részlet, amely eredetileg egyáltalán nem szerepelt a tervben, aztán amikor elkészült, hirtelen teljesen magától értetődőnek tűnt, hogy ennek is a projekt részévé kell válnia.
A ház több elemből nyomtatható, ezért a felső és az alsó burkolatnak sem kell feltétlenül azonos színűnek lennie. Ehhez jönnek a különböző színű keycapek és az opcionális háttérvilágítás, így ugyanabból az alapból egészen eltérő stílusú kontrollerek építhetők.
És ha már így alakult, természetesen elszabadult a pokol.
Készült kék-piros, fekete-zöld, fehér-szürke és több más kombináció is, miközben a gombokból fekete, piros, kék, zöld, lila, narancssárga és szürke változatok is rendelkezésre állnak, néhány színből áttetsző kivitelben. A felső panel nagy WASDPad+ grafikája pedig időközben a kontroller egyik legfontosabb vizuális elemévé vált.
Nem akartunk steril ipari dobozt készíteni. Ez egy C64-es játékvezérlő, tehát nézzen is ki olyasminek, amit az ember szívesen tesz a gép mellé. Egy különleges verzió a Megara 64 mellé
Jelenleg éppen egy különleges példány színvilágán gondolkodom, amely egy másik számomra kedves saját építéshez készül.
Ez a gép egy Megara 64, amelyet barátom, Tihanyi Robi tervezett, ezt a konkrét példányt pedig én építettem meg. A Megara fejlesztésébe egy kicsit én is belefolytam, az audioáramkör tervezésénél ugyanis volt alkalmam segíteni Robinak.
A kész Megara 64 egy hivatalos C64C ház SX-64 színváltozatában lakik, amelyhez sötétszürke-fekete billentyűzet készül. Adta tehát magát az ötlet, hogy legyen mellette egy hozzá vizuálisan is passzoló WASDPad+.
Ennél a változatnál az SX-64 szürke és grafit árnyalatai adnák az alapot, amelyeket a klasszikus Commodore kék-piros színvilág néhány visszafogott részletével szeretnék megtörni. Mivel a WASDPad+ felső és alsó burkolata külön nyomtatható, magával a házzal is lehet játszani, nem csak a gombokkal és a grafikával. Ha pedig már kifejezetten ehhez a géphez készül, valószínűleg kap majd valamilyen diszkrét RETROID Edition vagy STINGER Edition jelölést is.
Hat darab, és az a bizonyos hatodik
Az első valódi sorozatból hat darab WASDPad+ készült. Öt elsőre hibátlanul működött, a hatodik pedig természetesen úgy döntött, hogy gondoskodik az esti programomról.
Az autofire egyik állapota nem megfelelően működött, így következett a klasszikus multiméteres hibakeresés: jó és rossz panel összehasonlítása, a 7555 kimenetének vizsgálata, MOSFET-ek, ellenállások, kondenzátorok, forrasztások és vezetősávok végigkövetése.
Pontosan az a fajta nyomozás ez, amelyet az ember közben időnként a pokolba kíván, utána viszont rengeteget tanul belőle. Egy kapcsolási rajz a KiCadben még csak elképzelés. Egy legyártott NYÁK már tárgy. Több összeszerelt példány pedig végre elkezdi megmutatni, hogy a terv nemcsak egyszer, véletlenül működik-e, hanem valóban reprodukálható konstrukció lett belőle.
És ez egy olyan projekt esetében, amely időközben kezdett túlnőni a saját íróasztalomon, egyre fontosabbá vált.
Amikor a Commodore is felfigyel rá
A WASDPad+ fejlesztése közben történt valami, amire az eredeti decemberi beszélgetéskor biztosan nem számítottam: maga a Commodore is érdeklődni kezdett a projekt iránt.
Ezt egyelőre nem szeretném többnek beállítani annál, ami, hiszen a folyamat még tart, de már van egy nagyon fontos kézzelfogható eredménye. A WASDPad+ 3D nyomtatott burkolatán a hivatalos Commodore logó használatára megkaptuk az engedélyt.
Számomra ez önmagában is különleges pillanat volt. Az ember elkezd otthon építeni egy kontrollert egy több mint negyvenéves számítógéphez, aztán egyszer csak ott tart, hogy annak a gépnek a neve és logója hivatalosan is megjelenhet a saját tervezésű eszközén.
Az elektronikai részhez kapcsolódó hivatalos Commodore logóhasználat engedélyezése jelenleg is folyamatban van. Éppen ezért különösen fontossá vált, hogy a WASDPad+ ne csak működő hardver legyen, hanem megfelelően dokumentált projekt is.
Minden felkerül a GitHubra
A WASDPad+ teljes projektdokumentációja ezért folyamatosan épül a GitHubon. A cél az, hogy ne néhány fotó, egy Gerber és egy magára hagyott kapcsolási rajz maradjon utána, hanem egy átlátható, verziózott és lehetőség szerint reprodukálható projekt.
Ide kerülnek a kapcsolási rajzok, a BOM-ok, a különböző hardverrevíziók dokumentációi, a változtatások indokai, az összeszereléssel kapcsolatos információk és mindaz a műszaki háttér, amely szükséges ahhoz, hogy később ne csak én értsem, mit és miért csináltunk.
Ennek van egy másik oldala is. Ha szeretném, hogy idővel olyan új C64-es játékok készüljenek, amelyek ténylegesen kihasználják a WASDPad+ kétgombos vezérlését, akkor a hardver működését a fejlesztők számára is megfelelően dokumentálni kell. Nem várhatom el senkitől, hogy találgassa, hogyan működik az eszköz.
A GitHub ezért nem egyszerűen egy letöltési hely lesz, hanem szeretném, ha idővel a WASDPad+ teljes műszaki története is ott lenne.
De miért kell 2026-ban új kontroller egy C64-hez?
Jogos kérdés, hiszen joystickból Dunát lehet rekeszteni.
A válasz számomra az, hogy nem egy újabb joystickot szerettem volna készíteni.
A WASDPad+ mögött az az elképzelés áll, hogy a C64-et ne kizárólag múzeumi tárgyként kezeljük. Negyven év elteltével is jelennek meg rá új játékok, készülnek új cartridge-ek, SID-helyettesítők, alaplapok, tápegységek, videómegoldások és egészen elképesztő egyéb hardverek. Jó példa erre számomra Robi Megara 64-e is: egy olyan modern megközelítése a gépnek, amely közben továbbra is C64 marad.
A közösség nem egyszerűen konzerválja ezt a platformot, hanem folyamatosan tovább is gondolja.
Miért pont a játékvezérlés maradna ki ebből?
A WASDPad+ számomra ezért elsősorban egy kísérlet arra, milyen lehet egy mai szemléletű kompetitív kontroller egy 1982-ben bemutatott számítógéphez. Gyors digitális irányítás, két FIRE funkció, hardveres autofire, mechanikus és cserélhető kapcsolók, opcionális háttérvilágítás, saját ergonomikus kialakítás és remélhetőleg idővel olyan új játékok, amelyek már eleve ezekkel a lehetőségekkel számolnak.
Ha pedig egyszer sikerül négy WASDPad+-t ráakasztani egy C64-re, és négy ember egymást túlkiabálva próbálja lelőni a másikat egy western arénában, akkor valószínűleg azt mondhatom majd, hogy az eredeti ötlet célba ért. 🙂
Merre tovább?
A projekt még nincs kész, és valószínűleg egy darabig nem is lesz. A Rev1.2 már megmutatta, hogy maga az alapötlet működik, a Rev1.5 pedig tovább finomítja az elektronikát, a védelmet, a kapcsolók kialakítását és a vizuális lehetőségeket.
Valahol távolabb már ott motoszkál egy mikrokontrolleres Rev2.0 gondolata is, ahol konfigurálható autofire, burst módok és akár játékprofilok előtt is megnyílhat az út. Ezzel azonban nem szeretnék rohanni. A WASDPad+ egyik fontos tulajdonsága éppen az egyszerűsége, és nem szeretném csak azért telepakolni funkciókkal, mert technikailag megtehetjük.
Közben pedig ott van a REVOLVER gondolata is. Ha már készítettünk egy kontrollert, amely másképpen közelíti meg a C64-es játékvezérlést, kézenfekvő lenne készíteni hozzá egy játékot is, amely megmutatja, miért lehet érdekes ez az egész.
Mert végül talán ez a projekt legjobb része. Tavaly decemberben még csak egy beszélgetés volt a Commodore Reunion Miskolc csoportban, ahol Puskás Tibi feldobta a WASD vezérlő ötletét. Ebből lett kapcsolási rajz és NYÁK, Dester3D / Sebesi Sanyi munkájával pedig megszületett hozzá a saját 3D nyomtatott ház és később a puha csuklótámasz is. Norbert Krisz segített abban, hogy a különböző változatokat ne csak megépítsük, hanem ténylegesen teszteljük is. Közben Tihanyi Robi Megara 64-e egy újabb különleges WASDPad+ változathoz adott inspirációt, a Commodore részéről is érdeklődés érkezett a projekt iránt, a burkolaton pedig már hivatalosan is használhatjuk a Commodore logót.
Most pedig több elkészült példány fekszik az asztalon. Bedugom az egyiket egy valódi Commodore-ba, elindítok egy játékot – és működik.
Néhány hónappal korábban mindez még csak egy ötlet volt egy beszélgetésben.
Talán éppen ezért szeretem ennyire ezeket a projekteket.
Folytatása következik. 🙂
Stinger