1

(31 odpowiedzi, napisanych Emulacja - 8bit)

jellonek napisał/a:

byc moze chodzi o skalowanie obrazu?...

Dzięki za błyskawiczny odzew.
Próbowałem wszelkich ustawień dostępnych przez menu emulatora i nic. Próbowałem też inicjować tryb graficzny w mniejszej rozdzielczości (384x240 zamiast 960x540) - bez zmian. Także z opcją "-nosound" nic się nie zmieniało. Tryb turbo (F12) trochę przyspiesza ale i tak to nie 100% i brakuje dźwięku.
Cóż, chyba trzeba będzie powąchać ten mailing list. Wcześniej jeszcze przejrzę źródła.

EDIT1: napisałem na Atari800 mailing-list. Jest już kilka odpowiedzi. Badam.

EDIT2: wypuściłem kolejne wydanie portu Atari800 w wersji 2.1.0. Można pobrać stąd:
http://wiki.samygo.tv/index.php?title=Atari800_emulator
Czy uda się z nowszą wersją? Nie mam pewności. Spróbuję później.

EDIT3: Aktualizacja linku. Temat kolejnej wersji raczej zarzucam.

2

(31 odpowiedzi, napisanych Emulacja - 8bit)

Minęło trochę czasu (rok?) od "sportowania" Atari800 2.1.0 na TV Samsunga (z Waszą pomocą) i dziś postanowiłem do tematu powrócić, jako że zauważyłem nowsze wydania. Po zgraniu źródeł Atari800 2.2.1 przystąpiłem do kompilacji. Okazało się to nieco utrudnione z powodu reorganizacji plików źródłowych, ale jakoś dałem radę. Jedyna poważna modyfikacja skryptu portującego polegała na modyfikowaniu funkcji PLATFORM_AvailableResolutions(), ponieważ w pierwotnej postaci telewizor nie zwracał żadnej rozdzielczości. Po kilku próbach udało się emulator uruchomić na telewizorze. Do testów posłużył River Raid. ;)

Wszystko by było dobrze gdyby nie to, że wersja 2.2.1 w stosunku do 2.1.0 działa o połowę wolniej. Nie wiem co też tak zmieniło się pomiędzy tymi wersjami (chodzi o target SDL na procesor ARM), że zużycie CPU (600 MHz) wzrosło z ok. 50% do prawie 100%, a wskaźnik prędkości emulacji spadł z ok. 99% do ok. 50%.  River Raid jest zbyt łatwy :D a dźwięk jest już nie tylko opóźniony ale także bardzo poniszczony.

Może ktoś podpowie czy można coś zrobić, aby na nowej wersji uzyskać taką wydajność jak na starszej, a jak nie to może wrócę do 2.1.0.

3

(31 odpowiedzi, napisanych Emulacja - 8bit)

KAMMSoft napisał/a:

...nie działa link...

Nie mam ostatnio zbyt wiele czasu i widzę, że na SamyGO się trochę pozmieniało. Oto aktualny link do emulatora i innych plików dla telewizorów Samsung:
http://sourceforge.net/projects/samygo/ … ies/Games/

Aplikacje (gry) można skopiować na pena. Polecam zapoznanie się z dokumentacją:
http://wiki.samygo.tv/index.php5/Atari800_emulator
(sorry, że nie po polsku)

Pozdrawiam

4

(31 odpowiedzi, napisanych Emulacja - 8bit)

Aktualizacja: wypuściłem drugą wersję Atari800 2.1.0 dla Samsungów:
http://sourceforge.net/apps/phpbb/samyg … php?id=258

Trochę było problemów z uruchomieniem joysticka SDL, bo z opcją "-nojoystick" klawiaturowy joy działał poprawnie, a SDL nie, natomiast bez tej opcji SDL działał, a klawiszowy nie. Wydaje mi się, że w kodzie są błędy (swap joya działa na stick a nie na trigger), ale i tak zamieniłem to po swojemu, tj. joy SDL nie powoduje odwracania kolejności joya klawiaturowego.
Tak czy owak, udało mi się pograć w River Raid joystickiem od PC. Trochę mieszane wrażenia. Chyba trzeba zrobić jakiś interface z USB na joy atarowy.
Do tego dorobiłem bardziej rozbudowaną obsługę pilota od telewizora.
Można jeszcze dużo w tym grzebać i udoskonalać, ale ja sobie chwilkę odpocznę :) Pozdrowienia!

5

(31 odpowiedzi, napisanych Emulacja - 8bit)

Niestety, wyszło mi, że desired.samples = obtained.samples = 1024. Pozostałe dane także są sobie równe.

Pozostałe dane SDL_AudioSpec:
- obtained.freq = 44100,
- obtained.samples = 1024,
- obtained.format = 8,
- obtained.channels = 1,
- obtained.silence = 128,
- obtained.size = 1024.

Ale sprawdziłem dźwięk 16-bitowy (opcja wiersza poleceń -audio16) i okazało się, że dźwięk już gra prawidłowo, nic nie pyka. Niestety jest wyraźnie opóźniony, co będzie drażniło w grach. Nie mam pewności, czy można coś z tym zrobić. Ktoś już miał podobny problem w innej aplikacji portowanej na Samsunga.

Dalsze wieści z placu boju (2010-07-10...15):
- działa już klawiatura USB tak jak tego chciałem. Wymagało to dopisania paru linijek kodu w funkcji PLATFORM_keyboard() bo zmienna lastuni normalnie zawierała zawsze 0, przez co nie działały klawisze liter i cyfr.
- miałem problem z obsługą joysticka: w funkcji get_platform_PORT() było dziwne zjawisko, ale... PROBLEM ROZWIĄZANY: zmienna kbhits nie była inicjowana na czas i następowało odwołanie do zerowego adresu. Zamieniłem "if (PLATFORM_kbd_joy_0_enabled)" na "if (PLATFORM_kbd_joy_0_enabled && kbhits)" i to rozwiązało problem. Nawet udało mi się dolecieć do 3-go mostu w RiverRaid, co nie jest wynikiem satysfakcjonującym ale jak na pierwszy styk z klawiszowym joystickiem na dennej małej klawiaturze USB to i tak fajnie.
- był (albo jest) problem z opuszczeniem emulatora; po zakończeniu telewizor się restartuje; zasadniczo udało mi się przezwyciężyć problem poprzez usunięcie komend exit(0) i zakończenie głównej pętli, po której wywoływana jest dopiero funkcja Atari800_Exit(). Jest jeszcze problem z crash menu ale to mało ważne.
- jest jeszcze to wspomniane opóźnienie dźwięku, ale to zostawiam na później.
W TĘ SOBOTĘ postaram się wypuścić release 1.

No i zrobione - pierwsze wydanie gotowe:
http://sourceforge.net/apps/phpbb/samyg … php?id=253

DZIĘKI WSZYSTKIM, KTÓRZY POMOGLI.

6

(31 odpowiedzi, napisanych Emulacja - 8bit)

Zgadza się. Postaram się zrobić tak aby działało jedno i drugie. Chwilowo jadę na przyciętej funkcji INPUT_Frame(). Klawisze liter i cyfr nie działają, natomiast pozostałe klawisze - owszem. Udało mi się uruchomić grę: RIVER RAID. A jakże! W niej po wciśnięciu START (F4) samolocik sam zaczyna lecieć i strzela, więc joystick też coś zmyśla. Ale to nic. Muszę się wczytać w opcje wywołania i kod źródłowy. Zlokalizowałem już parę ważnych rejonów.
Menu pod klawiszem F1 działa śpiewająco. I co ważne, po wyłączeniu logowania emulator zaczął działać z normalną prędkością, tj. jak włączam wskaźnik, to wskazuje 99-100% oryginalnego Atari. Dźwięk SDL nie jest zbyt dobrze obsługiwany, bo tnie i szarpie a także jest opóźniony: np. melodyjka z SELF TEST nie gra się płynnie, a "jąka się" i wybrzemiewa jeszcze po wyjściu do głównego menu. Ciągle słychać także okresowe pykanie z głośnika, coś jakby pętla bufora cyklicznie odtwarzanego była krzywo zamknięta. Regulacja siły głosu działa z poziomu pilota TV, ale to już zapewne zasługa wbudowanej obsługi SDL. Choć jeszcze mało zbadałem, to generalnie muszę powiedzieć, że emulator działa dosyć stabilnie.
Był problem z załadowaniem gry, bo katalogiem bieżącym był ten, w którym znajduje się telewizorowa aplikacja exeDSP (a jest to podkatalog read-only), ale polecenie chdir() w głównej funkcji rozwiązało problem i jest dostęp do całej przestrzeni plikowej.
Tempo narzuciłem sobie wysokie więc trochę się pobawię i dłubię dalej. Pozdrawiam!

7

(31 odpowiedzi, napisanych Emulacja - 8bit)

maw napisał/a:

w SELF TEST możesz zrobić test klawiatury tak samo jak "odegrałeś muzyczkę"

RACJA! Ale ze mnie baran, że zapomniałem o tym. To widocznie wynik późnej pory i zmęczenia ;) Ale BASIC i tak uruchomię, bo wtedy sprawdzę więcej rzeczy.

8

(31 odpowiedzi, napisanych Emulacja - 8bit)

Przed chwilą udało mi się odegrać (co prawda w ślimaczym tempie ale zawsze) melodyjkę z SELF TESTu. Nie znając klawiszologii tego emulatora powciskałem chyba F3 jako SELECT i chyba F4 zrobił za START. Faktycznie wyciąłem obsługę joysticków w tej feralnej funkcji INPUT_Frame() a w dodatku usiłowałem powyłączać co się da. Już nie grzebię w configure. Ostatnie opcje jakie wpisywałem wyglądały tak:

./configure --host=arm --target=sdl \
--disable-unalignedwords \
--enable-pagedattrib \
--disable-eventrecording \
--disable-pbi_mio \
--disable-pbi_bb \
--disable-pbi_xld \
--disable-linuxjoystick \
--disable-rnetwork \
--disable-rserial \
LDFLAGS="-shared -fPIC"

Widząc Twoje podpowiedzi (teraz, po moich próbach) stwierdzam, że z pewnością nadal muszę trochę się podszkolić.
Obecnie wykonuję próby niejako "na brudno". Jak już będę się w tym poruszał w miarę swobodnie, na nowo rozpakuję kod źródłowy i zrobię porta ładnie i z opisem. Na pierwszą kulawą wersję do opublikowania powinno wystarczyć.
Nawet jeśli RiverRaidu nie da się uruchomić to i tak to już daleko zaszło. Teraz chciałbym sprawdzić jak uruchomić BASIC na starcie tak aby przebadać działanie klawiatury USB. Opcje wiersza poleceń nie działają chyba z tego XMLa od Content Library a z plikiem konfiguracyjnym jeszcze nie doszedłem do ładu. Niewykluczone też, że trzeba będzie dorobić jakiś kod obsługujący pilot telewizora aby przyciskiem EXIT lub RETURN można było bezpiecznie wyłączyć emulator. Jest zabawa!

9

(31 odpowiedzi, napisanych Emulacja - 8bit)

Fox napisał/a:

Prawdopodobnie wersja basic działa już poprawnie...
Czy w wersji SDL na pewno WORDS_UNALIGNED_OK jest taki, jak w działającej wersji basic?...

Zgadza się, wersja basic działa wzorowo. Po wywołaniu z opcją -basic zobaczyłem READY w telnecie.
Co do wersji SDL, to próbowałem jeszcze różnych opcji configure, m.in. wyłączenie dźwięku, veryslow, wyłączenie urządzeń R: itd. Bez zmian. Restart wydarza się cały czas w tym samym momencie - na pierwszym wywołaniu Atari800_Frame(), a właściwie INPUT_Frame() z input.c. Sprawdziłem też, że SDL działa prawidłowo, poprzez doklejenie na początku własnego krótkiego kodu wyświetlającego bitmapę na 5 sekund.
Zagłębiam się dalej. Parametr WORDS_UNALIGNED_OK wyłączam (jeszcze nie sprawdziłem, w jaki sposób wyłączyć to przez configure, ale tymczasem po edycji config.h robię make). Postaram się trochę wczytać w temat, choć to nie przychodzi łatwo.
Dzięki za pomoc.

EDIT: No i próbnie wywaliłem zawartość funkcji INPUT_Frame() przez wstawienie return na początku. I co ? Otrzymałem to co na załączonym obrazku! Nie ulega wątpliwości, że jesteśmy coraz bliżej celu.

http://img30.imageshack.us/img30/4066/selftestonle40b650t2w.jpg
Ciekawe jak będzie z wydajnością. Miganie napisu w selfteście jest raczej powolne, ale trzeba mieć też na uwadze, że tworzony jest log i to dosyć gęsty, bo również z funkcji GTIA. Klawiatura mi nie zadziałała, ale się nie dziwię. Telewizor musiałem wyłączyć telnetem, hehe. Pozdrowienia!

10

(31 odpowiedzi, napisanych Emulacja - 8bit)

Fox napisał/a:

Jak bus error, to obstawiam, że trzeba undefować WORDS_UNALIGNED_OK w config.h.

Dzięki. Tym razem nie wywaliło się. W moim logu widzę ciągłe wywołania funkcji Atari800_Frame(), w telnecie mam jakby pusty edytor, żadnych komunikatów, nic. Klawiszami CTRL+C wyskoczyłem z procesu i to na razie tyle. Teraz czas na instrukcję obsługi, hehe. Przedtem może jeszcze sprawdzę build SDL. Dam znać co wyszło.

EDIT: daję znać: kompilacja wersji SDL przyniosła znów nagły restart telewizora. Z logu widzę, że emulator dochodzi do pierwszego wywołania funkcji Atari800_Frame(). Oto mój log (mieszanina standardowego wyjścia i dodatkowych informacji):

atari_sdl.c: Game_Main()
atari.c: Atari800_Initialise()
User config file '/mtd_tlib/GGame/Atari800/atari800.cfg' not found.

Trying system wide config file: /mtd_tlib/GGame/Atari800/atari800.cfg

No configuration file found, will create fresh one from scratch:

Writing config file: /mtd_tlib/GGame/Atari800/atari800.cfg

colours.c: Colours_Initialise()
atari_sdl.c: PLATFORM_Initialise()
atari_sdl.c: SoundInitialise()
atari_sdl.c: SoundSetup()
atari_sdl.c: ResetDisplay()
atari_sdl.c: SetNewVideoModeNormal()
atari_sdl.c: SetVideoMode()
detected 32bpp

atari_sdl.c: CalcPalette()
atari_sdl.c: ModeInfo()
Video Mode: 336x240x32

[*] Full screen  [ ] BW  [d] Width Mode  [ ] Joysticks Swapped

video initialized

atari_sdl.c: Init_SDL_Joysticks()
joystick 0 not found

joystick 1 not found

atari.c: Atari800_InitialiseMachine()
colours.c: Colours_InitialiseMachine()
atari.c: load_roms()
- machine type = XL/XE
atari.c: Atari800_LoadImage():
/mtd_tlib/GGame/Atari800//atarixl.rom
atari.c: Atari800_LoadImage():
/mtd_tlib/GGame/Atari800//ataribas.rom
atari.c: Atari800_Coldstart()
atari_sdl.c: PLATFORM_Keyboard()
atari_sdl.c: PLATFORM_Mouse()
atari.c: Atari800_Frame()

Należy dodać, że pomimo załadowanych sterowników HID, nie miałem w czasie wywołania podłączonej klawiatury ani myszki do telewizora. Ale to chyba nie jest przyczyną restartu. Efekt uruchomienia jest taki: na dole czarnego ekranu pokazuje się kilka linii jasnej "ciapy", a potem mam niespodziewany restart. Teraz wracam znów do wersji basic.

11

(31 odpowiedzi, napisanych Emulacja - 8bit)

Standardowe wyjście chyba widzę w telnecie, więc przekierowywać chyba nie ma czego.

Fox napisał/a:

Wersja basic działa w trybie tekstowym przy użyciu standardowego we/wy, czyli printf i podobnych. Oczywiście da się w ten sposób uruchamiać tylko programy działające w trybie tekstowym.

Oczywiście to nie jest cel tego projektu, ale mimo to warto spróbować. I spróbowałem. Musiałem jeszcze dodać opcję --disable-sound przy configure, bo sypnęły się błędy. Udało się skompilować i uruchomić standardowy plik wykonywalny. Jest trochę kłopotu ze ścieżkami do plików, bo emulator sięga do katalog głównego, gdzie chce zapisywać cfg a w TV katalog główny filesystemu jest tylko do odczytu. Ale po drobnych modyfikacjach skierowałem ścieżki do katalogu, w którym znajduje się emulator (/mtd_tlib/GGame/Atari800). Oto wynik uruchomienia wersji basic:

# ls
Atari800.png  atari800.so   atarixl.rom
atari800.cfg  ataribas.rom  clmeta.dat
# rm *.cfg
# ./atari800.so
User config file '/mtd_tlib/GGame/Atari800/atari800.cfg' not found.
Trying system wide config file: /mtd_tlib/GGame/Atari800/atari800.cfg
No configuration file found, will create fresh one from scratch:
Writing config file: /mtd_tlib/GGame/Atari800/atari800.cfg
Bus error (core dumped)

Natomiast w swoim logu widzę, że program wywala się po załadowaniu atarixl.rom i ataribas.rom (które chyba się ładują, bo nie ma błędu w funkcji Atari800_LoadImage). Muszę dorobić trochę więcej kodu debugującego, żeby zobaczyć co się dzieje dalej.

12

(31 odpowiedzi, napisanych Emulacja - 8bit)

Fox napisał/a:

Skoro jest telnet, to rozumiem, że jest też jakiś shell i może da się skompilować zwykłego exe, a nie jakieś so i odpalić z tego shella?

Sprawa jest trochę skomplikowana. Oczywiście da się skompilować i uruchomić zwykłego exe-ka. Ale jest problem z dostępem do urządzeń. Telewizor po włączeniu uruchamia aplikację exeDSP, która jako jedyna z całego firmware nie jest opensource i nie bardzo wiadomo co się dzieje wewnątrz. Ta aplikacja steruje ekranem, głośnikami itp. Jedynym "grzecznym" sposobem wejścia ze swoją aplikacją na ekran telewizora jest obecnie wykorzystanie exeDSP jako pośrednika. Umożliwia to mechanizm uruchamiania gier w Content Library. Dlatego trzeba utworzyć "grę" i uruchamiać ją z poziomu tego zamkniętego kodu exeDSP. Grą jest zwykła biblioteka dynamiczna (plik *.so).

Byćmoże za jakiś czas ktoś opracuje inną technikę, ale obecnie tylko tak się to da zrobić. I tak to nie jest największy problem, bo jak widać wystarczy dorobić jedną funkcję Game_Main(), która zrobi to samo co main().

Programy samodzielnie działające w shellu (uruchamiane np. przez telnet) już robiłem, ale to były proste rzeczy, które do komunikacji z użytkownikiem używały funkcji printf() a nie SDL. Próbowałem zrobić samodzielnego exe-ka wyświetlającego coś przez SDL, ale nie udało się. Poza tym, nawet jakby się to udało, trzeba by było wiedzieć jak zatrzymać wyświetlanie obrazu telewizyjnego, wyciszyć tuner itp. aby nie kolidowało to z emulatorem.

Będę jeszcze czynić próby z wersją basic, ale nie znalazłem do tej pory opisu czym się ona charakteryzuje. Dziwne, że strona emulatora Atari800 nie ma nawet forum, a jedynie "staroświecki" mailing-list.

Dla zainteresowanych podam jeszcze kilka linków:
Emulator Atari800: http://atari800.sourceforge.net/index.html
Forum SamyGO: http://sourceforge.net/apps/phpbb/samygo/index.php
Kody źródłowe Samsunga: http://opensource.samsung.com/
ScummVM (inny emulator na TV): http://sourceforge.net/apps/phpbb/samyg … &t=562
Jak zbudować kompilator: http://sourceforge.net/apps/mediawiki/s … _toolchain
Co to jest ContentLibrary: http://www.samsung.com/uk/consumer/lear … ction.html

13

(31 odpowiedzi, napisanych Emulacja - 8bit)

Racja, trzeba popróbować z prostszymi portami. Choć na razie nie wiem jak ;)

epi napisał/a:

Możesz dokładniej opisać "kompilację na kolanie"?

Jasne.

Z góry przepraszam przy tym starych linuxowców, ale ja dopiero zaczynam z linuxem, więc mogę pisać głupoty.

Po pierwsze, aby kompilować cokolwiek na inny CPU, należy przygotować środowisko cross-compilera (w ogólności, bo metod jest kilka, ale ja wybrałem taką). Ten proces jest opisany na stronach forum SamyGO (setting up cross-compilation toolchain). Ja postawiłem to na Fedorze i przy tej okazji zrobiłem sobie dokładniejszy opis jak to zrobić. Jak ktoś potrzebuje, to podam ten przepis.

Po zainstalowaniu cross-compilation toolchain dysponujemy linuxem na PC (i686) pozwalającym kompilować programy zarówno na x86 (przy użyciu gcc), jak i na ARM (przy użyciu arm-SamyGO-linux-gnueabi-gcc).
Do tego doinstalowałem biblioteki ZLIB, SDL, PNG w wersji dla SamyGO. Nie zaszkodzi zainstalować pozostałych.

Co dalej? Pobrałem kod źródłowy Atari800, rozpakowałem do jakiegoś katalogu, po czym trochę pobawiłem się w edycję pliku src/configure. Wykonałem zmiany w stylu:
sdl-config  ->  arm-SamyGO-linux-gnueabi-sdl-config
gcc         ->  arm-SamyGO-linux-gnueabi-gcc
cross_compiling=no -> cross_compiling=yes
(byćmoże bez sensu, bo może wystarczyłoby zrobić jakieś linki symboliczne czy coś)

Następnie utworzyłem nową funkcję Game_Main() w pliku src/atari_sdl.c i skopiowałem do niej zawartość funkcji main(), przy czym zmienne argc i argv trzeba zdefiniować "ręcznie", bo w Game_Main() ich nie ma.

W kolejnym kroku wywołałem (jednorazowo):

./configure --target=sdl

Potem wyedytowałem makefile i dodałem opcje "-shared -fPIC" do polecenia gcc (kompilacja i konsolidacja).
Pamiętajmy, że nie kompilujemy zwykłego pliku wykonywalnego, a bibliotekę dynamiczną!

poleceniem make wykonujemy (re)kompilację. Powstaje plik atari800.so, który to umieszczamy wraz z pozostałymi plikami na pendrive. Ten pendrive nadaje się do użycia w TV.
Zawartość pendrive: podkatalog Atari800 z następującymi plikami:

- clmeta.dat: plik tekstowy (XML) o zawartości:

<?xml version="1.0" encoding="utf-8"?>
<contentlibrary>
  <contentpack id="Atari800">
    <category>Game</category>
    <title language_id="English">Atari800</title>
    <startpoint language_id="English">./atari800.so</startpoint>
    <thumbnailpath>./Atari800.png</thumbnailpath>
    <totalsize>1</totalsize>
  </contentpack>
</contentlibrary>

- atari800.png: niewielka grafika z logo Atari
- ATARIBAS.ROM: nie muszę wyjaśniać
- ATARIXL.ROM: nie muszę wyjaśniać
- atari800.so: ten główny skompilowany plik binarny

Pliku konfiguracyjnego dla emulatora nie robiłem. Założyłem domyślne ustawienia.

Później dodałem trochę wstawek logujących wywoływanie niektórych funkcji i okazało się, że podczas uruchamiania telewizor restartuje się gdzieś w okolicy ładowania plików ROM. Musiałem także dodać wskazanie ścieżki do plików ROM, bo domyślnie ich nie znajdował (katalog bieżący nie jest tym gdzie leży główny program).

Sorry za chaos, ale już parę dni nie miałem czasu wrócić do tematu i piszę trochę z pamięci. Szczegóły mogę sprawdzić, ale byćmoże należałoby zacząć eksperymenty od nowa, aby moje błędy nie były powielane.

14

(31 odpowiedzi, napisanych Emulacja - 8bit)

Wydaje mi się, że może to zadziałać jedynie na modelach wyposażonych w Content Library. Ale pewności nie mam. Uruchamianie własnych aplikacji graficznych polega na utworzeniu modułu typu "gra" właśnie dla Content Library. Ta "gra" to skompilowany binarny moduł biblioteki dynamicznej (*.so), w której przy wywołaniu uruchamiana jest funkcja Game_Main().

Informacje ogólne nt. Content Library: http://www.samsung.com/pl/consumer/lear … ction.html

15

(31 odpowiedzi, napisanych Emulacja - 8bit)

AS... napisał/a:

A nie prościej podłączyć laptopa z emu/bądź atari pod tv?

No więc według mojego skromnego zdania nie prościej (w sensie użytkowania, nie w sensie przygotowania, rzecz jasna). Takie rozwiązanie (na SCART) to ja już mam. Wady takiego rozwiązania można wyliczać. A tymczasem emulator można by uruchomić wciskając raptem 3 klawisze na pilocie. I nie byłoby żadnych dodatkowych mebli w okolicy telewizora.

16

(31 odpowiedzi, napisanych Emulacja - 8bit)

Witam.
To mój pierwszy post na tym forum. Zarejestrowałem się specjalnie aby rozpocząć ten wątek. W ramach wprowadzenia dodam, że jestem (nie tylko byłym) atarowcem o wieloletnim stażu (znacznie większym od średniej tego forum). Ale do rzeczy:

Posiadam telewizor Samsung LE40B650, który to już jakiś czas temu, wraz z innymi modelami, został rozpracowany przez wielu speców od grzebania w sprzęcie. Krótko mówiąc, ten multimedialny telewizor, oparty na procesorze ARM wyposażony jest w system Linux, do którego można się dostać telnetem i grzebać do woli. Wszystko jest sukcesywnie rozpracowywane i w chwili obecnej możliwe jest tworzenie i uruchamianie dowolnych aplikacji, np. z użyciem SDL (Simple Direct Layer). Telewizor jest wyposażony w USB, LAN i inne dobrodziejstwa, co pozwala po podłączeniu klawiatury i myszki zrobić z niego "normalny" komputer. I tu zaczyna się zagadnienie.

Zapoczątkowałem projekt mający na celu uruchomienie jakiegoś emulatora Atari XL/XE na tym telewizorze. Na pierwszy ogień poszedł Atari800, którego linuxowe źródła pod SDL są dostępne w sieci. Jednak kompilacja "na kolanie" nie przyniosła oczekiwanego efektu. Czarny ekran przez kilka sekund, a potem restart systemu (telewizora w tym przypadku).

Obecnie z emulatorów na ten TV dostępny jest jedynie ScummVM. Ktoś opublikował Quake, ale mi nie działa. Z innych aplikacji - udało się uruchomić przeglądarkę internetową NetSurf.

Szukam kogoś, kto może próbował już czegoś takiego i mógłby pomóc w uruchomieniu emulatora. Niestety nie mam doświadczenia w programowaniu pod linuxem ani tym bardziej SDL, ale kilka aplikacji udało mi się z powodzeniem wytworzyć lub przerobić. Mam świadomość, iż znalezienie takiej osoby może być trudne, bo najlepiej aby ten ktoś dysponował podobnym telewizorem i jednocześnie znał się na linuxie. Ale postanowiłem, że i tak warto zapytać.

Jeśli będzie zainteresowanie, postaram się przedstawić wszelkie szczegóły.