Super Mario Bros sul Commodore 64!

Dopo 7 anni di sviluppo e dopo giusto 30 anni dal rilascio di Super Mario Bros in Europa (precisamente da noi venne rilasciato il 15 Maggio 1987, 2 anni dopo la terra natia) finalmente anche il Commodore 64 ha il platform più conosciuto di tutti. Noi nati negli anni ’70/’80 lo desideravamo tanto per il nostro biscottone, e maledivamo la Nintendo che non ha mai voluto concederlo in licenza su altre piattaforme diverse dal NES.

L’utente Zero Paige (del quale, ahimè, si trovano pochissime info su Internet) ha iniziato lo sviluppo nel 2013 come testimoniato da un video postato su Flickr all’epoca e qualche giorno fa ha postato un secondo video che lasciava intendere che aveva, in pratica, quasi terminato (il suo album Flickr contiene ad oggi soltanto questi due video!).

Alle 20 di ieri sera ha fatto un annuncio su Lemon64 affermando di aver completato questo lavoro dopo ben 7 anni (complimenti già solo per la tenacia!). Qualche minuto l’annuncio dopo il mondo dei retrogamers era in visibilio.

Noi retrogamers, si sa, siamo gente strana: perchè tanto clamore? Nel 1987 la Time Warp Production rilasciò The Great Giana Sisters che era uno spudorato clonazzo del titolo di punta della Nintendo. La grande N difatti minacciò di fare causa: il gioco era praticamente uguale: cambiavano gli sprites e le musiche ma gli ambienti, la meccanica del gioco e anche alcuni quadri erano gli stessi. La conseguenza della minaccia fu che tutte le copie vennero ritirate dal mercato e venne stroncata sul nascere anche la conversione per Zx Spectrum già in programma e pubblicizzata su molte riviste del settore (in questo link sono riportate tutte le pagine che parlavano di TGGS per Zx Spectrum). Anche se The Great Giana Sisters è uno dei giochi al quale siamo più affezionati (in molti l’hanno conosciuto direttamente su Amiga 500)… non era Super Mario Bros!

La versione di Zero Paige per Commodore 64 non è un clone: è un porting. Cosa significa? Che è stato preso il sorgente originale e convertito per un diverso processore/sistema. Dal momento che il sorgente di SMB non è certo free o reperibile in qualche modo, è chiaro che l’utente in questione ha dovuto disassemblare le ROM della cartuccia originale del NES, studiale e fare un lavoraccio per riadattarle al Commodore 64, musiche comprese!

Non ho aspettato un minuto per fare il confronto tra le due versioni, anche perchè in casa ho una postazione dove ci sono, guardacaso, fissi i miei vecchi Commodore 64 e NES:

Differenze

Delle piccolissime differenze grafiche ci sono e sono già visibili nella foto sopra: la grandezza del riquadro del titolo, l’estensione verso il basso del terreno e la posizione dei punteggi in alto, ma sono dettagli insignifcanti: il gioco è lo stesso: il bello di un porting è proprio questo. Sul Commodore 64, però si risente di 2 difetti principali:

  1. L’assenza del secondo pulsante sui joystick del Commodore64: saltare portando la leva dello stick verso l’alto è decisamente più scomodo, facendo un confronto con mio figlio lui ha preferito quello del NES per via del fatto che è piu facile saltare col pulsante, specie se devi anche sparare dopo aver preso il fiore di fuoco. Ad ogni modo è un dettaglio anche questo: in molti si realizzano in casa un joystick mettendo un secondo pulsante in parallelo al pulsante direzionale “su” dato che in tantissimi giochi il personaggio salta andando verso l’alto (TGGS, Bubble Bobble ecc).
  2. I rallentamenti che si verificano quando nel quadro di gioco ci sono molti elementi in movimento: al 4° quadro questo effetto è davvero pesante nei punti in cui sono presenti le fiamme rotanti, qui anche la musica rallenta e diventa davvero difficile superare questa zona. Anche questo è un difetto bypassabile anche se meno facilmente del pulsante di salto: su molti forum si legge che alcuni utenti l’hanno provato su un Commodore 128 in modalità Commodore 64 e i rallentamenti diminuiscono notevolmente dato che il MOS8502 gira a 2MHz, a differenza del MOS6510 che, in versione PAL, gira a 0,985 MHz. Personalmente non ho provato perchè per ora non mi va di scendere il 128 dallo scaffale! Ma questa cosa è anche affermata dall’autore stesso: sul post di Lemon64 difatti si legge che il gioco all’avvio rileva il sistema in uso e se si accorge di girare su un Commodore128, sfrutta i 2 MHz a disposizione. Se poi avete un sistema NTSC, c’è un ulteriore guadagno di velocità dato che l’NTSC ha un refresh di 60Hz contro i 50Hz dei nostri sistemi europei.

Il gioco supporta anche il secondo SID se avete fatto talea modifica: l’APU del NES (Audio Processing Unit, RP2A07 versione PAL) ha difatti 5 canali e in questo porting ne vengono emulati 4, e, dato che il SID ha 3 canali, 1 viene condiviso per l’onda triangolare e il rumore bianco, avendo invece 2 SID vengono assegnati 2 voci a ciascun SID e questa funzionalità può essere configurata tramite il menù che si presenta all’avvio del gioco.

La tecnica del VSP

Il gioco utilizza la tecnica VSP (Variable Screen Placement): un trucco del VIC-II che consiste in una serie di operazioni “illegali” che consentono di eseguire uno scrolling fluido senza l’intervento del processore.

In realtà il VSP deriva da un utilizzo combinato delle tecniche note come DMA Delay (paragrafo 3.14.6 di questo link, questo effetto consente di eseguire uno scroll verso destra di grandi porzioni di schermo), FLD (Flexible Line Distance, che consente di muovere dei blocchi di grafica in senso verticale) e Linecrunch (che consiste nel muovere lo schermo verso l’alto “schiacciando” una riga di 8 pixel posta in basso).

L’autore dice che l’utilizzo del VSP può far bloccare il computer, per cui consiglia di utilizzare un programmino che esegue un test del nostro Commodore 64 per vedere se riesce ad eseguire il VSP senza bloccarsi. Se il computer si blocca, viene consigliato di provare ad utilizzare un altro Commodore 64, un emulatore o la C64 Reloaded, che è stata progettata per non bloccarsi con l’utilizzo del VSP. Il blocco si verifica, i più esperti mi correggano se sbaglio, per questioni di accessi illegali alla ram ed è probabile che memorie con problemi o surriscaldamenti provochino il freeze della macchina quando si eseguono queste operazioni non consentite. Ad ogni modo io non ho avuto nessun problema.

E lo Spectrum? 

Nel 2002 è stata rilasciata una versione di Super Mario Bros per ZX Spectrum, per una competizione, ma non è una versione completa. Lasciate stare Spectrumisti: non reggete mai il confronto.

Download

Per ovvie questioni non posso mettere qui il download dato che la Nintendo fa causa molto velocemente: è notizia recente l’azione legale intrapresa contro alcuni noti siti che ospitavano le ROM di vecchi giochi, che sono stati costretti a rimuovere tutto e a pagare una bella somma di risarcimento.

Due link di download li ha messi l’autore nella pagina del forum di Lemon 64 e uno è già non più disponibile mentre l’altro è stato segnalato. Il file si chiama “super_mario_bros_64_-_zeropaige.zip” per cui, in caso di rimozione, c’è sicuramente speranza di ritrovare la rom per Commodore64 facendo una ricerca dato che moltissimi sono corsi per accaparrarsela.

Nel file zip c’è la versione cartuccia (CRT) che potete usare con la EasyFlash, e la versione floppy (D64) da usare con un emulatore di floppy drive tipo SD2IEC, io l’ho provata con quest’ultimo e funziona senza problemi su hardware reale.

Aggiornamenti

Sul sito del Commodore Scene Database ogni tanto compare un aggiornamento: Zeropaige, difatti, sta continuando a lavorare sul codice per ottimizzarlo e cercare di renderlo il più fluido possibile, ma puntualmente il download viene rimosso. Ad oggi (03 Gennaio 2020), è presente un segnalibro per il secondo aggiornamento (versione 1.2) rilasciato il 30 Dicembre 2019, nonchè una versione “crackata” rilasciata il 02 Gennaio 2020, nemmeno questa disponibile a causa di questioni di copyright.

Se questo articolo ti è piaciuto, condividilo su un social:
Se l'articolo ti è piaciuto o ti è stato utile, potresti dedicare un minuto a leggere questa pagina, dove ho elencato alcune cose che potrebbero farmi contento? Grazie :)