26

Odp: atari800-3.0.0 Raspberry PI2

Hej!

Kompiluje na RPI2:

pi@raspberrypi ~/atari800/src $ uname -a
Linux raspberrypi 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux
pi@raspberrypi ~/atari800/src $ gcc --version
gcc (Debian 4.6.3-14+rpi1) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

oczywiście Twoja binarka działa bez problemu, tylko pierwsze uruchomienie było lekkim zaskoczeniem, bo jakieś obłędne ustawienia palety były smile i miałem ze 4 razy jaśniejszy obraz o mega kontraście smile

pi@raspberrypi ~/atari800/src $ sudo apt-get install build-essential
Czytanie list pakietów... Gotowe
Budowanie drzewa zależności       
Odczyt informacji o stanie... Gotowe
build-essential jest już w najnowszej wersji.
0 aktualizowanych, 0 nowo instalowanych, 0 usuwanych i 0 nieaktualizowanych.

Ostatnio edytowany przez seban (2015-06-08 18:52:58)

life is complex, it has both real and imaginary components.

27

Odp: atari800-3.0.0 Raspberry PI2

@Sim_Piko: zadam głupie pytanie... skąd brałeś źródła Atari800-3.1.0? Bo spróbowałem skompilować źródła z tego co podesłałeś i wychodzi na to że ./configure --target=rpi --host=arm-linux poszło bez najmniejszego problemu. Właśnie poleciał make, również bez problemu.

Ja źródła pobrałem z tej lokalizacji:

http://sourceforge.net/projects/atari80 … 800/3.1.0/

Właśnie sprawdziłem MD5 i wszystko się zgadza:

pi@raspberrypi ~/Downloads $ md5sum atari800-3.1.0.tar.gz 
354f8756a7f33cf5b7a56377d1759e41  atari800-3.1.0.tar.gz

Tyle że 'src' od Ciebie się kompiluje bez problemu, a pliki z sf.net tak jak to widać powyżej ;/

Ostatnio edytowany przez seban (2015-06-08 19:53:13)

life is complex, it has both real and imaginary components.

28

Odp: atari800-3.0.0 Raspberry PI2

Ja pliki brałem prosto z repozytorium(tak to sie na to mówi?) http://atari800.cvs.sourceforge.net/viewvc/atari800/ , czyli najświeższe możliwe źródła jakie są dostępne.
Zaraz sprawdzę, czy paczka 3.1.0 u mnie działa...

A to z tymi paletami to normalka, też się za pierwszym razem przestraszyłem. wystarczy .cfg usunąć/na chwilę zmienić nazwę, bo w cfg się parę nowych opcji pojawiło dotyczących przestrajania palety, głównie tej z pliku.

Ostatnio edytowany przez Sim_Piko (2015-06-08 20:00:29)

http://www.downloadsquad.com/category/time-waster

29

Odp: atari800-3.0.0 Raspberry PI2

A widzisz... i tu jest "przysłowiowy" pies pogrzebany smile  na początek porównałem pliki "configure", są inne... masz świeższą wersję, ze sporą ilością zmian.

life is complex, it has both real and imaginary components.

30

Odp: atari800-3.0.0 Raspberry PI2

no powiem tak, 3.1.0 wywala ten sam błąd co tobie
przejrzałem config.log-a, a ten stwierdził, że kompilator nie istnieje

...
configure:2825: checking for C compiler version
configure:2834: /bin/arm-linux-gnueabihf-gcc --version >&5
./configure: line 2836: /bin/arm-linux-gnueabihf-gcc: No such file or directory
configure:2845: $? = 127
configure:2834: /bin/arm-linux-gnueabihf-gcc -v >&5
./configure: line 2836: /bin/arm-linux-gnueabihf-gcc: No such file or directory
configure:2845: $? = 127
configure:2834: /bin/arm-linux-gnueabihf-gcc -V >&5
./configure: line 2836: /bin/arm-linux-gnueabihf-gcc: No such file or directory
configure:2845: $? = 127
configure:2834: /bin/arm-linux-gnueabihf-gcc -qversion >&5
./configure: line 2836: /bin/arm-linux-gnueabihf-gcc: No such file or directory
configure:2845: $? = 127
configure:2865: /bin/arm-linux-gnueabihf-gcc -o conftest -O2 -Wall -I/include -I/include/SDL -I/include/interface/vmcs_host/linux -I/include/interface/vcos/pthreads   -Wl,--unresolved-symbols=ignore-in-shared-libs -L/lib conftest.c  >&5
./configure: line 2867: /bin/arm-linux-gnueabihf-gcc: No such file or directory
configure:2869: $? = 127
configure:3082: checking whether we are cross compiling
configure:3120: result: yes
configure:3124: checking for suffix of object files
configure:3146: /bin/arm-linux-gnueabihf-gcc -c -O2 -Wall -I/include -I/include/SDL -I/include/interface/vmcs_host/linux -I/include/interface/vcos/pthreads  conftest.c >&5
./configure: line 3148: /bin/arm-linux-gnueabihf-gcc: No such file or directory
...
configure:3166: error: cannot compute suffix of object files: cannot compile

główna różnica między "configure" z 3.1.0 a najnowszą wersją z repo, dzięki której jest taka:

---3.1.0---
if [ "$a8_target" = "rpi" ]; then
    CC="${RPI_SDK}/bin/arm-linux-gnueabihf-gcc"

---HEAD---
if [ "$a8_target" = "rpi" ]; then
    [ -z "$RPI_SDK" ] && RPI_SDK="/opt/vc"
    CC="arm-linux-gnueabihf-gcc"

... co by znaczyło, że 3.1.0 jest wręcz nastawiony na cross-compile z peceta (kompilator musi wtedy być podany w zmiennej RPI_SDK), a w najnowszej wersji, jeżeli RPI_SDK nie istnieje/jest puste, to główniejsze pliki związane z RPi bierze z standardowego dla raspbiana miejsca "/opt/vc/", a kompilator jest brany z tego co siedzi pod poleceniem "arm-linux-gnueabihf-gcc", niezależnie od platformy.


...wow, nie wiedziałem, że tyle wiem ._. (albo właśnie odkryłem wodolejstwo)

EDIT: A na tej stronie co Ci podałem jest taki link "Download GNU tarball" który Ci spakuje do pobrania najnowszą wersję kodu tongue

Ostatnio edytowany przez Sim_Piko (2015-06-08 20:36:01)

http://www.downloadsquad.com/category/time-waster

31

Odp: atari800-3.0.0 Raspberry PI2

Hej!

Dzięki wielkie za pomoc... małymi krokami do przodu, czyli:

1) pobrałem archiwum (tarball)
2) odpaliłem autoconf (nie było pliku 'configure')
3) autoconf wygenerował sobie cośtam, po czym odpaliłem configure --target --host...
4) miłąchał, miąchał .... i mu nie wyszło...

...
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking for _LARGEFILE_SOURCE value needed for large files... no
checking for library containing tgetent... no
configure: creating ./config.status
config.status: creating Makefile
config.status: error: cannot find input file: `config.h.in'

pewnie coś nie tak robię z autoconf-em?

EDIT: pomogło 'autoreconf -i', teraz zapuszczam make... zobaczymy smile

Ostatnio edytowany przez seban (2015-06-08 20:56:23)

life is complex, it has both real and imaginary components.

32

Odp: atari800-3.0.0 Raspberry PI2

yyy... powinien być skrypt "src/autogen.sh" i tym tworzysz configure'a

EDIT: albo uruchom "autoheader" przed/po(?) "autoconf"

Ostatnio edytowany przez Sim_Piko (2015-06-08 20:55:31)

http://www.downloadsquad.com/category/time-waster

33

Odp: atari800-3.0.0 Raspberry PI2

Wszystko się skompilowało, trochę faktycznie dziwne scieżki ma domyślnie wpisane (/opt/vc/) dla gcc, ale nie przeszkadza to w kompilacji. Skompilowało się na RaspPI2 i działa smile Dzięki WIELKIE za pomoc! smile

ps) RP2 ma niby 4 jajka, a kompiluje używając jednego smile

life is complex, it has both real and imaginary components.

34

Odp: atari800-3.0.0 Raspberry PI2

Panowie, wielkie dzięki za cenne wskazówki smile

Co do 4 rdzeni, to trzeba kompilatorowi powiedzieć, żeby używał więcej niż jednego.
Na szybko znalazłem w sieci:
make -j 4
(nie testowałem, ale powinno pomóc)

Mam pytanie, czy sprzętowe wspomaganie będzie działać sensownie dla rozdzielczości 1024x768 (taki mam display)?
W opisie configa znalazłem poniższe tryby:

hdmi_mode=16   1024x768   60 Hz
hdmi_mode=17   1024x768   70 Hz
hdmi_mode=18   1024x768   75 Hz
hdmi_mode=19   1024x768   85 Hz
hdmi_mode=20   1024x768  120 Hz

ATARI 65XE + SIO2BT
http://atari.pl/hsc/ad.php?i=22.3

35

Odp: atari800-3.0.0 Raspberry PI2

seban napisał/a:

(...)trochę faktycznie dziwne scieżki ma domyślnie wpisane (/opt/vc/) dla gcc, (...)

najważniejsze, że naprawili, aby configure patrzył na to co system ma, a nie liczył na gotowego kros-kompilatora pod RPI_SDK

seban napisał/a:

ps) RP2 ma niby 4 jajka, a kompiluje używając jednego smile

następnym razem użyj "tajnej " opcji: "make -j4" gdzie 4 to liczba  rdzeni
Domyślnie gcc kompiluje tylko jednym rdzeniem (chyba taka wsteczna kompatybilność do jedno-rdzeniowców) :v
EDIT: ajj, montezuma mnie wyprzedził :V

seban napisał/a:

Dzięki WIELKIE za pomoc! smile

Nie polecam się tongue i powodzenia w naprawianiu tego buga

EDIT: @montezuma, nie mam zielonego pojęcia, ale oby Ci się nie wykrzaczył SDL. Jak raz próbowałem odpalić emulca na monitorze z 1280x1024, to SDL dał ducha (warstwa GLES w kolorze czarnym + wyłączona klawiatura) i trzeba było zdalnie restartować. 1280x720 i 1680x1050 dzałały bez problemu. eSDeLek z linku w poście 19 o dziwo naprawił sprawę. To chyba mogło być przez audio HDMI, ostatnio miałem problem z Kodi... ale to już inna historia... :v

EDIT @down https://youtu.be/SrdBHYT4q7A?t=29m07s tekst numernabisa

Ostatnio edytowany przez Sim_Piko (2015-06-09 11:23:21)

http://www.downloadsquad.com/category/time-waster

36

Odp: atari800-3.0.0 Raspberry PI2

no człowiek uczy się całe życie... dzięki za oświecenie... 'make -j4' działa i zasówa jak trzeba smile

real    0m47.898s
user    2m23.970s
sys    0m4.950s

normalna kompilacja (one-core):

real    2m21.126s
user    1m54.630s
sys    0m3.830s

@Montezuma: a jak taki display podłączasz? Masz jakąś przejściówkę HDMI->VGA? W życiu nie podłączałęm pod RPI nic innego niż monitor FullHD przez HDMI lub po prostu TV do wyjścia TV w RPI1.

@Sim_Piko: A dlaczego się nie poleczasz? Pomogłeś i to bardzo smile dzięki za cierpliwość i wyrozumiałość smile

ps) do tej pory nie miałem pojęcia o opcji -j bo korzystałem z gotowców, tzn. serwer i środowisko do kompilacji (cross-compiler) przygotowane miałem przez ludzi którzy się na tym znają i nie wnikałem, jak widać to był poważny błąd. Dostawałem gotowego skonfigurowanego LTIB-a czy Yocto do pracy i nie musiałem martwić się o konfigurację tego wszystkiego. Dzięki wam nadrabiam zaległości smile

Ostatnio edytowany przez seban (2015-06-08 21:56:57)

life is complex, it has both real and imaginary components.

37

Odp: atari800-3.0.0 Raspberry PI2

Display wygląda tak:
http://www.abbuc.de/phpBB3/download/file.php?id=1991
a dokładniej tak:
http://www.ebay.de/itm/HDMI-VGA-2AV-Aud … 2a2e1e3550
Jest podpięty przez HDMI.

ATARI 65XE + SIO2BT
http://atari.pl/hsc/ad.php?i=22.3

38

Odp: atari800-3.0.0 Raspberry PI2

A może w takim razie ktoś zebrałby te wszystkie informacje i napisał tu taki szybki tutek krok po kroku. Co i skąd ściągnąć i jak prawidłowo skompilować najnowsze źródła atari800 na rpi2 bo jestem zielony jeśli chodzi o kompilowanie źródeł a też chciałbym mieć najnowszą działającą wersję tego emulatora.

Dodam tylko, że przeczytałem cały ten wątek od początku do końca ze 4 razy i nadal kompilacja mi nie wychodzi.

Ostatnio edytowany przez paptak (2015-06-09 12:43:30)

Ja bym lepiej spaliłem się. Wybierać nie Tobie.

39

Odp: atari800-3.0.0 Raspberry PI2

hmmm...

1. z repozytoriów Raspbiana pobieramy i instalujemy kompilator i biblioteki wraz z plikami nagłówkowymi, powinno wystarczyć coś w stylu "sudo apt-get install build-essentials libsdl1.2-dev libsdl1.2debian libreadline-dev autoconf", ale nie jestem pewien, które konkretne biblioteki są potrzebne.
2. stąd http://atari800.cvs.sourceforge.net/vie … /?view=tar pobieramy najnowsze źródła atari800 i wypakowujemy je.
3. wchodzimy przez konsolę do folderu wypakowanych źródeł, a potem do podfolderu "src"
4. odpalamy tam "./autogen.sh", który dotworzy parę plików niezbędnych do kompilacji.
5. następnie uruchamiamy "./configure --target=rpi --host=arm-linux"
6. potem "make -j4" (kompiluje emulca do pliku wykonywalnego, wykorzystując wszystkie cztery rdzenie malinki2)
6a. (opcjonalnie) można zainstalować tak przygotowany emulator za pomocą "sudo make install"
7. odplalamy emulator komendą "./atari800" (bądź "atari800" jeżeli wykonaliśmy krok 6a)
7a. (opcjonalnie) jeżeli korzystaliśmy z wersji 3.0.0, możliwe jest, że po uruchomieniu paleta ustawi się na maxymalną jasność. Wtedy wychodzimy z emulca klawiszem F9 i usuwamy/zmieniamy nazwę pliku "/home/pi/.atari800.cfg". (spowodowane jest to dodaniem opcji przestrajania palety(jasność/kontrast) dla palet z pliku).
9. (głosem Pascala B.) et voila, prosta kompilacja gotowa, smacznego grania tongue
ps. dla maniaków synchronizacji pionowej, http://atari800.cvs.sourceforge.net/vie … iew=markup info jak ją uzyskać na 720p oraz 1080p


jak gdzieś się pomyliłem/czegoś zapomniałem, to mnie poprawujciepoprawcie

http://www.downloadsquad.com/category/time-waster

40

Odp: atari800-3.0.0 Raspberry PI2

seban napisał/a:

@Montezuma: a jak taki display podłączasz? Masz jakąś przejściówkę HDMI->VGA? W życiu nie podłączałęm pod RPI nic innego niż monitor FullHD przez HDMI lub po prostu TV do wyjścia TV w RPI1.

Chociazby cos takiego http://cpc.farnell.com/element14/piview … CMP=HP_RPi

Lub taniej http://www.ebay.co.uk/itm/1-5m-2m-3m-HD … 1e9f9c8990

Ostatnio edytowany przez Monsoft (2015-06-10 10:10:29)

41

Odp: atari800-3.0.0 Raspberry PI2

Dzięki @Sim_Piko.

Nareszcie wszystko poszło tak jak trzeba.

Ja bym lepiej spaliłem się. Wybierać nie Tobie.

42

Odp: atari800-3.0.0 Raspberry PI2

Sim_Piko napisał/a:

ps. dla maniaków synchronizacji pionowej, http://atari800.cvs.sourceforge.net/vie … iew=markup info jak ją uzyskać na 720p oraz 1080p

Dzięki za instrukcję smile
Czyli RPI z display-em o rozdzielczości 1024x768 (podłączonym przez HDMI), będzie najlepiej emulował ATARI w wersji NTSC?

hdmi_group=2
hdmi_mode=16   1024x768   60 Hz

A jakie problemy mogą sie pojawić jeśli display odświeżany jest częściej (60Hz) niż wyświetlany obraz (PAL 50Hz)?

Ostatnio edytowany przez Montezuma (2015-06-10 08:19:09)

ATARI 65XE + SIO2BT
http://atari.pl/hsc/ad.php?i=22.3

43

Odp: atari800-3.0.0 Raspberry PI2

nie mam zielonego pojęcia, co złego mogło by się stać.
Ja jakoś gram na tym, co mi system zapodaje, bez żadnego grzebania w config.txt

Prędzej @seban wyjaśniłby (albo właściwie już wyjaśnił w postach 20 i 22) dlaczego VSync jest tak ważny.

http://www.downloadsquad.com/category/time-waster

44

Odp: atari800-3.0.0 Raspberry PI2

Pytałem, bo RPI nie ma trybu 50Hz dla rozdzielczości 1024x768.
Używam więc hdmi_mode=16 (1024x768 60 Hz) i jak rozumiem, w tym trybie tylko emulacja ATARI NTSC będzie działać idealnie.

Zastanawiam się, czy to, o czym wspominał Seban: "mam mdłości gdy widzę przycinające się srcolle i inne uboczne efekty" występuje również jeśli display odświeżany jest z 60Hz dla emulacji ATARI PAL.
Jak można to obiektywnie stwierdzić? Ja nie dostaję bowiem żadnych mdłości smile

Ostatnio edytowany przez Montezuma (2015-06-10 16:05:55)

ATARI 65XE + SIO2BT
http://atari.pl/hsc/ad.php?i=22.3

45

Odp: atari800-3.0.0 Raspberry PI2

gdy mam odświeżanie ustawione na 60Hz i emulator na PAL to w przypadku platformy Windows i emulatora Atari800Win-Plus czy Altirra to efekt jest równie straszny, szarpanie scroll-ami, tryby interlace zamiast wyglądać jakby miały więcej jasności/kolorów z lekkim migotaniem, wyglądają okropnie, drżąc i wyświetlając nierównomiernie dwie klatki obrazu składającego się na cały obrazek w interlace, wygląda to okropnie, w przypadku RaspPI / SDL gdzie nie było Vsync, wyglądało to równie okropnie.

Dziś sprawdzę Ci jak wygląda różnica gdy przestawię RPI2 na 60Hz i odpalę emulację w trybie PAL. Wydaje mi się że będzie ciekawie bowiem emu wydaje sie być zatrzymywany do czasu wystąpienia V-Sync (stwierdzam to po fakcie że nie działa Turbo Mode / F12) gdy go włączę nadal mam 100% wydajności emulatora, tylko dźwięk zostaje wyłączony, a render-pipeline i tak uwiązany jest do V-Synca.

life is complex, it has both real and imaginary components.

46

Odp: atari800-3.0.0 Raspberry PI2

Montezuma napisał/a:

Pytałem, bo RPI nie ma trybu 50Hz dla rozdzielczości 1024x768.

Wpisy w config.txt dla 1024x768 50Hz

hdmi_mode=87
hdmi_cvt=1024 768 50 1 0 0 0

#hdmi_cvt=<width> <height> <framerate> <aspect> <margins> <interlace> <rb>
#width        width in pixels
#height       height in pixels
#framerate    framerate in Hz
#aspect       aspect ratio 1=4:3, 2=14:9, 3=16:9, 4=5:4, 5=16:10, 6=15:9
#margins      0=margins disabled, 1=margins enabled
#interlace    0=progressive, 1=interlaced
#rb           0=normal, 1=reduced blanking
###

atari800 działa dość dobrze (v-sync, scrole, itp) także przy odświeżaniu monitora 75Hz.

Edit 2

seban napisał/a:

(stwierdzam to po fakcie że nie działa Turbo Mode / F12) gdy go włączę nadal mam 100% wydajności emulatora, tylko dźwięk zostaje wyłączony, a render-pipeline i tak uwiązany jest do V-Synca.

Powyższe dotyczy tylko wersji 3.0 atari800 w wersji 3.1 turbo działa.

Edit 3
U mnie nic takiego się nie dzieje, na rpi1 leci od 250 do 450%.

Edit 4
Na 50Hz turbo działa lecz ze zrywami 2-3 sekundy 250% potem powrót do 99% na parę sekund i znowu przyspiesza do 250% i tak w koło macieju.

Ostatnio edytowany przez Waldow (2015-06-10 21:47:27)

Post's attachments

atari000-3.1_rp1_Demon_Attack.png 1.27 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.

47

Odp: atari800-3.0.0 Raspberry PI2

Cześć,

Waldow napisał/a:

Powyższe dotyczy tylko wersji 3.0 atari800 w wersji 3.1 turbo działa.

Niestety nie ;/ Turbo działa mniej więcej przez 0,5sek (prędkość ~350%) po czym prędkość spada do 100%, tak jakby "turbo mode" zostało wyłączone, ponowne wciskanie F12 lub włączenie turbo mode w opcjach emulatora nic nie zmienia.

EDIT:

Przełączyłem na tryb 1080p @ 60Hz ... no i niestety przy PAL scroll-e szarpią widocznie, wszystkie efekty które normalnie wykonują się "in one frame" (żargonowo "wchodzą w ramkę") wyglądają paskudnie. Ale za "turbo mode" działa... od ~450% do ponad 800% w zależności od tego co się dzieje na ekranie.

Co ciekawe w trybie 1080p @ 60Hz, po przełączeniu emu na NTSC, Turbo Mode również działa...

http://seban.pigwa.net/aa/a800_trb.png

Ostatnio edytowany przez seban (2015-06-10 22:17:45)

life is complex, it has both real and imaginary components.

48

Odp: atari800-3.0.0 Raspberry PI2

Waldow napisał/a:

Wpisy w config.txt dla 1024x768 50Hz

hdmi_mode=87
hdmi_cvt=1024 768 50 1 0 0 0

Przetestowałem, działa, ale nie mam dźwięku (nie wiem czy to RPI czy mój chiński "monitor").

Waldow napisał/a:

atari800 działa dość dobrze (v-sync, scrole, itp) także przy odświeżaniu monitora 75Hz.

hdmi_mode=18   1024x768   75 Hz

To jest chyba dobry kompromis. Mam dźwięk (przez HDMI) i wszystko działa smile

Czy Wam też emulator okropnie zwalnia po włączeniu emulacji drugiego POKEY-a?

ATARI 65XE + SIO2BT
http://atari.pl/hsc/ad.php?i=22.3

49

Odp: atari800-3.0.0 Raspberry PI2

Montezuma napisał/a:

Przetestowałem, działa, ale nie mam dźwięku (nie wiem czy to RPI czy mój chiński "monitor").

dodaj wpisy

# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
hdmi_drive=2

# enables the ignoring od EDID/display data if your display is a crappy
# Chinese one
hdmi_ignore_edid=0xa5000080

50

Odp: atari800-3.0.0 Raspberry PI2

Tego wszystkiego już próbowałem.
Kiedyś odczytałem nawet ustawienia EDID z elektroniki od display-a.
Bez

hdmi_ignore_edid=0xa5000080

wogóle nie da się wiele zrobić, bo urządzenie ogłasza, że wspiera tylko 1080i (a jako fallback 640x480).
Elektronika jest "uniwersalna" i sprzedawana na ebay-u w zestawach z display-ami o różnych rozdzielczościach.
Do tej pory przy zabawach z emulatorami korzystałem z rozdzielczości 640x480.
RPI i atari8000 radził sobie z tą rozdzielczością bez GPU, a elektronika displaya skalowała to na 1024x768.
Teraz ustawiam RPI na natywną rozdzielczość display-a (1024x768, w trybie hdmi_mode=18, 75 Hz), a atari800 ze wspomaganiem GPU śmiga i jestem happy smile

ATARI 65XE + SIO2BT
http://atari.pl/hsc/ad.php?i=22.3