soodan sivut

arkisto

237 kirjotelmaa.

avainsanat

Päiväys 2013-4

Ei sitä näemmä koskaan opi, vaikka viikoittain kiroaa itselleen, että koodin kopiointi tai pasteaminen pitäisi kieltää. "Hienot" bittitemput pitää tehdä vasta kun koodi toimii. Redundanssi on ihan OK jos se selventää koodin lukemista. Isomman pötkön copypastaaminen toiseksi ja refaktorointi sen pohjalta jättää aivan liian helposti jälkeensä sotkua tai bugeja. Tällä kertaa debuggaaminen oli vieläpä aivan erityisen hankalaa, sillä suurin osa koodista tuli kirjoitettua varsin sokeasti testaamatta varsinaisella alustalla. Tein metronäytölle matopeliä, joka toimi pc:llä simuloimalla ihan ok -- mikrokontrollerilla taas ohjattava näyttö sekosi täysin, jos matoa liikutti ja erityisesti jos omenan paikan asetti ohjelman alussa. Uutta koodia oli kokonainen matopeli, framebufferi ja uudenlainen näytönpäivitysrutiini, eli lähes kaikki.

Vietin koodipäivän metronäytön kanssa ja sain aikaan koodia jolla saa nätisti pc:ltä usbin yli teensylle graffaa lcd-väylälle puskettavaksi. FPS on enemmän kuin tarvitsee, koska näyttö itse tai sitten omat silmät eivät tunnu pysyvän vauhdissa mukana, haamukuvia tulee. Skrollerivideota seuraa, tosin edlelleenkin käytin pelkästään alkuperäisfonttia. Sitten voisi koodata sille vaikka pongin.

Nyt se on kaikki tehty. Koko alkuperäisen ohjauspurkin voisi periaatteessa heivata pois ja laittaa tilalle jotain modernimpaa. Tietysti tyylikkäintä olisi löytää puskuriylivuoto alkuperäisohjelmasta ja ohjata näyttöä sen kautta, mutta tehokkainta devausnopeuden, näyttönopeuden ja virrankulutuksen kannalta lie työntää joku arduino, raaka avr tms. mikrokontrolleri ohjaamaan graffaa ihan vaan sarjaportin tai usbin yli. Pikseleiden muodot, fontti, väylän bittiformaatti ja kaikki siinä välillä on käytännössä täysin reverse-engineerattu. Tutkittiin ensin softaa ja sitten verifioitiin taas puretun raudan äärellä Helsinki Hacklabilla. Suomeksi: näytön ruuduille saa mielivaltaista omaa grafiikkaa nopeasti.

Jälleen on nysvätty metroasemakilpibittiä, tällä kertaa ei itseni vaan työkaverin Tuomas "Dezgeg" Tynkkysen toimesta. Dokumentoinpa tähän muun infon joukkoon kuitenkin. (Osa tekstistä copypastea Tuomakselta.) Nyt on pitkälle selvitetty bittiformaatti, jota softa oksentaa näytöille, eli missä järjestyksessä pikseligrafiikka on bittivirrassa. Kaikki fonttidata on itse CPU:lla, ja näytöt tosiaan hoitavat vain pikseleitä, ja pikselit eivät ole neliöitä vaan erityiseen järjestykseen laitettuja kolmioita.

Sivut: (ei muita)