Com’è possibile che Super Mario Bros occupasse solamente 40KB di memoria? Giusto per riferimento, questa immagine ne occupa ben 221. 👇

I 40KB in questione erano suddivisi tra due chip: una memoria da 32KB contenente il codice e i dati di gioco, e una memoria da 8KB per le grafiche.

L’intero gioco è stato programmato in assembly, riducendo al massimo lo spazio necessario per contenere le istruzioni per far funzionare il gioco.

I suoni, al contrario di quanto avviene oggi, non erano registrazioni tenute in memoria. Ogni suono è ottenuto da una sequenza di comandi, ciascuno dei quali indica all’hardware del NES come comporre il suono desiderato. 🎵

È un po’ come dare a un pianista uno spartito affinché possa suonare il proprio pezzo piuttosto che registrare l’esibizione e memorizzarla per poi riprodurla.

Vien poi la parte più interessante, che è quella delle grafiche.

Super Mario Bros utilizza le cosiddette tilemap. Si tratta di una collezioni di piccole immagini che unite insieme formano le grafiche del gioco. Ognuna di queste ha dimensioni 8x8 pixel. Per comporre Mario, ad esempio, si usano 4 di queste immagini. 🎨

Le grafiche sono realizzate in modo da poter essere colorate usando 4 palette colori, ciascuna formata da 3 colori diversi. Avere tartarughe di colore verde e rosso significava quindi indicare semplicemente l’utilizzo di una palette diversa, senza dover memorizzare grafiche aggiuntive.

Un esempio ormai famosissimo è quello dei cespugli e delle nuvole, che in Super Mario Bros sono esattamente la stessa immagine, colorata in modo diverso. 🤯

L’ostacolo più grande, però, è quello di memorizzare i livelli di gioco.

La tecnica sfruttata è la seguente: il mondo viene generato usando dei comandi, ciascuno dei quali posiziona una serie di blocchi.

Ogni comando occupa 2 byte e specifica la posizione del blocco e la sua tipologia. Il vantaggio è che uno solo di questi comandi può generare anche più blocchi se previsto. Vediamo un esempio:

I 5 blocchi (3 di mattoni e 2 punti di domanda) che troviamo all’inizio sono in realtà realizzati tramite 3 comandi: il primo genera una striscia di 5 mattoni, e gli altri due posizionano due punti di domanda al di sopra dei blocchi appena creati. 👷‍♂️

Con queste e altre tecniche, Super Mario Bros (e molti altri giochi per NES) riuscivano a occupare uno spazio che oggi è veramente irrisorio.

:)

Se questo post ti è piaciuto, ogni giorno pubblico contenuti simili 👉 Gabriele Scaggiante

#videogiochi #supermario #gaming #tecnologia #arcade