Demo Genesys vzniklo ako príspevok do demosúťaže Forever 21 na tému ROBOT, ktorá bola zvolená pre rok 2020, kedy slovo ROBOT oslávilo sté výročie. Žiaľ, pre pandémiu Covid sa akcia niekoľko rokov nekonala a Forever bol obnovený až v roku 2023.
Demo Genesys bolo formované ako nemý kreslený film z počiatku kinematografie s vkladanými textovými poľami vysvetľujúc dej. (Aj preto sa demo končí slovom "FIN" a nie "Fine" alebo správnejšie "The End", na čo som dostal viacero otázok. Slovo "FIN" je francúzske a používalo sa v čiernobielych holywoodskych filmoch.)
Vďaka môjmu nedokonalému časovému menežmentu, kedy som si pomýlil termín konania akcie, bolo demo finišované narýchlo a nie sú tam všetky pôvodne zamýšľané scény.
Dejová línia má zobrazovať stvorenie sveta, s následným stvorením človeka, kde vďaka neuposlúchnutí Boha Eva dáva zjesť Adamovi ovocie poznania, za čo sú obaja vykázaní z Raja a je im Bohom poručený trest (Gn 3,17 "...nech je prekliata zem pre teba; s námahou sa z nej budeš živiť po všetky dni svojho života", resp. Gn 3,19 "V pote svojej tváre budeš jesť svoj chlieb..."). A tak je človek odkázaný na každodennú ťažkú prácu, ktorú si však vďaka svojej dômyselnosti pokúša zjednodušiť vynálezmi, ktoré končia vynálezom robotov.
Demo získalo 594 bodov (pre porovnanie najlepšie Demo v kategórii ZX Spectrum získalo 620 bodov), a keďže bolo jediné v kategórii Ostatné 8bity, tak získalo aj 1. miesto (ale zároveň aj posledné). Vzhľadom na neporovnateľne horší hardvér, teda ČB výstup, pomalý pozastavovaný procesor a absencia zvukového čipu nemohlo demo výrazne konkurovať farebným demám s trojkanálovým zvukom, ale i tak, myslím si, so cťou obstálo.
Demo bolo napísané v asembleri, obsahuje tieto hlavné rutiny
prehrávanie zvuku na pozadí
kreslenie čiar v tieňovej video pamäti
rutiny rýchleho presunu okna z tieňovej pamäte do video pamäte
interpreter príkazov a skriptov, z ktorých je vytvorené samotné demo
Všetko je riadené prerušením, ktoré synchronizuje prehrávanie melódie a zmeny obrazu, aby neboli viditeľné etapy kreslenia obrazov pomocou čiar. Jedine text je vykreslovaný priamo na obrazovku bez použitia tieňovej pamäte.
Vzhľadom na zjednodušenie a zrýchlenie písania dema, nie sú jednotlivé scény programované v asembleri, ale v pseudokóde jednoduchými na tento účel vytvorenými (viac ako dvadsiatimi) príkazmi.
Všetky postavy a obrazce sú tvorené vektorovou grafikou, v deme neboli použité vôbec žiadne bitmapy. Každý obrazec je objektom, skladajúcim sa z komponentov. Napr. objekt je robot, komponentami sú hlava, telo, ruky, kĺby, nohy... Tým sa nemusel celý obrazec v rôznych fázach pohybu vytvárať nanovo celý, ale sa len poskladal z komponentov, z ktorých mnohé mohli byť rovnaké, ale len v inej polohe, alebo sa len niektoré vymenili za iné.
Texty sú tvorené tiež vektorovo s možnosťou dvojnásobného a štvornásobného zväčšenia.
Vložiť do dema hudbu bolo najväčšou výzvou. Rutina vznikla ešte v roku 2020, keď neexistoval modul Melodik. Aby bolo možné odohrať jeden tón v dĺžke postrehnuteľnej ľudským uchom, a aby to dávalo aspoň aký-taký hudobný zážitok, musel tón trvať viac ako 10ms. Vzhľadom k tomu museli byť zredukované zobrazované riadky z 255 na 80. Tón hrá od zatemňovacieho impulzu vyvolávajúceho prerušenie, až po zobrazenie grafiky v spodnej časti obrazovky. Ďalší tón zaznie o 11 prerušení neskôr. Aby zazneli tóny, ktoré majú trvať dlhšie, sú dva alebo štyrikrát zopakované.
Zahratie melódie počas zobrazovania obrazu bolo doteraz považované za nemožné a demo Genesys je v tomto ohľade prelomové.
Takto vyzerá kus skriptu, ktorý vykreslil rast rastliny
CmdSetObj, 8
CmdSetParam, 120, 10, 0, 6, 56 ; x, y, frame, frames, lines
CmdSetCycle, 6
CmdAddFrames
PLANT1
PLANT2
PLANT3
PLANT4
PLANT5
PLANT6
DAY3A:
CmdShow, 5
CmdNextFrame
CmdSkipFrames, 20
CmdRepeat, DAY3A
Demo je možné prevziať v sekcii Download / Hry