[zxspectrum] Re: Flicker

  • From: Enrico Maria Giordano <e.m.giordano@xxxxxxxxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Mon, 28 Mar 2016 19:48:57 +0200



Il 28/03/2016 19:09, Luca Alimandi ha scritto:

Comunque puoi iniziare con queste informazioni generali sulla
temporizzazione e in particolare il problema della memoria contesa:
www.worldofspectrum.org/faq/reference/48kreference.htm  paragrafo
"Contended Memory"

Qui http://www.zxdesign.info/vidresearch.shtml e qui
http://www.zxdesign.info/vidparam.shtml invece c'è qualcosa sulla
differenza tra un monitor PC e il display del TV... Mi pare facciano
parte di uno studio per realizzare emulatori o l'interfaccia
Harlequin e le sue temporizzazioni.

Inoltre qualcuno (non ho capito chi...) tempo fa aveva scritto in
proposito proprio in ML
(http://www.alfonsomartone.itb.it/jwjhlf.html). Non so se può
tornarti utile per le tue prove! :-)

Se ho capito bene, quindi, dopo l'HALT si ha un certo tempo per
aggiornare il video prima che questo venga riprodotto sullo schermo. Ma
allora perché lo sfarfallio un po' si vede anche con un solo byte? C'è
qualcosa che non mi torna...

Se lo ritrovo, avevo un articolo o forse un intero libro dedicato
alla programmazione di videogiochi, in cui si facevano degli esempi
dettagliati. Porca miseria, non riesco a trovarlo! :-(

:-(

Comunque, vista la qualità degli emulatori, penso che riproducano
fedelmente la modalità di funzionamento dello Spectrum, no?

Forse ognuno a modo suo, dipende dalla maggiore o minore fedeltà con
cui i programmatori hanno voluto emulare il comportamento dell'ULA.
Almeno credo!

Beh, in questo campo il riferimento è (era, visto quello che scrivo dopo... :-( ) senz'altro RealSpectrum.

Certo che c'è. Appunto chiedevo se qualcuno avesse qualche idea su
come ridurlo. Hai visto quello con tutta la palette?

Sì, è anche peggio! Non si vede più neanche l'effetto di colore
intermedio, almeno con Fuse...

Strano. Con Spectaculator si vede benino e anche, a quanto pare, con il display
di Davide. Ho provato con RealSpectrum e si vede malissimo. Mi sa che
ormai è troppo vecchio... :-(

Beh, lo scopo era quello di arrivare, per lo meno, ad una schermata
ferma ma con più colori degli 8+8 dello Spectrum.

Beh, per lo meno quello di ottenere il minimo flickering possibile.
Schermata ferma non credo sia possibile, neanche con il Gigascreen ci si
riesce.

In pratica, utilizzando LDIR (che è più rapido che fare i calcoli)

Proverò.

Prova a vedere se funziona. Dovresti vedere tutte le zone che prima
erano rosse diventate arancioni... Per lo meno in teoria!

Appunto, molto in teoria! In pratica non credo proprio. Ma una prova per
curiosità la farò senz'altro. Ma quella tecnica non è molto utile perché
si mangia troppa RAM, o sbaglio?

Fai anche due conti per vedere se il trasferimento dei 768 byte dura
più o meno di 50 ms; se dura di più non dovrebbe funzionare
correttamente, ma non credo sia così lungo!

Dunque. Un T-State dovrebbe durare

1 / 3500000 s

Una LDIR dura 21 T-States. Per semplicità non consideriamo l'ultima che dura 16 più le istruzioni di inizializzazione. Quindi la durata complessiva dovrebbe essere circa:

21 * 768 / 3500000 = 0.004608 s = 4.608 ms

che sono molto meno di 50 ms.

EMG

--
EMAG Software Homepage: http://www.emagsoftware.it
The EMG Music page: http://www.emagsoftware.it/emgmusic
The EMG's ZX-Spectrum Page: http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: http://www.emagsoftware.it/tbosg

Other related posts: