Paddle per C64 e non solo
28 Marzo 2023Costruiamo un videogioco
3 Maggio 2023Nell’articolo precedente abbiamo parlato delle protezioni inserite da Nintendo nella propria console “da esportazione” NES; oggi vediamo invece come si comporta la periferica aggiuntiva FDS !
Il Famicom Disk System (product code FMC-001) fu rilasciato da Nintendo nel Febbraio del 1986 come add-on per il Famicom (la versione Giapponese del NES per chi non lo ricordasse) e permetteva la lettura dei giochi, oltre che da cartuccia, anche da floppy disks. Nell’immagine accanto lo potete vedere adagiato al di sotto del Famicom con inserita la sua cartuccia di espansione (nera).
Qui sotto eccolo nella versione “integrata” (Famicom+FDS) chiamataTwin Famicom e prodotta da Sharp.
Questa periferica ebbe in realtà un precursore, il Nintendo Data Recorder, creato nel 1984 per il mercato Jappo, ma era privo di protezioni.
Veniva utilizzato per memorizzare i programmi scritti per l’applicazione BASIC oppure per salvare i livelli creati per una manciata di titoli che lo supportavano (Castle Excellent, Excitebike, Mach Rider e Wrecking Crew).
Lo scopo del FDS invece, oltre la possibilità di salvare i progressi fatti (uno dei primissimi titoli rilasciati fu infatti The Legend of Zelda !), era quello di incrementare lo spazio per produrre e distribuire giochi, spazio che all’epoca risultava ancora limitato dalle poco capienti ROM delle cartucce! Insieme al drive veniva fornita una cartuccia di espansione contenente dei chips RAM ed un chip ASIC con controller DRAM, hardware IRQ, un hardware per la generazione dei suoni, una interfaccia seriale per il drive ed una porta parallela.
Per ottenere ufficialmente i giochi caricati su dischetto ci si doveva recare presso dei “kiosk” che avevano uno stile simile alle vending machines dei giorni nostri, come potete vedere qui a lato.
Se si aveva già un disco (vuoto o già scritto) questo poteva essere riutilizzato per 500 yen, se si desiderava anche un disco vuoto se ne dovevano aggiungere altri 2000.
Le protezioni del FDS
FORMATO
L’hardware della macchina dispone di un floppy drive 2,8″ x 3″ e 64Kb di spazio di archiviazione per lato, quindi 128Kb totali; il formato di memorizzazione su disco è quello dei QuickDisks (lo stesso formato dell’MSX) utilizzando però un case plastico 3″x4″ anzichè lo standard 3″x3″. Non essendo un qualcosa di “standard” la copia era già resa complicata: andava infatti trovato un sistema per utilizzare dischi più “comuni” come i “normali” QuickDisks.
Inoltre la scritta “NINTENDO”, presenta sulla parte posteriore del floppy, era scavata ed il lettore non accettava dischi che non avessero tale “engraving”.
Ma gli hackers non si fecero fermare da cosi poco, per questo, a partire da un QuickDisk standard che potete vedere qui a destra…
…furono prodotti dei sistemi per adattare tale disco al formato FDS che consistevano nel tagliare via le “alette” dei dischi standard, applicare una “prolunga” posteriore ed attaccare un pezzo per “simulare” sia la lunghezza corretta che la presenza dell’incisura del logo NINTENDO (in particolare il controllo fisico avveniva sulle lettere I ed N della scritta):
CONTROLLI SOFTWARE
Esistono diversi controlli effettuati dalla console:
– il sistema cerca la stringa di 14 bytes
“*NINTENDO-HVC*” all’offset 0x01 del disco e se non la trova restituisce un errore;
– 224 bytes al indirizzo $2800-$28DF della PPU devono coincidere con quelli del BIOS memorizzati all’indirizzo $ED37;
– il primo file di un disco si chiama KYODAKU- (che significa “approvato”) e deve essere presente altrimenti appare un errore;
– alcuni sviluppatori potevano implementare controlli su files nascosti che il bios non leggeva i quali venivano comunque “cercati” da gioco e se non trovati restituivano un errore.
Questi controlli sarebbero potuti essere sconfitti riuscendo ad ottenere una copia 1:1 del floppy originale ma… come fare visto che alcuni controller del drive, di fabbrica, sono stati costruiti aggiungendo una logica dedicata per non permettere questa funzione ? La risposta è arrivata in breve tempo: utilizzando una hardmod sul FDS che permettese la lettura/scrittura completa bypassando il controller stesso della scheda (è chiamata “FDS write mod”) ed utilizzando un software dedicato per effettuare il dump:
Riassumendo ai minimi termini: esistono sostanzialmente 2 versioni del controller, il FDP3206P ed il FD7201P; nella 3206P, se viene inviato il comando “scrivi un file”, il sistema funziona ma se viene inviato il comando “scrivi tutto il disco” (con il quale possono essere copiati tutti i settori ed eventuali files nascosti) il sistema disabilita la scrittura della testina che continua a “non scrivere” in silenzio: quando avviene la verifica della scrittura il sistema riporta ovviamente un errore perchè nulla è stato scritto (“Error 26: Could not write to disk card”). La modifica permette di bypassare questo “limite” imposto di fabbrica. Nel 2021 è uscita una modifica priva di fili (chiamata “V4”) dotata di un solo chip che va posizionato al di sopra del FDP3206 originale e vanno saldati con esso 8 pin:
CONTROLLI HARDWARE
Successivamente Nintendo introdusse un ulteriore livello di controllo che esclude comunque la scrittura (anche se il controller è un FD720P !) a partire da alcune revisioni hardware delle power board; tale componente di sistema può avere 5 possibili revisioni, ognuna identificabile da una specifica stringa scritta sul PCB che potete vedere cerchiata in rosso nella foto.
FMD-PWER-0X dove al posto della X può esserci un numero compreso tra 1 e 5; la revisione 1 è sprovvista di protezione, la 2 a volte può averla a volte no, la 3 è probabilmente priva di protezione mentre la 4 e la 5 implementano sicuramente la protezione.
La revisione 02 con protezione (in foto) si identifica facilmente perché ha una schedina aggiuntiva che va rimossa (e va risaldato il connettore) per farla tornare come una rev.02 non protetta:
Le rev. 04 e 05 hanno invece la parte aggiuntiva integrata nel PCB rendendo dunque necessarie alcune modifiche di taglio pista, rimozione di alcuni componenti e ponticellature per averne ragione.
Rev.04
Rimuovoere/dissaldare il componente JP14: questo disabilita totalmente la protezione; va però creato un ponticello tra i punti A e B della scheda per ripristinare la funzione di scrittura.
Rev.05
Eliminare/disconnettere i jumper evidenziati nell’immagine di sinistra (quello più in alto è nascosto tra i 2 componenti di plastica neri) – i corrispettivi punti nell’altra faccia del PCB sono evidenziati in rosso con l’etichetta “Desolder and remove”; vanno poi tagliate le 2 piccole piste indicate dai 2 piccoli “trattini rossi” nell’immagine di destra ed infine vanno collegati 2 fili dove indicato dalle linee blu per ripristinare la funzione di scrittura.
Per quanto riguarda invece i Twin Famicom alcuni hanno una power board priva dei chip che determinano la protezione quindi non vanno modificati (va solo controllata la versione del chip del lettore floppy) mentre per altri modelli, dove la power board ha 2 chips, si devono collegare 2 fili tra loro:
Potete capire come fare all’interno di questo video (più o meno verso il minuto 14).
COPIERS
Esistono inoltre hardwares dedicati allo scopo che funzionano utilizzando 2 FDS collegati insieme come il Dubbing Boy II:
oppure il Famicom Disk Backup Unit:
anche essi con il relativo software per la copia (come nell’immagine a lato) con i quali è possibile utilizzare un FDS per leggere ed uno per scrivere i dati su un disco di destinazione.
Esiste anche un software (Copy Master versione NTSC) che funziona senza dover effettuare queste mod ma non è comunque in grado di produrre una copia perfetta in quanto non è capace di scrivere *NINTENDO-HVC* o eventuali files nascosti quindi, non copiando perfettamente 1:1, potrebbe produrre copie non funzionanti.
Potete dunque notare come si inizi a configurare la sempreverde rincorsa gatto-topo tra meccanismi di protezione fisica (hardware proprietario con anatomie specifiche) e digitale (controlli) VS i corrispettivi sistemi per superarli ! Vediamo dunque come si stiano ponendo le basi per quel magico mondo che ha tenuto e sta tuttora tenendo banco tra gli appassionati di modifiche in tutto il mondo! Li vogliamo appellare hackers ? Li vogliamo chiamare devs ? Qualunque nome si scelga una cosa è sicura: finchè ci sarà una protezione si troverà sempre qualcuno con la voglia di provare a superarla !