[zxspectrum] Re: Ula+

  • From: Alessandro Dorigatti <adorigatti@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Sun, 27 Mar 2011 12:54:09 +0200


On Sun, 2011-03-27 at 11:57 +0200, Alessandro wrote:
> On Sun, 2011-03-27 at 10:25 +0200, Alessandro Dorigatti wrote:
> 
> > Ho riflettuto un po' sull'algoritmo adottato per i canali a 5 bit (Red e
> > Blue) e ritengo sia sbagliato.
> > 
> > Invece di convertire i 3 bit HML in 5 bit HMLML, è necessario utilizzare
> > la conversione HMLHM, per ottenere una distribuzione più lineare
> > possibile dei 32 valori possibili.
> > 
> > Nel caso invece del canale a 6 bit (green) l'algoritmo (HMLHML) mi pare
> > corretto.
> 
> Mi sembra che il ragionamento non faccia una piega.
> 

Questa sera modifico il codice e verifico il risultato. In pratica
l'algoritmo di conversione precedente "comprimeva" le scale di colore
del rosso e del blu in due fasce con poca variazione di colore che
facevano "un salto" nel passare dal livello 3 al livello 4!

> > Non so se anche nel tuo caso hai canali con 5 o 6 bit; se questo è il
> > caso, probabilmente devi modificare leggermente l'implementazione come
> > descritto sopra!
> 
> No: incidentalmente l'hardware che sto usando
> http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,789&Prod=NEXYS2
> ha una uscita ESATTAMENTE corrispondente alle specifiche ULA+, ovvero 8
> bit RRRGGGBB. Non posso e non devo quindi fare nessuna conversione.
> 
> Addirittura, la scheda che utilizzavo in precedenza (quella ufficiale
> della xilinx per la famiglia 3E) aveva un solo bit per colore, tanto che
> per implementare il brightness ho costretto a mettere mano al saldatore
> i pochi che hanno provato il clone:
> http://www.zxbada.bbk.org/previous_fpga_devel/vga.htm
> 
> > On Sun, 2011-03-27 at 09:49 +0200, Alessandro Dorigatti wrote:
> > > Ciao Alessandro!
> > > Sono contento di sentire che sei riuscito nell'implementazione dell'ULA+
> > > e che il mio sorgente ti sia servito in qualche modo.
> 
> Si, grazie, adesso ti mando il mio modificato.
> > 
> > > Per quel che riguarda il raddoppio delle linee di schermo, viene
> > > effettuato anche dal mio core, in quanto appunto è necessario arrivare
> > > ad avere un 50Hz con frequenze orizzontali accettabili per i monitor
> > > VGA; la conversione delle frequenze video da PAL a VGA è effettuato da
> > > un ulteriore blocco (scandoubler) che ho preso da un altro core di
> > > Tobias Gubener e che ho adattato per ottenere un effetto "scanline" che
> > > tanto mi piace.
> 
> Io ho usato un blocco di ram, perche' leggere due volte la ram video
> dello spectrum per avere due linee identiche (quindi portare un
> ipotetico 320 verso 640) comportava il rischio di cambiamenti nel bel
> mezzo, quindi credo che sarebbero comparse linee anomale. Immagino che
> tu abbia fatto lo stesso ragionamento.

Chiaro, anche nel mio caso viene utilizzato un blocco di ram piccolo che
bufferizza una linea video comprensiva di bordo e che viene ripetuta due
volte; l'unico accorgimento è che è possibile diminuire la luminosità
della seconda riga per ottenere il succitato effetto scanline. L'accesso
alla RAM video da parte dell'ULA è "esattamente" quello dello Spectrum. 

Per quel che riguarda il discorso del rendere pubblica la modifica ULA+
al Badaloc, non ti fare problemi sul fatto che io l'abbia fatto per
primo (visto che tra l'altro il mio core non è ancora disponibile per il
download...). Se vuoi citare il fatto che siamo giunti insieme alla
soluzione a me farebbe piacere, visto che comunque non credo sia un
brutto risultato che questo sia stato ottenuto da due italiani (sarebbe
un po' tenere alta la reputazione, visto che mi pare che nel tempo gli
italiani abbiano ottenuto un bel po' di risultati in merito allo
Speccy!)

Avrei una richiesta da fare (non solo a te, ma a chiunque abbia a
disposizione cloni di vario genere).

Come già accennato in precedenza sto cercando di capire quanto
"importanti" siano le imperfezioni che sto rilevando nel mio core;
chiederei quindi di se puoi far girare i seguenti software sul Badaloc e
comunicare i relativi risultati:

- RAMSoft FloatSpy, disponibile al link seguente:
http://members.fortunecity.com/shirka/LIBROS_EBOOKS/MANUAL_ESPECTRUM/floatingbus.html

- Fuse test, btime, ulatest3 disponibili al link seguente:
http://wizard.ae.krakow.pl/~jb/qaop/tests.html

- Aquaplane, Arkanoid disponibili su World of Spectrum.

In particolare su btime e Aquaplane vorrei sapere se noti "flickering"
sul bordo; su Arkanoid invece dovresti dirmi se la velocità di gioco ti
pare corretta e se gli "sprite" vengono visualizzati tutti
correttamente.

Fammi sapere!

A presto,
Alessandro


Other related posts: