martedì 12 ottobre 2010

Print
Dopo la cinquina di giochi rigorosamente CGA che ho trattato negli ultimi post, mi è venuta la voglia di parlarvi un altro po' dello standard video introdotto da mamma IBM nel preistorico 1981. Nei due articoli (1, 2) che vi ho proposto alcuni mesi addietro avevo volutamente evitato di parlarvi del Composite Video Mode, modalità a colori fruibile unicamente su TV o monitor con ingresso video composito compatibili con lo standard NTSC (in grado, quindi, di operare alla frequenza di 60Hz). La ragione che mi spinse a tale omissione fu il non aver mai toccato con mano tale primizia tecnologica e quindi la mia totale inadeguatezza a descriverla oltre che dal punto di vista tecnico da quello "emozionale". Trascorrevo le mie giornate crogiolandomi nella mia ignoranza quand'ecco, come un fulmine a ciel sereno, arrivare sul mio blog l'amico Carlo Santagostino, conosciuto pochi giorni prima al VGH 2010 (manca la foto ma sarà per la prossima volta!!!), che mi invita a colmare la lacuna e mi informa che, il mitico DosBox (si lo so, vi ho promesso uno speciale ... lo faccio al più presto!!!) da un po' di versioni è in grado di emulare tale modalità. Cerco un po' per la rete, scopro come abilitarla e ... signori e signori mi si è palesato un universo multicolore che credevo irraggiungibile per i PC dei primi anni '80!!!

Come avrete scoperto leggendo i miei articoli precedenti lo standard CGA prevedere 2 modalità grafiche; una in bassa risoluzione 320x200 a 4 colori (di cui uno selezionabile dalla tavolozza completa di 16 colori e tre fissati dal sistema) ed una monocromatica in alta risoluzione 640x200 (un colore di sfondo fisso, nero, e uno di primo piano selezionabile tra i 16 a disposizione) ... insomma, prestazioni accettabili per l'utilizzo di software da ufficio, che magari doveva tracciare qualche grafico, ma decisamente "povere" per lo scintillante mondo dei videogame.
Come avrete letto tra le varie retro review che vi ho proposto, ci si divertiva ugualmente ma il senso di inferiorità, anche nei confronti di un misero C64, era decisamente opprimente. A tal proposito, vi ripropongo uno screenshot di Alley Cat (1984) a mio parere, uno dei migliori giochi della prima era videoludica del PC (maledetto magenta!!!!).


Bene ... bando alla ciance a lanciamoci alla scoperta del fantasmagorico CGA Composite Video Mode che permetteva di utilizzare ben 16 colori contemporanei su schermo ... avete letto bene, 16 colori!!

Tweaked Composite Video Mode

La prima modalità a 16 colori della CGA è in realtà un hack della modalità 320x200x4 che si basa su di un difetto hardware della scheda. Dovete sapere che IBM, per mantenere bassi i costi di produzione della scheda, invece di utilizzare un convertitore RGB-YIQ per la conversione del segnale da RGB a video composito (YIQ è la codifica con cui vengono rappresentati i colori dallo standard NTSC) decise di utilizzare della circuiteria a componenti discreti più a buon mercato.
Il risultato di tale scelta fu una non perfetta separazione tra i segnali di luminanza e cromoninaza che faceva si che pixel adiacenti (in orizzontale) interferissero uno con l’altro dando origine a “sbavature” di colore che, in molti, casi precludevano l’utilizzo di alcune modalità video. Un esempio è la modalità testuale ad 80 colonne, in ci il testo risulta di difficile (se non impossibile) lettura. Nell’immagine seguente un testo in modalità 80 colonne visualizzato a sinistra su un monitor RGB e a destra su di un TV.

(click per ingrandire)

Ma, come spesso succede, i programmatori geniali sono in grado di sfruttare a loro favore i bug hardware per ottenere risultati impensabili; ed ecco che, avvicinando due pixel di colori differenti si ottiene un nuovo pixel, grosso il doppio, il cui colore è combinazione dei colori di partenza. Alternando pixel di due dei quattro colori messi a disposizione della palette CGA si ottiene un nuova palette di 16 utilizzabili contemporaneamente, come illustrato nella figura seguente (basata sulla palette utilizzata da Alley Cat).

(click per ingrandire)

In conclusione, a patto di accettare un dimezzamento della risoluzione orizzontale (visto che da due pixel ne ottengo uno, la risoluzione effettiva è di 160x200) ed un leggero sfocamento dell’immagine è possibile utilizzare 16 colori contemporaneamente donando ai giochi un aspetto decisamente più accattivante. Per dovere di cronaca, cito che tale tecnica basata su artefatti legati alla codifica del segnale video era già utilizzata da altri homecomputer di prima generazione come Apple II e Amstrad CPC.

Composite Video Mode

Accanto a questa modalità artificiosa, i progettisti di IBM implementarono una modalità reale (e documentata) per poter utilizzare 16 colori contemporanei su dispositivi NTSC con ingresso video composito.
Tale modalità si abilita selezionando la modalità 640x200 monocromatica ed in seguito impostanto a 0 il bit due del registro di controllo della CGA (03D8h). Con tale configurazione, un'immagine monocromatica visibile su di un monitor RGB, come per magia si mostra ricca di colori se visualizzata sul televisore. Nello specifico, gruppi di 4 pixel in bianco/nero vanno a selezionare uno dei 16 colori della palette (nella figura successiva). Anche in questo caso la risoluzione effettiva risulta essere 160x200 (640/4=160).

(click per ingrandire)

Conclusioni

La diminuzione della risoluzione (in entrambe le modalità 160x200) e la leggera sfocature dell'immagine rendevano queste modalità non adatte all'utilizzo in applicazioni professionali ma molto appetibili in ambito videoludico. Putroppo le due modalità non ebbero la diffusione che si sarebbero meritata. Era infatti necessario disegnare due grafiche differenti (una per la modalità RGB e una per quella video composita) con il conseguente raddoppio dello spazio necessario a memorizzarla (e allora i floppy costavano!!). In alternativa era possibile adattare la grafica realizzata per la modalità RGB a quella composita eseguendo elaborazioni aggiuntive. Purtroppo, i primi PC,  che erano tutt'altro che dei mostri in termini di potenza di calcolo facevano un po' di fatica a digerire tale carico di lavoro extra (tenete in considerazione che non essendo previsto hardware ad-hoc per gestione di effetti grafici, come ad esempio la gestione degli sprite, tutta l'elaborazione era a carico della CPU).

Nonostante questo i risultati sono eccezionali (un elenco completo dei giochi che supportano la modalità composita lo trovate sull'ottimo Moby Games):

  • La primissima versione di King Quest I - Sierra On-Line (1983)


  • Burger Time - Mattel & Data East (1982)


  • Ms. Pac-Man - Midway Games & Atarisoft (1983)




Ahhh ... dimenticavo, per poter godere delle modalità video composite della CGA, è sufficiente editare il file dosbox.conf ed impostare machine=cga (sostituendo il valore di default, solitamente machine=svga_s3). Dopo aver lanciato in gioco se i colori non vi soddisfano (probabilmente il gioco si avvia in modalità RGB) , fatevi un giro in cerca della opzioni di configurazione e impostate composite come modalità video!!!

Buon divertimento!!!!

5 commenti:

  1. Mitica la CGA, ai tempi la emulavo con una Hercules monocromatica! Tra l'altro, non sapevo dei due trucchetti per avere più colori, grazie. :-)

    RispondiElimina
  2. eheheh ... i bei tempi andati della Hercules e della CGA!!! Comunque i programmatori di allora erano veramente smart!!!
    Tex

    RispondiElimina
  3. Più che altro, all'epoca c'era il tempo sufficiente per trovarli e sfruttarli a proprio vantaggio, i bug dell'hardware. Oggi non fai tempo a scoprire una feature non documentata, che l'hardware è già tre generazioni avanti!

    RispondiElimina
  4. @Paolo

    Hai proprio ragione!!! Forse si riesce a fare ancora un po' sulle console che hanno un ciclo di vita abbastanza lungo pero' sui computer è proprio impossibile. Oltre alla costante evoluzione ci si mette anche il sistema operativo che astranendo l'hardware semplifica la programmazione ma rende più complesso scendere nei dettagli. E' pur vero che con un sistema cosi' aperto senza un livello di astrazione ci troveremmo ancora i titoli che ci chiedono quale scheda video usare ogni volta :o)

    Insomma ci sono i pro e i contro!!!

    RispondiElimina
  5. Madonna Tex! Il salto di qualità di certi titoli nati per CGA, adoperando il Video Composite Mode, è davvero strabiliante; Burger Time e Ms. PacMan li ho provati e sono delle vere chicche!!!
    Davvero magnifico!
    Comunque sono d'accordo con Paolone, perché oggni non si sfrutta più l'hardware fino in fondo e ci si "accomoda" orientandosi verso un hardware superiore.

    Bei tempi quelli di prima.

    RispondiElimina