Searching for undocumented 6502 instructions¢╱GFX compo - Forever 2e3 SE$¢Radek ③t%rba/Raster¢¢Kdy( jsem m%l v ]noru 2001 celkem dokon'en[ Intro a Music pro Forever 2e3 SE, za'ala m% l*kat i t@et) kategorie - Graphics. P@em`&lel jsem nad t[matem obr*zku a napadlo m%, (e by mohlo b`t p%kn[ kone'n% realizovat to co jsem cht%l zkusit u( d*vno - v)cebarevn` nejjemn%j&) grafick` md.¢¢Jak zn*mo, v mdu 320x192 um) At*rko jen 2 barvy, p@esn%ji dva odst)ny jedn[ barvy. Shora dol+ m+(ete samoz@ejm% tuto barvu m%nit, ale moc par*dy s t)mhle nenad%l*te, nebo④ obr*zek bude viditeln% rozd%len shora dol+ do jednotliv`ch barevn`ch p*s+. Ale m*me p@ece je&t% PMG ╱sprites$. Pokud objekt z PMG grafiky zobraz)te nad nejjemn%j&)m mdem, doc)l)te zaj)mav[ho efektu. Barva PMG p@ekryje barvu pozad), zat)mco body grafiky se zobraz) jako viditeln[ p@ed PMG objektem. Jasov* slo(ka bod+ z+stane zachov*na, ale barva se zm%n) podle barvy PMG.¢¢Pokud m* nap@)klad pozad) sv%tle modrou barvu ╱jas 10$ a body tmav% modrou ╱jas 2$ a zobraz)me PMG objekt zelenou barvou ╱jas 6$, ve v`sledku najdeme 4 barvy: ¢1. pozad) kde nen) PMG - modr* ╱jas 10$¢2. body kde nen) PMG - modr* ╱jas 2$¢3. PMG nad pozad)m - zelen* ╱jas 6$¢4. body nad PMG - zelen* ╱jas 2$¢Tak(e jedn)m PMG objektem se n*m poda@ilo vykouzlit 2 dal&) barvy - p@esn%ji jednu novou barvu ve 2 odst)nech, kter[ z+st*vaj) zachov*ny dle jasu pozad) a jasu bod+.¢¢Pro snaz&) pochopen) si p@edstavte, (e obr*zek je jen 'ernob)l` a na obrazovku jakoby nalepujeme ╱pr+hledn[$ kousky barevn[ flie, kter[ n*m v r+zn`ch '*stech zm%n) barvu a jas p@)slu&n[ho m)sta, a tak[ barvu bod+ co vid)me skrz. ╱Pozn*mka: Technika s barevn`mi fliemi nalepen`mi na 'ernob)l[ obrazovce byla kdysi skute'n% pou()v*na u hrac)ch automat+.$¢ ¢Proto(e u PMG objekt+ lze nastavit &)@ku ╱jeden bod PMG objektu m+(e m)t &)@ku a( 8 pixel+ nejjemn%j&) grafiky$, lze pomoc) PMG p@ekr`t celkem slu&n% velk[ kusy obrazu. V m)stech, kde pot@ebujeme obl[ tvary, mus)me samoz@ejm% u()t &)@ky nejmen&) - 1 bod PMG odpov)d* 2 pixel+m nejjemn%j&) grafiky. Na prvn) pohled by se zd*lo, (e t)m p*dem jsme nuceni vyu()vat jen dvakr*t hor&) rozli&en), ov&em nen) tomu v(dy tak. Nap@)klad, pokud je jas pixel+ roven 0, zjist)te, (e libovoln* ze 16ti barev s nastaven`m jasem 0 je v podstat% 'ern* ╱ne sice ]pln%, ale na plo&e 1 bodu si toho nev&imnete$. Je-li obr*zek malov*n jako tvary ohrani'en[ tmavou linkou ╱jasem 0$, okrajov[ body bu⇦ p@ekr`vaj) PMG objekt a maj) barvu PMG objektu s jasem 0, nebo jsou t%sn% vedle PMG objektu a maj) barvu pozad) s jasem 0. Tak(e v obou p@)padech t[m%@ 'ernou barvu.¢¢Abyste si nemysleli, (e je to zase tak jednoduch[ - nen). V z*vislosti na slo(itosti obr*zku je nutn[ b%hem vykreslov*n) obrazu na jednotliv`ch @*dc)ch r+zn% m%nit barvov[ registry obrazu i PMG objekt+, &)@ky PMG objekt+ a jejich X-ov[ pozice, aby se PMG'kem podbarvilo p@esn% jen to co chcete. V%t&inou brzo zjist)te, (e byste PMG objekt+ pot@ebovali mnohem v)ce, ne( m*te k dispozici, ale v tom je pr*v% um%n) - vymyslet to tak, aby jste vysta'ili s t)m co je. M+(e se lehce st*t, (e n%kterou barvu na dan[ m)sto prost% nedostanete a mus)te obr*zek upravit - n%co kousek posunout, jinou v%c z](it nebo naopak zv%t&it a tak podobn%.¢¢Obr*zek "Searching for undocumented 6502 instructions" ╱Hled*n) nedokumentovan`ch 6502 instrukc)$ byl jednak nakreslen - 'ernob)le, ru'n% bod)k po bod)ku - na to jsem pou(il narychlo pozm%n%nou verzi sv[ho TurboBasicov[ho grafick[ho editoru AnimG15, kter` jsem upravil pro gr.md 8 a p@idal n%jak[ jednoduch[ podp+rn[ funkce pro kreslen) do PMG videoram. D*le byl obr*zek, rovn%( ru'n%, doprogramov*n v assembleru MAC65. Byla to spousta propo')t*v*n) @*dk+, zm%n, ]prav, test+ a oprav - zkr*tka pipla'ka. Rutina b%hem vykreslov*n) obrazu shora dol+ celkem ve 21 r+zn`ch @*dc)ch provede dohromady 61 zm%n barvov`ch a PMG registr+. ╱To nejsou vymy&len* ')sla - schv*ln% jsem to te⇦ spo')tal.$¢¢Kdo si chce ud%lat konkr[tn) p@edstavu, jak vypad* samotn* grafika a co je tvo@eno zm%nami barev a PMG, m+(e. Do sout%(n)ho samospustiteln[ho obr*zku jsem zabudoval cheat. Kdykoliv po spu&t%n) stla'te kl*vesu "A" - uk*(e se kr*tk[ textov[ info dole. Pak m+(ete kl*vesami 1, 2 a 3 p@ep)nat mezi samotnou 'ernob)lou grafikou, barvov`mi zm%nami PMG⇩pozad) a v`slednou slo(eninou oboj)ho.