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
     
    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
     
    • 3:
       
      CommentAuthorvoy
    • CommentTime6 Jan 2020
     
    Z góry przepraszam za jakość tłumaczenia, ale pisałem to dawno temu... :P
    • 4:
       
      CommentAuthorKaz
    • CommentTime7 Jan 2020
     
    A z czego tłumaczenie, jest jakieś jedno źródło czy to kompilacja tekstów?
    • 5: CommentAuthortebe
    • CommentTime7 Jan 2020
     
    Voy wszystko wymyślił ;)
    • 6: CommentAuthorEagle
    • CommentTime7 Jan 2020 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
     
    O! Orzeł znowu wylądował! :D
    • 8: CommentAuthorrosomak
    • CommentTime7 Jan 2020
     
    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 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
     
    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 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
     
    Wg opisu Eagle nie wygląda to tak wspaniale, choć papierowo, kolory i sprity brzmią co najmniej bardzo dobrze
    • 13: CommentAuthorEagle
    • CommentTime7 Jan 2020 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 zmieniony
     
    Paralaxa się pojawiała w niektórych tytułach. Np w poziomach bonusowych Tower Toppler czy w Ninja Golf.
    ->link<-
    • 15: CommentAuthorEagle
    • CommentTime7 Jan 2020 zmieniony
     
    To są niestety pseudo Paralaxy
    Tak samo jak w Bentley Bears
    Prawdziwa Paralaxa jest we Flimbo Quest




    • 16: CommentAuthorEagle
    • CommentTime8 Jan 2020
     
    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
     
    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
     
    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 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
     
    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 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 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 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
     
    Tez czekam na Dragonfly :)

    tutaj link dla leniwych prosto do emulatora JS7800 z gra:

    ->link<-
    • 25:
       
      CommentAuthorCyprian
    • CommentTime4 Jan 2021 zmieniony
     
    w jakiej rozdziałce to jest? 160A?
    • 26: CommentAuthorEagle
    • CommentTime4 Jan 2021
     
    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
     
    a nie dało by radę dać 320B - 320px w 4 kolorach?
    • 28:
       
      CommentAuthorKaz
    • CommentTime13 Jan 2021
     
    Nieźle Eagle!
    • 29: CommentAuthorEagle
    • CommentTime1 Feb 2021
     
    • 30:
       
      CommentAuthorCyprian
    • CommentTime1 Feb 2021
     
    jest moc
    • 31: CommentAuthortebe
    • CommentTime1 Feb 2021
     
    ??? przepisujesz znaki ??? żeby uzyskać bitplan ???
    • 32: CommentAuthorEagle
    • CommentTime1 Feb 2021
     
    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 zmieniony
     
    @tebe a jest szybsza metoda na skrolowane tile?

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

    • 36:
       
      CommentAuthorCyprian
    • CommentTime3 Feb 2021
     
    jest moc
    • 37:
       
      CommentAuthorCOR/ira4
    • CommentTime3 Feb 2021 zmieniony
     
    WOW toż to XEBYZ !,ale to coś w tle mogłoby mieć ze dwie klatki animacji więcej.
    • 38: CommentAuthorEagle
    • CommentTime21 Feb 2021
     
    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
     
    TIA+Pokey+Covox dzieki kartowi Dragonfly na A7800

    • 41: CommentAuthormono
    • CommentTime2 Apr 2021
     
    Czy to jest COVOX czy moduł SAMPLE?
    • 42:
       
      CommentAuthorCyprian
    • CommentTime2 Apr 2021 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 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 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
     
    ->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 zmieniony
     
    @Eagle jest moc

    ile czasu ramki to zajmuje?
    • 47: CommentAuthorEagle
    • CommentTime20 Dec 2021
     
    @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 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 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 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