Autore Topic: Emulazione C64 Ad Alta Fedelta`  (Letto 6134 volte)

Wizkid

  • Data Entry
  • Utente
  • ***
  • Post: 259
  • Gioco Preferito: Druid, Wizball, Last Ninja, Draconus
Emulazione C64 Ad Alta Fedelta`
« il: 29 Luglio 2012, 07:51:35 »
Come tutti sapranno l'emulazione del Commodore 64 per quanto ormai sia giunta a livelli davvero eccellenti non permette di raggiungere (per ovvi motivi) quella sensazione di trovarsi di fronte ad un reale ambiente C64, ci sono pero` degli accorgimenti che si possono prendere per ovviare ad alcuni problemi derivanti dall'uso del PC e di un emulatore. Uno dei piu` semplici ad esempio e` quello di utilizzare un adattatore che ci consenta di adoperare un joystick vecchio stile sul nostro pc, ma il vero problema a cui e` molto difficile far fronte e` quello della resa video. A prescindere che si utilizzi un monitor CRT , LCD o Plasma, l'immagine che l'emulatore ci rimanda risulta sempre troppo definita e artefatta anche nel caso in cui si utilizzino dei filtri come lo scanline (scansione doppia) presenti ad esempio nel Vice e nel Ccs64. Lo scopo di questo mio post e` proprio quello di spiegare nel dettaglio come risolvere questo problema.
Inizio subito col dire che per avere una corretta e genuina visualizzazione delle immagini generate dall'emulatore C64 abbiamo bisogno di collegare al nostro PC un vecchio televisore CRT e per fare cio` non e` sufficiente collegarlo tramite le uscite TV della nostra scheda video in quanto tali uscite lavorano in composito o in s-video, due modalità nelle quali i segnali viaggiano sotto forma di "luminanza" (informazioni concernenti la luminosità) e "crominanza" (ovvero le informazioni relative ai colori); nel caso del composito (RCA) i due segnali sono mixati  mentre con l's-video (separate video) i suddetti segnali sono separati ma in entrambi i casi l'immagine che ne deriva e` veramente di bassa qualita`per cui inadatta al nostro scopo. Cio` che invece dobbiamo fare e` collegare il nostro Tv a tubo catodico direttamente all'uscita VGA della scheda video. In commercio esistono degli adattatori VGA to scart ma vi garantisco che sono delle ciofeche immonde che non consentono un reale collegamento RGB per cui non vanno assolutamente presi in considerazione.
L'unica opzione che ci rimane e` quindi quella di creare da soli il nostro cavo e per farlo abbiamo bisogno di due cose:
1) alcuni semplici componenti acquistabili in un qualsiasi negozio di elettronica decentemente fornito.
2) essere in grado di effettuare saldature degne di questo nome :)

Prima di passare alla realizzazione vera e propria del cavo e` il caso di fare qualche premessa relativa la televisore crt e ai segnali di sincronia.
Parliamo innanzitutto del televisore crt la reperibilita` del quale e` ormai esclusiva del mercato dell'usato. Reperire una TV a tubo e` pittosto semplice e la spesa di solito e` irrisoria, non piu` di 50 euro per un 21/24/28 pollici perfettamente funzionante. Per quanto riguarda il modello vi consiglio un 4:3 50/60hz in quanto piu` adatto all'uso di vecchi computer e console (C64, Amiga, Megadrive o Super Nintendo), evitate quindi i 100hz o i 16:9 sicuramente piu` costosi e comunque inadatti allo scopo.
Per quanto riguarda la sincronia bisogna dire che i segnali provenienti dalla scheda video di un PC sono diversi da quelli utilizzati da un comune televisore il quale accetta solamente un segnale 15khz. Per fortuna esiste un software che costringe la scheda video vga ad inviare solamente un segnale 15khz, tale software gratuito e si chiama Soft-15khz ed e` scaricabile direttamente a questo link.
Per l'utilizzo del software suddetto vi consiglio di consultare il seguente indirizzo e comunque ne parlero` in modo piu` approfondito alla fine del post.

Passiamo quindi alla realizzazione del cavo.
In rete e` possibile trovare numerosi schemi tutti diffrenti tra loro ma quello che sto per sottoporvi e` quello che garantisce il funzionamento migliore (100% della compatibilita` con tutte le schede video in commercio) e la sua realizzazione e` piuttosto semplice.


(fare click sull'immgine per ingrandirla)

Come potete vedere dall'immagine il cavo necessita di sole 3 resistenze, 2 da 1kohm e una da 100ohm. La parte realtiva all'audio potete tranquillamente ometterla se utilizzate delle normali casse per PC collegate all'uscita della vostra scheda audio e non vi interessa utilizzare le casse del vostro televisore.
Da notare che i pin 8 e 16 della scart sono collegati ad un molex maschio e servono rispettivamente: pin 8 per la commutazione automatica sul canale AV, pin 16 con relativa resistenza (che esclude l’ingresso di voltaggi troppo alti) per abilitare l’ingresso RGB.
I collegamenti tratteggiati (blu, verde e rosso) sono le masse dei relativi segnali RGB e vanno saldate sui pin 6,7 e 8 della VGA "maschio" del cavo e sui pin 13, 9 e 5 della scart "maschio". I pin 10 e 5 della VGA vanno "ponticellati" e cioe` collegatri tra loro cosi` come i pin 17 e 18 della scart. Un consiglio che vi do e` quello di utilizzare un cavo schermato da 12 fili e far uscire i due fili del molex dalla calottina della vga cosi` da essere facilitati nel far entrare il molex stesso nel vostro pc per poi collegarlo ad un cavo libero dell'alimentatore all'interno del cabinet. Infine e` sempre cosa buona giusta verificare con un multimetro (tester) che tutto sia ben collegato per evitare di dare la colpa a qualcosaltro per il mancato funzionamento del collegamento.

Componenti necessari:
Cavo schermato da 1,5m (la lunghezza e` legata comunque alle vostre necessita`).
Presa VGA maschio con relativa calotta in plastica.
Presa Scart maschio (preferibilmente di buona qualita`)
1 resistenza da 100ohm
2 resistenze da 1kohm
1 molex maschio
2 fili (non troppo sottili) da 30 cm di lunghezza ciascuno e possibilmente di 2 colorazioni differenti (rosso e giallo) (servono per il molex)

A questo punto e` venuto il momento di verificare se tutto funziona correttamente. Prima di utilizzare Soft-15khz verificate se la vostra scheda e` compatibile dando un occhiata a questo link in cui e` possibile trovare numerose schede testate con il suddetto software. Da notare che non e` detto che la vostra scheda non sia compatibile solo perche`e non e` presente tra quelle verificate.
Ad ogni modo scaricate Soft-15khz e dopo averlo "unzippato" avviate l'eseguibile, cio` che vi si parera` dinnanzi e` la seguente schermata:


(fare click sull'immagine per ingrandirla)

Tra le risoluzioni native di Soft-15k non e` presente la 320x200 tipica del Commodore 64 per cui avrete la necessita` di aggiungerla manualmente in questo modo:
Create nella stessa cartella di Soft-15khz un file chiamato "usermodes.txt" e copiatevi il testo qua sotto riportato e salvate il tutto:
modeline "320x200@50" 6,678 321 336 392 424 200 238 296 315 -hsync -vsync
(Con tutte le schede video tranne ATI)
modeline "321x200@50" 6,678 321 336 392 424 200 238 296 315 -hsync -vsync
(Se avete una scheda ATI)

Ora cambiate la risoluzione del vostro desktop portandola a 640x480 (se il vostro monitor non ve lo consente e cioe` se la minima e` 800x600 potete utilizzare Quickres per raggiungere lo scopo). Clikkate quindi su "Install USER" e riavviate il PC. Collegate il vostro cavo e il gioco e` fatto!

N.B. Se qualcosa va davvero male e non riuscite piu` collegare il vostro monitor VGA non disperate, la soluzione e` semplice: Si deve entrare in modalita' provvisoria e disinstallare il driver della scheda video. Al successivo riavvio del PC, il sistema si accorgera' della scheda video presente e chiedera' di installare il driver.

Per qualsiasi dubbio o domande non esitate a chiedere, non vi nascondo che io stesso sto tutt'ora sperimentando diverse soluzioni.



 
« Ultima modifica: 17 Febbraio 2015, 14:25:42 da eregil »
Fuoco e vento provengono dal cielo, dagli dei del cielo, ma e Crom il tuo dio! Crom che vive nella terra!

Antiriad

  • Utente
  • **
  • Post: 267
  • Gioco Preferito: Antiriad
Emulazione C64 Ad Alta Fedelta`
« Risposta #1 il: 30 Luglio 2012, 17:29:58 »
 Bel tutorial, complimenti.

ciao

A.

Wizkid

  • Data Entry
  • Utente
  • ***
  • Post: 259
  • Gioco Preferito: Druid, Wizball, Last Ninja, Draconus
Emulazione C64 Ad Alta Fedelta`
« Risposta #2 il: 31 Luglio 2012, 07:36:16 »
Innanzitutto grazie ad Antiriad e a Raffox per i complimenti :)
Le foto di seguito le ho scattate dopo aver eseguito qualche prova con una scheda grafica ATI RADEON HD3850 Pci Express e con un televisore Philips 21 pollici modello 21GR2350/08B. Come ho gia` detto nel tutorial ho impostato la risoluzione del desktop a 640x480. Essendo la risoluzione cosi`alta l'immagine (anche se non si nota dalla foto) flickera vistosamente ma cio` non impedisce l`utilizzo del pc e tutto sommato non da poi tanto fastidio.

Desktop in 640x640 interlacciato

Clikka sull'immagine per Ingrandire

Trolls and Tribulations emulato tramite Vice (risoluzione 320x240)

Clikka sull'immagine per Ingrandire
 
Questa volta ho effettuato un ingrandimento per far meglio notare l'effetto scanline reale generato dalla visualizzazione sul televisore CRT.

Clikka sull'immagine per Ingrandire

Altro zoom, in questo caso lo scanline si vede ancora meglio soprattutto se si osserva la foto ingrandita.

Clikka sull'immagine per Ingrandire

Ultima immagine abbastanza esaustiva.

Clikka sull'immagine per Ingrandire

Il risultato finale mi e` sembrato abbastanza soddisfacente, vi garantisco che ho avuto l'impressione di stare di fronte ad un vero C64 ma intendo fare un confronto diretto con un biscottone reale ed un altro televisore 21 pollici messi di fianco al Philips con il C64 emulato tramite Vice. Ovviamente faro` qualche foto che postero` quanto prima soffermandomi anche sulle differenze "sensoriali" provate durante le prove.
« Ultima modifica: 17 Febbraio 2015, 14:28:43 da eregil »
Fuoco e vento provengono dal cielo, dagli dei del cielo, ma e Crom il tuo dio! Crom che vive nella terra!

Wizkid

  • Data Entry
  • Utente
  • ***
  • Post: 259
  • Gioco Preferito: Druid, Wizball, Last Ninja, Draconus
Emulazione C64 Ad Alta Fedelta`
« Risposta #3 il: 18 Agosto 2012, 08:49:17 »
Dopo aver effettuato numerosi esperimenti posso finalmente ritenermi soddisfatto del risultato ottenuto.

SCHEDE VIDEO
Innanzitutto bisogna dire che le schede video ATI Radeon dalla 9200 in poi sono quelle che offrono la soluzione migliore in quanto non hanno un limite prefissato di risoluzioni ottenibili, cosa che invece si verifica con le Nvidia le quali gestiscono non piu` di 32 risoluzioni. Inoltre le Nvidia spesso hanno problemi con l'overscan, in pratica anche a 640 x 480 il desktop si vede solo in modo parziale, di solito la parte bassa in cui e` presente la barra di Windows risulta inaccessibile.

EMULATORI
Per quanto riguarda gli emulatori la vera perfezione la raggiungono solamente Hoxs 64 e il Ccs64 e cio` e` dovuto ad una migliore (se non ottimale) gestione delle sincronie video. Purtroppo il WinVice anche in fullscreen presenta il classico tremolio verticale cosa che non si verificavo sul C64 reale. A tal proposito mi stavo chiedendo se non avessi commesso qualche errore nel settare adeguatamente le opzioni video di WinVice, per cui se qualcuno fosse a conoscenza di un modo per risolvere il problema del sync verticale sarei lieto se mi correggesse postando la soluzione.

Le immagini che seguono riguardano la configurazione di Hoxs 64 con la quale ho raggiunto un risultato piu` che perfetto. Stranamente con il mio 21 pollici sono stato costretto ad utilizzare una risoluzione di 384x288, dico "stranamente" perche` la risoluzione nativa del C64 e` di 320x200 ma cio` nonstante l'immagine risulta identica all'originale.
Appena potro` ho intenzione di postare un piccolo video che mostra il C64 a confronto diretto e sincronizzato con PC+Crt.







Ciao a tutti e a presto :)
« Ultima modifica: 17 Febbraio 2015, 14:32:18 da eregil »
Fuoco e vento provengono dal cielo, dagli dei del cielo, ma e Crom il tuo dio! Crom che vive nella terra!

tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 515
  • Gioco Preferito: Krakout
Emulazione C64 Ad Alta Fedelta`
« Risposta #4 il: 18 Agosto 2012, 16:38:54 »
 320x200 è la risoluzione del riquadro interno, ma l'insieme è molto più ampio. Se si usa una risoluzione così bassa nell'emulazione del C64 si tagliano via parti di informazione video.
Le linee sono sempre 288 perché siamo in standard PAL, mentre non c'è una vera e propria risoluzione orizzontale "totale", visto che parliamo di un sistema analogico. C'è semmai una frequenza orizzontale minima necessaria a distinguere i pixel. Ha senso comunque scegliere una risoluzione orizzontale che dia il rapporto d'aspetto più simile a quello reale.
Per quanto riguarda la sincronia, allo stato attuale WinVICE non permette di tenere sincronizzati il refresh video e l'emulazione, mentre anch'io con Hoxs64 sono riuscito a ottenere una sincronia apparentemente perfetta (con PowerStrip e monitor VGA a tubo catodico).
Altri emulatori che permettono il controllo fine della frequenza di refresh sono WinUAE e GroovyMAME, mentre per i possessori di schede video ATi consiglio i driver modificati di Calamity, "CRT EmuDriver", che permettono di incrementare il numero di risoluzioni nel sistema e includono strumenti per generare e modificare le risoluzioni.
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?

Wizkid

  • Data Entry
  • Utente
  • ***
  • Post: 259
  • Gioco Preferito: Druid, Wizball, Last Ninja, Draconus
Emulazione C64 Ad Alta Fedelta`
« Risposta #5 il: 18 Agosto 2012, 22:15:47 »
 Grazie tsm_carmine per la delucidazione in merito alla risoluzione e inoltre mi confermi che WinVice e` carente sul lato "sync". Per quanto riguarda i driver di Calamity li avevo gia` testati a dovere con 3 schede ATI differenti ma con risultati altalenanti. Anche con l'utilizzo dei "CRT Emudriver" alcune ATI non possono essere settate per visualizzare determinate risoluzioni, specialmente quelle molto basse, infatti, molti appassionati del Mame preferiscono avvalersi solamente di Soft-15Khz e di Modelines custom.
Fuoco e vento provengono dal cielo, dagli dei del cielo, ma e Crom il tuo dio! Crom che vive nella terra!

Wizkid

  • Data Entry
  • Utente
  • ***
  • Post: 259
  • Gioco Preferito: Druid, Wizball, Last Ninja, Draconus
Emulazione C64 Ad Alta Fedelta`
« Risposta #6 il: 20 Agosto 2012, 07:26:58 »
 Rieccomi di nuovo a sfracassarvi i maroni ;) con un nuovo esperimento.
Stavolta ho provato ad utilizzare entrambe le uscite della mia ATI Radeon HD3850 per vedere fosse possibile visualizzare sul mio monitor VGA il desktop di Windows e sul CRT solamente cio` che mi interessa (l'eseguibile di Soft-15Khz, Quickres e naturalmente gli emulatori all'opera).
La cosa e` possibilissima e si otiene collegando il CRT all'uscita VGA principale e il Monitor VGA all'uscita secondaria. In pratica ho istallato Soft-15Khz solamente sulla VGA primaria e ho clonato il desktop sul Monitor VGA collegato alla secondaria mediante il Catalyst Control Center. Ovviamente sul monitor VGA e` possibile utilizzare la risoluzione che piu` ci aggrada.
Il procedimento, se non sono stato ancora chiaro, consente un piu` comodo uso del PC facilitandoci non poco ad esempio la navigazione o l'utilizzo dei nostri software preferiti mantenendo pero` la possibilita` di giocare sul nostro Televisore CRT con qualsiasi emulatore.

Non appena effettuero` lo stesso esperimento con un altra scheda video non manchero` di postarne il risultato.
Fuoco e vento provengono dal cielo, dagli dei del cielo, ma e Crom il tuo dio! Crom che vive nella terra!