YAS (Yet Another Snake) è un gioco simile a Snake/Nibbles per CHIP-8, codificato nel 2015 e originariamente incluso nel pacchetto di CHIP-OTTO, la mia macchina virtuale/interprete CHIP-8. Da oggi, YAS è disponibile anche su retrobits.itch.io, sia per il gioco online tramite browser web che per il download. La versione per browser web è basata sull’interprete Octo; se non funziona nel tuo browser, puoi provare con WEB-OTTO, il port HTML5 della mia macchina virtuale.
Non mi riferisco all’album dei Queen A day at the Races o al film dei Fratelli Marx, ma a VIP Animal Race. Si tratta di un divertentissimo gioco per CHIP-8, programmato da Brian Hastle. Cinque animali diversi gareggiano l’uno contro l’altro e devi scommettere su quello vincente. Di solito non mi piace giocare d’azzardo, ma oggi ho fatto un’eccezione 🙂
Quando, all’inizio degli anni ’90, furono realizzati gli interpreti CHIP-48 e SUPER-CHIP per la calcolatrice grafica HP 48SX, furono introdotte alcune incompatibilità (spesso indicate come quirks) rispetto all’interprete originale CHIP-8. Quindi, alcuni giochi non girano correttamente su molti interpreti moderni, la cui implementazione è basata sulla documentazione di SCHIP. VIP Animal Race è uno di questi. Puoi trovare maggiori dettagli in alcune discussioni online (vedi ad esempio questa issue di Kiwi8).
Oggi, ho finalmente superato questo problema in CHIP-OTTO, il mio interprete CHIP-8 / SCHIP per ZX Spectrum Next, introducendo una nuova configurazione chiamata Legacy compatibility flags. Impostando alcuni flag nell’apposita maschera di bit nel file di configurazione del gioco, è possibile modificare il modo in cui l’interprete esegue alcuni opcode; in particolare:
Bit 0: operazioni di shift (codici operativi 8xy6, 8xyE):
0: Vx è shiftato
1: Vy è shiftato e il risultato viene memorizzato in Vx
Bit 1: operazioni di caricamento / memorizzazione (codici operativi Fx55, Fx65):
0: I è incrementato (I = I + x + 1)
1: I non è incrementato
Bit 2: overflow della memoria nel codice operativo Fx1E
0: se I > 0xFFF, VF è impostato a 1; altrimenti a 0
1: VF non viene alterato
Quindi, oggi sono stato finalmente in grado di eseguire VIP Animal Race in CHIP-OTTO, come puoi vedere in questo video :
Mi scuso anticipatamente con gli amici Commodoriani e preciso che non ho alcuna intenzione di soffiare sul fuoco della quarantennale flame war che vede contrapposti i fan di Commodore 64 e ZX Spectrum, ma solo di strappare una risata a tutti gli appassionati di retrocomputing! 😄
Non appena ho visto questo meme, che ha come protagonista il simpaticissimo Khaby Lame, mi è immediatamente sovvenuta l’ispirazione per questa idea, che ironizza sulla difficoltà di disegnare un cerchio con il Commodore 64 utilizzando il BASIC, mentre sullo ZX Spectrum è sufficiente una sola istruzione (circle).