Apple II ponownie by Kaz 2008-10-06 02:01:54

Zebrawszy opinie i pomysły czyli tak zwany z angielska feedback, kolega Piotr "Artax" Mejer opublikował wersję 0.9 emulatora, w której główna poprawka w stosunku do 0.8 polega na dorobieniu emulacji dźwięku. Oczywiście prace trwają nadal, ale Piotr chciałby, żeby przed wypuszczeniem wersji 1.0 kibice jego pracy poświęcili chwilę na przetestowanie, czy i jak emulacja dźwięku działa. Piotr niestety nie ma obecnie żadnego sprzętu Atari i całe programowanie wykonuje na pececie, a sprawdza na emulatorze, który jak wiadomo, nie gwarantuje 100% zgodności z oryginałem:

"(...) miałem obawy, czy to ruszy na prawdziwym sprzęcie. Stosuję tam trochę sztuczek, które mogły zawieść, więc miałem pewne obawy. A tu prosze, działa! Zabrałem się ostro do pracy i robię nową wersję emulatora. Na razie podeślę Ci wersję z dźwiękiem, który był niewątpliwie najtrudniejszy, a teraz biorę się za resztę. Sikorowi podziękuje osobiście, szkoda tylko, że nie udało mu się uruchomic emulatora na prawdziwej stacji dysków, ale nie można mieć wszystkiego :).

Piotr "Artax" Mejer


Testy zajeły mi trochę więcej czasu niż myślałem, ale uzyskałem stabilną wersję. Tryb 0 dżwięku - to tryb natywny Apple, ma dużo zniekształceń ze względu na przerwania Atari, 2 to tryb z emulacją na generatorze, dużo ładniejszy, ale odległy od oryginału, 1 to miks tych dwóch trybów, pozostałe to wariacje ze zniekształceniami generatora. Tryby i głośność dźwięku można zmieniać w czasie emulacji, wciskając klawisz START i przechodząc do opcji emulatora. Uwaga! Aby uruchomić obsługę dźwięku, podczas uruchomienia emulacji głośność dźwięku należy ustawić większą od zera. Nie zalecam uruchamiania obsługi dźwięku dla programów, które go nie mają. Wracam do wersji 1.0, w której uwzględniłem uwagi dotychczas zgłoszone. (...) Miłej zabawy."

Nie byłbym sobą, gdybym nie wypytał o tą nową wersję. Piotr ujawnił nieco swoje zamierzenia: "Oprócz poszerzenia funkcji obsługi błędów, którą zawiera już wersja 0.8, zamierzam wprowadzić możliwość definiowania parametrów emulacji już w momencie konwersji programu z Apple na Atari i zaszycia ich w pliku wynikowym. Planuję też dodać do parametrów emulatora listę punktów emulacji hardware'u wraz z możliwością ich blokowania. Wiem, że brzmi to cokolwiek zawile :), ale wyjaśnię to w instrukcji, a moim celem jest danie możliwości testerom do eksperymentów w uruchamianiu nowych gier i programów oraz w ich optymalizacji. Informację, komu się udało uruchomić dany program/grę będzie można wpisać do pliku wynikowego/na dyskietkę wyjściową i będzie ona widoczna w momencie uruchamiania pod emulatorem. Jeżeli testerowi nie uda się uruchomić programu, może go podesłać do mnie wraz z kodem błędu wyświetlanym przez emulator. Generalnie zamierzam z testów urządzić dobrą zabawę. Bo chyba o to chodzi, nie?"

Jak Piotr ocenia szybkość emulacji, co zresztą interesowało także ludzi na Atari Age? "Teoretycznie Atari powinno być szybsze niż klasyczne Apple ze względu na wyższa prędkość pracy procesora Atari. Ale jak obaj wiemy teoria teorią, praktyka sobie... Są dwa podstawowe czynniki zwalniające emulację. Pierwszy to obsługa grafiki w trybie hi-res. Im większy ustawimy parametr "SPEED GRAPHICS" określający, ile linii grafiki jest odświeżane na jedno przerwanie pionowe VBL, tym mniej czasu zostaje dla emulacji. Przy standardowym ustawieniu na 6 prędkość emulatora jest niewiele mniejsza niż prawdziwego Apple. Niestety jest drugi czynnik: podsystem dyskowy i jego obsługa. Powiem tyle - spędziłem nad nim 2 miesiące i zrobiłem, co mogłem - ale nadal jest kilkadziesiąt razy wolniejszy niż prawdziwy. Po prostu biedny procesor Atarki najpierw emuluje elektronikę stacji dysków pracowicie przekodowując dane wejściowe na impulsy na głowicy dyskowej i stany kluczy silnika krokowego, a następnie już jako emulowany Apple równie pracowicie je odkodowuje z powrotem. A biorąc pod uwagę moje mocno uzasadnione podejrzenie, że twórca tego algorytmu musiał balować tydzień przed jego stworzeniem i konsultował go z białą myszką i różowym słoniem, to musi to trochę potrwać. Ciekawe, co oprócz części elektronicznych, stało w tym garażu..."

wersja 0.9 obsługuje dźwięk


Poprosiłem też Artax-a o opowiedzenie kilka słów o sobie, w końcu wcześniej nie był znany w środowisku Atari, nie słyszałem o jego większym programach, chociaż aby się upewnić, przekopałem trochę internetu. Podejrzewałem, że musiał jednak coś pisać, bo przecież z marszu nie pisze się emulatora Apple II dla małego Atari... :). Piotrek wyjaśnił: "Rzeczywiście kiedyś pisałem, ale były to bardziej wprawki niż porządne projekty. Najbardziej skomplikowaną rzeczą jaką do tej pory napisałem na małą Atarkę to był loader do plików typu BOOT do jednego z systemów kasetowych TURBO (były kiedyś takie cuda :). Skąd jestem? Z Krakowa. Nie wiem dlaczego, ale zawsze w tym momencie chce mi się powiedzieć "Z królewskiego miasta Krakowa" ;). Tu się urodziłem, tu żyje i pracuje, i tu, mam nadzieję, umrę. Swoją drogą mam nadzieję, że jeszcze trochę pociągnę... :D. A dlaczego zająłem się Atari? Jak zacząłem się nad tym zastanawiać to mi wyszło że powodu klęski Niemiec w drugiej wojnie światowej... Jak bym miał więcej czasu to bym pewnie doszedł do wynalezienia ognia przez naszych przodków... więc lepiej uważaj z niektórymi pytaniami ;). Ale z tymi Niemcami to akurat szczera prawda..."

Sami możemy się więc przekonać, że Artax to ciekawy człowiek. A download ciekawego programu napisanego przez ciekawego człowieka znajduje się tutaj. Jak można zauważyć, stworzyłem osobny katalog dla emulatorów, zgodnie z pomysłem Sikora. Będzie to dobre miejsce na gromadzenie dyskietek z programami Apple II, które działają z emulatorem oraz zostały przekonwertowane do formatu dyskietek atarowskich (to samo dotyczy programów ZX Spectrum). Mam nadzieję, że Artax wkrótce opisze nam, jak wykonywać takie konwersje: "Postaram się przygotować dokumentację do emulatora i programu do konwersji dyskietek Apple II na standard Atari, co pozwoliło by na rozpoczęcie testów." Na moją sugestię, że dysk atr, który zawiera program dla Apple mógłby być jakoś oznakowany, żeby odróżniać się od zwykłych dyskietek dla Atari, po próbie jego odpalenia na Atari pokazywałby się jakiś tekst w stylu "Apple II Emulator disc" Piotr odpowiedział: "Będzie w nowej wersji. Ale dodatkowo będzie się pokazywać nazwa dysku i osoba która go stworzyła :)".

Na koniec zaproponowałem, aby wymyślić jakaś nazwę dla emulatora. Samo "Apple Emulator" jest tak standardowe, że aż niewyróżnialne. Swego czasu zaproponowałem xxl-owi nazwę dla jego emulatora ZX Spectrum - zXEmulator, tutaj również pokusiłem się o propozycje: Orb (jabłko w sensie berła - oznaki władzy królewskiej, tutaj: oznaka, że to Atari rzadzi!), Pulp (słowo oznaczające rozkwaszone jabłko, tutaj: Atari emuluje Apple w sposob troszke "zmiętolony"), Apple Juice (tutaj: wyciśniecie soków z Apple na potrzeby Atari). Wspólnie z Artaxem ustaliliśmy, żeby dać szansę wszystkim chętnym na wymyślenie jakiejś prostej, chwytliwej nazwy. Tak więc do dzieła: jeżeli masz dobry pomysł to już wkrótce wymyślona przez Ciebie nazwa będzie oznaczała słynny na całym świecie emulator Apple II dla Atari... :). Pomysły można podawać niżej w komentarzach. Jednoosobowe gremium w postaci Piotra wybierze taką nazwę, która mu najbardziej pasuje.
sikor 2008-10-06 08:25:05

Gratulacje!!! W wolnej chwili chętnie potestuję, a dziękować mi naprawdę nie trzeba - każdy by to zrobił na moją wersję. Oprócz sugetii opisanych wcześniej nasunęło mi się coś jeszcze w myślach, po przeczytaniu powyższego tekstu:
1. "zamierzam wprowadzić możliwość definiowania parametrów emulacji już w momencie konwersji programu z Apple na Atari" - hmm, a może dałoby się stworzyć oddzielny konwerter dla laików? Taki programik na Atari, który po włożeniu do stacji dyskietki Apple-a podziała sobie ile musi, wypluwając przy okazji dyskietkę w Atarowskim programie?
2. Znacznik na dyskietce przy bootowaniu - jak najbardziej za.
3. Sprawdzenie na prawdziwej stacji - jak najbardziej możliwe, postaram się to zrobić
4. Jeśli już emulujemy dyskietki Apple-a na formacie Atarowskim, to może możliwe by było ich zapisanie na większej pojemności (mamy do wykorzystania na przykład 16MB na "partycji" MyDosa i wybieranie odpowiedniego obrazu z menue emulatora - większość sceny używa i tak urządzeń twardodyskowo-pochodnych. Oczywiście zakładam, że obsługa pojedyńczych dyskietek też byłaby zachowana.
5. Co do nazwy, to moja propozycja brzmi: "AtApplE II" - od "Atari Apple Emulator II", czyli od Atari emuluje Apple 2.
W każdym razie - wielkie brawa dla autora. Jak dam radę, to koło niedzieli potestuję na real sprzęcie.

sikor 2008-10-06 08:30:33

@KAZ: jeszcze jedna prośba: do działu emulatory (mimo, że jest to interpreter) wypadało by dodać jeszcze "Chip8 i SuperChip8 Emulator" Pirxa - wtedy wszystko będzie na swoim miejscu ;)

Artax 2008-10-06 08:50:10

Taki właśnie programik posiadam :) Jest niesamowicie siermiężny, ponieważ pisałem go na kolanie do testów, ale swoje zadanie spełnia czyli konwertuje pliki dsk na atr. Nowa wersja którą przygotowuję normalnie będzie działała w trybie automatycznym, ale oprócz tego będzie mogła obsługiwać parametry emulacji, co umożliwi uruchmianie większej ilości programów Apple. Co do obsługi większych partycji...raczej nie włoże tego do wersji 1.0. To wymagało by wprowadzenia do kodu mikrodos'a a miejsca w pamięci już mało...

sikor 2008-10-06 09:03:38

@Artax: "Co do obsługi większych partycji...raczej nie włoże tego do wersji 1.0." - i tak odwalasz kawał dobrej roboty. A co z odczytem "stanów emulatora" z większych maszyn, co proponowałem wcześniej - da radę? Byłoby super ;)

Artax 2008-10-06 09:25:49

@Sikor:"A co z odczytem stanów emulatora" - będzie :)

Kaz 2008-10-06 10:26:37

Dodalem Chip8 and SuperChip8 emulator do dzialu emulatorow.

Ramos 2008-10-06 15:24:57

Świetna robota, gratuluje.
- Czy idzie na emulatorze tworzyć własne progarmy np. w BASIcu i je zapisywać na dysk. Czy wogóle jest możliwość zapisywania plików do formatu Apple, a później je odczytywanie pod prawcziwym Apple czy jego emulatorze.
- Czy można tworzyć muzykę na jakimś programie do muzyki z tego komputera? To samo tyczy się programami graficznymi.
- Czy w tej wersji można podpiąć joya?
Przydałoby się stworzyć małe archiwum gier, dem i programów użytkowych, które działają pod tym emulatorem.

Tu znajdziesz sporo informacji o Apple oraz kilka systemów napisanych dla tego komputera. Jest tam też GEOS znany z C64.
http://mirrors.apple2.org.za/
oraz sporo innych rzeczy gry, programy uzytkowe itp.:
http://home.swbell.net/rubywand/A2FAQs7GAMESITES.html
Gra: Crowley Manor
http://monsterfeet.com/1mhz/

Yosh 2008-10-06 15:30:00

Brawa, brawa

@Artax: z czystej ciekawości - emulacja musi schodzić aż do silnika krokowego? nie ma tam tak pięknie że OS wysyła ładne rozkazy do stacji jak w Atari?

Artax 2008-10-06 20:28:35

@Ramos:"Czy idzie na emulatorze tworzyć własne progarmy np. w BASIcu i je zapisywać na dysk" - można tworzyć programy w BASICu, ale problem jest z zapisem. Emulator obsługuje tylko odczyt z dysku. Może uruchomie emulacje taśmy, ale to nie jest na razie priorytet. " Czy można tworzyć muzykę na jakimś programie do muzyki z tego komputera?" - można, podobnie korzystać z programów graficznych. Tryb HiRes jest obsługiwany w pełni. "Czy w tej wersji można podpiąć joya" - niestety nie, może w wersji 1.0. Po wprowadzeniu dźwięku implementacja będzie dużo łatwiejsza. "Przydałoby się stworzyć małe archiwum gier, dem i programów użytkowych" - na pewno, niestety na razie nie mam czasu na poszukiwania i konwersje.

Artax 2008-10-06 20:33:50

@Yosh:sam zobacz :)

;ustawienie faz silnika krokowego glowicy

_Pha0On LDY #0
JMP ChgPha
_Pha1On LDY #1
JMP ChgPha
_Pha2On LDY #2
JMP ChgPha
_Pha3On LDY #3
JMP ChgPha

Artax 2008-10-06 21:07:07

@Ramos:czy mógłbyś przetestować które z programów które podałeś chodzą na Apple][+? Np. GEOS? To ułatwiło by mi pracę, ponieważ nie musiałbym wyszukiwać softu który Cię interesuje

Artax 2008-10-06 21:08:38

@Kaz: prośba, popraw powyższą linie. Źle wpisałem nicka...

Kaz 2008-10-06 21:13:59

Poprawilem.

_rocky 2008-10-06 21:21:38

Witam...

Proponuję nazwę Gloster ... Podobnie jak Macintosch, jest to odmiana jabłek (bardzo dużych czerwonych)..

Inna nazwa to Applet ... jak aplet javy.. czyli coś działającego jak maszyna w maszynie (wirtualna maszyna javy)...

Pozdrawiam

CePe 2008-10-06 21:43:11

Glosterkeller ;D

Kaz 2008-10-06 22:00:35

Raczej Glosterkiller :)

miker 2008-10-06 23:14:01

A może po prostu "AEmu" (bo raczej Amigi czy Acorna emulować nie będziemy). A jako logo emulka można dać "zhackowany" znaczek z gry AE - ten co podczas gry jest (taka moja luźna uwaga). :)

Lechos 2008-10-07 11:16:27

Genialny program. Ja pomyślałem A2E Apple Emulator.

irwin 2008-10-07 13:17:27

Apple2Atari

Jacques 2008-10-07 13:18:41

Moja propozycja: ApplEmu lub Applygy (od nazwy Syzygy) albo... Applari II :-)

irwin 2008-10-07 13:23:11

uzupełniam swój wpis:
Apple2Atari jak np Doc2Pdf lub Bmp2Jpg ("2" w nazwie będzie pełnić wtedy podwójną rolę raz: Apple2 a dwa oznacza angielskie "to")

iak 2008-10-07 22:42:20

Marmelada (Marmelade).
Ewentualnie Jabłecznik (Cidre lub Cider).

Kaz 2008-10-07 22:52:27

Marmolada mnie rozwalila, LOL.

sikor 2008-10-08 11:11:06

Znalazłem w sieci coś takiego: http://www.apple2.pl/2books.html - może się przyda Artax-owi lub XXL-owi, choć oni pewnie te pozycje znają...

Artax 2008-10-08 13:01:53

Extra! ładny zbiorek. Rzeczywiście cześć z tych pozycji mam, ale to jest wszystko.

sikor 2008-10-08 13:28:26

@Artax: w takim razie cieszę się, że się na coś link przyda(ł) ;)

iak 2008-10-09 23:11:50

Kaz, akurat Marmelada to poważna propozycja. ;]
Jak mówił tytuł jednego ze znanuch artykułów "grunt to sexy name". A zabawna nazwa jest chyba lepsza niż typowo techniczna. No, ale o tym pewnie zdecyduje sam autor.

Kaz 2008-10-10 01:56:27

Alez ja nie twierdzilem, ze niepowazna. Wlasnie bardzo mi sie spodobala i rozmieszyla.

Artax 2008-10-10 08:31:54

Autorowi też się podoba !