AGGIORNAMENTO: ho aggiornato il codice per ottimizzare la routine che copia il buffer nella memoria colore. NOTE sul buffer dei colori: Nel video ho dimenticato di menzionare la ragione per la quale durante lo scrolling dei 7 pixel, copio la memoria colore in un buffer (anziché scrollarla direttamente all'ottavo). La ragione è che, altrimenti, dovrei scrollare i colori dal basso verso l'alto. Senza il buffer, se facessi il contrario, dovrei ad esempio copiare la riga 1 nella 2 e poi la riga 2 nella 3, ecc... Ma copiando la riga 1 nella 2, quest'ultima viene sovrascritta e quindi nel passo successivo (2 -> 3) copierò dati sbagliati! Se invece parto dal basso copiando la 22 nella 23 e poi la 21 nella 22, non c'è nessun problema. Vi chiederete, ma perché copiare dal basso verso l'alto non va bene? Il motivo è che il pennello ottico è uno tsunami che corre come il vento! Sfortunatamente, quando esso ricomincia a disegnare lo sfondo, la CPU non avrà ancora completato tutto il lavoro di scrolling dei colori! Tuttavia, scrollandoli dall'alto al basso, ed essendo partita in anticipo sul pennello ottico (quando quest'ultimo si trovava all'inizio del bordo inferiore), le prime righe che incontrerà saranno già state completate e la CPU riuscirà comunque a completare l'ultima riga prima che venga raggiunta! Questa tecnica si chiama "gareggiare con il pennello ottico" che non è applicabile se invertissimo l'ordine di scrolling dei colori perché la prima riga raggiunta da quest'ultimo, verrà aggiornata per ultima dalla CPU!
Addirittura, grazie 🙂. Se vi piacciono questi contenuti e volete vederne ancora, vi prego di condividere questo video (magari anche su social networks). Grazie!
Grazie, sì, le tile sono molto usate. Nel SEUCK sono grandi 8x8 e secondo me è un po' troppo (rende più difficile creare le schermate), inoltre tutti i 64 caratteri hanno un solo possibile colore di primo piano (e questo, oltre a risparmiare memoria, accelera la loro routine di scrolling del colore), mentre nella mia implementazione i 16 caratteri di una tile possono avere ognuno un colore diverso (nel SEUCK non puoi fare una tile con lo stesso cartello AGPX visto nel mio demo, dove ogni lettera ha un colore diverso ;-).
AGGIORNAMENTO: ho aggiornato il codice per ottimizzare la routine che copia il buffer nella memoria colore.
NOTE sul buffer dei colori:
Nel video ho dimenticato di menzionare la ragione per la quale durante lo scrolling dei 7 pixel, copio la memoria colore in un buffer (anziché scrollarla direttamente all'ottavo). La ragione è che, altrimenti, dovrei scrollare i colori dal basso verso l'alto. Senza il buffer, se facessi il contrario, dovrei ad esempio copiare la riga 1 nella 2 e poi la riga 2 nella 3, ecc... Ma copiando la riga 1 nella 2, quest'ultima viene sovrascritta e quindi nel passo successivo (2 -> 3) copierò dati sbagliati! Se invece parto dal basso copiando la 22 nella 23 e poi la 21 nella 22, non c'è nessun problema. Vi chiederete, ma perché copiare dal basso verso l'alto non va bene? Il motivo è che il pennello ottico è uno tsunami che corre come il vento! Sfortunatamente, quando esso ricomincia a disegnare lo sfondo, la CPU non avrà ancora completato tutto il lavoro di scrolling dei colori! Tuttavia, scrollandoli dall'alto al basso, ed essendo partita in anticipo sul pennello ottico (quando quest'ultimo si trovava all'inizio del bordo inferiore), le prime righe che incontrerà saranno già state completate e la CPU riuscirà comunque a completare l'ultima riga prima che venga raggiunta! Questa tecnica si chiama "gareggiare con il pennello ottico" che non è applicabile se invertissimo l'ordine di scrolling dei colori perché la prima riga raggiunta da quest'ultimo, verrà aggiornata per ultima dalla CPU!
Non ho parole... bravissimo, mi piacerebbe avere un mentore come te!
Addirittura, grazie 🙂. Se vi piacciono questi contenuti e volete vederne ancora, vi prego di condividere questo video (magari anche su social networks). Grazie!
Complimenti, è fluidissimo.
Il sistema delle TILES per risparmiare memoria c'é anche nel SEUCK... ;)
Grazie, sì, le tile sono molto usate. Nel SEUCK sono grandi 8x8 e secondo me è un po' troppo (rende più difficile creare le schermate), inoltre tutti i 64 caratteri hanno un solo possibile colore di primo piano (e questo, oltre a risparmiare memoria, accelera la loro routine di scrolling del colore), mentre nella mia implementazione i 16 caratteri di una tile possono avere ognuno un colore diverso (nel SEUCK non puoi fare una tile con lo stesso cartello AGPX visto nel mio demo, dove ogni lettera ha un colore diverso ;-).