Abyssus (24/12/2019)
Možná jste si toho už všimli. Jsou tu Vánoce. K čemuž jaksi patří též dárečky. A já jsem se letos rozhodl, že taky budu trošičku za Ježíška. Můj dárek pro vás se jmenuje Abyssus, kompletně hratelný první level mojí nedokončené a hlavně zrušené hry pro osmibitová Atari.
Na Abyssusu, což byl až nestoudně megalomanský projekt vesmírné střílečky pro dva hráče, jsem začal pracovat v roce 2009. Tehdy jsem usoudil, že už jsem programátorsky natolik zdatný, abych něco takového zvládnul. Což se nakonec i potvrdilo, jenomže zrada přišla z jiné strany. Ale pěkně popořádku.
hra Abyssus
Napsat vesmírnou řežbu je asi vlhkým snem každého kodéra. A mým cílem nebyla jenom obyčejná střílečka. Chtěl jsem napsat něco, z čeho si obecenstvo sedne na zadek. Což asi nejlépe splňovala představa hry, ve které budou na obrazovce hromady pohybující se animované grafiky, prostě brutální akce.
Jak toho ovšem na malém Atari dosáhnout? Nemáme žádný blitter, HW sprajty v podobě PMG mají dost omezené použití a hrubý výpočetní výkon našich strojů je v podstatě směšný. Po dlouhém přemýšlení jsem nakonec vymyslel toto:
- HW sprajty se použijí na lodě hráčů a jejich střely,
- SW sprajty budou použity na vše ostatní.
K prvnímu bodu bych chtěl dodat toto. Rozhodnutí použít PMG rovněž pro střely hráčů znamenalo vyvinout engine s dynamicky se měnícím display listem a seznamem DLI přerušení, které v horizontálním směru zajišťují různou vertikální pozici jednoho a téhož péemgéčka. To naprogramovat se ve finále ukázalo být relativně snadné.
Podstatně větší oříšek představovaly SW sprajty. Ty jsem se rozhodl zrealizovat v klasické bitmapě (BASIC grafika 15, tj. Antic $0e) a nikoliv v textovém módu (BASIC grafika 12, tj. Antic $04). A usoudil jsem, že jediná cesta, jak jich dostat na obraz opravdu hodně, je zcela se zříci maskování.
Klasicky, pokud se realizuje pohyb nějakého objektu, je třeba nějak ošetřit situaci, kdy se tento objekt potká s jiným. A jsou možné v zásadě tři přístupy:
- nemaskovat vůbec, tj. pohybující se objekt přejde přes jiný ve formě jasně ohraničeného obdélníku,
- maskovat přechod pomocí funkce EOR, což se děje například ve hře Gremlins,
- použít plné maskování, kdy objekty přes sebe plynule přejdou.
Problém je časový nárůst zápisu do videopaměti se stoupající úrovní maskování. Zatímco v prvním případě si člověk vystačí s konstrukcí typu
LDA (graficka_data),Y
STA (video_pamet),Y
tak při maskování přes EOR se dostáváme někam na
LDA (video_pamet),Y
EOR (graficka_data),Y
STA (video_pamet),Y
zatímco při plném maskování už jsme na
LDA (video_pamet),Y
AND (maska),Y
ORA (graficka_data),Y
STA (video_pamet),Y
Jinými slovy. Zápis do videopaměti při plynulém maskování sežere dvojnásobek strojového času oproti nejprimitivnější metodě. Což současně znamená, že ve stejném časovém rámci stihnete zobrazit o polovinu méně grafiky. Plus vám nemalou část paměti požerou masky všech objektů.
Proto jsem v projektu Abyssus šel nejjednodušší cestou vůbec nemaskovat. Aby to ale vypadalo hezky a na obrazovce nebyly žádné hnusné čtverečkovací kolize, nadesignoval jsem pohyb všech nepřátelských lodí tak, aby se nikdy nepotkaly.
Z toho zároveň plyne, že ve hře není žádný podklad, protože i tam by byly ony nechutné přechody vidět. Vše se tedy odehrává v pustém vesmíru, kde iluzi pohybu vytváří pár odshora dolu putujících hvězdiček. Ty jako jediné (po vykreslení celé obrazu), maskuji. Což při těch pár bajtech je už vcelku zanedbatelné.
Když jsem toto vše vymyslel, v létě roku 2009 jsem nakódoval první pokusný engine s pár lodičkama. To abych viděl, jak to bude vypadat a kolik objektů se nechá za cca jeden snímek stihnout vykreslit. Krásnou grafiku dodal kolega PG a test vyšel nad očekávání dobře. Bylo jasné, že tudy by cesta mohla vést.
Abyssus na plný výkon aneb víc toho v 25fps už nezvládnu
Trvalo nicméně další dva roky, než jsme se do toho s PéGéM pustili opravdu naplno. Tou dobou jsme již také měli pohromadě detailní plán, jak by projekt Abyssus měl vypadat navenek a jak by měl fungovat uvnitř. Základní specifikace zněly:
- současná hra obou hráčů,
- střelba ze zbraní je automatická, přes spoušť se pouze mění zbraně (á la Zybex),
- žádné extra životy, pouze energie, po jejímž vyčerpání hráč ve hře končí,
- za zničení nepřátelské lodě se získávají credity, za které (podle mojí oblíbené hry Raptor) bude možno v obchodě zakoupit rychlejší motory, lepší štíty a zbraně,
- speciální powerupy při zničení některých lodí (enegie, megabomba, nesmrtelnost a credits),
- na konci každého poměrně krátkého levelu (cca dvě a půl minuty) bude megaboss s ukazatelem energie,
- za hry bude hrát dvoukanálová hudba, protože PG usoudil, že tak to má být a tak je to také správně.
Co se týče vnitřního fungování hry, držel jsem se tohoto plánu:
- engine běží na PALu v doublebufferingu na stabilních 25 fps pro vykreslování nepřátel a na stabilních 50 fps pro vykreslování lodí hráčů (opět á la Zybex),
- vykreslování a mazání nepřátelských lodí se děje pomocí natvrdo rozepsaných konstrukcí typu
LDY #0
LDA (graficka_data),Y
STA (video_pamet),Y
LDY #32
LDA (graficka_data),Y
STA (video_pamet),Y
.
.
.
respektive
LDA #0
TAY
STA (video_pamet),Y
LDY #32
STA (video_pamet),Y
.
.
.
- všechna grafická data jsou v paměti předshiftována.
Jenomže takovýto obecný seznam se snadno napíše, ale o to hůř realizuje. Vzpomínám si a pohled na historii zdrojáků mi to potvrzuje, že jsem několikrát opakovaně přepisoval kritické části vykreslovacích rutin ve snaze najít optimální řešení, než jsem konečně dospěl k přesvědčení, že lépe už to prostě neumím a neudělám.
V každém případě nám prvotní nadšení nad projektem vydrželo s přestávkami celé dva roky. Někdy v srpnu 2012 jsme měli pohromadě celý první level, avšak bez závěrečného bosse a bez funkčních kolizí. Pak nastoupila již opravdu krutá únava a Abyssus byl opět odložen k ledu.
Rozhodující útok s cílem dokončit úvodní level jsem podniknul v létě 2015. Do března následujícího roku se pak "stage 1" opravdu podařilo kompletně dodělat, a to se všemi plánovanými fíčurkami. Tuto verzi vám také nabízím ke stažení.
megaboss na konci prvního levelu
To byla ale současně též labutí píseň celého projektu. Jednak se totiž ukázalo, že lidé, kteří měli možnost si Abyssus v rámci testování zahrát, neprojevili nad hrou žádné extra velké nadšení. Což mě pochopitelně dost zklamalo.
No a hlavně jsem už měl plné zuby spolupráce s PéGéM, který si to svou chronickou nespolehlivostí u mne jednou pro vždy šeredně polepil. Moje trpělivost má zkrátka svoje meze. Sorry, jako, milý kolego.
Nikdy jsme proto nedodělali do Abyssusu plánovaný obchod a ani jsme nezačali práci nad dalším levelem, kterých mělo být zhruba deset. No a po pár měsících (a poté i letech) čekání, až se PG opět laskavě k projektu vrátí, jsem se rozhodl Abyssus oficiálně prohlásit za mrtvý a ukončený.
Posledním krokem celé ságy je logicky uvolnění posledního buildu volně ke stažení, čímž od Abyssusu dávám definitivně ruce pryč...
P.S. V prvním levelu jsou na zkoušku naimplementované dvě zbraně: kulomet a pulzní kanon. Ve finální verzi se ale počítalo pouze s kulometem. Čili správný pařan by se měl přes stage 1 prokousat jenom s touto zbraní. Všichni ostatní jsou odporní podvodníci!
Nemám rád Altirru (09/10/2019)
Vážení přátelé Ataristé! Přestaňte mi, prosím, psát o rady, jak to či ono
udělat nebo nastavit v emulátoru Altirra. Poněvadž já to taky nevím. A je
to tím, že Altirru nepoužívám. Naopak sám jsem již nesčetněkrát potřeboval
s tímto úžasným softwarem poradit, když jsem v něm chtěl něco zkusit.
Ano, já vím, jsem sto let za těma nejhloupějšíma vopicema, když i v roce
2019 stále jedu pod Atari800Win PLus. Altirra je přece o tolik lepší!
Blíží se k reálnému hardwaru jako žádný jiný emulátor a má tolik báječných
funkcí! Jenomže mně se z mnoha důvodů nelíbí a vůbec mi nevyhovuje.
Třeba takový turbo mód. V Altiřře musím pořád držet F1 a protože
se autor rozhodl, že i v turbo módu budou slyšet zvuky, je tento podstatně
pomalejší než v mém oblíbeném emulátoru. Nebo proč Altirra nespustí CAR
image cartu, když v něm nesedí nějaké zbytečné kontrolní součty v
hlavičce, ale jinak je OK?
Nejvíc mě však iritují ty desítky různých nastavení, co jich v tomto
emulátoru lze nalézt a u kterých absolutně netuším, k čemu jsou a jak je
používat. Já se v tom prostě neorientuju. Onehdy jsem třeba potřeboval
zprovoznit emulaci multijoye a fakt jsem to bez pomoci další osoby nedal
dohromady. Někomu možná v Altiřře přijde nastavení mapování joysticků jako
intuitivní záležitost, ale mně rozhodně ne.
Jindy mi někdo psal, že má problém rozchodit mojí file verzi hry Mario
Bros. pod nějakým IDE interfejsem. A že prý Altirra toto umí emulovat a ať
se na to zkusím podívat. Výsledek mého snažení byla ovšem nula. Opět jsem
narazil na to, že jsem nedokázal tu IDE emulaci rozchodit. Jednoduše jsem
nepřišel na to, co po mě Altirra chce a kde mám co povolit, zakázat nebo
nastavit.
Rovněž jsem doteď nezjistil, jak při puštění Altirry skončit rovnou v
BASICu, ani jak v debuggeru zaznamenat na disk kompletní běh procesoru
6502. Což čas od času v Atari800Win PLus v nouzi nejvyšší používám a fakt
to potřebuju. Taky jsem si musel nechat poradit i s takovou blbostí, jako
je nastavení velikosti okna, aby pixely byly pořád v měřítku a nebyly
zdeformované.
Jo, jsem zcela jistě lama všech lamel, když toto všechno v Altiřře
nedokážu, zatímco pro jiné je nejvyšším a nejmocnějším božstvem ze všech.
Což ale není až tolik úsměvné, jak to možná vypadá. Neboť někteří jedinci
v poslední době zcela očividně nabyli přesvědčení, že Altirra rovná se
skutečný HW nebo je snad dokonce i lepší. Když jim pak něco nejde
na první dobrou spustit, hned hlásí do světa: "It does not work with
Altirra!"
A co jako?! Má snad toto být nějaký důkaz o nefunkčnosti daného programu?
To sotva. Celá ta šaškárna totiž většinou pokračuje tak, že jiní lidé
oponují: "Mně to ale ve verzi XY jde!" A začne se hledat, který build
Altirry kdo používá, kde kdo má či nemá to či ono navolené, atd. Aby se
pak ve finále slavně zjistilo, kdeže si ten nešťastník rozesral jedno z
oněch dvou set nastavení. A proč to normálně nevadí a tady najednou jo.
Ostatně. S těmi různými verzemi Altirry fakt bacha. Různé její buildy se v
některých ohledech opravdu chovají odlišně. Svého času mě například Viktor
ze Slovenska pravidelně zásoboval dumpy různých na koleně dělaných cartů,
co jich v dobách bývalého ČSSR naše socialistická vlast zplodila. A jejich
pouštění pod Altirrou byl skutečně děs. V některých verzích to chodilo, v
některých tak nějak na půl a v jiných vůbec.
Slepě věřit Altiřře bych nejenom proto velmi důrazně nedoporučoval, ostatně
jako žádnému jinému emulátoru. To mám z vlastní zkušenosti. Jeden z mých
projektů dlouho pod Altirrou nechodil správně a až od její jisté verze se
na obrazovce přestaly dít naprosté nesmysly. Vše proto, snažně vás prosím,
vždy zkoušejte též na realném HW. Protože to je jediná záruka 100%
funkčnosti, kterou dostanete.
Dejte si též velký pozor na to, že po čisté instalaci Altirry budete sice
moct hned spouštět svoje oblíbené hry nebo dema, je tu ovšem jedno drobné
ale. Aby se předešlo případným soudním sporům a aby emulátor byl rovnou
použitelný, je v něm defaultně nahozená vlastní neoriginální ROMka!
Jmenuje se to AltirraOS a tento od nuly napsaný OS není ani náhodou
stoprocentně kompatibilní s XL/XE stroji.
Kritické věci, jako tabulky skoků, samozřejmě souhlasí, ale
funkčnost jiných přímých volání ROMky, které nemálo programů (včetně her)
používá, nemusí být zachována. Tato nekompatibilita s počítači XL/XE se
samozřejmě vyskytuje i u některých "na prasáka" dělaných programů pro
stařičké Atari 400/800, jenže těch je skutečně minimum a naprostá většina
z nich už navíc byla opravená, aby na XL/XE strojích fungovala.
Neboť právě 64kB XL/XE mašina se už desítky let považuje za standardní
osmibitové Atari. A na té vám poběží, pokud pominu případné větší paměťové
nebo jiné speciální HW nároky, takových 99% softwaru. To ale nebude
platit, pokud Altiřře nepřehodíte ROMky skutečného Atari a necháte tam ten
její alternativní OS.
Abych to shrnul. Na ty trapně jednoduché věci, co já na Atari tvořím a
vždy tvořit budu, mi Atari800Win PLus bohatě stačí. Altirra, ačkoliv je to
bezpochyby nejlepší dostupný emulátor, je na můj vkus příliš složitý
nástroj. A co je nejdůležitější. Žádnou z jeho super duper funkcí a
miliónu různých emulovaných HW obskurností reálně nepotřebuji.
Čili se mi klidně smějte (můžete přímo do ksichtu nebo i do obličeje),
jaká že jsem to vykopávka a že s Altirrou jenom neumím pracovat, ale to je
asi tak jediné, co s tím můžete dělat. Respektive ještě mi můžete přestat
posílat ty zbytečné emaily. Jednom ztrácíte čas. :)
Náhoda neexistuje (13/05/2019)
Po půl roce sladkého Atari nic nedělání jsem se v květenci opět odhodlal začít tvořit něco osmibitového. Během jednoho týdne jsem napsal zbrusu novou hru pro multijoy, kterou bych rád na živých lidech vyzkoušel na červnové PLatariádě, a hned potom jsem se pustil do konverze jisté gamesy ze stroje BBC Micro.
Ona nová multijoyovka je takový pokus o přetvoření hry určené původně pro jednoho člověka na gamesku až pro čtyři hráče. Ideovou inspirací mi byl samozřejmě Rasterův Multris. Radek prostě vzal klasickej Tetris a nechal čtyři pařany jít si na jedné obrazovce vzájemně pro krku. Geniálně jednoduché a jednoduše geniální!
Nějakou věc v tomto duchu jsem chtěl udělat už dávno, ale nedařilo se mi najít vhodnou hru, kterou bych takto mohl ohnout. Dokonce jsem několikrát bláhově žádal o radu i kolegy Ataristy, samozřejmě bezvýsledně. Nápad přišel, až když jsem se na webu přehraboval tunama flashovek, kterými si lidi krátí čas v práci. ;)
Typově moje nejnovější multijoy produkce rozhodně není žádná revoluce a v tuto chvíli těžko říct, zda to vůbec bude zábavné a hratelné. Je to vlastně zase jenom takové to tetrisoidní skládání a následné ničení kostiček. Což je právě téma, o kterém chci dneska ve skutečnosti psát.
Kdo někdy hrál Tetris, určitě mi dá zapravdu, že počítač je v této hře za naprostou svini. Člověk si typicky postaví horu kostek a pak marně čeká na "dlouhou", která nepřichází a nepřichází. Kdysi jsem s někým na toto téma vedl debatu a ve vzácné shodě jsme dospěli k závěru, že všechny verze Tetrisu, které jsme měli možnost vidět, se v tomto směru chovají úplně stejně.
Až to vypadá, že autoři každého možného i nemožného klonu Tetrisu museli do kódu povinně propašovat pseudoinstrukci typu "pokud hráč potřebuje dlouhou, nepošli mu následující dvě minuty ani jednu". Tato konstrukce je pak hodně často doplněna další lahůdkou "pakliže hráč už dlouhou nepotřebuje, pošli jich pět za sebou".
Tato teorie ovšem nyní padá. Na svou čest mohu odpřisáhnout, že jsem kód své hry psal poctivě zcela od nuly a žádné takové lumpárny jsem do něj nezamontoval. Přesto se program chová neuvěřitelně zákeřně. Opět naschvál neposílá dílečky, které by se hráči hodily, a naopak chrlí přesně ty, co vůbec nikam nepasujou. A zvlášť kruté kombinace si nechává na chvíli, kdy je člověk v úzkých a opravdu by nějakou tu šikovně padnoucí kostku vážně potřeboval.
Toto vše je skutečně s podivem především proto, že pořadí kostek natvrdo generuju do kruhového bufferu na začátku každé hry! Jako kdyby někdo nebo něco dopředu vědělo, jak bude hráč reagovat a podle toho mu připravilo do cesty ty největší hnusy v tom nejnevhodnějším pořadí. Nějaká vyšší síla prostě do mého bináru propašovala jakési zlovolné instrukce, možná i celé cykly. Jinak si to vysvětlit nedokážu.
Zkrátka a dobře. Začínám vážně uvažovat, že svobodná vůle je v tomto vesmíru jenom ubohá iluze. A co hůř. Přestávám věřit, že Tetris lze dohrát až do konce.
Aki je king (28/01/2019)
Pokud půjde všechno jak má a nenastane nějaké katastrofické selhání, měla
by někdy teď na jaře v dalším Flopu vyjít moje nejnovější hra pro
osmibitová Atari nazvaná Fruity Pete. Normálně se zde v posledních letech
o svých hrách pro Flop příliš nerozepisuju, protože to jsou vesměs
jednoduché produkce nehodné nějaké zásadní pozornosti, ovšem v tomto
případě udělám čestnou výjimku.
Ono ne že by FP byla nějaká úžasná gameska, to vůbec ne. Je to opět
hooooodně primitivní záležitost (primitivnější hra je už pouze Ocean Detox
od blahé paměti sem tam ještě něco tvořících MPG), ale jde o to, že se
mnou na této gamesce zásadním způsobem spolupracoval Akio Tenshi. Tento
člověkoid, dříve známý jako Factor 6, se tudíž po nějakých těch hudbách a
obrázcích posunul na další level v tvorbě pro naše miláčky a tomu již se
rozhodně zaslouží věnovat pár řádek.
Ještě než se pustím do více méně nesrozumitelného blábolení o FP, rád bych
tu hned na začátek chtěl udělat jasno v jedné věci. Jak možná víte,
Akio se na podzim rozhodl, že se stane holkou. Pro mne byl už velký
problém přestat Factorovi říkat Factore a teď ještě tohle. Zvykám se na to
velmi pomalu, to říkám na rovinu, a stále se pletu. A jelikož Fruity Pete
vznikal na konci minulého léta, kdy jsem Akiho v naší korespondenci
oslovoval výhradně ještě jako kluka, zůstanu u toho také v tomto textu.
Hra Fruity Pete se zrodila z mé dávné touhy napsat malinkatou gamesku ve
stylu konce sedmdesátých a začátku let osmdesátých, kdy se v herním
průmyslu nikdo s ničím nemazal. Produkce byly na jednu obrazovku, neměly
žádný konec a jenom se postupně zvyšovala obtížnost, až hráč nakonec
potupně zhynul a jediným výsledkem bylo nahrané skóre. Typickými zástupci
takové sorty her jsou například Space Invaders, Centipede, Galaxian, atd.
Bohužel, krásné sny jsou jedna věc a jejich následná realizace věc druhá.
Viď, Bob!ku!? Takže vymyslet něco alespoň trošičku odlišného od všeho, co
jsem kdy viděl a hrál, to bylo neskutečné peklo. Ono se vlastně ani nedá
přijít s něčím zcela originálním čili jsem se nakonec spokojil s prostým
plánem stvořit hru, kde panáček bude v uzavřeném prostoru vysbírávat ovoce
mezi nějakými překážkami. S tím, že překážek bude pořád víc a víc, až
panáček nebude mít jak utíkat a umře. Tečka.
Když jsem tuto hrubou základní ideu dal jakž takž do kupy, potřeboval jsem
- jako vždy - někoho, kdo to všechno nakreslí a ozvučí. A jelikož jsem již
před tím u Factora opatrně sondoval jeho případnou ochotu se na nějakém
herním projektu podílet, padla volba právě na něho. Já totiž rád
spolupracuji s novými lidmi a takováto jednoduchá gamesa mi připadala
ideální na to, vyzkoušet si jeho schopnosti takříkajíc v ostrém závodě.
titulní obrazovka hry Fruity Pete
Nebudu vás tady zahlcovat podrobnostmi z vývoje FP, řeknu jenom to hlavní.
Můj původní nápad nakonec zůstal ve hře více méně zachován, po mnoha
diskusích s Factorem byl ovšem značně vylepšen a rozšířen. Gamesa dokonce
dostala i závěr a jde tedy dohrát. Jediné, co se poněkud vymklo kontrole,
je její binární velikost. Stereo RMT hudba do titulní obrazovky plus tři
další mono tracky do vlastní hry udělaly svoje. Fruity Pete jde sice pořád
ještě pustit na strojích se 48 kB paměti, z té však zbývá volných jenom
pár stránek.
No a teď to hlavní. Jak že se mi to s Akim spolupracovalo? Jedním slovem
úžasně. Factor byl vždy skvělý muzikant, to víme. Ale on je též výborný
grafik, i když si to sám o sobě možná nemyslí. Ve hře Fruity Pete, kterou
mimochodem pojmenoval právě on, dostal při tvorbě grafiky (a hudby) zcela
volnou ruku a odvedl myslím velmi dobrou práci. K některým jeho návrhům
jsem měl určité připomínky, pokaždé jsme se ale rychle dohodli na
oboustranně přijatelném kompromisu.
Vůbec emailové diskuse s Akim byly mimořádně plodné, to jsem snad ještě
nezažil. Neustále jsme si vzájemně nadhazovali nápady a většinou mi
přišlo, že jsme krásně naladěni na stejnou vlnu. Plus Akio je setsakra
rychlej a spolehlivej jedinec, což já zvlášť oceňuji. Když řekne, že něco
nakreslí a dodá, tak to taky do čtyřiadvaceti hodin udělá. A to všechno
prosím za situace, kdy se musel popasovat s pro něj poněkud
nepochopitelnými limity Atari grafiky. Takovej PG by se k němu mohl jezdit
učit.
A proto vůbec nepřeháním, když tvrdím, že Akio from Tokio je king. On fakt
umí, komunikace s ním je více než luxusní a navíc je to Čech, což je při
debatách nad rozdělaným projektem ohromné plus. Už jsem s pár lidma na
Atari hrách dělal a nepamatuji se, že by mi kdy s někým šla práce líp od
ruky než právě s Akim. Máš to u mne za jedna s hvězdičkou, ty náš
multiplatformní všeuměle!!
herní obrazovka hry Fruity Pete
Dost však bylo nesnesitelných emocionálních výlevů, nyní přichází na řadu jedna technická noticka aneb Zase jsem do budoucna o něco chytřejší. Jelikož nám Fruity Pete postupem času pod rukama sílil a rostl po kilobajtech za den, musel jsem pod tlakem okolností opakovaně šachovat s RMT playerem. A jelikož jsem ve finále měl přehrávat stereo i nestereo hudby (navíc s různými tempy) a navrch též zvukové efekty dohromady s muzikou, nebylo jiné cesty než použít přehrávače dva. Jeden pro stereo a druhý pro mono. Jinak jsem to prostě udělal nedokázal.
Ve svých dřívějších produkcích jsem toto již samozřejmě v různých variacích řešil. Tentokrát mi nicméně trošku vadilo, že zatímco hudba v titulce hraje pěkně stereo, za hry už leze jenom z jednoho repráku, což pak člověka docela dost tluče přes uši. Bral jsem to jako nutné zlo, se kterým nelze nic dělat, protože tak to má být, tak je to správně. Jenomže jsem byl, jako obvykle, zcela mimo mísu.
Seběhlo se to následovně. Jak jsem pořád dokola upravoval a kompiloval Rasterův zdroják k RMT přehrávači, to abych se nějak popasoval s těmi různými tempy, padnul mi mimoděk zrak na proměnnou STEREOMODE, která může nabývat hodnot 0, 1, 2 nebo 3. Zde je popis dané funkce přímo od Rastera:
; STEREOMODE equ 0..3
; 0 => compile RMTplayer for 4 tracks mono
; 1 => compile RMTplayer for 8 tracks stereo
; 2 => compile RMTplayer for 4 tracks stereo L1 R2 R3 L4
; 3 => compile RMTplayer for 4 tracks stereo L1 L2 R3 R4
Nikdy jsem popravdě nerozuměl, proč by STEREOMODE mohlo nabývat celkem čtyř různých hodnot, když je to přece buď chci stereo nebo ne. A proto jsem vždy použil variantu 0 pro mono tracky a variantu 1 pro stereo skladby. Když už se v ale tom hrabu, říkám si, proč si nezkusit malinko pohrát i s tímhle nastavením? A ejhle, mono skladby na stereo strojích najednou při hodnotách 2 a 3 nehrají pouze do jednoho ucha. Krása nesmírná!
Jo, když se nad tím teď takhle zamyslím, asi jsem pro některé lidi svým způsobem zase jednou slavně objevil Ameriku, to mi však radost nekazí. Stejně jako fakt, že kdybych si to býval už dávno přečetl pro změnu jednou pozorně a následně se nad tím řádně zamyslel, mohlo mi to všechno docvaknout mnohem dřív. Ale dokumentace se ze zásady nečte nikdy, nemám pravdu?! :)
I po tom všem mi přesto jedna věc stále není jasná. Proč vůbec používat mono player pro mono tracky, když jeho stereo kamarád překompilovaný na STEREOMODE 2 nebo 3 hraje na mono strojích úplně stejně, zatímco na stereo mašinách jede hezky ve stereu? Že by tam Raster dal možnost 0 pro případ, že by člověk chtěl ušetřit něco na paměti a strojovém výkonu? Jiná možnost mě nenapadá...
Tož. Dopsal jsem a alespoň na čtvrt roku mám (doufejme) od blogu pokoj.
Pochválil jsem Akiho a trochu hořkosladce i sebe, opět jsem lehce
polaskal po hlavičce Bob!ka a ještě jsem si vzal do huby slavné MPG. To je ale nádherný den!
| 2019
| 2018
| 2016
| 2015
| 2014
| 2013
| 2012
| 2011
| 2010
| 2009
| 2008
| 2007
|
|