Flickering... ovvero: il "precariato" degli sprite - Blog - Retrogaming History
Registrati!
Visualizza Feed RSS

AlextheLioNet

Flickering... ovvero: il "precariato" degli sprite

Valuta Questa Inserzione
Uno degli aspetti più interessanti del retrogaming è sicuramente legato alla possibilità di fruire di approfondite spiegazioni tecniche... molto o moltissimo a posteriori. Grazie alla rete e alla possibilità di approfondire dettagli che negli anni '90 erano difficilmente accessibili dal gamer medio, difatti, si scoprono magari solo oggi le ragioni di ciò che un tempo si notava a video e, presumibilmente, si archiviava sotto qualche dicitura più o meno semplicistica.

Un esempio significativo di epifania videoludica mooolto tardiva è senz'altro il "flickering".

Quando il mio buon vecchio Mega Drive era nel pieno del sui ciclo vitale, ovvero nel 1992-93, non mancavo di notare come alcuni giochi soffrissero di strani "effetti visivi": "buchi" orizzontali in elementi grafici più grandi, personaggi temporaneamente "tagliati" nelle situazioni di "affollamento", strane bande lampeggianti che talvolta facevano capolino, proiettili che scomparivano nel mezzo del loro percorso per tornare ad essere visibili un'istante dopo, ecc...

Nome: strider001.jpg
Visite: 312
Dimensione: 58.0 KB


Al tempo non sapevo dare una spiegazione e pensavo che si trattasse di generici errori di programmazione, ovvero quelli che molti anni dopo avrei ricollegato al termine "graphics glitches".

Recentemente ho scoperto che mi sbagliavo: questi particolari pseudo-glitches rientrano nella famigerata categoria del "flickering".


FLICKERING: "effetto lampeggiamento" o sparizione parziale/totale rilevabile negli sprite dal momento che il numero degli stessi tenda a superare i limiti di visualizzazione imposti dall'hardware. Il flickering, infatti, dipende dallo "sprite limit" imposto dal chip grafico dell'home computer / console. Dato che l'hardware prevede un massimo di X sprite on line, il "lampeggiamento" si verifica di solito nei casi in cui "troppi" elementi grafici risultino allineati. Un esempio "classico" è Pac-Man su VCS (dato che l'hardhare prevedeva un singolo sprite, gli sviluppatori ricorsero al flickering per poter visualizzare anche i "fantasmini"). Da rilevare che il flickering non è un'esclusiva degli hardware a 8 bit (MSX, NES, Master System), ma coinvolge, sia pur marginalmente, anche una console a 16 bit come il Mega Drive.


Il flickering del 16 bit Sega, dunque, dipende dai limiti imposti dal VDP, ovvero il Video Display Processor della console.

In riferimento alla "gestione degli sprite", il VDP in dotazione al Mega Drive / Genesis, essenzialmente un'evoluzione del Texas Instruments TMS9918 del Master System, ha le seguenti specifiche ( http://cgfm2.emuviews.com/txt/genvdp.txt ):


"The Genesis can display a total of eighty 32x32 15-color sprites.
There are of course various restrictions on the display capacity, based
on current configuration of the VDP
.

[...]

Sprite Drawing Limitations
--------------------------

The VDP will stop drawing sprites under the following conditions:

- The 80th sprite has been drawn in 40-cell mode.
- The 64th sprite has been drawn in 32-cell mode.
- Twenty sprites on the same scanline have been drawn in 40 cell mode (---> risoluzione 320X224/240 - 40*28 CELL = 320*224 PIXEL).
- Sixteen sprites on the same scanline have been drawn in 32 cell mode (---> risoluzione 256X224/240 - 32*28 CELL = 256*224 PIXEL).
- 320 pixels worth of sprite data has been drawn on the same scanline
in 40 cell mode.
- 256 pixels worth of sprite data has been drawn on the same scanline
in 32 cell mode.
- The currently drawn sprite has a link field of zero."


Altre informazioni tecniche sul Mega Drive sono consultabili quì:

http://emu-docs.org/Genesis/sega2f.htm


Questi limiti sulla visualizzazione degli sprite spiegano il flickering di diversi titoli, fermo restando che, in linea di massima, il flickerio presenta variazioni tali da gioco a gioco da far pensare che non mancassero "software tricks" e/o "accorgimenti" in grado di minimizzare il problema.

In effetti alcuni vg flickerano "un po' troppo" a fronte di una densità di azione abbastanza moderata, mentre altri sfoggiano un caos superiore agli altri e si concedono comunque un "precariato" degli sprite veramente minimo.
Come sempre la qualità della programmazione incide molto anche su questi aspetti della resa visiva che caratterizza il singolo titolo.

Invia "Flickering... ovvero: il "precariato" degli sprite" a Google Invia "Flickering... ovvero: il "precariato" degli sprite" a Digg Invia "Flickering... ovvero: il "precariato" degli sprite" a del.icio.us Invia "Flickering... ovvero: il "precariato" degli sprite" a StumbleUpon

Commenti

  1. L'avatar di Gedeone de Infortunis
    Dio mio il flickering! Ricordo benissimo la situazione che hai immortalato su Strider: per fortuna si riduceva ai momenti in cui cui brandivamo la spada potenziata (curioso notare come su Sharp X68000 il fenomeno sia più esteso, vedere lo scontro col primo boss per credere). Un gioco che mi ha fatto bestemmiare per i lampeggiamenti degli sprites? Dragon Breed su C64! D'altronde con uno sprites principale cosi' grande i programmatori dell'Activision non potevano fare di meglio...
  2. L'avatar di striderhiryu
    Ricordo bene anch'io il flickering nel primo Strider su Mega Drive, e devo confessare che non mi ero nemmeno mai chiesto perchè tutto ciò accadesse (ero evidentemente troppo preso dall'azione! )! Beh, almeno adesso so perchè...Ottimo articolo Alex, come sempre!
  3. L'avatar di AlextheLioNet
    Citazione Originariamente Scritto da striderhiryu
    Ricordo bene anch'io il flickering nel primo Strider su Mega Drive, e devo confessare che non mi ero nemmeno mai chiesto perchè tutto ciò accadesse (ero evidentemente troppo preso dall'azione! )!
    Ah... ma nemmeno io... nei primi anni '90 non ci feci davvero caso. Cominciai a notarlo più o meno a "metà carriera" del Mega Drive... ma, come ho spiegato nell'articolo, pensavo che si trattasse di errori di programmazione. Solo da pochissimo ho scoperto, invece, che si tratta di effetti legati ai limiti del VDP... limiti che comunque possono essere minimizzati... altrimenti non si spiegherebbe come certi titoli per MD "flickerino" con pochi elementi grafici a video, metre altri ben più "affollati" risentano poco se non pochissimo di "buchi negli sprite" et similia.
  4. L'avatar di AlextheLioNet
    Citazione Originariamente Scritto da Gedeone de Infortunis
    Un gioco che mi ha fatto bestemmiare per i lampeggiamenti degli sprites? Dragon Breed su C64! D'altronde con uno sprites principale cosi' grande i programmatori dell'Activision non potevano fare di meglio...
    Ricordo che su Mega Drive (e Mega CD) il flickering mi infastidiva un po' in Sol-Deace / Sol-Deace e Granada (specialmente nel 3° livello del primo... quando lo sprite limit faceva sparire dei proiettili che -invisibili- finivano per colpirti senza che tu potessi evitarli)... per il resto non mi dava granchè nell'occhio. Alla fine è uno di quei dettagli che ho notato solo mooolto a posteriori.