Pozwolę sobie założyć nowy wątek dla potomnych (tzn. tych początkujących w temacie jak ja) bo temat ciekawy. Mam nadzieję na koniec może zakończony załączeniem jakiegoś działającego kodu źródłowego.
Wiedza przekazana przez Tebe na pytanie o pierwszą linię każdego wiersza w trybie znakowym 4:
kski to są badlines, ANTIC w pierwszej linii wiersza dokonuje dekodowania znaków, można to zablokować
G2F -> Special -> Mode -> GED+ -> disable badlines
jaka jest tego cena? ANTIC poprzez zapisy do VSCROLL zostaje zablokowany na odczycie pierwszego wiersza DisplayList, wszystkie linie obrazu będą generowane na tej podstawie
czyli jeśli inwers znaków został ustawiony w bajcie 30 naszego głównego pierwszego wiersza to na całej wysokości ekranu, w każdym wierszu będzie tam ustawiony inwers, bez możliwości jego selektywnego przełączania
w każdym wierszu będą te same kody znaków, bez możliwości ich zmiany, jedyny dostęp do nich będzie poprzez modyfikację generatora znaków, czyli co wiersz zmieniamy zestaw znaków (max 30 dla 30 wierszy) i modyfikujemy jego konkretną lokację
Ok wyłączyłem badlines, tryb 4, zmieniam kolor tła w linii w dli: ... STA WSYNC
NOP
STX COLOR STY COLOR STX COLOR STY COLOR STX COLOR STY COLOR STX COLOR STY COLOR STX COLOR STY COLOR STX COLOR STY COLOR
STA WSYNC ...
przy czym w pierwszej linii każdego wiersza jest na początku STA VSCROL z wartościami naprzemiennie 12/4. Działa, pytanie o cykle. Między kolejnymi STA WSYNCH mam 12 STX/STY (będzie 13 jak wyrzucę STA WSYNCH ale to niewiele zmieni), przy czym ostatnie 6 wykonują się już w czasie tworzenia obrazu jak na załączonym screenshocie. Czy to jest max co się da, czyli ewentualna multiplikacja spritów czy kolorów może się opierać o (tylko) taką ilość dostępnych cykli = (6przed+6podczas wyświetlania)*4? Wszystkie pozostałe cykle są zajęte przez dma / antica / odświeżanie pamięci?
to juz raczej kres mozliwosci atarki. Przy rozmnazaniu duchow jest jeszcze jeden problem. Jak chcesz rozmnozyc duchy z tym samym wzorem to wyglada to mniej wiecej tak jak z kolorami. Gorzej jak chcesz miec rozne ksztalty wtedy oprocz zmiany pozycji trzeba dodatkowo wpisywac wzor ducha, o kolorach nie wspominajac :) W zalaczniku plik g2f z 8 zmianami, kolor zielony to invers.
Dzięki to chciałem wiedzieć. Czyli zastosowania mocno ograniczone. Pamiętając o kosztach, można użyć do zmultiplikowania 1-2 spritów, lub do zmiany kolorów jak w g2f.
Oczywiście nie żebym zarzucał temat. Jako że wszyscy narzekają na nadmiar gier i brak demek technologicznych pewnie jakieś zrobię. Ale później są inne priorytety.
Praktyczne wykorzystanie rozmnazania duchow mozna znalezc w grze Nibbly, gdzie na planszy rozmnozone duchy podkolorowuja grafike. Dodatkowo dolny panel tez zrobiony jest z rozmnozonych duchow. ->link<-
jest jeszcze do wykorzystania możliwość rozszerzenia ducha/pocisku na całą szerokość ekranu, w sensie podając pozycję poziomą HPOS wyznaczamy zakres pokrycia 'od lewej krawędzi ekranu ... HPOS'
The demo with the rotating triangle. This is really a step into the right direction. Using the PMg for big colored fields and allow some details using the Background.
You know: You could do rotating stars (objects) with up to 17 colors by using GPIOR 0 without even one DLI. Placing player 2 and 3 to fixed positions, and do some animation that is stored in the character set.
The rule is just to use "708" or "709" as the main background color, to give details over the Player 2 and 3.
Players 0 and 1 still need their final shape, but can mix with any other colors.
If you also think about it for any game: Imagine how it works , if people do a small "Kernel" , based on a DLI that is at the height of the main Sprite. Doubling Player. Where the main sprite is vertically not crossing, the screen just could be colored by just placing the PMg .