|
BBC Micro (1. část) (29/01/2012)
Myslel jsem na to hodně dlouho, prakticky od chvíle, co polský Atarista Krzysztof "xxl" Dudek šokoval scénu přímou konverzí hry Knight Lore ze stroje BBC Micro. Co si to taky zkusit? To přece musí být navýsost zajímavá práce, portovat na Atárko nativní aplikace z jiných osmibitových platforem! No a jelikož u mne není nikdy daleko od slov k činům, tak jsem se pouhé tři roky po Dudkově první úspěšné konverzi odhodlal loni na podzim k jakýmsi pokusům i já. O tom, jak vše pobíhalo a co ze mne nakonec vypadlo, budu velectěné publikum informovat v několikadílném seriálu, jehož úvodní část právě začíná.
Na BBC Micro od fy Acorn jsem napřel svou pozornost zcela záměrně, jelikož moje maličkost ovládá pouze assembler 6502. A navíc, kráčet ve stopách mistra xxl bylo více než logické, neboť již bylo z čeho vycházet a hlavně bylo jasné, že nějak to jít prostě musí. Začal jsem tím, že jsem si z webu postahoval nějaké materiály o zmiňované mašince, emulátor BeepEm a databázi her. Tady jsem se pak na několik týdnů zaseknul, dokud mi Bob!k na VZAKu neukázal, jak v BeepEm něco pustit. Sám jsem totiž na to nedokázal přijít. ;)
Pak už to šlo rychle. Jako pokusnou oběť ke své první konverzi jsem si - opět nikoliv náhodou - vybral izometrickou chodičku Alien 8, která je součástí téže série jako Dudkem překonvertěné Knight Lore a Nightshade. Obě tyto hry byly i na Acorn naportovány, v tomto případě ze ZX Spectra. Čili s šířkou obrazu pouze 256 bodů a ve dvoubarevné hires grafice. Ta je na BBC Micro ve stejném kódování jako na Atari, tj. co bit to pixel, zatímco módy s vyšším počtem barev mají kódování odlišné. Jinými slovy data pro grafiku v tomto módu není třeba při portu jakkoliv upravovat.
Dalším krokem bylo disassemblování bináru Aliena, což je pro mne díky Rasterově vynikajícímu RSDISu triviální záležitost. Kompletní zdroják jsem měl tedy v ruce a mohl jsem začít experimentovat. A to doslova, protože o BBC Micro jsem do té doby nevěděl absolutně nic. Brzy jsem zjistil, že podmínky pro konverzi čehokoliv z Acorna jsou více než příznivé a že je to vlastně, při alespoň jistých základních znalostech, poměrně jednoduché. Až mě to samotného překvapilo, neboť jsem to čekal podstatně horší. Pojďme si výsledky mých bádání shrnout.
Výhody portování z BBC Micro na Atari:
* stejný procesor 6502,
* RAM a ROM prostory jsou mapovány de fuckto identicky,
* organizace videopaměti BBC Micro není pro Antic žádný problém,
* prakticky veškerá práce s HW se na Acornu realizuje přes vektory OSBYTE a OSWORD,
* BBC Micro nemá HW sprajty.
První bod myslím nemá cenu nějak rozvádět. 6502 je bez diskuse nejlepší a nejvýkonnější mikroprocesor všech dob a u Acornu udělali moc dobře, když ho do svého stroječku osadili.
Co se týče organizace paměti, tak i zde musím tvůrce BBC Micro pochválit. Udělat RAM od $0000 do $7FFF a ROM od $8000 po $FFFF byl super nápad. Až mám pocit, že odkudsi opisovali. Atari má totiž, jak známo, RAM od $0000 po $BFFF a ROM od $C000 po $FFFF, přičemž do prostoru $8000 až $BFFF se mapují cartridge. Podobnost možná čistě náhodná, ovšem pro naše účely je hotovým darem z nebes, neboť při portu není potřeba kód a data nikam přealokovávat.
Naproti tomu obrazová paměť v grafických módech je u BBC Micro organizována na naše zvyklosti docela zvláštně a pouze díky úžasným vlastnostem Anticu, nejlepšího zobrazovacího čipu v dějinách, dokáže osmibitové Atari to samé, co v roce 1981 vzniknuvší parní kuličkové počítadlo od Acornu. Normální počítač, tj. osmibitové Atari, má videopaměť defaultně lineární. Podstatně méně normální počítač ZX Spectrum ji má rozmlácenou na jakési podivné segmenty, nicméně alespoň každý mikrořádek je pořád lineární sled bajtů. BBC Micro je ovšem zdaleka nejdál.
Možná proto, aby se i grafické módy daly u Acornu snadno používat současně též jako textové, je u nich základem organizace videopaměti něco jako znaková buňka o výšce osm bajtů, přičemž tyto buňky následující v paměti lineárně za sebou. Nejlépe se to dá vysvětlit na dvoubarevné hiresové grafice. První bajt videopaměti definuje nejvrchnější bajt levého horního znaku, druhý bajt videopaměti pak definuje druhý nejvrchnější bajt znaku, atd. Takže prvních osm bajtů videopaměti vykreslí odshora dolu levý horní znak a poté následuje dalších osm bajtů pro druhý znak odleva. Opravdu pozoruhodné řešení, které na Atari naštěstí lze realizovat jako standardní textový mód s několika po sobě jdoucími sadami znaků, které se v paměti nacházejí na stejném místě jako videopaměť použitého grafického módu na BBC Micro.
Z hlediska portování programů (čti her) z Acorna je z mého pohledu velmi sympatický způsob, jakým se software baví s hardwarem. Na Atari, když člověk chce z počítače cokoliv vyloudit, musí znát celé stohy vstupně/výstupních adres. U BBC Micro na to šli jinak, v podstatě velmi podobně jako na PC. Do registrů procesoru se zapíše číslo a parametry funkce, která má na starosti přesně definovanou činnost (parametry se často předávají i přes regulérní RAM) a skočí se na adresu OSBYTE ($FFF4) nebo OSWORD ($FFF1). OS pak provede vše potřebné. To je výhodné proto, že ve zdrojáku je okamžitě vidět, které hardwarově specifické akce je třeba nahradit nějakým atárkovským ekvivalentem.
Poslední bod je velmi důležitý. Kdyby mělo BBC Micro hromadu HW sprajtů, byla by jakákoliv konverze prakticky neproveditelná. Nepřekonatelné hardwarové odlišnosti v oblasti grafiky jsou také hlavní důvod, proč nelze na Atárko přímo portovat hry z C64. Commodorovské gamesy v 99,9% případů používají HW sprity (protože programátoři na C64 to ani jinak neumí) a ty daleko předčí možnosti PMG grafiky našich strojů. Buďme ale rádi alespoň za to, neboť kodéři na BBC Micro jsou na tom daleko hůř. Všechno si musí dělat softwarově a díky výše popsané organizaci videopaměti mají o zábavu skutečně postaráno.
To je pro tentokrát vše. V příštím díle bych rád probral obtíže při portování z Acorna a příčiny toho, proč jsem nakonec nedotáhl konverzi Aliena 8 do finále. Ale neplakejte. Třetí a současně závěrečnou část seriálu o BBC Micro bych chtěl věnovat popisu toho, jak jsem místo této ne příliš akční procházečky na Atárko úspěšně naportoval o poznání zajímavější hru, kterou hodlám mezi lid vypustit v novém čísle magazínu Flop.
Na samotný závěr jedno upozornění. Je docela možné, že tady místy melu pěkný nesmysly, protože o BBC Micro toho stále vím velmi málo. Různými pokusy a pozorováním chování několika acornovských her v emulátoru jsem dospěl k závěru, že to či ono "funguje zřejmě takto", což ovšem rozhodně nemusí znamenat, že tak to také opravdu je. Máte-li proto pocit, že jsem místy zcela mimo mísu, neváhejte a vyveďte mne z omylu. Můj email je vám zcela k dispozici.
OGD (09/01/2012)
Oilgame Deluxe aneb ve zkratce OGD, to je název mojí nejnovější hry, na
které jsem na přelomu roku začal pracovat a která by se měla objevit v
dubnovém Flopu #55. Bude se jednat o poměrně hodně jednoduchou ekonomickou
strategii až pro osm hráčů inspirovanou BASICovskou gameskou Oilgame z
roku 1982. Myslím, že bude více než vhodné vysvětlit, proč jsem se
rozhodl napsat právě zdánlivě nudnou tahovou multiplayerovku.
Důvody jsou v podstatě dva. Za prvé jsem si dal osobní údernický závazek,
že dost již bylo nejrůznějších logických přesouvacích ptákovin, takže
strategie, kterou jsem doposud nikdy žádnou nedělal, se mi jeví být jako
více než dobrá volba. No a za druhé právě hry po více hráčů jsou na všech
akcích mimořádně oblíbené naší hardcorovou partičkou pomatenců, ééééé,
chtěl jsem říct Ataristů, čili OGD píšu hlavně sám sobě pro radost. A to
je setsafra bytelnej argument, proti kterému nelze vůbec nic namítnout.
Původně jsem práce na Oilgame Deluxe odstartoval už na podzim 2010.
Prvotním záměrem bylo BASICovský originál pouze překlopit do strojáku a
udělat ho pro více než čtyři hráče. Raster ale přišel s několika
pozoruhodnými nápady na vylepšení konceptu celé hry, jenomže mi do toho
následně pořád tak kecal, že jsem projekt po pár týdnech uložil k ledu a
pro minulý Flop jsem místo toho napsal multijoyovku Mashed Turtles. Nějak
jsem se prostě nedokázal přenést přes Radkovy poznámky typu "Udělej to jak
chceš, ale není to dobře!" resp. "Udělej to jak chceš, ale já bych to
udělal jinak!"
Taky plány pro letošek jsem měl trošičku jiné, ovšem pod tlakem vnějších
okolností, nad kterými nemám sebemenší kontrolu, jsem byl přinucen
radikálně přehodnotit priority. Místo originální hopsačky jsem se vrátil
zpátky k OGD, což je svým způsobem i dobře. Alespoň za sebou nebudu
nechávat nedotažené věci, zvlášť když si PG dal tu práci s pěknou hires
grafikou. Hra bude současně i jakousi poctou Rasterovi, protože de fakto
všechny jeho ideové návrhy se chystám do finální verze zabudovat a z mé
vlastní hlavy bude jenom jedna fíčurka.
Sranda je, že i přes všechna ta rozšíření zůstane OGD vysloveně
jednoduchou hrou (jelikož jinak by dle mého názoru zcela ztratila v
multiplayer módu na půvabu), kterou bych při plném nasazení dokázal
nakódovat více méně během jednoho víkendu. To by se mi ale muselo do
nějaké intenzivní akce chtít. Místo toho jsem rád, když se občas přinutím
u toho pár desítek minut sedět a po malých kouscích to dávat dohromady.
Asi je to tím, že jsem si tentokrát naložil programování přece jenom dost
málo, a vědomí, že opravdu není kam spěchat, má na mou pracovní morálku
vysloveně zhoubné účinky.
Plně hratelnou verzi Oilgame Deluxe bych v každém případě na živých lidech
rád otestoval nejpozději v půlce března na Foreveru. Doladění
gamesky do co nejlepšího stavu by poté mělo být už pouze otázkou nastavení
parametrů, pokud mi to tedy kolegové z prostějovského (nebo dnes již spíše
olomouckého) Atari klubu neomlátí o palici jako naprosto nepovedený a
nehratelný hnus. To by se ale snad stát nemělo, protože pokud nás baví
původní a naprosto primitivní předloha, tak její vylepšená sestřička by
též neměla zklamat. A pokud to náhodou bude výbuch století, nic hrozného
se neděje. Bude alespoň co dát do Flopu. :)
Á propos, nový Flop se nám začíná docela hezky rýsovat. Již před časem
jsem spáchal tradiční interview a drahý přítel Fly dal s troškou mojí
pomoci do kupy zajímavou textovku, která má v sobě dokonce i obrázky. Na
několika velice interesantních textech pracuje Bohdan, do krásy se určitě svým
nezaměnitelným slohem jako obvykle rozepíše Zdeněk a cosi přislíbil dodat
také Bob!k. Já kromě toho souběžně pracuju na jednom přísně tajném
projektu, se kterým bych se tu rád pochlubil příště. Kdy to ovšem bude, to
skutečně netuším. Jak už jsem psal - jsem teď línej jak to prase.
Jinak samozřejmě přeji všem v novém roce jen to nejlepší a s výkřikem
"Atari je stejně jasně nejlepší!" opět upadám v mdloby.
| 2011 | 2010 | 2009 | 2008 | 2007 | |
Global Stats:
4119 games
2413 demos
Top dowloads:
|
|