1

Zacznę od tego, że niestety Atari800, ani żaden inny emulator ATari XL/XE nie powstał w wersji na system Google Android. Pomyślałem jednak, że skoro istnieje bardzo dobry emulator Amigi, a Atari800 w wersji amigowej również jest, to można ten problem tymczasowo obejść :-) Postanowiłem uruchomić amigowy Atari800 pod emulatorem Amigi UAE4droid na Androidzie, ale niestety Atari800 dostępny jest tylko jako archiwum LHA - czyli w postani nieodpalalnej :-( UAE obsługuje niestety jedynie pliki ADF, czyli obrazy pojedyńczych dyskietek.

Czy ktoś potrafi stworzyć bootowalną dyskietkę (lub dyskietki) z Atari800 w formacie ADF?

Z góry wielkie dzięki za any help :-)

2

A ten, za pomocą NestedVM nie da się zrobić przypadkiem wersji Java Atari800, którą możesz odpalić na Androidzie?

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

3 Ostatnio edytowany przez alex (2010-09-13 16:16:18)

To może wydać się zabawne, ale nie mam ani jednej Javowej aplikacji na Androida :-)

Wiedziałem, że Android jest oparty na Javie, ale jakoś nie zgłębiałem tematu. Zainspirowałeś mnie jednak, poszperałem i znalazłem takie cacko http://www.netmite.com/android/

Właśnie skonwertowałem ASAP i.... działa :-) Można więc uznać, że playerek do SAP-ów na Androida już mamy. Teraz zostaje kwestia całego emulatora.

4

No ale jak to? Gra muzyka?

https://www.youtube.com/watch?v=jofNR_WkoCE

5

Android ma całkiem sensowne NDK, w którym można pisać natywnie w C/C++. Wydaje mi się, że nie powinno być wielkiego problemu w przeniesieniu atari800 w ten sposób.

6

niby pozwala stworzyc aplikacje rysujaca po framebufferze, choc powinno sluzyc do robienia jni wywolywanego z poziomu dalvika, ale "da sie" tez calkiem natywne aplikacje zrobic - problem w tym ze nie moga korzystac z bogactwa frameworkow systemowych dostepnych wlasnie z dalvika (obsluga klawiatury ekranowej itd).

aplikacje mieszane (na dalviku "pobranie ekranu gl" + event loop, reszta natywnie po jni) - dzialaja calkiem sensowne jesli chodzi o predkosc

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

7

@Fox: Gra i to całkiem dobrze! Jedyny minus to małe opóźnienie od kliknięcia do startu odtwarzania - w przypadku zwykłych muzyczek jakieś 3-4 sekundy, w przypadku tych z samplami znacznie dłużej. Poza tym jak się kilknie przypadkiem raz jeszcze podczas tych kilku sekund, to muzyczka odtwarza sie podwójnie (drugi wątek). Nie działa też pasek przewijania. Całość testowana na Samsungu Galaxy S :-)

8

Nie ma paska przewijania. Jest pasek postępu, który teoretycznie ma pokazywać, w którym miejscu gra, ale w praktyce pokazuje postęp buforowania całej muzyki - prawdopodobnie w czasie wyżej wspomnianego "opóźnienia" odbywa się cała emulacja.

Jakiego API używa ten skonwertowany ASAP do odtwarzania dźwięku? Bo w android.media znalazłem tylko MediaPlayer, AsyncPlayer i SoundPool, którym zapodaje się dźwięk przez URLa.

https://www.youtube.com/watch?v=jofNR_WkoCE

9

Kurcze nie wiem.... Użyłem tylko tego konwertera (http://www.netmite.com/android/srv/2.0/getapk.php), który sobie zassał oryginale pliki JAD i JAR, wypluł APK, który zainstalowałem na pokładzie, a następnie za pomocą wcześniej zainstalowanego App Runnera (http://www.netmite.com/android/) odpaliłem midleta i gra :-) Dodam, że ten trick działa prawie z każdym Javowym midletem.

10 Ostatnio edytowany przez jellonek (2010-09-14 18:08:55)

ja na hero mam znacznie dluzsze opoznienie przy starcie, ale nie dziwne - znacznie wolniejszy proc ;)
btw. tak, "progressbar" od razu jest na full, tak wiec cala emulacja na raz leci zanim jakikolwiek dzwiek pojdzie.

co do api - mozna przez AudioTrack bez streamowania po http. jak to robia w tym posredniczacym api do j2me - nie wiem - ciezko mi cos w ich zrodlach wyczytac, ale mam program do deasemblacji apk to moze cos od dupy strony obczaje ;)

added:
ok. widze pliki takie jak (deasemblaty klasy):
AndroidMediaPlayer$InputStreamToServerSocket.smali
AndroidMediaPlayer$MediaListener.smali
AndroidMediaPlayer$PlayerNotifier.smali
AndroidMediaPlayer.smali

to ostanie zawiera m.in.
.implements Ljavax/microedition/media/Player;

tak wiec widac jada "stara metoda" kompatybilna ze starymi frameworkami, tj. implementuja microedition.media.Player streamujac sie po sockecie... wersja z AudioTrack pewnie ma mniejszy narzut - ale pewnie ogranicza zodnosc z api >2.x (wlasciwie standard od kilku miesiecy).

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

11 Ostatnio edytowany przez Fox (2010-09-14 18:20:35)

Ok, spróbuję tego AudioTrack, Android 2 chyba jest popularny. Dzięki!

Edit: AudioTrack jest udokumentowane "Since: API Level 3", czyli jak widać w wikipedii Android 1.5.

https://www.youtube.com/watch?v=jofNR_WkoCE

12 Ostatnio edytowany przez alex (2010-09-18 11:05:33)

No to trzymam kciuki :-)

A tak wracając do tematu, ktoś jest mi w stanie pomóc z tą amigową dyskietką bootującą z atari800?

13

Na Android Froyo 2.2 działa Adobe Flash Playerek i ASAP flashowy śmiga :-)

14

Na jakim procku? SAPy z samplami się nie tną?

https://www.youtube.com/watch?v=jofNR_WkoCE

15

alex napisał/a:

No to trzymam kciuki :-)

A tak wracając do tematu, ktoś jest mi w stanie pomóc z tą amigową dyskietką bootującą z atari800?

Jeśli emulator Amigi na Androidzie jest rzeczywiście dobry, to ma chyba możliwość obsługi więcej niż jednego napędu, a co za tym idzie wystarczy dyskietka niebotująca. Szczerze to mógłbym pomóc gdybym widział w tym choćby najmniejszy sens. Sensu takiego jednak nie widzę.
Po pierwsze  na aminecie są tylko bardzo stare wersje przeznaczone dla procka 68k. odpowiednio 0.6.0 z 1996r i 0.9.2 z 1998r. Jak pamiętam były to (przynajmniej w wersji amigowej) emulatory dosyć kiepskie. Wreszcie były to emulatory o bardzo mocnych wymaganiach, śmiem twierdzić że żadna Amiga 68k, nawet oparta o proc 060 nie jest w stanie z akceptowalną prędkością emulować małego Atari. Zabawa z przyzwoitą emulacją Atari w przeciwieństwie do ZX Spectrum, a nawet Commodore 64, zaczęła się tak naprawdę dopiero w erze PPC.Nie wiem jak szybko biega UAE na Twoim (zapewne mobilnym) androidowym urządzeniu, ale mam poważne wątpliwości czy jest w stanie dorównać najbardziej dopalonym Amigom klasycznym. Tymczasem aby móc cieszyć (a nie męczyć) się tymi nielicznymi grami które uruchomią się na tych prehistorycznych emulatorach, powinieneś mieć wirtualną maszynę znacznie przewyższająca prędkością Amigę z 060/50MHz.

Posiadacz Atari 7800 i Atari 800XL (niestety zepsutego)

16 Ostatnio edytowany przez jury (2010-10-22 07:17:42)

genzor napisał/a:

śmiem twierdzić że żadna Amiga 68k, nawet oparta o proc 060 nie jest w stanie z akceptowalną prędkością emulować małego Atari.

Nie wiem jak to jest w świecie Amigi ale wydaje mi się że trochę przesadzasz :) . U mnie na Falconie z  CT63 podkręconym na 93MHz, Atari800 dla większości gier pokazuje prędkość oryginału w przedziale 90-103% więc nie jest źle :) Gorzej z demami, taki numen to nawet na jednym efekcie zwalnia do ~40% ale większość efektów i tak jest ~85%. Problem w tym że to Atari800 to wersja 2.1 ale podobno skompilowana bez dzwięku ( bo nic nie słychać :P ), więc dzwięk jeszcze by trochę mocy zjadł. Choć myślę że większość gier byłaby i tak w pełni grywalna, tyle że nie udało mi się Stehlika namówić ( a naprawdę byłem uparty ) na skompilowanie tej wersji z dzwiękiem pod TOSa. A szkoda, bo naprawdę użyteczny kawałek emulatora i to na Atari Falcon :) Do tego jeszcze można trafić na MC68060 która bez większych problemów kręci się na takie 107 MHz i wtedy to już emulacja Atari 8-bit pełną gębą :D

17

Wszystko zależy od tego czy emulator Ami (UAE4droid) używa JIT... Jeśli tak, to jest szansa na dużą i przewyższającą Amigę 060 szybkość.

18

Jacques napisał/a:

Wszystko zależy od tego czy emulator Ami (UAE4droid) używa JIT... Jeśli tak, to jest szansa na dużą i przewyższającą Amigę 060 szybkość.

W kwesti dźwięku w emulacji, to ten wbrew pozorom nie musi zjadać "trochę" mocy, czasem zjada jej bardzo dużo. Z doświadczenia wiem że są emulatory (nie mówię tu teraz o małym Atari na Amidze 68k, bo nie mam jak tego zweryfikować), które działają całkiem normalnie bez dzwięku, a po włączeniu emulacji tegoż, stają się całkowicie nieużywalne.
Natomiast co do JITa to taki w UAE jest z pewnością dla procesorów X86 i nie ma na pewno dla procesorów PPC (nie mówię tu o emulatorze Petunia wszytym w AmigaOS 4, bo to inna para kaloszy). Czy jest na platformę Andorida (zapewne pytający posiada procesor ARM), nie mam pojęcia. Jeśli nie ma, to przypuszczam że UAE na procku telefonu komórkowego z przedziału 400MHz - 1GHz (nie mylić wydajności tak taktowanych procków mobilnych z wydajnością procesorów desktopowych) nie osiąga w zastosowaniach pratycznych nawet prędkości gołej A1200. Jesli jest JIT, będzie szybszy od takiej Amigi kilku - kilkunastokrotnie, jednak wątpię aby był szybszy kilkudziesięciokrotnie (060 przyspieszała A1200 ponad 30-krotnie).

Posiadacz Atari 7800 i Atari 800XL (niestety zepsutego)

19

piszac o wydajnosci "prockow mobilnych" bys sie mocno zdziwil porownojac podobnie taktowane atomy i army (zalezy tez ktora generacja).
atom cholernie sucx, za to kod armowy dobrze zoptymalizowany (gcc z pewnymi hintami obecnie optymalizuje znakomicie - tylko trzeba pamietac "jak w c pisac pod arm", podobnie jak przyklada sie uwage piszac pod p4, czy pod sse) w niektorych zagadnieniach spokojnie bije na glowe x86 przy podobnym taktowaniu. (wlasnie na tym polega sila risc ;) )

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

20 Ostatnio edytowany przez pik33 (2010-10-22 16:56:11)

ARM to daleki potomek 6502. :) Natomiast siła 68000 leży w adresowaniu i hurtowej ilości 32-bitowych rejestrów - zasymulować na tym 6502... ciężko. Nie ta architektura. Macie: mc68060@100MHz ledwie zipie przy tej robocie :) Z intelem to samo.. a pecetowa architektura też swoje robi. Efekt? Atari800winplus zżera 12% CPU. AMD x64x2@2500 MHz. Czyli do zaemulowania niecałych 2 MHz 6502 plus paru chipów trzeba 600 MHz mocy x86 :(

No, ale 6502, to 6502. 8-bitowe Atari wbrew pozorom ma moc obliczeniową zbliżoną do PC AT i niewiele niższą od Atari ST/Amigi

Podsumowując: jak masz tego androida chodzącego na ARM, to jest szansa na to że natywny emulator a8 będzie wyrabiał. Ale pomysł żeby zaemulować amigę (zmiana architektury #1) po to, żeby ona zaemulowała A8 (zmiana architektury #2) to nie ma w ogóle szans.

21 Ostatnio edytowany przez Jacques (2010-10-22 17:09:17)

pik33 napisał/a:

Efekt? Atari800winplus zżera 12% CPU. AMD x64x2@2500 MHz. Czyli do zaemulowania niecałych 2 MHz 6502 plus paru chipów trzeba 600 MHz mocy x86 :(

Buehehehehe. Fajne obliczenia, szkoda, że zupełnie bez sensu ;) Żeby tak sobie obciążenie procka pod Windą (no właśnie, którą?) przeliczać na MegaHertze niezbędne do zaemulowania Atarki. To ciekawe jakim cudem już wieki temu Atari800Win działało mi ze 100% szybkości (a mogło więcej z F7) na Pentium 200MMX @ 250 MHz ;)

22

Pik33, zupełnie nietrafione argumenty moim zdaniem. Nie wziąłeś pod uwagę, że emulacja całego komputera (z dokładnością do cykla) to nie to samo co emulacja samego procesora 6502.

What can be asserted without proof can be dismissed without proof.

23

Nie wziąłeś pod uwagę, że emulacja całego komputera (z dokładnością do cykla)

Wziąłem.

To ciekawe jakim cudem już wieki temu Atari800Win działało mi ze 100% szybkości (a mogło więcej z F7) na Pentium 200MMX @ 250 MHz

Przypominam: "a pecetowa architektura też swoje robi."

Mogłeś na P200 jechać karcie graficznej po ramie i rejestrach "na żywca"? Mogłeś użyć przerwań vbl? Mogłeś puszczać dźwięk z karty po DMA?

Mogłeś. A teraz niestety, już nie możesz. I trzeba teraz na emulację te 600 MHz Intela, choć wcześniej starczało 200.

Ale główna teza mojej wypowiedzi była taka: emulacja pod emulacją nie przejdzie. Masz dwie zmiany architektury. Nie ma szans.

pik33: emulacja pod emulacją przejdzie. Bez problemu.

Co do emulacji 6502 na 68060@100MHz daje 100% prędkości 6502 na 100% zajętości 060. Jak by 060 podkręcić do 2500GHz to teoretycznie zajętość procesora spadłaby do 4%, więc nie jest tak źle. Jak by do tego jeszcze dołożyć nowoczesny cache, pewnie byłoby w okolicach 2%.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

25 Ostatnio edytowany przez pik33 (2010-10-22 19:36:24)

No tak, ale musisz teraz zaemulować ten 100 MHz 68060 plus resztę bebechów amigi, na , nie wiem czym - ARM-ie?