[zxspectrum] Re: [Super OT] riparatore TV

  • From: Massimo Raffaele <massimo.raffaele@xxxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Sat, 18 Oct 2008 16:35:54 +0200


CPU a 42 MHz, mega di ram, modalita` alta risoluzione senza color
clash (c'e` anche in questa versione?)... qua abbiamo uno
SuperSpectrum!!!

No, niente alta risoluzione.

Quella era implementata grazie alla ram da 128K che operava come scan converter di quadro e alzava da 50 a 100Hz. Per questioni fisiologiche avevo un processo che interpretava il contenuto della ram spectrum e scriveva singoli pixel autonomi nella 128K, compreso il border (che era quindi rappresentato come singoli pixel) ed un secondo che la rileggeva a doppia velocita` (quindi due volte per frame) mandando il risultato sulla VGA. In 128K c'e' spazio per due quadri, uno in output due volte mentre l'altro in creazione.

Il risultato era che scrivendo direttamente in quella ram (resa successivamente raggiungibile allo Z80 mediante la creazione di nuovi registri, che la mappavano sugli ultimi 16K) era possibile avere 320x256 con 4 bit per pixel, come si vede nelle foto del badaloc in cui la bootrom ha le strisce colorate caratteristiche la dove normalmente c'e' il border.

In questo clone non ho potuto implementare uno scan converter di quadro per un semplice fatto: non c'e' ram statica a bordo. Inoltre la questione era controversa perche` 100Hz non li digerisce nessun monitor LCD e per questo motivo gia` da tempo meditavo di modificare qualcosa.

Il clone su fpga ha ancora bisogno di uno scan converter perche` ovviamente 50Hz/15KHz del PAL non vanno bene su un monitor VGA, ma in questo caso si tratta di una conversione fatta sulla linea: 512 bytes di ram interna alla fpga vengono usati per memorizzare due linee; mentre una e' in creazione con i dati letti dalla ram video spectrum al solito ritmo di due pixel per Tstate, l'altra viene scansionata due volte di fila. Questo produce 31KHz di riga su 50Hz di quadro, una frequenza accettabile per la maggior parte di monitor di qualsiasi tipo (soprattutto lcd).

Questo produce anche un raddoppio della stessa linea sullo schermo, ma questo e` perfetto visto che data la bassa risoluzione un raddoppio di ciascun pixel e` quantomeno utile: i 192 punti verticali (256 con i border) diventano 512, molto meglio per i monitor attuali. In senso orizzontale ottenere il raddoppio e` stato facile, basta mandare il dato in output al ritmo di 320 pixel per riga invece di 640.

In pratica il monitor vede un 640x512 mentre in realta` si tratta di 320x256.

Se ci fosse una ram statica veloce a bordo si potrebbe mettere uno scan converter che serva solo all'alta risoluzione, ma non c'e' ed inoltre metterlo a punto sul primo badaloc e' stato un incubo.

Ciao!

Quindi il refresh effettivo è di 50 Hz, su monitor VGA... non è stancante per gli occhi? Mi ricordo che con il Mame alcuni giochi (o tutti? Non mi sono tenuto aggiornato) vanno a 50 Hz, ma lo sfarfallio mi dava molto fastidio...
Max

Other related posts: