AnalogPong

Helsinki Hacklabin wikistä
Versio hetkellä 10. toukokuuta 2014 kello 19.52 – tehnyt Jari (keskustelu | muokkaukset)
Siirry navigaatioon Siirry hakuun

Analog Pong

Analog Pong on perinteinen pong-tyylinen peli toteutettuna kokonaan analogisilla piireillä. Koko videosignaalin generointi on analogista, samoin suurin osa pelilogiikasta. Joitakin digitaalisia perusporttipiirejä ja kiikkuja on käytetty, mutta ne eivät vielä tee tästä digitaalista toteutusta.

Laite pelaa kolmea peliä:

  • tavallinen kahden pelaajan tennis
  • yhden pelaajan tennis, jossa automaatinen vastapelaaja
  • yksinkertainen yhden pelaajan squash

Pelit valitaan kiertokytkimellä. Pallon nopeutta ja ponnahduskulmaa voi säätää, samoin äänten voimakkuutta.

Yleiskuva (tulee kun kerkiää).

Taustaa

Ensimmäiset kotikäyttöön suunnatut videopelit 70-luvun alussa olivat analogisia toteutuksia. Niissä ei ollut mikroprosessoria, koska sellaiset olivat aivan liian kalliita. Myös digitaalitoteutus (74-sarjan piireillä) olisi tullut liian kalliiksi. Alan pioneerissa, Magnavoxin Odyssey-pelissä vuonna 1972 oli 40 transistoria eikä yhtään mikropiiriä!

Varhaisten pelien historiaa on käsitelty Pong-Story sivustolla kattavasti. Sieltä löytyy myös pelien kytkentäkaavioita, joita tämänkin projektin yhteydessä luettiin tarkasti ja myös leipälautailtiin.

Projektin tavoitteena oli kokeilla, miten onnistuu hardware-toteutus 70-luvun hengessä. Transistoripohjaista toteutustakin harkitsin, mutta se osoittautui siinä määrin hankalaksi, että päädyin käyttämään analogisia mikropiirejä sekä perus-74-sarjan piirejä.

Suunnittelu

Ensimmäisenä tarvittiin tietysti näyttö. Kaapin perältä löytyi vanha 80-luvun mustavalkoinen Philipsin matka-TV. Siinä ei ollut videoliitäntää, joten sellainen piti rakentaa. Samalla syntyi myös liitäntä ääniä varten, jotta ne saadaan kuuluviin television kaiuttimesta.

Kuvan muodostamisessa käytetään samaa periaatetta kuin ensimmäisissä videopeleissä: kuva ei muodostu pikseleistä, jotka ovat on tai off, vaan jokaista ruudulla esiintyvää objektia (pallo, mailat, keskiviiva) varten on oma generaattorinsa (spot generator) joka muodostaa ruudulle suorakaiteen muotoisen valkoisen alueen. Alueen korkeutta, leveyttä ja sijaintia voidaan säätää portaattomasti.

Erilaisia variaatiota spot-generaattorin hardwaresta säädin leipälauden äärellä varsin pitkään. Analogisten komparaattorien ja schmitt-NANDien yhdistelmä osoittautui lopulta toimivaksi.

Pelilogiikka koostuu sekin analogia- ja digitaalipiirien sopivista kombinaatioista. Spot-generaattoreita ohjataan jännitteillä, joten ohjausjännitteiden hallintaan on taas käytetty analogiakomparaattoreita kasapäin. Erilaiset päättelyt tapahtuvat sitten porttipiireillä. Laitteessa on jopa 2 bitin verran muistia, eli yksi tupla-D-kiikku. Kaikkiaan laitteeseen tuli 18 IC-piiriä.

Protoboard-kuva.

Rakentaminen

Laite on rakennettu kahden veroboardin varaan. Piirilevyn tekeminen ei nyt kiinnostanut, koska oli todennäköistä joutua muuttelemaan kytkentää vielä rakentamisen jälkeenkin. Kotelona on valmis alumiinipeltikotelo, joka antaa laitteelle 70-lukulaisen audiolaitteen ulkonäön.

Sisäkuva (tulee kun kerkiää).

Jos haluaa tutustua laitteen sielunelämään tarkemmin, kytkentäkaavio löytyy täältä. Siihen liittyvä toimintaselostus (englanniksi) avannee kytkentäkaavion ihmeellisyyksiä hiukan ymmärrettävämpään muotoon.