Costruire un Commodore 64GS
12 Novembre 2022Riparazione drive 1571
29 Novembre 2022Se fin da piccoli uno dei vostri passatempi preferiti era quello di aprire i giocattoli per vedere come erano fatti dentro allora questa rubrica potrebbe essere di vostro gradimento !
Chi scrive è laureto in Medicina e Chirurgia ma ha da sempre il pallino dell’elettronica e delle modifiche in testa.
Ricordo ancora quando, armato di seghetto, limai gli angoli dello slot per le cartucce del Mega Drive per poter inserire anche le cartucce provenienti dal sol levante e poco dopo letteralmente distrussi l’oramai abbandonato Master System per cercare di capire a che cosa servisse il connettore a pettine laterale…
La curiosità per queste cose non è mai passata e nel tempo è diventata passione per il funzionamento dei sistemi di protezione implementati nelle consoles uscite in commercio mentre ero ancora ragazzino, soprattutto di quelle che non ero mai riuscito ad avere.
Questi sistemi, hardware e/o software, si sono sviluppati partendo da semplici implementazioni fino ad arrivare a complessi algoritmi gestiti da hardware dedicato ed elaborati da altrettanti marchingegni.
IL NES
Iniziamo con la prima console prodotta da Nintendo, il Nintendo Entertainment System
(codice HVC-001 dove le lettere stanno per Home Video Computer).
La sua protezione prende il nome di CIC e rappresenta un chip il cui acronimo significa Checking Integrated Circuit;
eccolo evidenziato in rosso:
Esso rappresenta una primitiva forma di protezione delle cartucce per le console. Lo scopo per cui venne prodotto riguardava la possibilità da parte di Nintendo di controllare globalmente i giochi rilasciati per la sua piattaforma, evitando di fatto l’avvio di cartucce “pirata” potendo inoltre escludere dall’esecuzione giochi provenienti da regioni differenti.
Il NES fu prodotto nel 1983 ma il CIC venne introdotto da Nintendo a protezione delle sue proprietà intellettuali quando la compagnia decise di lanciare la console nei mercati esteri quindi a partire dal 1985 con tutta probabilità a causa dell’esperienza avuta da Atari con la propria 2600 VCS la quale ebbe un crollo di vendite anche a causa dello sviluppo di titoli di scarso valore da parte di terzi; questo sistema di protezione dunque non si trova nelle consoles/cartucce giapponesi e nemmeno nel NES 2 o “top-loading model” (NES-101), prodotto tra il 1993 ed il 1995.
Il chip rappresenta dunque una ROM, quindi non è possibile riscriverla, e si trova all’interno della console, che fa da “blocco”, abbinata ad un corrispettivo chip, che fa da “key”, presente nelle cartucce NES che non siano quelle giapponesi:
Questo chip, prodotto dalla Sharp, può essere identificato con i seguenti codici scritti sul suo envelope:
3193 – 3193A – 3195 -3195A – 3196 – 3196A – 3197 – 3197A – 6113 – 6113A – 6113B1
con queste caratteristiche (non ufficiali ma elaborate da chi lo ha studiato negli anni):
3193 – USA/Canada
6113 – simile al precedente ma con layout leggermente più piccolo con alcune differenze nell’inizializzazione.
3194 – sconosciuto, forse Koreano
3195 – PAL B (Francia, Spagna, Germania, Svezia, ecc…)
3196 – Asia / HK
3197 – PAL A (Gran Bretagna, Italia e Australia)
3198 – Famicombox lockout chip (trovato sia nelle cartucceche nel “Box”)
3199 – Famicombox coin timer (trovato solo nel “Box”)
con contenuto differente a seconda dunque della regione in
cui la console ed i giochi sarebbero stati venduti.
COME FUNZIONA
Fino al 2010 nessuno era stato in grado di documentarne pubblicamente le funzioni finchè tale Segher, membro del allora noto Team Twiizers (attualmente noto come team fail0verfow), documentò personalmente le sue caratteristiche.
Come abbiamo già detto il sistema è costituito da 2 parti:
– un microcontrollore Sharp SM590 4bit (nella console) che controlla la cartuccia inserita e fa da “lock”
– un chip corrispondente nella cartuccia in grado di inviare al chip nella console un codice che fa da “key”;
se la key non è valida il sistema si resetta.
Il pinout del chip è questo:
Il software che gira nel chip viene chiamato 10NES (quindi il CIC rappresenta l’hardware mentre il 10NES rappresenta il software che gira nel CIC).
Il PIN-lock è il PIN4; il PIN3 rappresenta invece un “seed” ed è collegato ad un condensatore il quale non impiega sempre
lo stesso per scaricarsi; il CIC registra questo tempo e lo utilizza come generatore pseudocasuale per decidere quali dei 16 possibili “streams” utilizzare e lo comunica al key chip nella cartuccia.
Il PIN10 del chip lock (nella console) è collegato al PIN7 del chip key (nella cartuccia) ed è in grado di resettare la console.
I PINs 11 e 12 (RESET_SPEED) sono utilizzati per decidere a quale velocità “blinkare” la reset line (circa 0.4s, 0.6s, 0.8s, 1.0s
ogni on/off) e quindi riavviare la console.
COME BYPASSARLO
Nel tempo si sono susseguiti diversi sistemi per avere ragione di questa protezione:
1 – molti sviluppatori di terze parti scelsero di inviare un rapido impulso elettrico (chiamato in gergo “voltage spike”) per
metterlo temporaneamente fuori uso e permettere quindi l’esecuzione del programma non licenziato da Nintendo. Nintendo corse ai ripari contro questa “tecnica” producendo una revisione hardware del NES immune allo specifico “attacco” (in particolare quelle con la scritta “NES-CPU-11” sul PCB)
CURISITA’: il caso volle che le revisioni più datate (scritta “NES-CPU-04” sul PCB) fossero invece sostanzialmente
incapaci di supportare la protezione quindi, se dovete comprare un NES usato, cercate di capire la revision hardware e cercatene una “vecchia”.
2 – alcuni sviluppatori (come la HES) svilupparono invece un “dongle” capace di connettersi ad una cartuccia autentica per
bypassare tramite essa il controllo:
3 – Una azienda affiliata alla Atari, chiamata Tengen, riuscì ad ottenere in modo “abusivo” il brevetto dal United States Patent and Trademark sostenendo di doverlo avere per difendersi in una causa legale; tale brevetto fu utilizzato per produrre un chip clone che venne chiamato Rabbit (per tutta la bagarre legale potete leggere questo interessante articolo).
4 – Una piccola azienda chiamata RetroZone produsse, dopo lo scadere del brevetto del 10NES che terminò il 24 Gennaio 2006, un proprio chip basandosi sul reverse engineering del precedente Rabbit e lo chiamò CIClone:
5 – Il chip è stato successivamente emulato in microcontrollori come l’ATtiny13A (nella foto i pins del microcontrollore da
collegare ai rispettivi pins sulla cartuccia NES):
6 – Dato che in alcuni casi il sistema di protezione non riusciva ad autenticare nemmeno le cartucce ufficiali (ad esempio se i contatti della cartuccia non erano puliti a dovere), una hardmod per disabilitarlo è quella di sollevare o tagliare il PIN4 del CIC:
oppure collegare il PIN4 del chip alla massa (nella foto PIN14); così facendo il chip funziona automaticamente sia da lock che da key:
PROTEZIONE FISICA: I PINS
Per evitare l’utilizzo delle cartucce giapponesi nelle consoles di altre regioni e viceversa la console giapponese (Famicom) aveva cartucce più piccole a 60 PINs mentre quelle degli altri paesi avevano 72 PINs:
di conseguenza non era fisicamente possibile scambiarle tra consoles di regioni differenti.
Ovviamente in poco tempo furono creati degli adattatori per entrambe le situazioni per superare questo “blocco” regionale con
incluso il bypass del CIC tramite integrato CIClone-style oppure un chip Sharp originale prelevato da una cartuccia originale:
Siamo dunque agli albori delle tecnologie di protezione ma abbiamo visto come l’ingegno non mancava sia da parte dei produttori che da parte di chi non voleva avere “restrizioni” ! ^_^