atarionline.pl Normalny CART, ale OGROMNA pamięć - 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:
       
      CommentAuthorAlex
    • CommentTime28 Nov 2022
     
    Ja ten emulator A8 i NES-a na ESP testowałem. On generuje sygnały A/V na piechotę (!) i to na serio działa, więc możliwości i moce są na prawdę spore. Poza tym zawsze można dać dwie sztuki skoro są po kilka złotych za sztukę.
    • 2:
       
      CommentAuthorpancio
    • CommentTime28 Nov 2022
     
    poka wsad - potestujemy...
    • 3:
       
      CommentAuthorAlex
    • CommentTime28 Nov 2022 zmieniony
     
    @pancio - Tutaj jest link do projektu ->link<-

    • 4:
       
      CommentAuthorgienekp
    • CommentTime28 Nov 2022
     
    @Alex

    A/V wychodzi normalnie analogowo z PINów ESP? Wiadomo z których?

    A da się wpuścić sygnał A/V ATARI? Bo wtedy 2 piny IN i 2 piny OUT robiłyby również jako przelotka. I ciekawe czy by się dało zaemulować VBXE (albo coś podobnego).

    Instalował ktoś pod MacOS środowisko do programowania ESP?
    • 5:
       
      CommentAuthormav
    • CommentTime28 Nov 2022
     
    Są gotowe schematy i wsady, przykładowo:
    ->link<-

    Alex widzę wrzucił to samo.
    Ja z kolei wyszukiwałem samego info o video z esp, natomiast wyżej wspomniany link, jest także tutaj:
    ->link<-

    Pomyśleć, że ja używam obecnie ekraniku dotykowego po SPI, który w porównaniu do generowanego obrazu pal jest dość wolny :D ale działa.... ogólnie zawsze mnie dołują te zderzenia z projektami ludzi, czuję się jak jakiś troglodyta :D
    • 6:
       
      CommentAuthorgienekp
    • CommentTime28 Nov 2022
     
    Albo mi się coś źle rozumie, albo nie wiem... ale z opisów wychodzi, że normalnie można ADC i DAC puszczać synchronicznie. No to do ADC wpuszczam obraz z ATARI i DAC wypuszczam: albo to samo, albo "ulepszone". Próbka po próbce, czyli opóźnienie żadne. A jakby tak poczekać jedną linię to można by wygładzić sygnał ATARI, tryby migające zrobić niemigającymi, a tryby co te 2 linie sklejają z różnych GTIA (nie wiem jak to się tam nazywa) również wygładzić. Czyli jakby poprawić PAL.

    Do obudowy Sikora to najlepiej by pasowało gniazdo mały(może micro?) jack. Mamy 2 kanały ADC i 2 DAC. No to dwa gniazda jack stereo, jedno jako In a drugie jako Out. I w sumie dowolność, można wpuścić 1 audio 1 wideo i wypuścić 1 audio 1 wideo. Lub wypuścić 2 audio zmiksowane z tym 1 audio z ATARI.

    I wszystko bez żadnego lutowania na stockowym sprzęcie. :)
    • 7:
       
      CommentAuthorjhusak
    • CommentTime28 Nov 2022 zmieniony
     
    Wygładzenie = blur. Brzmi świetnie wygląda fatalnie. A ten ADC nie ma przypadkiem 200ksps? Nawet, jak przeciążysz i ograniczysz bity, to osiągniesz częstotliwości rzędu 1MHz. Do wizji jeszcze trochę brakuje.
    • 8:
       
      CommentAuthorpancio
    • CommentTime28 Nov 2022 zmieniony
     
    @Alex, projekt to ja znam... sam go tu zapodałem.. ale nie udało mi się skompilować wsadu bo jak wspomniałem parę postów wyżej - projekt wymaga dość starej wersji środowiska i bibliotek dla ESP32. A instalacja starego środowiska pozamiata moje dotychczasowe projekty.. Stąd moja prośba bo skoro zrobiłeś to chyba możesz udostępnić. no ale jeśli nie to sobie postawię wirtualkę i spróbuję 'back to the past' zrobić by oszczędzić Ci problemu :-)

    @mav, projekt nie zawiera wsadów do ESP a jedynie obrazy gier. Zadałem sobie trud by to sprawdzić wcześniej :-)
    • 9:
       
      CommentAuthorgienekp
    • CommentTime28 Nov 2022
     
    @jhusak
    no właśnie nie wiem jak to tam jest, dopiero czytam. Wizja potrzebuje minimum 6MHz. Ale do wykrycia fazy PAL to pasowało by więcej.

    Najwyżej da się jacka 3 kanałowego. 1 ADC i 2 DAC "in future use".

    Te piny mają tyle kombinacji, że szok. Trzeba chyba najpierw jakąś bogatą płytkę developerską nabyć.
    • 10:
       
      CommentAuthorpancio
    • CommentTime28 Nov 2022
     
    Mam wiele rodzai tych modułów ale ostatnio - ze względu na ilość dostępnych wyprowadzeń - używam tego:

    ->link<-
    • 11:
       
      CommentAuthormav
    • CommentTime28 Nov 2022
     
    pancio - skąd jesteś? Chciałbyś te upalone esp32? są na płytkach devkit-v4
    • 12:
       
      CommentAuthorpancio
    • CommentTime28 Nov 2022 zmieniony
     
    okolice Gliwic :-) ale szkoda mi czasu na diagnozowanie... mam tego całą szufladę :-) Zasadniczo łatwiej się zamawia świeże pod projekt niż szuka starych...
    • 13:
       
      CommentAuthormav
    • CommentTime28 Nov 2022
     
    ok, czaje. podobno niektórych układów brakuje w obiegu, ale jasne, rozumiem :D
    • 14:
       
      CommentAuthorAlex
    • CommentTime28 Nov 2022
     
    @pancio - To się nie zrozumieliśmy :) Ja to zawsze na świeżo kompiluję i nie trzymam binarek. Spróbuję Ci takową wygenerować.
    • 15:
       
      CommentAuthorAlex
    • CommentTime28 Nov 2022
     
    @pancio - Dobra, udało się chyba :) Sprawdź czy jest OK, bo nie mam teraz przy sobie hardware'u.
    • 16:
       
      CommentAuthorpancio
    • CommentTime28 Nov 2022
     
    Dzięki - testy na weekend!
    • 17:
       
      CommentAuthorpirx
    • CommentTime28 Nov 2022
     
    tylko się wetnę, że wyprowadzanie videło z karta to nie to, co tygryski by lubiły najbardziej - to chiba łatwiej podłączyć sobie tego esp32 na breadboardzie.
    co można zrobić - emulgator generuje bitmapę. procesik zamiast generować podnośne pal/ntsc konwertuje tą bitmapę na 8KiB bitmapkę dla małego atari. albo prymitywnie, 4 kolory i basta, albo trochę więcej kodu i 5 kolorów + trochę przerywanek czy cos w ten desen.
    i to sze wyszwietla na atarce
    • 18:
       
      CommentAuthorAlex
    • CommentTime28 Nov 2022
     
    @pirx - Sygnał video z carta nie byłby niczym innym jak sygnał z VBXE ;) Pytanie czy da się nakładać obrazy w czasie rzeczywistym...
    • 19:
       
      CommentAuthorCyprian
    • CommentTime28 Nov 2022 zmieniony
     
    @Alex obraz można mieszać analogowo, z tym że ESP musiało by wiedzieć w którym momencie występują impuls VBL i HBL z Atari by w dobrym momencie generować obraz
    • 20:
       
      CommentAuthorAlex
    • CommentTime29 Nov 2022
     
    @Cyprian - No można :) i może być to prostsze rozwiązanie.
    • 21:
       
      CommentAuthorgienekp
    • CommentTime29 Nov 2022 zmieniony
     
    @pirx

    Ja też jestem zwolennikiem, że centrum jest w ATARI, a nie tylko ATARI jako dawca zasilania. Natomiast 2 piny można wyciągnąć na micro jacka jako opcja. Na czerwono w prawym górnym rogu jest miejsce, gdzie między podpórkami obudowy sikora mieści się takie gniazdo. Ktoś zamiast analogów może sobie tam cyfrowo coś zrobić i mieć ekstra na przykład UARTa. Lub dać na krzyż i podłączyć drugie takie ATARI i grać na dwóch itd.
    • 22:
       
      CommentAuthorpancio
    • CommentTime30 Nov 2022 zmieniony
     
    wygląda to to coraz ciekawiej.. jeszcze drugie gniazdo jack po lewej i mamy sampler :-)
    • 23:
       
      CommentAuthorsun
    • CommentTime30 Nov 2022
     
    Szykuje się coś ala vbxe, rgb2hdmi? :)
    • 24:
       
      CommentAuthorAlex
    • CommentTime30 Nov 2022
     
    Jakby dodać ECI to będzie all-in-one :)
    • 25:
       
      CommentAuthorMq
    • CommentTime30 Nov 2022 zmieniony
     
    @gienekp: na wzorze pcb te miejsca zaznaczone gdzie są przegrody w obudowie Sikora, to one są tak mniej-więcej. Nie są precyzyjnie zaznaczone, a do tego płytka ma trochę luzu w obudowie, więc trzeba uważać jak się projektuje coś pomiędzy przegrodami, żeby to się tam później faktycznie zmieściło. Mam na myśli przykładowo to gniazdo jack, że ono może się tam zmieści, a może nie. Ale to tylko tak informacyjnie piszę.
    Ogólnie jak są jakieś wolne piny do wykorzystania w niewiadomym celu przyszłościowo, to zamiast robić jakiekolwiek gniazda na pcb, lepiej zrobić po prostu miejsce na goldpiny, wtedy zawsze można tam na etapie testów dolutować cokolwiek się będzie chciało, czy na kabelkach nawet dowolne gniazdo zamontować do obudowy i wpinać na goldpinach do płytki głównej. Na etapie prototypu lepsze to rozwiązanie.
    • 26:
       
      CommentAuthorAlex
    • CommentTime30 Nov 2022
     
    A może by dodać jeszcze gniazdo na karty SD? :) Do ESP są gotowe biblioteki.
    • 27:
       
      CommentAuthorpancio
    • CommentTime1 Dec 2022
     
    przecież SD leży u podstawy projektu... (prawa stona PCB)
    • 28:
       
      CommentAuthorjhusak
    • CommentTime1 Dec 2022
     

    gienekp:

    Dobrze zrobiony cart przełączy banki między liniami obrazu.

    Dobrze zrobiony cart przełączy banki między punktami obrazu - ma to zrobić natychmiast.
    • 29:
       
      CommentAuthorPeri Noid
    • CommentTime1 Dec 2022
     
    Wracam z dawno zadanym pytaniem - jak ma to zrobić poprawnie jeśli steruje się nim dwoma portami (potrzebne 2 operacje zapisu)? Przy przełączaniu w trakcie linii nie można korzystać z dobrodziejstw przepisywania z rejestrów cieni, jak mi to kiedyś tłumaczyliście (jeśli czegoś znów nie pokręciłem).
    • 30:
       
      CommentAuthorAlex
    • CommentTime1 Dec 2022
     
    @pancio - Aaaa to nie widziałem :)
    • 31:
       
      CommentAuthorpancio
    • CommentTime1 Dec 2022
     
    @Peri Noid, można... pierwszy rejestr przełączasz co linie a drugi inkrementujesz co ramke?

    i/lub mechanizm autoinkrementacji można zastosować...
    • 32:
       
      CommentAuthorPeri Noid
    • CommentTime1 Dec 2022 zmieniony
     
    Ale dowolnie tego nie przestawisz bez niekoniecznie pożądanych przeskoków. O to mi chodzi. Ale to nieistotne.
    • 33:
       
      CommentAuthorpancio
    • CommentTime1 Dec 2022
     
    Nie... to bardzo istotne co napisałeś. I tu masz racje. To co napisałem ja - to kompromis :-)
    • 34:
       
      CommentAuthorMq
    • CommentTime1 Dec 2022
     
    No ale co za problem z tym przełączaniem? Całość jest robiona w CPLD, więc wystarczy tam zrobić np. dwa rejestry "wejściowe" i dwa rejestry "wyjściowe", i zapis do pierwszego powoduje tylko zatrzaśnięcie przesłanego adresu, a zapis do drugiego zatrzaskuje drugi bajt i dopiero wtedy przepisuje całość (oba rejestry jednocześnie) do rejestrów "wyjściowych" (tych sterujących faktycznie pamięcią) i już. To na prawdę można zrobić na wiele sposobów, to tylko jeden taki przykład na szybko.
    • 35:
       
      CommentAuthorPeri Noid
    • CommentTime1 Dec 2022
     
    Tylko wtedy musisz zawsze zapisywać obydwa rejestry, żeby był ten element zapisu do drugiego. Nawet jeśli ten się nie zmienia. Wiem, że coś za coś - po prostu jak się nie obrócisz to zawsze coś będzie nie tak. Taki urok używania bankowania z dwoma rejestrami.
    • 36:
       
      CommentAuthorgienekp
    • CommentTime1 Dec 2022
     
    @Mq
    Tak, nie wiadomo jak gniazdo spasuje. Dlatego teraz jest etap zamawiania elementów i sprawdzenia na żywo co się gdzie mieści. Idealna do tego jest ta szara-przeźroczysta obudowa od sikora. Ja ją używam do wykrywania wszelkich kolizji z podstawkami pinami lutami itp. Zamyka się płytkę i pod światło widać co i jak :)
    TXS0108EPWRG4 zrobił się niedostępny :/, ale za resztę części Mouser pokazuje 55,47zł z VAT. No jest duża szansa, że zestaw "lego" będzie poniżej stówki.

    Trochę ciasno z pinami jest, bo brakuje. Tzn jak się użyje RX TX jako podwójne zastosowanie to mieści się. No więc teraz etap testowania samego ESP. Czy to wszystko tam się tak skonfiguruje jak my chcemy. Zamówiłem ESP, czekam aż dojdą...

    Samo przełączenie banku za pomocą powiedzmy rejestr A B C, to tak jak napisał Mq, że zatrzaskuje się po C. ALE ja bym dodał, że jeżeli A=0 i B=0 to C idzie natychmiast. Taka "strona zerowa" bankowania. Można też ekstra rejestrem D dawać blokady, rozkaz typu zatrzaskuj natychmiast itp. Z tym, że to programowa sprawa i można ją zrobić na wiele metod. Jedynie co według mnie musi być, a czego nie mają inne carty to zupełne niezależne bankowanie dolnego i górnego adresu carta. Wtedy pamięć obrazu może być niezależnie przełączana z pamięcią np. graczy-pociksów jak i fontów. Po prostu łatwiej będzie zrobić toolsy do robienia gier-filmów.

    Duża szansa, że dojdą 2 piny IN te w porty ADC. Czyli sampler będzie. Ale przy okazji takie coś. Jeżeli upchać zwykły switch to:
    - ADC wykryje synchronizację bo to wyrobi, powinno się udać wystartować z licznikiem pozycji X,Y obrazu w ESP
    - jeżeli podam sygnał z atari to tym switchem mogę przełączyć ten sygnał z atari na ten z ESP. Więc można by w linii przełączyć z ANTICA na coś z ESP. Takie nowe tryby.
    - jeżeli sygnał IN nie będzie z atari ale z czegoś innego, to można będzie nałożyć obraz na obraz. Na amidze to się chyba GENLOCK nazywało.
    • 37:
       
      CommentAuthorMq
    • CommentTime2 Dec 2022 zmieniony
     
    Z tym bankowaniem jeszcze mi przyszło do głowy, że w sumie można by zrobić tak, że wpis do pojedynczego rejestru od razu przełącza bank. Tylko programista musi wtedy wiedzieć co robi. Przykładowo jeśli w rejestrze A mamy pierwszy bank, a w rejestrze B mamy pierwszy "bank banków", to jak zmienimy rejestr A, to zmieni nam się bank w obrębie "banku banków" bez zmiany tego "banku banków". Jak natomiast zmienimy rejestr B, to zmieni nam się "bank banków" na inny, i w nim od razu będzie wybrany bank pierwszy, bo nie zmienialiśmy rejestru A.

    Takie rozwiązanie spowoduje, że będzie można zmieniać banki za pomocą jednego LDA, tylko wtedy jeśli chcemy np. zmieniać grafikę, to trzeba banki odpowiednio układać od strony programowej. Natomiast jeśli nie zmieniamy grafiki, to co nam przeszkadza, że na chwilę włączy się niewłaściwy bank? Pierwsze LDA zmienia np. rejestr A, drugie LDA zmienia rejestr B. Niewłaściwy bank mamy wybrany tylko w czasie pomiędzy tymi dwoma rozkazami LDA, no ale my wykonujemy dwa rozkazy jeden po drugim, więc w niczym nam to przecież nie przeszkadza, bo w tym czasie nie korzystamy z danych.

    Aha, pisałeś o trzech rejestrach A,B,C, ale to nie ma znaczenia, dokładnie ta sama zasada, tylko trzy LDA zamiast dwóch.

    Edit: Właściwie co ja gadam. Nawet grafikę można zmieniać w ten sposób, bo dwa LDA po sobie są tak szybkie, że nic nie mrugnie nawet na ekranie. Może ewentualnie warto wtedy robić to w jakimś logicznym momencie (synchronicznym), czyli kodować to zmienianie banków np. w przerwaniach, a nie byle gdzie.
    • 38:
       
      CommentAuthorCyprian
    • CommentTime2 Dec 2022 zmieniony
     
    tak jak @Mq napisał, zmiana banków jednym zapisem była by lepsza, bo szybciej można by zmieniać banki odległe o 256 albo 65536 miejsc.

    No i ważne żeby były to rejestry również do odczytu.
    • 39:
       
      CommentAuthorpirx
    • CommentTime2 Dec 2022
     
    Mq raczej chyba miał na myśli STA, ale w sumie dla zdolnego programatora to lda mogłoby podbijać nr banku o 1 :]

    o mamciu, ale mam wizję - liczniki w karcie. potrzebujesz jakiegoś licznika, to robisz
    lda #initial_value
    sta cart_counter01

    a potem każde lda cart_counter01 zwraca aktualną wartość, po czym podbija ją o 1.
    następne lda daje wartość o 1 większą.

    bes zensu, ale ilekroć widzę inc:lda counter to mógłbym nie widzieć :]
    A, no i tablica sinusów w komórce
    lda angle
    sta sinuser
    lda sinuser
    z 90 bajtów oszczyndzone
    • 40:
       
      CommentAuthorjhusak
    • CommentTime2 Dec 2022
     
    90 bajtów za pińcetzłoty - brać nie wybierać!
    • 41:
       
      CommentAuthorgienekp
    • CommentTime2 Dec 2022 zmieniony
     
    LDA czy STA nie ma znaczenia, bo jak ESP wisi na magistrali to może reagować na R/W (bo jest podciągnięte) jak i nie (jak w MaxFlash).
    Ostatecznie STA STY STX i 3 banki przełączy.
    Kiedyś dawno temu (przeczuwając co nastąpi ;) ) zapytałem co się dzieje jak w czasie rysowania linii podmienimy bank. Bo to takie oczywiste nie jest. Bo zdaje się, że ANTIC inaczej buforuje dane dla różnych trybów. Może się okazać, że akurat STA/X/Y zdąży w czasie bloku buforowego i w połowię linii zmieni dane bez śmieci z innego banku.

    Tak czy siak, będzie się dało, że niebo i chmurki animują się według filmu-1 a trawa i krzaki według filmu-2.

    Cała magistrala jest R/W więc wszystko adresy są na zapis i odczyt wrażliwe.

    To ESP jest pierońsko szybkie, więc może się okazać, że niektóre banki mogą być wirtualne. Np. mamy blok 8192 bajtów niby policzonego sinusa. Ale on fizycznie nie istnieje. Po prostu przed samym odczytem ESP policzy i podstawimy mu wynik.
    • 42:
       
      CommentAuthorpirx
    • CommentTime2 Dec 2022
     
    mniut
    • 43:
       
      CommentAuthorgienekp
    • CommentTime2 Dec 2022
     
    A PALETA BANKÓW?
    Tworzę 256 paletę banków. Tzn jeden wpis wybiera od raz u A B C. Wtedy "łażenie lokalne po lesie" będzie na jedno STA. 256 banków 8192 to 2Mbajty. Lokalna animacja szła by od kopa.
    • 44:
       
      CommentAuthorAlex
    • CommentTime2 Dec 2022
     
    Teoretycznie można by zrobić streaming z internetu z automatyczną konwersją on-the-fly do wybranego trybu graficznego :)
    • 45:
       
      CommentAuthorpancio
    • CommentTime3 Dec 2022
     
    Możliwe, że się przyda....

    • 46:
       
      CommentAuthorMq
    • CommentTime3 Dec 2022
     
    @pirx: miałem na myśli LDA, ale STA też może być. gienekp robi ten projekt z tego co widzę na modłę AtariMax MaxFlash, a tam bankowanie jest zrealizowane na samej szynie adresowej, czyli "dotknięcie" adresu zmienia bank, więc nie ma znaczenia czy się robi LDA czy STA.
    • 47:
       
      CommentAuthorgienekp
    • CommentTime4 Dec 2022 zmieniony
     
    Wykorzystałem wszystkie PINY ESP i co się da:
    - cała szyna danych D7-D0 podpięta bezpośrednio przez dwukierunkowy konwerter napięć 5v <-> 3V3
    - szyna adresowa A12-A0 plus S4/S5/CCTL jest multipleksowana 16 do 4; S4/S5/SSTL są w jednej "paczce" więc na ESP jeden odczyt od razu stwierdzi o co ATARI zapytuje
    - PHI2 i R/W jest multipleksowane 2 do 1; jeden z sygnałów wybierających jest ten sam co powyżej, więc jest oszczędność
    - RD4 i RD5 są spięte; ponieważ brakuje w ESP już pinów a w razie czego RAM pod S4 może zasymulować ESP

    Ekstra są dwa jacki "stereo"; nie wszystko da się tak cacy bo brakuje pinów w ESP dlatego:
    - sygnał z "dzióbka" JACK IN wchodzi po dzielniku (na razie wartość na pałę) na ESP ADC1 i jednocześnie do switcha analogowego
    - drugi sygnał z JACK IN leci do sumatora na rezystorach
    - do JACK OUT jeden z sygnałów to suma z ESP DAC2 i z JACK IN
    - drugi sygnał JACK OUT to ze switcha analogowego gdzie jednym z wejść jest ESP DAC1

    Idea z jackami jest taka, że wpuszczam A/V z ATARI i wychodzi coś co jest A/V ale audio jest sumą Audio ATARI i Audio ESP. Natomiast wideo nie da się sumować więc jest przełączane. Więc możliwe będzie Przełączenie danej linii z ATARI na linię z ESP. Jeżeli ADC1 poprawnie wyłapię sychro z ATARI to będzie można mieszać tryby ANTICa z trybami virtualnymi z ESP.

    Sygnały do programowania RX i TX są podwójnie zastosowane, więc raczej przy programowaniu ESP trzeba będzie carta od ATARI odpiąć.

    Czekam na elementy z Mousera. Jeżeli nie będzie geometrycznych kolizji to kończę płytę i puszczam do chińczyka.

    Ponieważ piny w ESP już na dzień dobry są rozsypane, to pewnie przy rysowaniu PCB będę zmieniał kolejności w obrębie danego zadania. Żeby zmniejszyć liczbę przelotek i poprawić odporność carta na podłączanie do dodatkowych przejściówek/switchy.

    No i pewnie jakieś babole jeszcze wyjdą bo cały czas wychodzą :)

    EDIT
    Oczywiście RD4 i RD5 są spięte
    • 48:
       
      CommentAuthormav
    • CommentTime4 Dec 2022
     
    Podziwiam i szanuję
    • 49:
       
      CommentAuthorAlex
    • CommentTime4 Dec 2022
     
    Bomba :)
    • 50:
       
      CommentAuthorpirx
    • CommentTime4 Dec 2022
     
    na pewno biere na dev