atarionline.pl Wykrywanie PAL/NTSC - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthorilmenit
      • CommentTime8 Jan 2020 09:01
       
      W jaki sposób najlepiej wykrywać PAL/NTSC (dla przykładowo szybkości odgrywania muzyki)?
      Tebe kiedyś polecał $D014 i to "standardowa" metoda ->link<- , ale mamy modyfikacje.
      Na AtariAge polecają VCOUNT e.g. ->link<- ponieważ ludzie wymieniają NTSC na PAL i są potencjalnie inne modyfikacje.
      • 2: CommentAuthorxxl
      • CommentTime8 Jan 2020 10:01
       
      jesli nie zamierzasz zapisac programu na CAR to moze $62 PALNTS - dla komputerow z XL/XE/GS ?
      • 3: CommentAuthormono
      • CommentTime8 Jan 2020 11:01 zmieniony
       
      Opcje są dwie, bo i są dwa układy w Atari.
      Sprawdzenie PAL($D014)/PALNTS($62) zwróci Ci tylko informację o GTIA, czyli o tym jakie kolory są generowane przez komputer - to się nadaje tylko do korekty kolorów w grze.
      Policzenie linii VCOUNT (które generuje ANTIC) zwróci info o częstotliwości ramki i to przydaje się do taktowania playera.
      sync1 lda VCOUNT
      sync2 cmp VCOUNT
      beq sync2
      cmp VCOUNT
      bcc sync1

      cmp #[312+262]/2/2

      C=0-NTSC, C=1-PAL

      Edit: Choć bezpieczniejsze na zwisy będzie chyba coś takiego:
      sync1 ldx VCOUNT
      bpl sync1
      sync2 txa
      ldx VCOUNT
      bmi sync2

      cmp #[312+262]/2/2

      Trzeba oczywiście uważać na długi VBLK więc lepiej to robić albo przy wyłączonych NMI albo przynajmniej przy SEI (jeśli na VBLKI nie wisi długa procedura - szczególnie przy NTSC).
      W pierwszej procedurze dwie pętle są dlatego, że przy różnych prędkościach CPU procedura może się zapętlić w nieskończoność bo drugie CMP może złapać jeszcze wartość 156. Efekt opisywał Simius w ->link<- i na AtariAge też gdzieś to wyłapali.
      • 4: CommentAuthortebe
      • CommentTime8 Jan 2020 16:01 zmieniony
       
      czy to znowu jest wina ludzi modyfikujących sprzęt, że takie fikuśne fikołki trzeba wyczyniać ?

      czy Atari tak chciało ;) ?

      link do programu ASCRNET-a dokonującego detekcji tego i owego

      ->link<-

      w pliku 'antic_detect.asm' widzimy

      // ANTIC PAL Test for Atari 8-bits
      // (C) 2019 Guillermo Fuenzalida

      .proc @ANTIC

      antic_loop1
      lda vcount
      cmp #100
      bcc antic_loop1 //Wait till scanline 200
      sta scanline
      antic_loop2
      lda vcount
      cmp #10
      bmi antic_loop2_fin
      cmp scanline
      bmi antic_loop2
      sta scanline
      bpl antic_loop2
      antic_loop2_fin
      ldx #$00
      lda scanline
      cmp #135
      bmi ntsc
      inx
      ntsc
      stx palnts
      detect
      mva #1 @antic_detect
      lda palnts
      beq end_antic
      mva #0 @antic_detect
      end_antic
      rts

      scanline
      .byte 0

      .endp


      p.s.
      brakuje w biblioteczce programisty na Atariki wpisu na temat detekcji PAL / NTSC
      • 5: CommentAuthorxxl
      • CommentTime8 Jan 2020 17:01
       
      jaka to ma przewage nad detekcja na zasadzie odczytania zawartosci komorki PALNTS ?
      • 6: CommentAuthortebe
      • CommentTime8 Jan 2020 18:01 zmieniony
       
      okazuje się że odczytanie PALNTSC prowadzi do detekcji systemu w jakim działa GTIA, natomiast w/w procedury dokonują detekcji systemu w jakim pracuje układ ANTIC

      PALNTSC = GTIADetect only

      p.s.
      w dawnych, zamierzchłych czasach, kiedy plomby nie pozwalały dostać się do środka obudów, odczyt PALNTSC był tożsamy z detekcją obu układów GTIA/ANTIC

      współcześnie będziemy stosować wyrafinowane programy aby wykryć wszystkie dodatkowe urządzenia podpięte pod każdą nóżkę układów GTIA/ANTIC ;)
      • 7: CommentAuthorxxl
      • CommentTime8 Jan 2020 18:01
       
      GTIA NTSC i ANTIC PAL?

      ojojojojojoj :D
      • 8: CommentAuthorilmenit
      • CommentTime9 Jan 2020 08:01
       
      Dla mnie pisanie tak, aby działało na zmodyfikowanych Atari jest coraz bardziej absurdalne ;) Ale powiedziałem sobie, że nie będę otwarcie krytykował, dopóki chociaż jednego projektu tak nie napiszę.
      Będę zatem co jakiś czas otwierał temat coś zrobić, aby było "prawilnie" i nie po "patokodersku" ;)
      • 9: CommentAuthorxxl
      • CommentTime9 Jan 2020 08:01
       
      a ile razy slyszy sie: "zalatwiac wszystko przez system"

      sami wpadaja w swoje sidla ;-)
      • 10:
         
        CommentAuthorpirx
      • CommentTime9 Jan 2020 09:01 zmieniony
       
      ja bym się tym anticem tak bardzo nie przejmował - chłopaki w usa montują palowe antiki, żeby pooglądać nasze palowe prodki, czyli celem tego modu jest odpalenie czegoś, co normalnie się nie odpala. na 100 pro mają też amerykańskie atarki, a te grzebane są do zadań specjalnych.
      moim skromnym zdaniem wystarczy obmacać PALNTSC i się dalej nie zastanawiać.
      • 11: CommentAuthorwieczor
      • CommentTime9 Jan 2020 11:01
       
      Dokładnie - cały czas nie widzę informacji która to niby modyfikacja uniemożliwia wykrycie systemu w normalny sposób - poza tą, o której wspomniał pirx - tzn. GTIA i ANTIC są w różnych systemach :)
      • 12: CommentAuthorilmenit
      • CommentTime9 Jan 2020 11:01
       
      Ludzie np. wymieniają wadliwe GTIA ->link<- i potem by potrzebowali "poprawną" detekcję:
      ->link<-
      Nie trolluję, chcę zrobić projekt, który będzie działać "na wszystkim" i zobaczyć, ile potem będzię uwag "u mnie nie działa" ;)
      • 13: CommentAuthorwieczor
      • CommentTime9 Jan 2020 11:01 zmieniony
       
      Ok, ale akurat to się tyczy sytuacji gdy

      if you have repaired machines and GTIAs have been swapped between pal/ntsc machines


      Osobiście nie spotkałem się z taką akrobacją gdy ktoś mając wadliwe GTIA swapuje je na takie nie z tego systemu - raczej z reguły wymienia się wadliwe GTIA PAL na GTIA PAL. Równie dobrze możesz próbować przygotować się na sytuację, gdy ktoś zdemontował jeden z portów joysticka (bo używa tylko jednego ) - to moim zdaniem przesada.

      A jeżli już faktycznie chcesz to tak jak napisano powyżej - policz linie obrazu. System wykrywa się w dwóch celach - kalibracja koloru - tu jest ważna wersja GTIA - synchronizacja - tu jest ważny ANTIC.
      • 14: CommentAuthorAdam
      • CommentTime9 Jan 2020 11:01
       
      Z tego co wiem, wymiana w maszynach NTSC ANTIC-a na wersję PAL-ową jest coraz bardziej popularna w Stanach.

      Gdyby Atari miało tylko jeden układ odpowiadający za grafikę, to wystarczyłaby jedna flaga - mamy kłopot bogactwa, ot co ;) A konstruktorzy założyli, że wystarczy sprawdzenie samego wariantu GTIA.
      • 15: CommentAuthormono
      • CommentTime9 Jan 2020 14:01
       
      U ABBUC-ów się pojawiło coś takiego chyba rok temu: ->link<-
      • 16: CommentAuthorzbyti
      • CommentTime9 Jan 2020 14:01 zmieniony
       
      Marzy mi się współczesna pozycja książkowa (uwzględniająca najnowszy sprzęt, trendy etc.) o programowaniu na A8/C64/ZX/CPC - ktoś coś wie?

      Ja jedynie zanotowałem w pamięci ostatnią reedycję na A8 książki o asm i ambicję @bocianu napisania czegoś o MadPascalu :)

      Sam chciałem na bazie MadPascala zrobić jakiś wstęp do programowania szachów ale "życie mnie zaskoczyło" i sprawa kodowania leży (jak i zdobywania samej wiedzy o programowaniu szachów) a co dopiero napisanie jakiejś broszury.
      • 17:
         
        CommentAuthorKaz
      • CommentTime9 Jan 2020 15:01
       
      Podejrzewam, że przeróbka polegająca na przełączniku PAL/NTSC będzie zyskiwać na popularności. Z dwóch względów: a) ludzi z NTSC zyskują dostęp do softu pod PAL, b) ludzie z PAL mogą otrzymać lepsze wrażenie w niektórych grach. Tak jest przecież np. z Moon Patrol Redux - na kompie NTSC gra działa nieco szybciej i jest płynniejsza, na kompie PAL są delikatne szarpnięcia i rozgrywka bardziej dla emerytów ;). Różnica jest też oczywiście w prędkości odtwarzania muzyki, co słychać wyraźnie.

      zbyti:

      o programowaniu na A8/C64/ZX/CPC - ktoś coś wie?


      Obawiam się, że o A8 musisz sam napisać :) Problem z tego typu książkami jest taki: a) wymagają ogromnej wiedzy, którą mają nieliczni, b) nakład pracy do fazy wydania książki jest olbrzymi, c) odbiorców książki będzie niewielu, nawet jeśli to będzie 500 osób, to dalej nie zarobisz na tym tyle, by się zwrócił nakład pracy.
      • 18: CommentAuthorzbyti
      • CommentTime9 Jan 2020 16:01 zmieniony
       
      @Kaz są jeszcze maniacy co piszą manuale ;)

      Obadaj to: DurexForth ->link<- ->link<- ->link<-

      Chcę dziś nauczyć się trochę podstaw bo się spóźniłem o 25 lat z nauką :D Tak dla higieny umysłowej ;)

      @ilmenit przepraszam, zaśmieciłem ważny wątek...
      • 19:
         
        CommentAuthorKaz
      • CommentTime9 Jan 2020 17:01 zmieniony
       
      Ale to pojedynczy program, a to jest do niego 31-stronicowa broszurka, instrukcja obsługi programu. Myślałem, że chodzi ci o książkę, która zawiera np. jakieś porównania języków (wad, zalet), techniki programowania z uwzględnieniem uwarunkowań Atari czy nowych odkryć (np. w zakresie grafiki czy muzyki). Żeby uczyło tworzenia programów na różnych współczesnych sprzętach (np. z większą pamięcią, stereo) czyli wiedza była w miarę aktualna, a nie z lat 80tych :)

      PS. W zakresie Fortha polecam tę książkę, z której ja się uczyłem - Jan Ruszczyc "Poznajemy Forth", 220 stron, dostępny w naszej biblioteczce:

      ->link<-

      • 20: CommentAuthorzbyti
      • CommentTime9 Jan 2020 17:01 zmieniony
       
      @Kaz no to dobrze mnie zrozumiałeś :] Chciałbym książkę dokładnie taką jak opisałeś, może nie aż tak przekrojową a skupioną na jednym języku programowania.

      Zamieściłem Durex bo nawet broszurka w tego typu oprogramowaniu to dziś rzadkość.

      Tak, mam już tę książkę co polecasz bo czytałem na temat tego języka dwa wątki na tym forum i brzmiało ciekawie :]