Sen se pln aneb Atari do kapsy¢-------------------------------¢Ji② Svoboda, 2002¢¢ Kdyə jsem v roce 1986 poprv⑦ vid❎l Atari a vlastn❎ i po⇨ ta⇨ v
bec, a kdyə se tento osmibitov⑨ stroj v roce n⇧sleduj c m objevil i u n⇧s doma, netu③il jsem, kam se v n⇧sleduj c ch letech pohnou hranice technologie, netu③il jsem, jak⑦ m sto v tomto rychle rostouc m sv❎t❎ po⇨ ta⇨
zaujmu j⇧.¢ Atari jsem m❎l v ce neə p❎t let a jiə b❎hem t⑦ doby m❎ ob⇨as napadaly my③lenky na n❎jak⑨ kapesn po⇨ ta⇨, nejl⑦pe Atari XL/XE kompatibiln . Jedinou moənost tehdy bylo drah⑦ a nekompatibiln Atari Portfolio, takəe tyto my③lenky z
st⇧valy jen snem...¢ Jakkoliv se b❎hem let n⇧sleduj c ch m❎nily sf⑦ry m⑨ch z⇧jm
v oblasti po⇨ ta⇨
, z⇧jem o Atari, a⇨ v m ②e omezen⑦, z
st⇧val. V❎t③inou se v③ak v③e jiə to⇨ilo jen kolem emul⇧tor
. Zprvu velmi ③patn⇧ emulace ve v ce r
zn⑨ch emul⇧torech byla postupn❎ v emul⇧toru s prost⑨m n⇧zvem 'Atari800' p②ivedena k dokonalosti. Dokonal⑦ emulace se poda②ilo dos⇧hnout tak⑦ d ky dostupnosti dostate⇨n❎ v⑨konn⑦ho hardware pro emulaci tak sofistikovan⑦ho syst⑦mu, jak⑨m Atari bezesporu je.¢ Technologie se dnes jiə dostala na ⑤rove, əe dostate⇨n⑨m v⑨konem pro emulaci Atari jiə disponuj nejen desktopy, ale i n❎kter⑦ kapesn po⇨ ta⇨e (handheldy). A protoəe jsem velk⑨m p② znivcem t❎chto za② zen a po ne p② li③ dobr⑦ zku③enosti s Palmem se kone⇨n❎ objevily stroje s moənost provozu m⑦ho obl ben⑦ho opera⇨n ho syst⑦mu Linux, nev⇧hal jsem, a po② dil si Compaq iPAQ H3660, na kter⑨ jsem vz⇧p❎t nainstaloval zm n❎n⑨ opera⇨n syst⑦m.¢ Pokud si mysl te, əe jednou z prvn ch aplikac , kterou jsem se na sv⑦m nov⑦m handheldu pokou③el rozjet, byl pr⇧v❎ emul⇧tor Atari800, m⇧te naprostou pravdu.¢ Moje prvn pokusy se odehr⇧valy s emul⇧torem pro prost②ed X window. Prvn m objeviv③ m se probl⑦mem byl zvuk. Emul⇧tor totiə pouə v⇧ 8-mi bitov⑨ mono v⑨stup, iPAQ v③ak um pouze 16-bit
stereo. Prov⑦st p② slu③n⑦ ⑤pravy zdrojov⑦ho kdu nebylo sloəit⑦ a reproduktorek iPAQa se vz⇧p❎t rozezn❎l typick⑨mi zvuky osmibitov⑦ho Atari.¢ X11 verze tedy b❎əela, ale p②edev③ m d ky specifick⑦mu hardware byla prakticky nepouəiteln⇧. Okno emul⇧toru se totiə ani neve③lo na displej iPAQu (240x320 bod
, v p② pad❎ Atari emulace je v③ak v⑨hodn❎j③ pouə vat ho oto⇨en⑨ na ③ ②ku), nav c tu nebyla kl⇧vesnice (pouze virtu⇧ln , ale kam s n na uə tak p②epln❎n⑦m displeji) a emulace joysticku my③ (u iPAQa stylusem - dotykov⑨m perem) je nepouəiteln⇧ i ve standardn m portu. Dal③ m v⇧ən⑨m probl⑦mem byla nedostate⇨n⇧ sn mkov⇧ frekvence. Aby emulace b❎əela na 100% rychlosti skute⇨n⑦ho Atari, bylo moən⑦/nutn⑦ vykreslovat pouze kaəd⑨ t②et aə ⇨tvrt⑨ sn mek.¢ Pouəit m X11-shm verze (zjednodu③en❎ ②e⇨eno, povolen m toho, aby emul⇧tor kreslil p② mo do pam❎ti grafick⑦ho rozhran ) se sice poda②ilo zv⑨③it frekvenci vykreslov⇧n na kaəd⑨ druh⑨ sn mek (coə uə bylo pouəiteln⑦), av③ak nezmizel ə⇧dn⑨ z dal③ ch, v⑨③e zm n❎n⑨ch, probl⑦m
.¢ Profilerem jsem dodate⇨n❎ zjistil, əe hlavn v⑨konnostn ztr⇧ty zp
sobuje ne vlastn emulace, ale aə vykreslov⇧n hotov⑦ obrazovky Atari na displej, z ⇨ehoə jsem podez② val X window system. Ztr⇧tou v⑨konu obecn❎ nav c trp❎la i kvalita zvuku.¢ Po t❎chto a p⇧r dal③ ch pokusech jsem dosp❎l k z⇧v❎ru, əe nastoupen⇧ cesta nen ta prav⇧ a rozhodl se naprogramovat vlastn port, kter⑨ by zohledoval v③echny vlastnosti PDA za② zen . Znamenalo to doprogramovat do emul⇧toru jeho vlastn virtu⇧ln kl⇧vesnici, doprogramovat emulaci joysticku. P②edev③ m to v③ak znamenalo realizovat zcela nov⑨ grafick⑨ subsyst⑦m.¢ Protoəe Linux pro p② stup k displeji iPAQu pouə v⇧ na nejniə③ ⑤rovni standardn framebuffer device, byla volba jasn⇧. Jak⑦ v③ak bylo m⑦ p②ekvapen , kdyə jsem po prvn m spu③t❎n nezjistil ə⇧dn⑨ viditeln⑨ n⇧r
st v⑨konu. X window system tedy za onu "pomalost" nemohl. Po mnoha dal③ ch pokusech jsem zjistil, əe pomal⑨ je obecn❎ jak⑨koliv p② stup k displeji, p②estoəe videopam❎t je sou⇨⇧st standardn RAM (⑤vahy nad moən⑨mi p② ⇨inami by p②es⇧hly r⇧mec tohoto ⇨l⇧nku). Intern❎ jsem tedy do emul⇧toru zavedl dal③ virtu⇧ln obrazovku, jej ə obsah odr⇧ə aktu⇧ln stav displeje. Kaəd⑨ bod kaəd⑦ho nov⑦ho sn mku je vədy porovn⇧n s p② slu③n⑨m bodem t⑦to virtu⇧ln obrazovky a pouze p②i zji③t❎n⑦m rozd lu je realizov⇧n skute⇨n⑨ z⇧pis na displej a sou⇨asn❎ i do t⑦to virtu⇧ln obrazovky. A⇨koliv se t m nezanedbateln❎ zv⑨③il po⇨et p② stup
do pam❎ti a mnoəstv porovn⇧vac ch operac , efekt na v⑨kon emul⇧toru je dramatick⑨. Pln⑦ sn mky. Odhaduji, əe k viditeln⑦mu zpomalen by do③lo aə tehdy, pokud by se v po sob❎ n⇧sleduj c ch sn mc ch m❎nilo v ce neə 50% bod
. Ojedin❎l⑨ v⑨skyt t⑦to situace v③ak nav c podle m⑦ho n⇧zoru nelze post②ehnout. Pokud se chyst⇧te argumentovat, əe hodn❎ her p②ece "roluje" celou obrazovkou, zamyslete se: Kolik bod
opravdu zm❎n svou barvu?¢ A jak jsem vy②e③il probl⑦m kl⇧vesnice a joysticku? Protoəe vykreslov⇧n obrazovky prov⇧d m sv⑨m vlastn m kdem, nebyl probl⑦m do n❎j vsunout p⇧r ②⇧dk
, kter⑦ p②es Atari obrazovku vykresluj pr
hlednou on-screen kl⇧vesnici a joystickov⑨ "k② ə" (oboj tla⇨ tkem vyp nateln⑦, joystick je pak v celoobrazovkov⑦m reəimu). Joystick je sice emulov⇧n i na "joypadu", iPAQ v③ak neum vyhodnotit ③ikm⑦ sm❎ry (hardwareov⑦ omezen ), a tak bylo nutn⑦ ud❎lat i jeho on-screen variantu.¢ Port sice je③t❎ nen zdaleka hotov, jiə dnes je v③ak velmi dob②e pouəiteln⑨. Pln⇧ sn mkov⇧ frekvence, perfektn zvuk, ovl⇧d⇧n bez v⇧ən⑨ch probl⑦m
. Jeden z m⑨ch d⇧vn⑨ch sn
se splnil. Nos m sv⑦ Atari v kapse. Co v c si p②⇧t?¢¢Pozn⇧mka:¢Pokud snad nejste p② znivci opera⇨n ho syst⑦mu Linux a ve va③em handheldu (nejen iPAQu) pouə v⇧te opera⇨n syst⑦m Pocket PC (Windows CE), nezoufejte. Port pro tento opera⇨n syst⑦m existuje tak⑦, podle m⑨ch informac v③ak zat m nedosahuje kvalit portu linuxov⑦ho (trp nedostate⇨nou sn mkovou frekvenc a hor③ kvalitou zvuku, typick⑨mi zn⇧mkami nedostate⇨n⑦ho v⑨konu syst⑦mu).¢¢Odkazy:¢¢http://atari800.atari.org¢- str⇧nka emul⇧toru Atari800¢¢http://jirkas.atari.org¢- str⇧nka m⑦ho linuxov⑦ho iPAQ portu¢¢http://pocketatari.retrogames.com¢- str⇧nka Windows CE portu