kategoria: Blitz
[#1] blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?
Czesc,
"intuition screen" to raczej wiem jak zrobc ale jak to uzyskac przy pomocy komend z DisplayLibrary
InitCopList
CreateDisplay

gdy mam do dyspozycji takie mozliwosci:

Type Value
#smoothscroll $10
#dualplayfield $20
#extrahalibrite $40
#ham $80
#lores $000
#hires $100
#super $200
#loressprites $400
#hiressprites $800
#supersprites $c00
#fmode0 $0000
#fmode1 $1000
#fmode2 $2000
#fmode3 $3000
#agapalette $10000


Albo jak zrobic interlaced np 640x512.
Dzieki

Ostatnia aktualizacja: 19.03.2019 18:43:32 przez peceha
[#2] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@peceha, post #1

Brak wsparcia dla programowych trybów wyświetlania (BEAMCON0).
Brak wsparcia dla trybów interlace, gdyż wymaga to 2 copperlist uruchamiających się nawzajem. Nawet jeśli wykorzystasz usercoplist to i tak wystąpi szereg problemów z brakiem dostępu do drugiej copperlisty przez pozostałe komendy.
[#3] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@cholok, post #2

Oczywiście że się da zrobić interlace (i tak trzeba 2 copper listy) tyle że nie ma dla tego wsparcia gotową komendą w BB2.1
Earok zrobił krótki programik który to pokazuje
https://github.com/earok/BlitzBasicDemos

@peceha
ale co dokładnie chcesz uzyskać z InitCopList? Bo nie za bardzo to z Tojego pytania wynika.
z parametrów (masek) można zbudować dość dokładnie ekran dla trybu Blitz.
[#4] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@retronav, post #3

Dzieki za podpowiedzi,
pare dni temu poszukalem na EAB i znalazlem wlasnie to co zalinkowales.

Ekran jest mi potrzebny tymczasowo by monitor nie przelaczal rozdzielczosci przy testowaniu programu - wiec pomyslalem by ustawic wlasnie taki ekran dla niego. Wyglada jednak ze to skomplikuje zbytnio sprawe.

Drugim rozwiazaniem jest uruchomienie WB (i superTed-a) w 640x512 zamiast 800x600 i dopiero teraz testowac program.
Jest to o tyle lepsze rozwiazanie, ze moj monitor (infotronic) przechodzac z 640x512 na 320x256 wyswietli wlasnie 256 lini w pionie (przechodzac z 800x600 na 320x256 ustawi sie na 640x200)

3cie rozwiazanie to wstawic na poczatku programu (na czas testow) cos na wzor "ekranu powitalnego" korzystajac z zalinkowanego przykladu (da to ekran 640x512) a potem przeskoczyc na 320x256.
[#5] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@peceha, post #4

Z punktu widzenia trybu interlace tryb 640x512 i tryb 640x256 z włączonym lace jest to to samo, ale bez komplikacji w rodzaju 2 copperlist. Można to przetestować na protrackerze 3 w setup włączając lace. Obraz zacznie migotać, ale rozdzielczość będzie taka sama. Jeśli to wystarczy na twój problem z monitorem wtedy metoda w blitzie upraszcza się istotnie:
;cmove bplcon0,bits=hires+lace+8bpl
cop$=Mki$($100)+Mki$(%1000000000010100)
;custom=-4 (doczytaj dokłądnie ile potrzeba)
InitCopList 0,44,DispHeight,$10000 + $1000 + $100 + $8,8,256,-4
DisplayUser 0,0,cop$

Ostatnia aktualizacja: 24.03.2019 17:06:15 przez cholok
[#6] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@cholok, post #5

Protracker to zły przykład.
Samo laced można włączyć korzystając z komendy
LACED 1

Chyba mi nie powiesz że nie ma różnicy na workbenchu między x256 a x512 ?

Ostatnia aktualizacja: 24.03.2019 18:37:08 przez Norbert
[#7] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@Norbert, post #6

Protracker to zły przykład.

Niby czemu?
Samo laced można włączyć korzystając z komendy

Niby można, ale na PT robię to jednym kliknięciem i widzę natychmiastowo rezultat.

Chyba mi nie powiesz ze nią różnicy na workbenchu między x256 a x512 ?

Nie o to chodzi. Obraz interlace to 2 obrazy nonlace o różnych bitmapach wyświetlane na przemian co daje złudzenie podwojenia rozdzielczości. Mamy 4 przypadki (bitmapa: 640x256, lace on/off w rej. bplcon0):
-lace on, 2 różne bitmapy -> standardowy 640x512
-lace on, 1 bitmapa ->...
-lace off, 2 różne bitmapy -> ...
-lace off, 1 bitmapa ->standardowy 640x256
3 kropki rozkmiń sobie samemu.
[#8] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@cholok, post #5

Klikanie na "lace" w protrackerze nic nie zmienia - zero wizualnej zmiany i monitor pokazuje wciaz te same dane typu rozdzielczosc, czestotliwosc itd.

Wpisalem tak jak podales:

Niestety program startuje i pokazuje sie szary, czysty ekran i koniec (monitor przelacza sie w rozdzielczosc jak wczesniej czyli 640x200)

Ostatnia aktualizacja: 24.03.2019 18:49:49 przez peceha
[#9] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@cholok, post #7

Nie widzę sensu dodawania opcji laced w Protrackerze.


Na moim monitorze PAL 640x512 widzę 512 linii i nic nie drga.
To gdzie to złudzenie ?
[#10] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@Norbert, post #9

Opatentuj ten monitor. To ewenement na skalę światową.

Ostatnia aktualizacja: 24.03.2019 19:17:27 przez cholok
[#11] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@peceha, post #8

To coś pomemlałeś. CreateDisplay musi też być, po DisplayUser.
[#12] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@cholok, post #11

o kurrrr....

dzieki, juz poprawilem

jest tak:
monitor dalej wskakuje w 640x200 (ale oczywiscie wyswietla to co trzeba a nie jak poprzednio)
a gdy uruchomie z Wb program Lacer z argumentem 1 i ponownie wykonam program w blitzie to tym razem monitor wskakuje w 720x574 czyli juz cos.
[#13] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@cholok, post #10

No nie tylko ja posiadam taki monitor.
Producent ma na niego patent.

Napisz mi jeszcze co daje opcja laced w Protrackerze dla użytkownika?

A może wiesz jak napisać program, który byłby rezydentny i włączał LACED namiast domyślnego NOLACED?
[#14] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@Norbert, post #13

No nie tylko ja posiadam taki monitor.
Producent ma na niego patent.

Żartowałem. CRT? Jeśli nie, to koniec dyskusji o migotaniu.

Napisz mi jeszcze co daje opcja laced w Protrackerze dla użytkownika?

Włącza interlace nie zwiększając rozdzielczości do 512. PT nie jest systemowy, więc lacer nie zadziała. Po co? Dokładnie po to samo co używając lacera. Czepiłeś się tego PT, a to tylko przykład był.

A może wiesz jak napisać program, który byłby rezydentny i włączał LACED namiast domyślnego NOLACED?

Taki program jest bez sensu. Zadziała tylko systemowo.
[#15] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@cholok, post #14

Ale dlaczego użytkownik miałby włączać laced w Protrackerze.
Co wtedy, według Ciebie, pozytywnego uzyskuje przy jego użytkowaniu.
Czepiam się PT, bo to Twój przykład.

Akurat taki program potrzebuje. Ważne przetrwało reset.
[#16] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@Norbert, post #15

Ale dlaczego użytkownik miałby włączać laced w Protrackerze.
Co wtedy, według Ciebie, pozytywnego uzyskuje przy jego użytkowaniu.
Czepiam się PT, bo to Twój przykład.

To mnie w ogóle nie interesuje. Przykład był dla pch do szybkiego testowania, a PT akurat taką opcję miał. A czy to jest użyteczna opcja dla użytkownika, mam to gdzieś.

Akurat taki program potrzebuje. Ważne przetrwało reset.

Pisałeś, że rezydentny, a to coś innego. Można użyć funkcji ColdCapture, która wykonuje się podczas resetu. Tylko co miała by taka procedura robić? Po resecie wyświetla się tylko tło i w tym miejscu można by wyświetlić obraz hires+lace. Czy to wystarczy?
[#17] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@cholok, post #16

Procedura miałaby włączać LACED.
Mój monitor lepiej współpracuje z Amigą jeśli dostaje sygnał LACED zamiast NOLACED.
Dałbyś radę coś takiego napisać ?
Możliwe że peceha tez by z tego skorzystał.

Ostatnia aktualizacja: 25.03.2019 22:07:50 przez Norbert
[#18] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@Norbert, post #17

Jak chcesz kontrolować programy, które pomijają system?
[#19] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@cholok, post #18

Nie ma to znaczenia.
Najważniejsze aby po resecie monitor dostal na chwile sygnał LACED.
Wtedy wybierze on właściwy tryb do wyświetlenia obrazu.
Późniejsze zmiany laced, nolaced nie mają już wpływu na błędny wybór trybu pracy monitora.
[#20] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@Norbert, post #19

[#21] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@cholok, post #20

Po wystartowaniu z WB dostaje okno z zapytaniem o reset.
Po akceptacji mam takie cos jak na obrazku (wszystko wisi) a dioda zasilania miga:
[#22] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@peceha, post #21

Ściągnij jeszcze raz i sprawdź.
[#23] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@cholok, post #22

Dzieki
teraz juz resetuje bez problemu.

Jednak wyglada na to ze ta metoda nie zadziala z tym monitorem.
Zaraz po resecie monitor wciaz pokazuje 640x200 - chodzilo o to by dac mu sygnal LACED na chwile bo wtedy obraz 320x256 zostanie wyswietlony we wlasciwej rozdzielczosci (inaczej monitor pokazuje go w 640x200)
[#24] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@peceha, post #23

Chodziło tylko o to, czy działa. Procedura zmienia tylko kolor tła i miga diodą 5 razy. Pytanie, czy przy wyłączonym video dma włączenie lace coś da?
[#25] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@cholok, post #24

Kolor tla zmienila wiec zakladam ze i dioda mignela 5 razy

Czyli jak do tej pory dziala.
[#26] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@peceha, post #25

Na dziś ostatni test. Wiesz co robić. Jak nie wiesz to patrz post nr 22.
[#27] Re: blitz: jak utworzyc 800x600 przy pomocy CreateDisplay ?

@cholok, post #26

Calkiem fajna sprawa :)
po resecie mam obrazek pewnej pani i monitor pokazuje 720x574
niestety chwile pozniej (gdy obrazek znika) jest cisza i monitor wskakuje w 640x200

No ale dzieki mimo wszystko.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem