~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Atari800Win Emulator Atari 800/800XL/130XL/5200 dla Win32 Oryginalny kod Atari800: David Firth (david@signus.demon.co.uk) Oryginalna wersja dla Win32: Richard Lawrence (rich@kesmai.com) http://www.cris.com/~Twist/atari800win/ 01.04.2000 v2.5e ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Jest to nieoficjalna wersja emulatora Atari800Win oparta na zrodlach Atari800 0.9.9g. Powazniejsze zmiany w kodzie dla Windows: Dodano: 1) Opcje "Enable stereo" w oknie dialogowym "Sound Options". Uzywanie tego rozszerzenia ma sens jedynie przy uruchamianiu wykorzystujacego je oprogramowania (glownie nowe programy demonstracyjne). Wsparcie dla dzwieku stereo wprowadzono w wersji 0.9.9g emulatora Atari800. 2) Opcje "Use digitized effects" w oknie dialogowym "Sound Options". Pozwala ona na uaktywnienie metody generowania dzwieku zwanej "volume only". 3) Prosta konsole monitora oparta na oknie DOS. Aby ja wywolac, nalezy wybrac opcje menu Misc/Monitor lub nacisnac klawisz F7. 4) Skroty klawiaturowe do wywolywania okna dialogowego "Pick Virtual Hard Disk Directories" (Alt+V) oraz akcji zapisu (Alt+Z) i odczytu (Alt+O) stanu emulatora. Poprawiono: 1) Nieobecna w poprzedniej wersji emulacje dzwiekow klawiatury. Aby ja uaktywnic, nalezy posluzyc sie opcja "Use digitized effects" w oknie dialogowym "Sound Options". 2) Problemy z oknem dialogowym "Sound Options". 3) Obsluge bledow generowanych przez DirectX. 4) Wygode obslugi okna dialogowego "Error Log", ktorego rozmiary mozna teraz zmieniac w zaleznosci od potrzeb. 5) Ustawienia projektu emulatora (Visual C++). 6) Kilka pomniejszych bledow. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 29.02.2000 v2.5d ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Jest to nieoficjalna wersja emulatora Atari800Win oparta na zrodlach Atari800 0.9.9f. Podstawowym celem przy opracowywaniu tej wersji bylo uaktualnienie emulatora. Wprowadzono jednak rowniez kilka zmian w kodzie dla Windows: Dodano: 1) Opcje "Use new binary load method" w oknie dialogowym "Hardware Settings". Przy jej uzyciu mozna wybrac alternatywna metode ladowania plikow wykonywalnych, wprowadzona w wersji 0.9.9d emulatora Atari800. 2) Opcje "File Associations" w menu "Misc". Sluzy ona do rejestrowania plikow rozpoznawanych przez emulator, co pozwala na ich bezposrednie uruchamianie z poziomu Eksploratora Windows. 3) Dwie nowe ikonki (dotychczasowe sa nadal dostepne). 4) Alternatywna metode synchronizacji wyswietlania obrazu przez emulator z czestotliwoscia odswiezania pionowego, z jaka pracuje monitor (eksperymentalnie, szczegoly opisano nizej). Poprawiono: 1) Problemy z wymiarowaniem okna glownego w trybach "okienkowych". 2) Problemy z zapisem informacji w rejestrach pod kontrola Windows NT. 3) Problemy z oknami dialogowymi "Cartridge Management", "Hardware Options" oraz "Graphics Options". Rozpoczeto rowniez reorganizacje kodow dla Windows, m.in. dodano pliki naglowkowe. Wiecej o nowej metodzie synchronizacji: Ujmujac rzecz najprosciej, modyfikacje polegaja na dolaczeniu alternatywnej metody uzyskania plynnej grafiki. Na czym polega problem? Otoz uzyskanie DOSKONALE plynnej grafiki (tj. DOKLADNIE takiej, jak na oryginalnej Atarynce) przy uzyciu emulatora Atari800Win czasem nie jest mozliwe. Czesto wynika to z ograniczen sprzetu (w pelni satysfakcjonujaca emulacje zapewnia dopiero PC ~300MHz), ale nie tylko... Oto lista krokow, jakie nalezy wykonac, aby cieszyc sie plynnym przewijaniem obrazu: 1. Skonfigurowac odpowiednio parametry wyswietlania obrazu w uzywanym przez emulator trybie graficznym. Nalezy do tego celu wykorzystac oprogramowanie producenta karty graficznej lub jakiekolwiek inne, mogace posluzyc do tego celu (np. TweakHZ, Power Strip). Podstawowym parametrem, jaki nalezy zmodyfikowac, jest czestotliwosc odswiezania pionowego (vertical refresh rate). Jesli emulator ma byc uzywany w trybie PAL, nalezy dazyc do uzyskania wyswietlania obrazu z czestotliwoscia 50Hz, dla NTSC czestotliwosc ta wynosic powinna 60Hz. Przykladowo, sterowniki kart graficznych firmy Matrox pozwalaja na ustawienie niemal dowolnej czestotliwosci odswiezania obrazu pod kontola Wingrozy (oczywiscie w dostepnym dla tych kart zakresie). Dzieki temu mozna uzyskac 50Hz i to praktycznie w dowolnej rozdzielczosci. Ograniczeniem jest dopuszczalna, minimalna wartosc czestotliwosci odswiezania poziomego (horizontal refresh rate) monitorow VGA, zazwyczaj wynoszaca 31kHz. W przypadku Millenium G400 mozliwosci ustawienia parametrow wyswietlanego obrazu sa jednak na tyle duze, ze 50Hz uzyskac mozna nawet w rozdzielczosci 320x240. 2. Skonfigurowac emulator. W przypadku Atari800Win nalezy wywolac okno dialogowe "Graphics Options" (Alt+G), a nastepnie wybrac tryb graficzny, ktorego parametry obrazu zostaly zmodyfikowane w punkcie pierwszym oraz zaznaczyc opcje "Wait on VSYNC". Jej wybranie spowoduje, iz emulator bedzie czekal z "przeniesieniem obrazu na ekran" na sygnal przerwania synchronizacji pionowej. Po ustawieniu opcji graficznych nalezy sie jeszcze upewnic, ze emulator pracowac bedzie w systemie, dla ktorego ustawilismy parametry obrazu. W tym celu nalezy wywolac okno "Hardware settings" i wybrac "PAL" (50Hz) lub "NTSC" (60Hz). Opcja "Refresh" w tym oknie musi byc ustawiona na 1. To... prawie wszystko. Powyzszy algorytm zapewnia uzyskanie oczekiwanych rezultatow w przypadku wiekszosci emulatorow, dysponujacych opcja "Synchronize with VSYNC". Niestety, uruchamiajac Atari800Win przezyc mozna spory zawod. Tyle wysilkow, a ekran w niezapomnianym "Boulder Dashu" czesto nadal skacze i wyglada tak, jakby go "rozrywano". Wynika to z zastosowanej metody synchronizacji wyswietlania obrazu przez emulator z czestotliwoscia odswiezania ekranu monitora. Metoda ta czasem po prostu nie dziala (chociazby w przypadku wspomnianych wczesniej kart firmy Matrox). Wowczas wlasnie przydatna okazac sie moze metoda alternatywna. Jej wyboru dokonuje sie w okienku "Graphics Options" (Alt+G) przy uzyciu opcji "Wait on VSYNC". W tym celu nalezy zaznaczyc te opcje, ale tak, by "ptaszek" byl nieco bledszy (mowiac prosciej, wybrac stan drugi trzystanowej kontrolki checkbox :-) ). Nowa metoda synchronizacji dziala jedynie wowczas, gdy uzywane jest DirectDraw (zarowno w trybach pelnoekranowych, jak i okienkowych). Ciekawe efekty daje rownolegle uaktywnienie opcji "Run Atari as fast as possible" (okno "Hardware", Alt+H): mozna wowczas sterowac predkoscia pracy emulatora poprzez zmiane czestotliwosci odswiezania ekranu przez karte graficzna (niestety, przy takich ustawieniach trzeba sie pogodzic z brakiem dzwieku). Tyle na temat zalet. Niestety, wad moze byc wiecej: · nie wszystkie monitory/karty graficzne pozwalaja na prace w 50/60Hz, · przewijanie obrazu moze znacznie zyskac na jakosci, niestety nie mozna tego powiedziec o dzwieku; dotyczy to zwlaszcza programow wykorzystujacych dodatkowe banki pamieci, · opcja "Refresh" w oknie dialogowym "Hardware Settings" musi byc ustawiona na 1; oznacza to, ze musisz dysponowac naprawde wydajna (?) maszyna, aby uzywanie tej metody mialo sens. Metoda uzyskiwania plynnej grafiki powinna dzialac na roznych platformach, o ile tylko dostepne sa odpowiednie narzedzia do zmiany czestotliwosci pionowej wyswietlanego przez karte graficzna obrazu (w przypadku kart Matrox komfortowa sytuacje maja wlasciciele starszych modeli, G400 zostala pod tym wzgledem potraktowana nieco po macoszemu). W kazdym razie warto sprobowac - jakosc grafiki uzyskanej przy pomocy emulatora Fellow (DOS) potrafi powalic na kolana :-). Zycze powodzenia, Harry (szymankowskit@prokom.pl) No coz, pozostala jeszcze rzecz najwazniejsza, czyli podziekowania :-) Chcialbym je przeslac nastepujacym ludziskom: · Piotrowi Fusikowi za powazne zajecie sie rozwojem emulatora i solidne wsparcie przy testowaniu okienkowej wersji tegoz, · Xlentowi za podsylane dema i bezcenna pomoc w testach, · Danielowi Kozminskiemu za okazywana zyczliwosc i wytrwalosc w prowadzeniu stron bedacych niezastapionym przewodnikiem po krainie sentymentalnych wspomnien, · mojej zonie Agnieszce za niezwykla cierpliwosc i wyrozumialosc.