Sikor testował Apple II by Kaz 2008-10-02 23:56:44

Przed chwilą otrzymałem tekst Pawła "Sikora" Sikorskiego o emulatorze Apple II, którym uraczył nas ostatnio, szokując i powodując u wielu opad szczęki, kolega Piotr "Artax" Mejer. Sikor obiecał przetestować program w wolnej chwili na prawdziwym sprzęcie i słowa dotrzymał:



"W nawiązaniu do nowinki o emulatorze Apple II chciałbym przedstawić moje spostrzeżenia i sugestie dotyczące emulatora stworzonego przez Piotra. Zgodnie z obietnicą daną autorowi – program został przetestowany na prawdziwym sprzęcie, a mianowicie na Atari 130XE w wersji PAL. Za stację dyskietek posłużyło urządzenie o dźwięcznej nazwie SIO2SD. Niestety, nie udało mi się do testów zdobyć i przetestować dodatkowych obrazów dysków z Apple II, poza tymi, które są dostępne na atarionline.pl. Mimo to podzielę się swoimi uwagami na temat emulatora na podstawie dwóch tytułów: „Mystery House” oraz „Spy vs Spy”.



Przepraszam za dość lakoniczny opis, ale testy przeprowadziłem w wolnej chwili, a tych za dużo ostatnio nie mam. I proszę nie krzyczeć na jakość zdjęć – są wykonane telefonem komórkowym. Swój opis oprę na zasadzie wad i zalet oraz proponowanych sugestii, co bym w danym temacie zmienił. Sam emulator uruchamia się błyskawicznie, pokazując nam swoje menu. Cała jego obsługa ogranicza się do użycia trzech klawiszy: START, SELECT, OPTION i jest na tyle intuicyjna, że nie trzeba jej tu przytaczać.



Do największych zalet należy implementacja filesystemu Apple-a, ale jest to jednocześnie największa wada emulatora. Możemy wczytywać programy wielodyskowe jabłuszka poprzez obrazy stworzone na atarowskich dyskietkach, ale trwa to niemiłosiernie długo – prośba do Autora, o ile to możliwe, aby na dole ekranu stworzył jakiś znacznik oczekiwania w przerwach transmisji (są one dość częste), aby ktoś nieopatrznie nie wyłączył programu, myśląc, że coś się zawiesiło. Aż prosi się o zastosowanie szybkiego wczytywania stanu z „dużych” emulatorów dla programów file-owych, o ile takie na Apple istnieją (nie znam tego systemu).



Zmartwił mnie brak obsługi rozszerzonej pamięci w moim standardowo używanym Atari (320Kb), ale tego się spodziewałem (było to opisane na atarionline.pl). Jeśli byłaby możliwość obsłużenia pamięci powyżej 128Kb, to proponuję wpakować tam wirtualną stację dyskietek Apple II, co może podnieść prędkość transmisji (wirtualnej dyskietki Apple). Tak mi się wydaje.



Zaskoczyła mnie jakość grafiki na monitorze – wydaje mi się w moim subiektywnym odczuciu, że wygląda ona znacznie lepiej na prawdziwym Atari, niż na emulatorze. Wielkie brawa dla Autora emulatora. Zmartwił mnie brak możliwości użycia joysticka (przynajmniej mi się nie udało go użyć), ale wierzę, że w kolejnych wcieleniach emulatora i to się uda dodać. Za to nie dziwi mnie brak obsługi dźwięku, choć dzięki wypowiedzi Autora wnioskuję, że być może się ona pojawi… Pojawiają się czasem drobne błędy po resecie emulowanego komputera – nie zawsze potrafi ponownie wczytać „dyskietkę” – ale z racji tego, że sam emulator wczytuje się momentalnie – jest to do przełknięcia, tym bardziej, że na razie mamy niski numer wersji emulatora.



Co do prędkości emulatora – nie mam większych zastrzeżeń, działa on dosyć płynnie, choć w „Spy vs Spy” nie udało mi się opanować klawiatury. Gra działa jak nieco szybszy slide show, ale w tego typu gry można jeszcze z przyjemnością pograć. Na pewno przyjemnością mogą być wszelkie gry decyzyjne, odpalone na rzeczonym emulatorze.



Co według mnie zostało do zrobienia? Niewiele: drobna optymalizacja, obsługa większej pamięci, może obsługa joysticka. Ale zasadniczo i tak się możemy chwalić: mamy już kilka emulatorów działających na prawdziwym sprzęcie. Co mi się jeszcze marzy? Aby Autor dorobił możliwość zrzucania screenshotów na atarowski format (klawisz „Help”?). Bo emulator emuluje także kolorową grafikę, a osobom, które chciałyby robić konwersję grafiki to znacznie by ułatwiło pracę (to tak w nawiązaniu do wątku o "Test Drive"). W każdym razie: wielkie gratulacje dla Autora."
nosty 2008-10-03 10:26:08

Przy okazji takich nowinek zastanawiam sie zawsze jak to mozliwe, ze na pomysl takiego emulatora, albo niemal automatycznych konwersji wykonywanych przez XXL'a nie wpadl nikt w 1984r? (z tego co wiem konwertowano glownie tylko grafike). Ja rozumiem, ze nie w Polsce, ale przeciez w USA firmy produkujace gry na wiele platform mialy i sprzet i odpowiednich ludzi i kase. Toz to bylaby miazga dla konkurencji. Dlaczego nikt nie odwazyl sie chocby pomyslec o emulowaniu na maszynie 8-bitowej innej 8-bitowej? Nawet na ST emulatory Atari XL czy PC XT byly zalosnie wolne i niekompatybilne. Chyba zawazylo jakies myslenie typu "oczywista oczywistosc, ze sie nie da, wiec po co tracic czas probujac". Sam jeszcze 3 lata temu odpowiedzialbym bez wahania, ze do dobrej emulacji jakiegos komputera, trzeba miec platforme 5x szybsza. I juz. Waskie horyzonty i stereotypy myslenia to najgorsze peta dla wyobrazni...

A moze nie mam racji? Moze umiejetnosci programowania rozwinely sie tak bardzo przez te 25 lat? I po prostu wtedy nikt na swiecie zwyczajnie nie potrafil tego zrobic?

Swoja droga, autorzy takich genialnych dziel gdyby zrobili je 25 lat temu w USA dzisiaj byczyliby sie pewnie na Karaibach ;) Pozytywny wniosek z tej historii jest taki: zawsze warto w informatyce probowac robic rzeczy, o ktorych wszyscy mysla ze "sie nie da". Bo pewnie analogicznie do Atari, dzisiaj mozna wymyslic cos na PieCa, o czym wszycy mysla, ze potrzeba do tego komputerow kwantowych i pukaja sie w czolo jak ktos probuje. Mozna zdobyc slawe i zrobic miliony. Do dziela! :D

Yosh 2008-10-03 10:34:40

Emulator jest piękny.... ale niestety sukcesu komercyjnego by nie zrobił (no chyba, że na Apple II jest dużo fajnych tekstówek i gier decyzyjnych).

Po prostu gry mają być płynne :) że się "włączy" to cieszy tylko nas - hobbystów ;P

Artax 2008-10-03 10:42:53

@Sikor:Mam pytanie, w jakim formacie ekrany miały by być zrzucane? Na jakie urządzenie zewnętrzne? Stacja dysków będzie zajęta na płytkę z grą.

Kaz 2008-10-03 10:47:08

Ja mysle, ze oprocz wyobrazni chodzi glownie o prawa autorskie/patentowe, bo szczegolnie w Stanach to swietosc. Wyobraz sobie, ze zaczynasz sie zajmowac tematem emulacji - wymaga to czasu, a wiec pieniedzy, umiejetnosci, osiagniecie celu nie jest przesadzone, a jeszcze moze Ci grozic pozew ze strony potentata komputerowego (nawet nie chodzi o wynik takiego procesu, ale trzeba miec ogromne sumy do skutecznej obrony), ktory przeciez nie odda bez walki przychodow ze sprzedazy Apple II :). Zamiast tego mozesz spokojnie zatrudnic sie w firmie, ktora robi setna z kolei glupia gierke i trzepac na tym kase. Co bys wybral?

nosty 2008-10-03 11:07:15

@Yosh - czasami ludziom chodzi bardziej o programy uzytkowe, gdzie predkosc nie jest tak wazna. Poza tym pamietaj, ze to wczesna, niezoptymalizowana wersja.

@Artax - atari moze miec 8 stacji...

@Kaz - z tego co wiem (a troche sie interesowalem) w przypadku emulacji sprawa rozbija sie glownie o ROM'y czyli wykorzystanie systemu operacyjnego. Ciekawa walka prawna toczy sie obecnie miedzy Apple a jakas firma ktora postanowila sprzedawac Mac OS na swoich maszynach (co jest niezgodne z licencja Apple). Ale sama emulacja jako taka, jesli napiszesz wlasny kod i nie uzyjesz cudzych programow, jest legalna nawet w USA. Ale masz racje, ze tam niektore procesy moga zrujnowac przez sam pozem.

sikor 2008-10-03 11:11:20

@Artax: standardowe atarowskie formaty: 8, 15 czy coś jeszcze, jeśli w danym typie wyświetla. W dobie urządzeń SIO2SD, SIO2IDE itp stacja to nie problem: stacja D1: jest zajęta na "dyskietkę" Apple-a, ale Atari pozwala wykorzystać do 8-miu stacji. Wystarczy jedną na sztywno przeznaczyć na zrzuty ekranowe (rozumiem, że teoretycznie są możliwe, skoro się pytasz) - nawet przy jednym formacie dyskietek. Czyli -teorytezując - na przykład zawsze stacja podmapowana jako D3:, z dyskietkami powiedzmy podwójnej gęstości (choć można to uzależnić od DOS-u) służy wyłącznie do zapisu zrzucanych grafik (a może i stanu emulatora - to byłby dopiero czad) i niczego innego. Programy zawsze się mapują z D1:, więc to nie problem.
Zasadniczo - to nawet nie trzeba wnikać, w jakim formacie jeszt zrzucona grafika. Można zastosować pewną właściwość Atari: ekran (o ile pamiętam) zawsze zajmuje 7680 bajtów, więc taki zrzut to tylko zgranie takiej ilości bajtów od początku pamięci ekranu. Można zrobić wymuszoną indeksację na dysku (na przykład zrzuty zawsze by się nazywały Axx.AES, gdzie xx to kolejne numerki na dyskietce, a skrót AES oznaczał by Apple Emulator Screenschot. Potem takie dane można wczytać gdziekolwiek (nawet krótki, jednolinijkowy programik w Turbo Basicu XL).
W każdym razie: gratulacje za program i poproszę o wersję na rozszeżoną pamięć...

Kaz 2008-10-03 11:28:49

Tak sie zastanawiam - a moze wlasnie takie emulatory istnialy? Firmy robiace gry, a wlasciwie ich programisci mogli sobie ulatwiac sprawe, korzystajac z kodu Apple II czy nawet miec automaty do konwersji grafiki. Mozna dojsc do takiego podejrzenia patrzac na gry typu Mindshadow czy The Institute czy seria Scotta Adamsa - nie sposob nie zauwazyc, ze wersja Atari ma grafike jakos skonwertowana, a moze i kod. Z Apple II? Byloby najprosciej... :). Nie musieli sie od razu tym chwalic.

nosty 2008-10-03 12:07:57

@Kaz - konwertery do grafy na pewno istnialy (stad w niektorych grach paskudna grafika :P ). Ale zeby do kodu to nie slyszalem. Wiem za to ze wykorzystywano kod zrodlowy z innych platform. Moze dla firm tak wydawalo sie prosciej? W koncu robota XXL'a to jednak swoisty reverse engineering.

Co do Scotta Adamsa to o jaka serie Ci chodzi? Tekstowek? Ogolnie do tekstowek kazda firma robila sobie wlasne pseudojezyki (np. z-code) czyli cos w rodzaju "wirtualnej maszyny". Tyle, ze raczej programowali taki silnik osobno na kazdej platformie (znow - pewnie wykorzystujac zrodla), zeby bylo wydajnie. Mogli dzieki temu przeniesc bez zmian caly scenariusz, teksty i wykorzystac to w kolejnych grach.
(BTW. ja zeby moc cokolwiek przeczytac w tekstowkach Adamsa podmieniam w grze na emulatorze czcionki na normalne ;)

iak 2008-10-03 12:57:43

Tak, firmy robiące tekstówki używały najczęściej swego rodzaju maszyn wirtualnych i własnych języków, tak robił Infocom, tak robił Level9. Język Infocomu chyba nawet jest do dziś używany przez fanów do tworzenia nowych gier.
Od pewnego momentu np. nowe gry Infocomu przestały wychodzić na Atari - bo nie napisano na nie nowej wersji interpretera.

nosty 2008-10-03 13:06:57

@iak - aha, to ciekawe wyzwanie programistyczne na Atari mogloby byc ;) Mysle, ze nie chodzilo nawet o moc obliczeniowa ale raczej o ilosc koniecznej pamieci do nowszych wersji silnikow.

Artax 2008-10-03 13:32:04

@Sikor - najważniejsze, wielkie dzięki za test emulatora w realu! Do tej pory nie wiedziałem nawet że emulator działa :) Co do zrzutów, trzeba by jeszcze zrzucić pamięć graczy i pociskow, dlatego się pytałem o format. I mam nowinę, skończyłem wersję emulatora z obsługą dzwięku, do słuchania muzyki to on się raczej nie nadaje :D, ale można pograć w Spy vs Spy z dzwiękiem. Myślę że jutro po testach podeślę ją do Kaza.

Amun-Ra 2008-10-03 13:34:19

Na C64 istniał od dawien dawna emulator Spectruma, co prawda umożliwiał tylko uruchamianie programów w Basicu, ale zawsze.

Kaz 2008-10-03 13:45:24

To nie byl zaden emulator, tylko interpreter jezyka Basic, ktory rozpoznawal komendy z Basica Spectrum. I to nawet chyba nie wszystkie, ale nie pamietam.

bob_er 2008-10-03 14:06:31

w tajemnicach atari ktos opisywal, ze uzywal prawie-emulatora z80 na 6502. nie pamietam tylko kto i w ktorym numerze.

sikor 2008-10-03 14:10:09

@Artax: nie ma sprawy, chętnie potestuję. Do portowania powinna wystarczyć sama grafika, ale mogę się mylić. Na dzień dzisiejszy należałoby dodać obsługę komputerów z rozszeżoną pamięcią i obsługę peryferiów (joystick). W każdym razie - na 130XE działa bez zarzutu ;) Wielkie brawa.

xxl 2008-10-03 14:27:25

Artax: no to czekamy do jutra na nowa wersje apple2 :-). Amun-Ra to o czym piszesz to nie jest emulator, np nie mozna uruchomic programow maszynowych z zx spectrum. Sikor: joy w apple jest analogowy (chyba) gdzie wartosci wychylenia zaleza od uplywajacego czasu (dziala jak wioselka na atari?) - wyczuwam tu problemy.

Kaz 2008-10-03 14:28:02

Sikor - "rozszerzac" od slowa "szeroki".

Ramos 2008-10-03 15:10:55

Ten emulator ZX Spectruma to oprócz w miarę dobrego interpretera języka ZX Basic umożliwiał odczyt programów nagranych na taśmie w formacie ZX Spectrum, ale oczywiście napisane tylko w Basicu. Wyświetlał też grafikę Spectrumowską, ale nie testowałem tego dokładnie. Programy napisane w maszynowym nie działały.

sikor 2008-10-03 15:13:31

@KAZ: dziękuję, ostatnio albo robię beznadziejne błędy, albo nie trafiam w klawiaturę. Zmęczenie bierze górę... Ale będzie lepiej (kiedyś) ;)

Amun-Ra 2008-10-03 15:21:48

xxl: toż właśnie tak napisałem. nie był to tylko interprete- pozwalał w miarę wiernie odtwarzać atrybuty ekranu. Nie był pełnym emulatorem.

xxl 2008-10-03 15:25:32

atrybuty ekranu jak i cala grafika jest przechowywana jak na c64 a nie jak na zx spectrum to jest interpreter basica.

andygroo 2008-10-03 16:26:58

a z ciekawostek ktore pewnie zamieszaly bylo przyjmowanie niektorych instrukcji poke.

Artax 2008-10-03 18:41:21

@xxl - faktycznie jest tak jak mówisz. Badanie wychylenia joja w Apple polega na pomiarze czasu dlatego podobnie jak dzwięk go nie implementowałem

Amun-Ra 2008-10-03 20:29:10

Sprawdzę. Możliwe że pamięć mnie już zawodzi. Sprawdzę i daam znać...

Amun-Ra 2008-10-03 21:16:12

Sprawdziłem - stary, ale jary Spectrum Emulator (1985)(Whitby Computers).p00.
Atrybuty ekranu zmieniane są dokładnie tak samo jak na ZX Spectrum (dwa kolory w bloku 8x8 pikseli) (o to mi chodziło powyżej). Przetestowane za pomocą INK, PLOT i DRAW.
Jeśli ktoś chce potestować: http://rapidshare.com/files/150638315/Spectrum_Emulator__1985__Whitby_Computers_.z
ip.html

Amun-Ra 2008-10-03 21:20:44

Ups. Przydałby się overflow:hidden przy długich linkach. ;)

xxl 2008-10-03 21:39:29

stary dobry interpreter. zapisz na zx od adresu $4000 8 bajtow $ff bedziesz mial pasek poziomy a zrob to samo w tym interpreterze (tylko ze w adresach $e020 bo pamiec ekranu jest przeniesiona z powodu niemozliwosci zorganizowania go w taki sposob jak na zx) i dostaniesz kwadrat. nie zrozum mnie zle, c64 to czadowy komp, ktory ma mase zalet ale to co pokazujesz to nie jest emulator zx spectrum.

glowas11 2008-10-03 21:48:43

To że dopiero teraz powstają takie rzeczy jest konsekwencją kilku czynników.
1. dopiero teraz dusi się z Atari dosłownie wszystko wiele lat musiało upłynąć aby można było poznać kruczki i sztuczki o których nawet tym co ten komputer stworzyli się nie śniło.
2. Tak jak kolega przedmówca powiedział o płynności emulacji, cieżko jest to osiągnąć, no fakt łatwiej jeśli w danym kompie jest ten sam procesor, w tedy emulujemy tylko środowisko a to znacznie ułatwia sprawę , zresztą jestem więcej niż pewien że w tamtych czasach nikt nawet nie myślał o czymś takim jak emulator.Raczej producenci stosowali sztuczki Hardware-owe choćby C-128 aby tylko zachować zgodność z C-64 powód (soft)
3. Sprzęt emulujący aby w 100% mógł udawać maszynę emulowaną musi być zdecydowanie szybszy od emulowanego komputerka i o tym każdy chyba wie .

To takie moje rozważania Pozdrawiam Wszystkich Atarowców.

Kaz 2008-10-03 23:09:45

glowas11 - ad.1) czy poza oszukiwaniem GTIA do zmieszania roznych trybow graficznych w jednej linii cos jeszcze bylo nieznane w 1983 roku, gdy wprowadzono pierwsze Atari z prockiem GTIA? Jakos nic nie przychodzi mi do glowy.

bob_er 2008-10-03 23:55:38

mysl programistyczna byla nieznana (w takim stopniu jak dzis). bo oprocz samych mozliwosci technicznych, nalezy z maszyna sie troche 'obyc'.
zreszta to samo dotyczy dem. te z poczatku lat 90-tych to bylo glownie statyczny obrazek+scroll. jak bylo cos wiecej, to byl wypas. dzis jednak trzeba troche wiecej.

Kaz 2008-10-04 00:23:28

Oczywiscie, zgadzam sie. Ale kolega nie pisal o barierach swiadomosci programistycznej, tylko o tym, ze wiedza byla nieznana. Wiedza byla, tylko tylko prawie nikt z niej nie korzystal.

Dodam jeszcze, ze bardzo duzo zalezy od narzedzi. Bez narzedzi niektorych rzeczy sie nawet nie zaczyna. W 1983 roku wiedziano przeciez o kolorowaniu duszkami, uzywaniu DLI, itd. Ale bez takiego narzedzia jak G2F robienie takich obrazkow jak sie obecnie robi to bylby masochizm czystej wody, o czasie pracy nie wspomne. Popularne jest narzekanie przez milosnikow 8-bitowcow na pecety, ale to pecetom, paradoksalnie, zawdzieczamy sporo z renesansu starych maszynek. Bo nowy soft powstaje dzieki narzedziom na pececie (MADS, G2F, RMT, etc).

Amun-Ra 2008-10-04 01:23:36

Kwestia interpretacji nazwy. Emuluje między innymi Sinclair BASIC i obsługę ekranu. Z przyczyn oczywistych nie działają peek i poke.

Kaz 2008-10-04 01:46:45

To nie problem intepretacji nazwy, tylko wprowadzanie w blad przez autora programu ("Spectrum Emulator" brzmi dumniej niz Sinclair Basic Interpreter"). Takie "emulatory" to mozna napisac nawet w Basicu, mozna emulowac Basic C64 czy dowolnego innego komutera; zrobic, zeby po wpisaniu kilku konkretnych POKE byly konkretne efekty (np. zmiana kolorow), ale to dalej nie jest emulator.

nosty 2008-10-04 10:08:32

wg wiki (choc to nie najlepszy autorytet): "Emulator - program komputerowy, który duplikuje funkcje jednego systemu informatycznego w innym, dzięki czemu ów drugi system zwraca te same rezultaty, co pierwszy. Mówimy wtedy, że pierwszy system jest emulowany przez drugi."

Ja zawsze uwazalem ze emulatorem jest program ktory pozwala uruchamiac kod z innego komputera w _niezmienionej postaci_.
I ze slowo "emulator" odnosi sie do komputera albo chociaz do systemu (np emu Windowsa pod Linuxa) a nie do jezyka programowania.
Czyli wspomniany program moznaby naciagajac definicje nazwac "emulatorem BASIC'a" a nie komputera ZX. A "emulator basica" to wlasnie jego interpreter.
Nie wiem co jeszcze mozna o tym napisac...

bob_er 2008-10-04 10:53:18

a czy to wazne, czy to emulator, symulator, interpreter czy cokolwiek innego?

glowas11 2008-10-04 16:41:51

Dokładnie zgadzam się z kolegą Nosty.

Czarny_faraon 2008-10-04 22:42:17

Nie mogę już się doczekać na emulator apple II z dźwiękiem:)

Artax 2008-10-05 20:03:23

Już jest. Podesłałem do Kaza

Kaz 2008-10-05 23:01:08

Przesylka jeszcze nie doszla.

homek 2008-10-13 06:33:43

szkoda...

Artax 2008-10-14 08:59:08

@Homek: zajrzyj do katalogu z emulatorami. Dzwięk juz jest :)

Kaz 2008-10-15 22:14:17

Potwierdzam, przesylka dotarla i nowsza wersja emulatorka (z dzwiekiem) juz jest. Wkrotce kolejna wersja i przy okazji bogatsza instrukcja - ustawianie parametrow.