1. Pokémon Millennium  / 
  2. Notizie / 
  3. Nintendo

I giochi per Game Boy? Era un vero incubo programmarli!

Un nuovo canale YouTube italiano, JackTech, ci racconta come sono le console a partire dal conosciutissimo Game Boy!

di 
   · 1 min lettura Nintendo
Metti mi piace!
6

Vi siete mai chiesti come è fatta una console al suo interno e cosa voglia dire programmarla? Un nuovo canale YouTube italiano, JackTech, ci racconta come sono le console a partire dal conosciutissimo Game Boy!

gameboy-disegno

Nella prima puntata di questa serie, viene fatta un’autopsia del Game Boy per mostrarci la CPU e come essa elabora i dati dei videogiochi. A cavallo tra gli anni ’80 e ’90, i processori delle console portatili avevano una potenza equiparabile ad una calcolatrice scientifica di oggi.

Per contenere i costi, la console portatile di casa Nintendo, utilizzava una versione modificata dello Zilog Z80, un processore ad 8 bit capace di effettuare calcoli unicamente con numeri compresi tra 0 e 255. Inoltre per ottimizzare il tutto e utilizzare al massimo l’esigua potenza di calcolo del processore, si programmava in Assembly, un linguaggio di programmazione efficiente per questo tipo di processori, ma alquanto ostico da padroneggiare. Anche le operazioni più semplici richiedevano parecchie righe di codice.

MissingNo

Immaginate ora che sforzo immane abbiano dovuto sostenere i programmatori di Game Freak al loro esordio con il mondo Pokémon. Lo stesso Masuda ha dovuto più volte riparare dei computer per evitare di perdere il prezioso lavoro. I giochi di prima generazione hanno visto la luce dopo sei anni di lavoro non senza bug ed errori vari, che hanno permesso ai giocatori di conoscere MissingNo e altre situazioni bizzarre.

Se siete curiosi di saperne di più sull’argomento ecco il video completamente in italiano:

Cosa ne pensi? Facci sapere la tua sulla nostra chat Telegram, sul Forum o sui canali Social!

cpu Game Boy hardware Pokémon

Promozioni

Caricamento..
Caricamento..
Caricamento..

🕘  Notizie recenti

💬  Ultimi commenti su questa notizia

avatar
Di   
1 ora fa, Dante ha scritto:

I big money

Beh, mica potevano sapere se i giochi avrebbero riscosso il successo che oggi, col senno di poi, noi tutti conosciamo! Anzi, quello della Game Freak, all'epoca, fu un autentico salto nel buio, il risultato sarebbe potuto essere tranquillamente MOLTO diverso! ;)

avatar
Di   

Se non altro in tutti questi anni è diventata anche più semplice la programmazione! :)

avatar
Di   
On 23/2/2016 at 21:53, Haunter ha scritto:

Una volta terminato di vedere il video, nella mia mente è sorta spontanea una domanda: quale mistica forza ultraterrena ha impedito a Junichi Masuda e company di tagliarsi le vene dei polsi o di impiccarsi con una Fune di Fuga all'epoca della programmazione di Pokémon Rosso e Verde? XDD

I big money

avatar
Di   

Molto, molto interessante.

aggiungo solo qualche considerazione:

1. Non programmate in assembly... ad oggi qualsiasi codice voi produciate in assembly sarà sempre meno efficiente di quello prodotto da un compilatore moderno

2. Non programmate in assembly... il codice prodotto in assembly dev'essere infatti diverso a seconda dei componenti (in particolare a seconda della CPU)... il che significa non solo che scrivere il vostro programma per 2 CPU diverse significa riscrivere il programma da capo, ma anche che:

 - doveve imparare un assembly per ogni CPU per il quale volete scrivere il vostro programma

 - il vostro codice non è portabile.

3. Non programmate in assembly... l'assembly per una CPU moderna è molto più complesso rispetto a quello usato sulla CPU di un vecchio gameboy.

 

4. nel video viene mostrato C# tra i linguaggi compilati, in realtà C# è in parte compilato in parte gira su virtual machine come java. Inoltre Java rispetto a python è leggermente diverso, infatti Java viene prima compilato in bytecode (che è una sorta di assembly molto semplice) e poi interpretato da una virtual machine in java, mentre python viene direttamente interpretato dall'interprete python (è quindi più lento).

5. la tipizzazione debole porta a moltissimi errori che si potrebbero evitare ancora prima di eseguire il programma. Java, C# e altri linguaggi moderni usano comunque la tipizzazione forte... non a caso.

In generale i linguaggi usati in particolare per lo scripting (javascript, python, ruby ecc...) usano la tipizzazione debole perchè si da per scontato che i codici da produrre siano script piccoli e facilmente gestibili (quindi è più importante scriverli in fretta che trovare errori nel codice).

Al contrario per programmi grossi (tipo i videogiochi) conviene sicuramente un linguaggio tipo C++, Java o C# con tipizzazione forte. Infatti sapere esattamente cosa c'è in una variabile risulta in un codice più ordinato e con meno errori.

 

in pratica il tutto si riduce a stare attento al tipo della variabile:

int variabile = 0;

String variabile2 = "Hello World";

(l'esempio è in Java, in C# String è nativo quindi si scrive minuscolo... mentre in C++ che deriva dal C dove non esistevano le stringhe il tutto si riduce ad ereditare da una classe specifica con std::string, l'alternativa è usare un array di char (caratteri)).

 

Preferire la tipizzazione forte non significa assolutamente andare ad usare assembly.

 

6. In realtà le macchine eseguono solo codice binario, l'assembly dev'essere quindi trasformato da un assembler in codice binario.

l'assembly è comunque una traduzione 1 a 1 di quel che si fa in codice binario per questo nessuno (tranne in applicazioni molto, molto specifiche) scrive in binario.

 

7. ci sono delle applicazioni in real time in cui si usa ancora assembly, ma il codice assembly è contenuto all'interno di un programma in C o C++, e lo si studia nel momento del bisogno (con le giuste basi teoriche è possibile studiarlo in qualsiasi momento... anche perchè cambia a seconda del processore quindi non si può comunque studiare prima).

 

Non programmate in assembly...

avatar
Di   
2 minuti fa, mattyy92 ha scritto:

sinceramente ero indeciso tra Super Mario e Zelda :P

Io nostalgicamente ero sicuro fossero i Pokémon ahahah

Non che abbia niente contro Mario, anzi

avatar
Di   
9 ore fa, Chary. ha scritto:

Come detto da Matty è Super Mario :D Comunque io ho 11 anni e gioco a Pokémon,non ho mai considerato Clash of Clans e Minecraft ;) 

sinceramente ero indeciso tra Super Mario e Zelda :P

avatar
Di   
9 ore fa, Chary. ha scritto:

Come detto da Matty è Super Mario :D Comunque io ho 11 anni e gioco a Pokémon,non ho mai considerato Clash of Clans e Minecraft ;) 

Ma infatti qualcuno sano ancora c'è :)