Autor Wątek: Tryb gigascreen  (Przeczytany 109602 razy)

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: Tryb gigascreen
« Odpowiedź #30 dnia: 2012.01.21, 16:30:27 »
W kwestii nazewniczej:

- giga screen: naprzemienne wyświetlamy dwa lub trzy ekrany. Możemy dostać nowe kolory (np czerwony+żółty=pomarańczowy) albo uzyskać niezależny kolor każdego piksela. Wada - miga jak cholera, po chwili oczy bolą.

- multicolor: Spectrum nie odświeża całego ekranu natychmiast lecz rysuje go linia po linii, jeśli w trakcie rysowania zmienimy atrybut, to zamiast 2 kolorów w kwadracie 8x8 pikseli możemy maksymalnie dostać dwa kolory w linijce 8x1 pikseli, czyli można powiedzieć że mamy większą "rozdzielczość" kolorów.  Nowych kolorów nie ma. Nie miga.

Czasem ludzie mówią i piszą byle jak używając tych określeń zamiennie, z czym moim zdaniem należy walczyć :)

No i są rozwiązania hybrydowe, wspomniane wcześniej w wątku, połączenie jednego z drugim. Podobno w realu mniej miga.


RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: Tryb gigascreen
« Odpowiedź #31 dnia: 2012.01.21, 16:34:49 »

trawen

  • *
  • Wiadomości: 39
  • Miejsce pobytu:
    proszę uzupełnić/please update
Odp: Tryb gigascreen
« Odpowiedź #32 dnia: 2012.01.28, 12:25:46 »
Gigascreen być różne. Oczywiście, jeśli nudne migotać wszystkie 100 kolorów będzie znacznie flash. Ale czy to dobrze wybrać kolory lampy błyskowej jest dopuszczalne. Szczególnie na starszych telewizory i monitory. Gigascreen mogą być stosowane w celu zwiększenia poziomu jasności.

Typowy przykład: Zoom Colobok 2, Pussy, Super Mario Brod.

Nie sprite składa się z dwóch faz, szary kolor uzyskuje się poprzez wzór szachownicy, który składa się z dwóch obrazków, dając kolor szary. To wygląda bardzo ładnie.
Próbowałem nawet zwrócić Dizzy tak.

http://vtrdos.ru/temp/dizzy_2_bit.sna
www.zxpress.ru •www.zxtunes.com

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Tryb gigascreen
« Odpowiedź #33 dnia: 2012.01.28, 16:30:57 »
Gigascreen być różne. Oczywiście, jeśli nudne migotać wszystkie 100 kolorów będzie znacznie flash. Ale czy to dobrze wybrać kolory lampy błyskowej jest dopuszczalne. Szczególnie na starszych telewizory i monitory. Gigascreen mogą być stosowane w celu zwiększenia poziomu jasności.

Typowy przykład: Zoom Colobok 2, Pussy, Super Mario Brod.

Nie sprite składa się z dwóch faz, szary kolor uzyskuje się poprzez wzór szachownicy, który składa się z dwóch obrazków, dając kolor szary. To wygląda bardzo ładnie.
Próbowałem nawet zwrócić Dizzy tak.

What a translator did you use? I understood almost nothing. You may write in English, the most of the forum members understand it.

BTW: if you mean FLASH as an attribute byte, please use capital letters, this allows to distinguish the Spectrum commands from other English words.
« Ostatnia zmiana: 2012.01.28, 16:41:29 wysłana przez Abrimaal »
AY Music, ULA plus.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Tryb gigascreen
« Odpowiedź #34 dnia: 2012.02.03, 16:39:54 »
Przesyłam 2 screeny + demo.

Nie wygląda to za dobrze, efekt przerzucania samych atrybutów w załączniku.

Cytuj
P.S. Jeśli możesz dodaj .scr do dozwolonych załączników (namnożyło się tych formatów, jest jeszcze .sad - obraz dysku dla Sam'a).


Dodałem już jakiś czas temu.

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Tryb gigascreen
« Odpowiedź #35 dnia: 2012.02.06, 06:02:55 »

Przesyłam 2 screeny + demo.

Czyli tylko 4 linie przerzucił. A obrazek cały czas był ten sam w pamięci ekranu?
Kolorów mamy więcej, ale ktoś musiałby stworzyć lub przerobić screen działający w trybie 48k,
qtedy podejdrzewam byłoby ok, bez przerzucania dodatkowych 6k samego obrazu.



AY Music, ULA plus.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Tryb gigascreen
« Odpowiedź #36 dnia: 2012.02.06, 09:35:58 »
Czyli tylko 4 linie przerzucił. A obrazek cały czas był ten sam w pamięci ekranu?
Tak, jest jeden obrazek. Jedynie atrybuty są podmieniane.

Cytuj
Kolorów mamy więcej, ale ktoś musiałby stworzyć lub przerobić screen działający w trybie 48k,
qtedy podejdrzewam byłoby ok, bez przerzucania dodatkowych 6k samego obrazu.

Jeżeli masz wystarczająco dużo czasu, zapału itp, to może spróbuj taką grafikę wykonać? ;-)

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Tryb gigascreen
« Odpowiedź #37 dnia: 2012.02.08, 01:02:54 »
Ja miałem na myśli coś prostszego programowo,
Na zmianę przerzucać na przerwaniach same atrybuty - standardowe i przerobione (bez dzielenia ich na linie).
Kolorów by było więcej, ale pewnie by cholernie migało.
AY Music, ULA plus.

Pyza^Illusion

  • *****
  • Wiadomości: 586
  • Miejsce pobytu:
    Lubań, dolnośląskie
Odp: Tryb gigascreen
« Odpowiedź #38 dnia: 2012.02.08, 13:59:00 »
Zmiana samych atrybutów nic nie wnosi, albo bardzo niewiele.
Cały efekt to właśnie szachownice w pikselach i raczej to by trzeba było naprzemiennie pokazywać nawet przy tych samych atrybutach.
Ewentualnie byłaby możliwość zrobienia tego na 48kB przy odpowiednim rysunku i przy odpowiednio przystosowanej procedurze do tego rysunku, a polegało by to na tym, że wyświetla tylko wybrane obszary, a statycznych nie zmienia. Jest to mało uniwersalne niestety.
Najlepszy efekt uzyskuje się na starych telewizorach, które mają taki "efekt poświaty" czy inaczej mówiąc wolne wygaszanie oraz słaby kontrast. Tam migotanie jest niemal niewidoczne. Na każdym LCD'ku będzie mrugało niemiłosiernie :/
ZX Spectrum+ (128kB by STAVI), FDD3000, TI-OF-TTL/ZXVGS, Masterface2b, MacFace II, DivIDE plus, Just Speccy 128...

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Tryb gigascreen
« Odpowiedź #39 dnia: 2012.02.09, 01:10:40 »
Cały efekt to właśnie szachownice w pikselach i raczej to by trzeba było naprzemiennie pokazywać nawet przy tych samych atrybutach.
Właśnie, to jest to. Kiedyś włączyłem jakieś demo (nie pamiętam tytułu) i leciał scroll - jasnozielone litery na ciemnozielonym tle.
Nigdy bym się nie domyślił jak udało im się połączyć BRIGHT 0 i 1 w jednym bloku, dopóki przypadkiem nie wcisnąłem pauzy,
tło liter było kratkowane i przy scrollowaniu było znacznie ciemniejsze.
AY Music, ULA plus.

Jean 1

  • ****
  • Wiadomości: 389
  • Miejsce pobytu:
    Gorlice
    • Moja www
Odp: Tryb gigascreen
« Odpowiedź #40 dnia: 2012.02.26, 21:25:54 »
Może nie całkowicie na temat jeśli chodzi o gigascreeny itd , ale znalazłem takie fajne coś http://www.zxmodules.de/zxpaintbrush/zxpaintbrushframe.html

Bardzo fajna aplikacja pod winde do rysowania sobie i konwersji na różne formaty, między innymi format tap.
ZX Spectrum, ZX Spectrum + 80KB + AY,ZX Spectrum 128 +2 , FDD3000, Atari 800, 130, Amiga 500, CDTV, CPC464, CPC6128, VIC20, C64  TI99/4A ... Mini Muzeum ...

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Tryb gigascreen
« Odpowiedź #41 dnia: 2012.02.29, 02:54:48 »
Może nie całkowicie na temat jeśli chodzi o gigascreeny itd , ale znalazłem takie fajne coś http://www.zxmodules.de/zxpaintbrush/zxpaintbrushframe.html

Bardzo fajna aplikacja pod winde do rysowania sobie i konwersji na różne formaty, między innymi format tap.
Skorzystałem z tej aplikacji i powiedzmy, że mam 2 obrazki w formacie tap.
Teraz:
Pod jakie adresy w 128 je załadować i jakie instrukcje (POKE lub OUT) wykonać przed załadowaniem każdego z obrazków?
Jakimi POKE lub OUT przełączać obrazki?
Czy automatycznie znajdą się w pamięci ekranu, czy trzeba je przenosić pod 164384 np. przez LDIR?

AY Music, ULA plus.

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Tryb gigascreen
« Odpowiedź #42 dnia: 2012.02.29, 08:11:59 »
Ładujesz oba obrazki pod $C000 (49152) - pierwszy do banku 5, drugi do 7.  Przełączasz "mrugając" trzecim bitem portu $7FFD (32765).

Najprościej to zrobić w trybie USR0:
10 CLEAR 49151
20 OUT 32765,16+5
30 LOAD "1" CODE 49152
40 OUT 32765,16+7
50 LOAD "2" CODE 49152
60 PAUSE 1
70 OUT 32765,16
80 PAUSE 1
90 OUT 32765,16+8
100 GOTO 60

To 16 dodawane do wartości wysyłanej na port to ustawienie ROM1 (BASIC 48) - bez tego przełączy ci ROM na ROM0 (tryb 128) i wszystko się powali. Najpierw ustawiany jest bank 5 i ładowany obrazek, który pojawi się też od razu na ekranie - bank 5 to shadow bloku $4000-$7FFF (16384-32767). Potem przełączamy bank na 7 i ładujemy drugi obrazek - tego nie będzie widać, bo włączony jest (bit 3) ekran pierwszy. Po załadowaniu obrazków robimy PAUSE 1 - synchronizacja z ramką a potem włączamy ekran podstawowy, kolejne PAUSE 1 i włączamy drugi ekran i zamykamy pętlę. W efekcie oba obrazki powinny mrugać na przemian co ramkę, czyli wg definicji to powinien być właśnie gigascreen.

Kod ma jedną wadę - jak go przerwiesz to się może zdarzyć, że się wstrzelisz pomiędzy ekrany z włączonym drugim ekranem. W takiej sytuacji musisz na ślepo zrobić OUT 32765,16, żeby przełączyć ekran na główny.

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Tryb gigascreen
« Odpowiedź #43 dnia: 2012.02.29, 23:17:07 »
Matofesi, zrobiłem tak jak napisałeś i działa tylko w trybie BASIC 48 (USR 0),
jak zrobić, żeby to chodziło w trybie 128?

Na obrazki nie patrz, to są testowe, wymagają jeszcze wielu poprawek, chciałem tylko sprawdzić, czy to chodzi.

(dodane) Próbowałem zmienić drugi OUT z 24 na 31 - ten sam efekt, działa tylko pod USR 0
« Ostatnia zmiana: 2012.02.29, 23:28:52 wysłana przez Abrimaal »
AY Music, ULA plus.

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Tryb gigascreen
« Odpowiedź #44 dnia: 2012.03.01, 00:52:08 »
Takoż i pisałem - "najprościej zrobić w USR0" ;)

W 128 trzeba przełączać robiąc POKE do zmiennych systemowych, ale nie dam sobie głowy uciąć czy to w ogóle zadziała, bo sam system 128 używa drugiego ekranu a siódmy bank jest używany jako bufor edytora.

Teoretycznie należałoby zastąpić OUT 32765,X przez POKE 23388,X - to samo X w obu przypadkach. Ale na prawdę nie gwarantuję, czy to zadziała.