atarionline.pl Układ Maria - 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: CommentAuthorrosomak
      • CommentTime6 Jan 2020 19:01
       
      Dość enigmatycznie opisany jest układ Maria z konsoli 7800, ktoś ma więcej konkretnych informacji na jego temat?
      Podobnie z tym chipem dźwiękowym który nie został tam zainstalowany
      • 2: CommentAuthortebe
      • CommentTime6 Jan 2020 20:01
       
      • 3:
         
        CommentAuthorvoy
      • CommentTime6 Jan 2020 20:01
       
      Z góry przepraszam za jakość tłumaczenia, ale pisałem to dawno temu... :P
      • 4:
         
        CommentAuthorKaz
      • CommentTime7 Jan 2020 00:01
       
      A z czego tłumaczenie, jest jakieś jedno źródło czy to kompilacja tekstów?
      • 5: CommentAuthortebe
      • CommentTime7 Jan 2020 00:01
       
      Voy wszystko wymyślił ;)
      • 6: CommentAuthorEagle
      • CommentTime7 Jan 2020 01:01 zmieniony
       
      ->link<-
      ->link<-

      W skrócie ekran tworzysz ze sprajtów.
      Co ramkę musisz tworzyć/przebudowywać Display List od nowa gdy przesuniesz coś na ekranie w pionie.
      Możesz użyć trybu znakowego ale żre cykle DMA Marii a co za tym idzie mocno haltuje 6502. Nie pomieszasz trybu hires z lowres w jednej linii. Zresztą hires jest mocno "upośledzony" w Marii do tego scroll jest co cykl koloru czyli jak na XL/XE
      Przez Line Ram niestety nie można cyklować kolorów w linii
      Pomimo wielu niedogodności jest to super układ :)
      • 7:
         
        CommentAuthorKaz
      • CommentTime7 Jan 2020 03:01
       
      O! Orzeł znowu wylądował! :D
      • 8: CommentAuthorrosomak
      • CommentTime7 Jan 2020 07:01
       
      Właśnie o to mi chodzi, co w nim takiego super, bo to czemu Tramiel go zawiesił można się domyślać
      • 9: CommentAuthorurborg
      • CommentTime7 Jan 2020 11:01 zmieniony
       
      Pół setki niezależnych sprzętowych wielokolorowych spritów, żwawo ganiających po ekranie w mojej opinii jest super. Szczególnie jak na sprzęt z pierwszej połowy lat 80-tych.

      • 10:
         
        CommentAuthorKaz
      • CommentTime7 Jan 2020 14:01
       
      Dla porównania ta sama gra na Atari 400/800/XL/XE. Oczywiście można wycisnąć z kompa więcej, ale te gry pochodzą z porównywalnego okresu, więc nie uwzględniamy super zdolnych koderów i współczesnych narzędzi:

      • 11:
         
        CommentAuthorvoy
      • CommentTime7 Jan 2020 15:01 zmieniony
       
      @Kaz: jest to tłumaczenie z "7800 Software Guide", a konkretnie cała jego sekcja o układzie MARIA: ->link<-

      @TeBe: :D
      • 12: CommentAuthorrosomak
      • CommentTime7 Jan 2020 19:01
       
      Wg opisu Eagle nie wygląda to tak wspaniale, choć papierowo, kolory i sprity brzmią co najmniej bardzo dobrze
      • 13: CommentAuthorEagle
      • CommentTime7 Jan 2020 21:01 zmieniony
       
      Gdyby było tak łatwo.... to by to było widać po grach.
      Uproszcze trochę żeby było łatwiej wyjasnić (pominę startupy i shutdowny DMA i wpływ zapisu do rejestrów TIA i RIOT na DMA Marii)
      Maria w zprzybliżeniu ma 400 cykli DMA na linię, 4 cykle Marii to jeden cykl CPU
      Możemy mieć dowolną ilość sprajtów w jednej linii pod warunkiem że nie przekroczą tych 400 cykli Marii. Średnio jeden bajt grafiki w trybie direct to 4 cykle Marii. Tło w trybie znakowym 4 kolorowym (indirect) o podwójnej szerokości znaku (2 znaki na bajt) zajmie około 200 cykli Marii. Zostawia nam to około 200 cykli czyli 50 bajtów na sprajty.
      Gdy użyjem trybu 160B (12kolorów) dla sprajtów to wystarczy to na 5 sprajtów o szerokości 20 pixeli w linii.
      Ale zużyjemy prawie całe DMA Marii a co za tym idzie haltujemy CPU. Można to sobie wyobrazić jak ekran na XL/XE złożony z samych badlines ;)
      Zostanie nam tylko 70 lini CPU na program.
      Teraz musimy sobie sporządzić Display List od nowa za każdym razem gdy przesuwasz coś na ekranie w pionie.
      Powiedzmy że mamy ekran wysokości 192 lini.
      To Display List przy Zonie wynoszącym 16 lini w uproszczeniu będzie mieć około 300 bajtów
      Zaś na przykład użycie tła 12 kolorowego w trybie znakowym powoduje że nie mamy czasu na wyświetlenie sprajtów.
      Teoretycznie można by użyć 4 kolorowego trybu znakowego do stworzenia Paralaxy ale znowu zostanie nam zero czasu na sprajty.

      Do tego brak sprzętowych kolizji, Holy DMA, grafika do góry nogami, organizacja bitów dla 12 kolorowego trybu nie wspominając już o hiresowych trybach, artefakty, szyfrowanie nagłowków carta, 4kb ramu w kawałkach to wszystko nie ułatwia developerki na tym sprzęcie.

      Czytając dokumentacje można pomyśleć że zrobienie gry z prawdziwą paralaxą będzie banalnie proste ale jakoś takich nie ma.

      ps. Obliczenia są przybliżone i z pamięci. Za szkody wynikłe z tego powodu nie odpowiadam ;)
      • 14: CommentAuthorurborg
      • CommentTime7 Jan 2020 22:01 zmieniony
       
      Paralaxa się pojawiała w niektórych tytułach. Np w poziomach bonusowych Tower Toppler czy w Ninja Golf.
      • 15: CommentAuthorEagle
      • CommentTime7 Jan 2020 22:01 zmieniony
       
      To są niestety pseudo Paralaxy
      Tak samo jak w Bentley Bears
      Prawdziwa Paralaxa jest we Flimbo Quest




      • 16: CommentAuthorEagle
      • CommentTime8 Jan 2020 00:01
       
      Tutaj taka ciekawostka ile można "wycisnąć" z Marii.
      Mruga jak diabli ale wyglada imponująco.
      Gdyby tak popracowali jeszcze rok na tym układem to Atari ST nie miałoby sensu ;)))))

      • 17:
         
        CommentAuthorKaz
      • CommentTime8 Jan 2020 00:01
       
      E tam, najwyżej by wmontowali Marię do ST. Ale na ST też można dużo kulek zrobić :D
      • 18:
         
        CommentAuthorCyprian
      • CommentTime26 Dec 2020 02:12
       
      Maria to kawał dobrego czipu, nie bez powodu Atari zastosowało jej koncepcję w Object Procesorze Panther a potem Object Procesorze Jaguara.

      Zastanawiające że w pewnym momencie Atari miało trzy konsole 8bitowe 2600, XEGS no i właśnie 7800, które grafiką zjadało dwa poprzednie.

      @Eagle
      Gdyby tak popracowali jeszcze rok na tym układem to Atari ST nie miałoby sensu ;)))))



      Jakby Atari chciało, to zrobiło by z ST zajebistą konsolkę do gierek. Znali się na tym, w końcu ci sami ludzie zrobili C64.
      ST to coś więcej niż konsolka do pykania w gierki. To komputer do pracy w której ważne jest efektywne graficzne GUI, rozdzielczości VGA oraz szybki twardy dysk. Gdzie funkcje takie jak odtwarzanie sampli czy sprzętowe duszki są zbędne.
      • 19:
         
        CommentAuthorJacques
      • CommentTime26 Dec 2020 10:12 zmieniony
       
      Można tak to próbować wytłumaczyć, ale można też wyjaśnić pośpiechem, bo po co się później "schylano" po blitter i większą paletę? ST i Amiga 500/600 to ten sam segment komputera domowego mimo wszystko. "Rozdzielczości VGA" to jedna rozdzielczość 640x400 w ST, aczkolwiek do zastosowań profesjonalnych okazała się hitem i poza ceną, uratowała ST.
      8-bitowo byłem, jestem atarowcem i zawsze będę, 16—bitów to inna para kaloszy ;-) Poza hi-resem, ST leży bardzo daleko od zaawansowania Amigi i jego użytkowanie daje też bardziej toporne odczucia. Trochę właśnie jak Atari XL/XE (lekkość i zwiewność) vs C64 (toporność i ociężałość). Choć z grami wyszło akurat na odwrót, Amiga miała tu asa w rękawie razem z OS-em i stanowiła świetne rozwinięcie koncepcji rozpoczętych w 8-bitowym Atari :-)
      • 20: CommentAuthortebe
      • CommentTime26 Dec 2020 17:12
       
      teraz z perspektywy czasu to jesteśmy geniuszami, wiemy jak powinny być budowane takie układy i na co należy zwracać uwagę

      cześć i chwała poległym inżynierom, którzy nie bali się wyzwań :)
      • 21:
         
        CommentAuthorCyprian
      • CommentTime26 Dec 2020 18:12 zmieniony
       
      @Jacques
      mam ciutkę odmienne doświadczenia. Chętnie później odpiszę ale nie tutaj tylko w odpowiednim wątku.

      Wracając do 7800 to tutaj jeszcze jeden test duszków, tym razem w basicu:
      • 22: CommentAuthorEagle
      • CommentTime3 Jan 2021 23:01 zmieniony
       
      Heartlight na Atari 7800
      W ramach noworocznego postanowienia przeproszenia sie z Madsem
      Czas zostawic Atasm/Mac65 za soba.

      Brakuje wiele rzeczy:
      * dzwiek
      * glowne menu
      * wrzucilem tylko 4 levele (dopoki nie skoncze)
      * grafika 4 kolorowa zamiast 12 ale chyba bede trzymal sie oryginalu
      * animacja serc i wyjscia
      * brak szyfrowania naglowka
      * reszty nie pamietam

      restart sceny po nacisnieciu klawisza Start (F2)
      testowane na emulatorze Pro System
      ->link<-

      Czas dokonczenia ???
      Nie testowane na real hardware.
      Na emu dziala bez problemu
      Milej zabawy.
      Eagle
      • 23:
         
        CommentAuthorCyprian
      • CommentTime4 Jan 2021 01:01 zmieniony
       
      na A7800 niestety nie działa.
      Dragonfly do mnie leci więc niebawm sprawdzę na prawdziwym sprzęcie

      tutaj działa ok:
      ->link<-
      • 24: CommentAuthorEagle
      • CommentTime4 Jan 2021 10:01
       
      Tez czekam na Dragonfly :)

      tutaj link dla leniwych prosto do emulatora JS7800 z gra:

      ->link<-
      • 25:
         
        CommentAuthorCyprian
      • CommentTime4 Jan 2021 11:01 zmieniony
       
      w jakiej rozdziałce to jest? 160A?
      • 26: CommentAuthorEagle
      • CommentTime4 Jan 2021 11:01
       
      Tak 160A, tryb znakowy 4x8 w 4 kolorach
      Na A800 uzywany jest jeszcze invers ktory tutaj zamienie na animacje.
      Myslalem o 160B ale bym musial sporo przebudowac program.
      Chociaz Maria powinna dac rade z DMA przy takiej szerokosci ekranu.
      • 27:
         
        CommentAuthorCyprian
      • CommentTime4 Jan 2021 12:01
       
      a nie dało by radę dać 320B - 320px w 4 kolorach?
      • 28:
         
        CommentAuthorKaz
      • CommentTime13 Jan 2021 09:01
       
      Nieźle Eagle!
      • 29: CommentAuthorEagle
      • CommentTime1 Feb 2021 21:02
       
      • 30:
         
        CommentAuthorCyprian
      • CommentTime1 Feb 2021 23:02
       
      jest moc
      • 31: CommentAuthortebe
      • CommentTime1 Feb 2021 23:02
       
      ??? przepisujesz znaki ??? żeby uzyskać bitplan ???
      • 32: CommentAuthorEagle
      • CommentTime1 Feb 2021 23:02
       
      Tak. Tryb 160B zabiera 41 podwojnych znakow x 9 cykli plus naglowki czyli juz prawie nie zostaje czasu nawet na sprajta.
      Mozna uzyc dwa plany znakowe 3 kolorowe i zajmie to tyle samo cykli a bedzie duzo mniej kolorow.
      W trybie szerokosci 32 znakow mozna by w trybie 160B zrobic cos ciekawego i grywalnego.
      • 33:
         
        CommentAuthorCyprian
      • CommentTime1 Feb 2021 23:02 zmieniony
       
      @tebe a jest szybsza metoda na skrolowane tile?

      @Eagle jak dużo wolnego czasu procesora zostało?
      • 34: CommentAuthorEagle
      • CommentTime2 Feb 2021 01:02
       
      • 35: CommentAuthorEagle
      • CommentTime3 Feb 2021 15:02 zmieniony
       
      Autorzy Atari Blast zabrali sie za Marie.

      • 36:
         
        CommentAuthorCyprian
      • CommentTime3 Feb 2021 15:02
       
      jest moc
      • 37:
         
        CommentAuthorCOR/ira4
      • CommentTime3 Feb 2021 16:02 zmieniony
       
      WOW toż to XEBYZ !,ale to coś w tle mogłoby mieć ze dwie klatki animacji więcej.
      • 38: CommentAuthorEagle
      • CommentTime21 Feb 2021 13:02
       
      Wonderland/Piesiu z C+4
      Na Atari 7800 w trybie 160B ze zmiana do 3 kolorow co linie.
    1.  
      320B can do 2 palettes 3 color plus BG per character. To use it properly you must turn on Kangaroo mode (transparency off). Otherwise 00 and 01 bit pairs cannot be next to each other, they will make both show BG color.
      • 40: CommentAuthorEagle
      • CommentTime2 Apr 2021 17:04
       
      TIA+Pokey+Covox dzieki kartowi Dragonfly na A7800

      • 41: CommentAuthormono
      • CommentTime2 Apr 2021 18:04
       
      Czy to jest COVOX czy moduł SAMPLE?
      • 42:
         
        CommentAuthorCyprian
      • CommentTime2 Apr 2021 19:04 zmieniony
       
      @Eagle no właśnie, powiedz coś więcej o tym kowoksie. Na przerwaniach? jeśli tak to jakich i jak zrobiłeś że z DMA Marii się nie kłóci.

      poza tym to jest cacy
      • 43: CommentAuthorEagle
      • CommentTime2 Apr 2021 21:04 zmieniony
       
      @Mono:
      Z AAge z watku o covox
      Here it's used in something I'm working on, a more typical game setting, playing samples between attack waves. It sounds pretty good, still using a sampling rate of 7860. I don't have the guns firing yet so there will be a few more missiles on screen when the samples are played but that probably won't affect it too much. Credits are @kiwilove graphics, @RevEng's TIA sound effects and I borrowed @Fragmare's Air Zonk for some background music (playing on the second POKEY as a channel on the first is used for the IRQ timer).



      I am reluctant to post a NTSC version because I can't test it and there's a bit of dodgy code needed to get it working. I have two DLIs, one to change the mode to 320 for the text area and another to change it back to 160. NMIs should have priority over IRQs but there is a timing issue where an IRQ can cause the NMI to be missed completely. Normally you'd get around it by positioning the IRQ to occur at a position on the scanline away from the DLI but I can't do that because for some reason the 15kHz timer is slightly longer than a scanline, so the position of the IRQ moves. Instead I reset the position of the IRQ in the first DLI, such that it's still OK when it reaches the second DLI and when it gets back to the first DLI again. This was very much suck it and see, I don't know if this position would work on NTSC where there are less scanlines per frame.


      @Cyprian to nie moje tylko playsofta, ja utknalem z braku czasu na konwersji bloodfightera na covoxa.
      RevEng ma AAge:
      Inaccuracies are likely due to a scanline length of 113.5 1.79MHz cycles (not 114 cycles like the A8), and the clock slowdown affecting Pokey whenever you access TIA and RIOT.


      Z powodu DMA Marii i wielu innych czynnikow nie bedzie to grac czysto ale lepsze to niz nic. No chyba ze wylaczysz Marie ;)
      Bo tam nawet nie da sie zrobic "krotkiej" Display Listy bo nie ma tam JVB. Musisz zapelnic caly ekran liniam w swojej DL.
      Co do samego filmiku to wszystko jest ruchome/animowane w osi X oprocz pociskow. Gdy chcesz dodac ruch w Y to wszystko sie BARDZO komplikuje.
      Ale wyglada to bardzo ladnie.
      • 44: CommentAuthorEagle
      • CommentTime19 Dec 2021 16:12 zmieniony
       
      ->link<-

      Urwało dol bo jest w Ntsc
      Grafika dookola tunelu moze byc jednolinioa w 25 kolorach
      Ze nie wspomne o sprajtach.
      • 45: CommentAuthorEagle
      • CommentTime19 Dec 2021 22:12
       
      ->link<-

      Dwa Yoompy (PAL), zrobilem trzy ale juz nic nie bylo widac.
      Maksymalnie Maria wyswietli 4

      Do tego mozna by dolaczyc muze na YM2151

      ->link<-
      • 46:
         
        CommentAuthorCyprian
      • CommentTime20 Dec 2021 20:12 zmieniony
       
      @Eagle jest moc

      ile czasu ramki to zajmuje?
      • 47: CommentAuthorEagle
      • CommentTime20 Dec 2021 21:12
       
      @cyprian nie sprawdzalem ale patrzac na program blittera to na oko 32k cykli (ztcp to vblank ma chyba okolo 35k w PAL)
      Nie tworze textur, tylko mam zrzut 16kb pamieci z A8
      Nie wgryzalem sie za bardzo. Byla dyskusja na AAge czy sie da.
      To szybko przerobilem procedure blittera pod adresy pamieci A7800
      Stworzylem emulacje trybu $D Antica przy uzyciu Marii.
      I dziala.

      BTW ta Yamaha 2151 w Dragonfly jest rewelacyjna. Pracuje nad wersja playera YM z dodatkowymi dwoma kanalami na Covox. Niestety emulator nie obsluguje Covoxa.

      ->link<-

      ->link<-

      ->link<-

      ->link<-
      • 48:
         
        CommentAuthorpebe
      • CommentTime20 Dec 2021 21:12 zmieniony
       
      "Bo moje życie, wypełnione jest MARJĄ!"
      a, to nie o taką Marję chodzi ;)

      Ja się nie znam na układzie Maria, ale widzę, że on ma moc. Podoba się mi, jadnak patrząc na sposób jego programowania, jest on (wydaje mi się) strasznie przekombinowany. W sumie tak pobieżnie rzuciłem okiem na jeden z pierwszych linków (od Tebe-go) i "przeraziłem siem".

      @Eagle: Muzyczka jest git - kojarzy mi się z serią gier o DragonBall :) (mam na myśli to ->link<-
      • 49: CommentAuthorEagle
      • CommentTime20 Dec 2021 22:12 zmieniony
       
      @pebe na A7800 jest swietny i prosty 7800 basic
      Duzo fajnych gier powstaje.

      Guide 7800 basic
      ->link<-

      Gry napisane w basicu z ostatniego miesiaca:

      Ghosts 'n Goblins

      ->link<-


      Pengo

      ->link<-

      Ja osobiscie lubie ASM ale w tym basicu jest potencjal
      • 50: CommentAuthormono
      • CommentTime20 Dec 2021 22:12 zmieniony
       
      @pebe: To nie jest takie znowu straszne.

      W skrócie i uproszczeniu wygląda to tak:

      1. Za pomocą DLL dzielisz ekran w pionie na sekcje (to jest lista DL).
      2. Za pomocą DL dzielisz sekcję w poziomie na bloki (to jest lista bloków).
      3. Bloki mogą się na siebie nakładać i mieć różne szerokości.
      4. Bloków możesz mieć tyle na ile wystarczy Ci cykli w linii skaningowej.
      5. Każdy blok ma jedną z 8-miu palet.
      6. Każda paleta ma 3 kolory (kolor tła jest jeden dla całego ekranu).

      W ten sposób realizujesz i tło i sprajty.

      DLL i DL są w RAM więc możesz je dynamicznie modyfikować. Czyli np. przesuwać bloki w poziomie i modyfikować adresy danych dla bloków (czym realizujesz przesuw w pionie albo np. animacje), czy zmieniać szerokość bloku lub wysokość sekcji.

      Każdy blok z osobna może być w trybie graficznym (bezpośredni) lub znakowym (pośredni).

      Tak więc można robić całkiem ładny czarymar.

      Są przerwania DLI, nie ma przerwania VBLK - tylko flaga.

      Edit: styl. i uzupełnienie