Atari i Bluetooth by Kaz 2015-01-23 00:18:19

Marcin "Montezuma" Sochacki prezentuje nam dzisiaj swój projekt interfejsu:

SIO2BT czyli Atari i Bluetooth

SIO2BT swoją nazwą nawiązuje do projektów SIO2PC i SIO2SD. Idea projektu to emulacja urządzeń SIO (na przykład stacji dyskietek) na smartfonie i bezprzewodowe przesyłanie danych z/do Atari przez interfejs Bluetooth.



Pewnie gdybym na samym początku postawił sobie takie właśnie cele, to wcale bym się za to nie zabrał :). Na wiosnę 2013 roku postanowiłem poeksperymentować z modułami Bluetooth. Pomysł był prosty – zamiana kabla SIO2PC na połączenie Bluetooth. Testy miały się odbyć na PC-cie z programem AspeQt. Niestety dość szybko okazało się, że rzeczywistość jest bardziej skomplikowana. AspeQt potrzebuje do pracy sygnał Command Line podpięty do portu szeregowego (pod CTS,DSR lub pod RI). Tymczasem stan sygnałów sterujących nie jest przesyłany przez Bluetooth. Na szybko znalazłem w internecie program SIO2BSD autorstwa drac030, który nie potrzebuje do pracy „Command Line”. Program napisany jest wprawdzie pod Linux-a, ale działa także pod Windows w środowisku Cygwin. Pierwszy test i porażka. Podpięty analizator stanów logicznych dał odpowiedź - opóźnienia w transmisji danych przekraczają limity protokołu SIO.

I na tym w zasadzie zakończyłbym swoją zabawę z Bluetooth, gdyby nie xxl, który podesłał mi xbios z własnymi procedurami SIO. Loader załadowałem za pomocą SIO2SD, następnie przepiąłem kabelki i voilà - ładuję grę przez Bluetooth! Teraz wiedziałem już, że się da, ale brakowało mi jeszcze pełnej wiedzy, żeby kontynuować projekt. W międzyczasie zwrócił się do mnie Bernd Herale (jego strona) z propozycją współpracy nad projektem 4MB Flash MegaCart i SIO2BT musiało jeszcze trochę poczekać.



W latach 80-tych nie miałem, niestety, własnego Atari. Kilka lat temu postanowiłem to zmienić. W planach miałem zakup sprzętu i literatury - z zamiarem nadrobienia sporych zaległości. Do mojego „nowego” Atari kupiłem też SIO2SD, ale szybko zorientowałem się, że obsługa tego urządzenia, delikatnie mówiąc, odbiega od ogólnie przyjętych standardów GUI. Szczególnie wyszukiwanie gier z użyciem klawiszy K1-K5 wymagało dużo cierpliwości. Kiedy jednak skopiowałem na kartę SD nowe gry i zorientowałem się, że SIO2SD nie sortuje plików alfabetycznie, postanowiłem napisać program (na PC), który pomaga utrzymać porządek z grami.

Na moim pierwszym Atari party ("NOMAM" w Laboe w 2010 roku) musiałem chyba wprowadzić wszystkich w niezłe zakłopotanie. Nowo poznani koledzy z ABBUC-a pokazali mi wszystkie możliwe wynalazki i rozszerzenia do Atari. Połowa z nich wydawała mi się zupełnie bezużyteczna. Stereo? Mam przecież w PC-cie. Dodatkowa pamięć RAM dla jednego dema? To ja sobie to demo obejrzę w emulatorze. VBXE w cenie trzech komputerów Atari? Może jednak innym razem... Bardzo spodobały mi się natomiast freezer i carty z kolekcjami gier i programów. W rozmowach wykazałem się sporą niewiedzą:



Następnym krokiem było dostosowanie AspeQt do komunikacji przez Bluetooth. Gdy i to się udało, zaczęły się intensywne testy. Pozytywne wyniki i namowy kolegów skłoniły mnie do prób z Android-em. Było to dla mnie kolejne wyzwanie. Znałem wprawdzie język Java, ale jeszcze nigdy nie zaprogramowałem żadnej aplikacji na Android-a. Krok po kroku, wykorzystując załączony do ADT (Android Development Toolkit) przykładowy kod projektu „Bluetooth Chat” zacząłem programowanie.

Tutaj mała ciekawostka. Wszystkie nowe projekty tworzone za pomocą ADT, które mają działać na starszych modelach telefonów, dostają od ADT w prezencie bibliotekę kompatybilności, dzięki której nawet na starszych wersjach Androida aplikacje mogą korzystać z nowych elementów GUI.

Cena tego „prezentu” to spory rozmiar gołej aplikacji (która jeszcze nic nie robi) - ponad 2MB. Mając na uwadze ograniczone zasoby starszych telefonów, nie potrafię zrozumieć tej polityki inaczej, niż zmuszanie ludzi do kupowania coraz to nowszych modeli. Na szczęście udało mi się tak skonfigurować projekt, że pakiet instalacyjny ma jedynie 66kB, a aplikacja na telefonie zajmuje poniżej 200kB. Przy czym SIO2BT można uruchomić na smartfonach z Android-em od wersji 2.1 (kolega znalazł gdzieś w szufladzie Sony Ericsson Xperia E15i). Testowałem ją też na Nexus-ie 5 z Android-em 5. Okazało się, że Java, Bluetooth i smartfony dają radę :)

Główna zaleta korzystania ze smartfona to dostęp do internetu i możliwość ściągania najnowszych produkcji. To uświadomiło mi, że bez obsługi plików dyskowych xex, exe, com (przeważających w internecie) SIO2BT niewiele daje. Postanowiłem więc dodać (oprócz obsługi plików atr) również loader do plików xex. Żeby nie wynajdywać koła od nowa przyjrzałem się loaderom z projektów SDRIVE, SIO2SD i AspeQt. Wypróbowałem wszystkie trzy, ale do ostatecznej wersji SIO2BT zdecydowałem się na (moim zdaniem najlepszy) loader z projektu SDRIVE. Ma on bowiem dodatkową zaletę, że pozwala na emulację dyskietek DOS-owych: wybrany w SIO2BT plik *.xex jest widoczny z poziomu DOS-a i może zostać skopiowany na twardy dysk.



Z takim działającym już SIO2BT pojawiłem się w tym roku na party w Głuchołazach. Od samego początku było dla mnie jasne, że nie dogodzę wszystkim użytkownikom i wiele decyzji podjętych w czasie realizacji projektu to kompromisy. Ucieszyłem się, że SIO2BT wzbudziło spore zainteresowanie i z zaciekawieniem wysłuchałem wszystkich uwag. Na przykład Lotharek spojrzał na ekran smartfona w czasie ładowania gry i spytał, dlaczego nic się na nim nie dzieje. Miał absolutną rację. Nawet stacja dyskietek ma diodę, która zapala się w czasie pracy. Dołożyłem więc do aplikacji prostą animację diody, dzięki czemu widać teraz, czy coś się ładuje (nawet gdy ogłosy SIO są wyciszone).

Inna ważna sprawa, to niechęć użytkowników do modyfikacji OS-a. Pomimo, że wiele osób posiada Ultimate 1MB, lub jakikolwiek inny OS-Switch, to dla purystów ingerencja we wnętrzności Atari jest nieakceptowalna. Idąc tym tropem, wpadłem na pomysł napisania krótkiego loader-a, którego celem jest skopiowanie OS-a do RAM-u i modyfikacja parametrów komunikacyjnych SIO „w locie”. Oczywiście taki loader trzeba jakoś załadować, ale praktyka pokazała, że oryginalny OS radzi sobie bez większych problemów z załadowaniem kilku sektorów przez Bluetooth.

Z pomocą Bernda, Stefana i kodów źródłowych Atari OS, udało mi się utworzyć takie ATR-y (128 bajtów danych + 16 bajtów nagłówka) dla systemów operacyjnych serii XL/XE. Niestety kompatybilność tego rozwiązania daje sporo do życzenia. Nie da się w ten sposób załadować gier, które przełączają banki pamięci w czasie ładowania, itp. Z ciekawości przetestowałem pierwszych 60 gier z kolekcji Homesoft. Z ATR-ów wypakowałem najpierw za pomocą Total Commander-a wraz pluginem ATR autorstwa Pajero, wszystkie pliki XEX. Z orginalnym OS-em i z loader-em udało mi się załadować 70% gier. Ze zmodyfikownym OS-em – wszystkie.

Kolejna ważna uwaga dotyczyła legalności rozprowadzania zmodyfikowanych wersji Atari OS. Podobno kod OS-a w dalszym ciągu chroniony jest prawami autorskimi. Żeby uniknąć problemów prawnych, napisałem niewielki program (na PC-ta), który pozwala użytkownikowi, posiadającemu plik ROM, jego modyfikację dla SIO2BT (pliki te są dostępne w internecie i dokumentacja SIO2BT zawiera do nich linki). Przy okazji - dzięki pomocy Stefana – można dopasować nim również QMEG-a w wersji 4.04 do komunikacji przez Bluetooth.

Były też pytania o iPhone-a. Pomijam podwojenie kosztów projektu (konieczność zakupu iPhona, zapłacenia za licencję SDK), a także dodatkowy czas na naukę systemu iOS i na portowanie aplikacji. Apple celowo nie pozwala aplikacjom na korzystanie z „Serial Port Profile” do komunikacji przez Bluetooth. Kiedyś dziwiłem się, że mini konsola do gier iCADE udaje klawiaturę Bluetooth. Po odwiedzeniu strony Apple wszystko stało się jasne...

Jak co roku, pod koniec października odbyło się coroczne zebranie klubu ABBUC. Na zebraniu członkowie klubu oddali głosy na prace zgłoszone do konkursów w kategorii hardware i software. W tym roku zgłoszono aż 7 prac w kategorii hardware. Tym bardziej cieszy mnie uznanie, jakie otrzymał mój projekt zdobywając 1-sze miejsce. To było ładnych kilka miesięcy pracy, która sprawiła mi jednak sporo satysfakcji.

Poniżej moje małe i subiektywne podsumowanie wad i zalet SIO2BT.

Wady:
amorphous 2015-01-23 00:37:58

Genialne. Czekam na sio2wifi;)

Alfred Nobel 2015-01-23 08:06:44

Jak dla mnie, bomba!

Anon 2015-01-23 08:12:35

Marcin "Montezuma" Sochacki prezentuje nam dzisiaj swój interes. Przepraszam, ale nie mogłem się powstrzymać.

montezuma 2015-01-23 08:43:15

@Alfred Nobel
Rozumiem, że mogę liczyć na nagrodę ;-)

@Anon
Głodnemu chleb na myśli. Przepraszam, ale nie mogłem się powstrzymać.

xxl 2015-01-23 08:48:59

juz nie moge sie doczekac jak Atari zacznie gadac z internetami :-)

_rocky 2015-01-23 09:47:35

Generalnie projekt mi się podoba, jednakże obsługa rozwiązania wymaga pewnych modyfikacji w Atari (nie chodzi mi oryginalność itp..). Przykładowo ktoś z młodego pokolenia (zupełnie nie znający się na Atari) chce zacząć przygodę z Atari (retro staje się modne) i kupuje/dostaje standardowy egzemplarz. Wiadomo, że magnetofon, czy stacja to egzotyk.. Widzi fajną sprawę, mały gadżet, który pozwala załadować gry z poziomu komórki przez BT.. kupuje i tu zonk.. nie działa jak trzeba, a żeby działało trzeba odprawiać jakaś magię z modyfikacją OS (+ koszty Ulitmate)... Pomijam wolną transmisję, standardowa ma też swój urok retro:)
Zgadzam się, że obsługa SIO2SD jest mało wygodna, ale jest to chyba najbardziej kompatybilne rozwiązanie na rynku.

Mi osobiście marzy się sio2sd upakowane we wtyczce (może być nieco większe lub wersja wewnętrzna) ze slotem microSD oraz sterowaniem przez BT z aplikacji na Androida..
Czyli przeniesienie do Androida przycisków i wyświetlacza.
Można by też pokusić się o dostęp do karty przez BT/WiFi (kiedyś widziałem nawet takie karty, ale w dużym formacie), żeby można było bezprzewodowo również ładować pliki na kartę..

Niemniej uważam, że to co już powstało jest fajne i chcę to mieć :)

Pozdr.

xxl 2015-01-23 09:55:14

> mały gadżet, który pozwala załadować gry z poziomu komórki przez BT.. kupuje i tu zonk.. nie działa jak trzeba,

dziala jak trzeba. do ladowania gierek nie trzeba modyfikowac OS - w paczce SIO2BT jest xBIOS loader dla BT. - te informacje sa tez na forum.

_rocky 2015-01-23 10:01:10

Wyżej napisane, że:
"Z orginalnym OS-em i z loader-em udało mi się załadować 70% gier. Ze zmodyfikownym OS-em – wszystkie."

xxl 2015-01-23 10:12:06

to dotyczy loadera ktory przepisuje OS do RAM - poczytaj na forum :-)

montezuma 2015-01-23 10:45:29

Ten opis powstał na początku grudnia. Wtedy nie było jeszcze xBiosa dla BT, który potrafi załadować większość gier.

mono 2015-01-23 14:17:52

Świetny projekt. Dzięki montezuma! Teraz trzeba się postarać o tego Androida.

_rocky 2015-01-23 16:53:41

Jeśli na gołym atarku odpalą się praktycznie wszystkie gry niewymagające rozszerzeń (wiadomo zawsze coś się znajdzie), to.. super sprawa... Uruchamiaj produkcję :)

pin 2015-01-23 23:56:54

... lepiej rozeznaj rynek wcześniej. Życzę jak najlepiej i nie komentuję, bo nie dla mnie ten produkt jest przeznaczony. To bardziej dla graczy chyba.

montezuma 2015-01-24 10:50:53

@_rocky @pin
"produkcji" nie będzie, ale jak ktoś jest zainteresowany SIO2BT, może się ze mną skontaktować

IRATA4 2015-01-24 13:56:28

NO ,kurcze dosłownie zarąbiste rozwiązanie ,jak już koledzy pisali przydało by się wifi;-) .
BRAWO .

larek 2015-01-25 22:13:33

Ciekawe do czego ci to wifi byłoby potrzebne?

@Montezuma, świetny projekt - gratuluję.

montezuma 2015-03-12 21:00:13

Dzięki za wszystkie komentarze.
Umieszczam link do videoblog-a o SIO2BT autorstwa stRing-a:
https://www.youtube.com/watch?v=RA4NNRdEos8&index=1&list=UUHwf7crxfmL45MTQC4XRcXQ

IRATA4 2018-03-11 20:11:26

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

IRATA4 2018-03-11 20:12:17

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

IRATA4 2018-03-11 20:12:35

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

IRATA4 2018-03-11 20:12:57

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

IRATA4 2018-03-11 20:13:14

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

IRATA4 2018-03-11 20:13:33

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

IRATA4 2018-03-11 20:13:48

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

IRATA4 2018-03-11 20:14:05

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

IRATA4 2018-03-11 20:14:34

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

IRATA4 2018-03-11 20:14:53

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

IRATA4 2018-03-11 20:15:27

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

IRATA4 2018-03-11 20:15:50

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

IRATA4 2018-03-11 20:16:15

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

IRATA4 2018-03-11 20:16:47

@larek
np.by pyknac poprzez wi fi wzmodyfikowana wersje takiego Zybexa ,powsal by zapewne jaks komunikator ...ot marzenie

Montezuma 2018-04-10 16:07:03

@IRATA4

Zapętliłeś się :) ?

robertj07 2018-10-26 19:47:34

ile teraz takie cudo bedzie kosztowac?