Il Nintendo R.O.B. con gli accessori che ho trovato |
Il robottino non ebbe un grande successo, ma è rimasto nella memoria di molti ragazzi di allora che oggi lo cercano come oggetto di collezione. Il robottino veniva venduto in due package, uno era il cosiddetto "De Luxe Set" che comprendeva la console, la pistola "Zapper" ed appunto il robottino con altri accessori, un altro era una confezione solo col robottino e gli accessori di uno dei due giochi "Gyromite" o "Stack up".
E' quest'ultimo set che mi è arrivato, inizialmente senza cartuccia e coperchio del vano batterie, mancanza che ho rimediato su ebay con una spesa abbastanza moderata.
Ho subito notato che in effetti il robottino era molto sacrificato visto che si potevano usare solo due giochi, ma ho anche visto la mancanza di collegamenti a filo con la console, che guidava il robot solo con dei segnali video (input del robot) e con la pressione di alcuni tasti del controller della console (output del robot). Mi è dunque balenata l'idea di gestirlo con un home computer, ovvero con il suo peggiore concorrente di allora, e non poteva essere che il Commodore 64!
Il Commodore 64 con la configurazione simile a quella usata |
Il progetto non sembrava impossibile, bastava trovare il codice con cui la NES mandava i comandi al robot, sotto forma di flash dello schermo. Alcuni video su youtube facevano pensare a dei semplici cambiamenti del colore dello sfondo con alternanza di nero e verde.
Per poter ottenere il codice preciso avrei dovuto fare una ripresa video ad alta velocità e mi stavo attrezzando per farla, ma per fortuna ho trovato su Google un forum dove si discuteva appunto di questo, al seguente url:
Il post più interessante è del 16 aprile 2011 e da una lista dei comandi con i relativi codici di lampeggio sotto forma di numeri esadecimali, che qui brevemente riporto anche in binario:
HEX BIN Comando
00010 Sequenza di inizio comando (va
fatta sempre prima del comando)
AB 10101011 Calibratura (R.O.B.
Effettua la stessa sequenza di test che fa all'accensione)
AE 10101110 Giu' di 1 passo
BA 10111010 Sinistra di 1 passo
BB 10111011 Su di 2 passi
BE 10111110 Chiude le braccia
EA 11101010 Destra di 1 passo
EB 11101011 Test (accende la spia
sulla testa del ROB se era spenta)
EE 11101110 Apre le braccia
FA 11111010 Su di 1 passo
FB 11111011 Giu' di 2 passi
Il lampeggio deve seguire lo standard video usato che per il PAL richiede un flash ogni 1/50 di secondo, dato che il C64 lavora come progetto con il NTSC (sessantesimi di secondo) anche se esiste la versione PAL il timing è un pò critico e spesso occorre creare o modificare delle piccole pause tra un flash e l'altro. Il risultato è che il robot non reagisce sempre nel modo giusto.
Dopo vari tentativi sono riuscito a creare un algoritmo di codifica abbastanza efficiente, e quindi ora posso far lavorare il robot con un C64, missione riuscita!
Per festeggiare ho fatto un piccolo video dimostrativo, mi raccomando, non badate al joystick che da comandi diversi da quelli che dovrebbe, aveva un piccolo difetto, lo avevo ripulito e poi rimontato male, ruotando la schedina interna di 90 gradi! L'importante è che il robot esegue i comandi come descritto a video.
Ora è possibile usare il robot per tanti altri scopi, io avrei pensato, p.es. a fargli risolvere il problema delle Torri di Hanoi, ma c'è molto per chi vorrà utilizzare le informazioni che ho dato.
Qui c'è il file PRG, da usare con un C64 reale (il nome file inizia con ROB) ovviamente, per ripetere il mio esperimento, una nota: nel ciclo di trasmissione del comando, appena dopo ogni flash c'è una riga contenente istruzioni inutili, servono per ottenere una piccola pausa.
Vi sono due versioni del file, quella migliore finisce col numero 2.
Naturalmente la tecnica usata è applicabile per tutti i computer in grado di generare i lampeggi con un timing compatibile, quindi Buon Lavoro!
Qui c'è il file PRG, da usare con un C64 reale (il nome file inizia con ROB) ovviamente, per ripetere il mio esperimento, una nota: nel ciclo di trasmissione del comando, appena dopo ogni flash c'è una riga contenente istruzioni inutili, servono per ottenere una piccola pausa.
Vi sono due versioni del file, quella migliore finisce col numero 2.
Naturalmente la tecnica usata è applicabile per tutti i computer in grado di generare i lampeggi con un timing compatibile, quindi Buon Lavoro!