a8.fandal.cz

News

Games

Demos

Fandal's stuff

Emulators

Links

Contact

RSS

Fandalův Atari blog

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.

Abyssus

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

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í.

Abyssus

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ě.

Fruity Pete title

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!!

Fruity Pete ingame

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 |

Global Stats:

4964 games
3628 demos


(complete ZIP)

Search:
Top dowloads:

Games:
Cubico 12180
Lemmings 11008
Mind Blast 10080
HexxagonXE 9821
Astro Road 9566
FreeCellXE 9525
Another World 7865
0 Grad Nord 7489
Jaskiniowiec 6739
Janosik 6413

Demos:
Who Lost the Wallet? 10367
Sturbon Intro 10171
A Tribute to Quorthon 9035
404 Error 7147
1k Party 6568
Numen 6508
8k-Detro 6137
10 Jahre AMC 6061
500 Proc Intro 5981
3D Homer 5948

 


  a8.fandal.cz by Dharma, Fanatic and Fandal, 2004