[TUTORIAL] Desuicidare cartucce CPS3 con SuperBIOS di Darksoft

Area dedicata alle guide tecniche,consigli e suggerimenti.
Bloccato
janniz
Gamer
Gamer
Messaggi: 129
Iscritto il: 07/12/2015, 12:50
Reputation: 114

[TUTORIAL] Desuicidare cartucce CPS3 con SuperBIOS di Darksoft

Messaggio da janniz » 12/02/2016, 16:42

Desuicidare cartucce CPS3 con SuperBIOS di Darksoft
CPS3
Il CP System III o CPS3 è il diretto successore del CPS2 e venne utilizzato da Capcom a partire dal 1996. Nei sistemi CPS3 il gioco risiede inizialmente su uno speciale CD di installazione. Durante la fase di setup il gioco viene copiato, crittografato, su una serie di memorie flash di tipo SIMM. Successivamente, ad ogni accensione, il sistema usa una chiave di decodifica, memorizzata su una cartuccia dedicata per decodificare il gioco stesso e permetterne la sua esecuzione.
Questo meccanismo di protezione purtroppo fallisce allorquando la chiave memorizzata sulla cartuccia venga persa o cancellata, in tal caso si parla di cartucce suicidate, in modo simile a quanto già visto con i precedenti sistemi CPS2 e CPS.
Tanto per peggiorare le cose le cartucce CPS3 non sono soggette a suicidio solamente in caso di scarica della batteria tampone in esse contenuta. La chiave infatti viene deliberatamente cancellata anche nel caso la CPU a bordo rilevi tentativi di manomissione o intrusione nella cartuccia stessa. Questi eventi includono ad esempio reali tentativi di manomissione ma anche fluttuazione nella tensione di alimentazione, elettricità statica, rimozione della cartuccia a sistema acceso, contatto con la parte inferiore del PCB e addirittura c'è chi sostiene che anche la sola connessione/disconnessione del kick harness possa portare alla perdita della preziosa chiave.

Per quanto quindi uno possa fare attenzione per preservare al massimo il proprio sistema di gioco (cambiando ad esempio periodicamente la batteria) può capitare che ci si possa ritrovare con una cartuccia suicidata senza apparente motivo... Fortunatamente negli ultimi tempi è stata scoperta, grazie all'eccellente lavoro di Darksoft e con la collaborazione di Mitsurugi-w e resa pubblica una tipologia di modifica delle cartucce che permette di desuicidare le stesse, permettendoci di restaurare una situazione ormai compromessa, ed ottenere al contempo una alcuni vantaggi quali: la possibilità di scegliere il codice regionale del gioco, la possibilità di caricare tutti i giochi esistenti per questa piattaforma da un unico CD (ovviamente fermo restando l'ovvio vincolo morale per cui uno puo' utilizzare solamente i giochi che effettivamente possiede), effettuare la verifica di funzionamento delle SIMM a bordo, etc.

Un po' di background
Come detto sopra il nocciolo dello schema di protezione risiede nella cartuccia.
Ciascuna cartuccia è composta, oltre che dal circuito di carica per la batteria e da un po' di logica sparsa, da una CPU e da una EPROM contente il codice (BIOS) per inizializzare il sistema, leggere la chiave, etc. (le solite operazioni da BIOS insomma...).
La CPU utilizzata dal sistema è una versione custom del chip SH-2 di Hitachi. Tale CPU, della famiglia SuperH, era già stata utilizzata senza customizzazioni, quindi in versione standard, ad esempio su Sega Saturn, Sega 32 e ST-V. Purtroppo questa versione customizzata si differenzia dalla versione standard potendo eseguire soltanto codice opportunamente crittografato. Ciò rende molto difficile effettuare hacking e customizzazioni sul BIOS originale Capcom, e al contempo ci offre, come avremo modo di vedere più avanti, due scenari possibili per la modifica.

Esistono 4 tipologie di cartucce, rispettivamente identificate dalle lettere 'A', 'B', 'C', 'D'. Benchè funzionalmente equivalenti queste 4 tipologie di cartucce presentano alcune differenze nel layou del PCB, pertanto l'approccio per la modifica risulta essere leggermente diverso a seconda della tipologia di cartuccia "sotto i ferri".
Type A
cps3_carta-front.jpg
cps3_carta-back.jpg

Type B
cps3_cartb-front.png
cps3_cartb-back.png

Type C
N/A

Type D
cps3_cartd-front.jpg
cps3_cartd-back.jpg
Scegliere il tipo di modifica
Per bypassare il meccanismo di protezione crittografica sostanzialmente esistono due metologie:
  • Mantenere il SH2 custom e rimpiazzare l'immagine del BIOS
  • Sostituire il SH2 custom con uno standard (HD6417095) e rimpiazzare l'immagine del BIOS
Nel primo caso la CPU resterà quella customizzata e il bios sarà basato su quello di SF3:SI, gioco per cui a causa di una leggerezza di Capcom la protezione è basata su una chiave vuota(("...their goof was to use a zero key. The vector on the flash points to an empty area of RAM. On CPS3 carts, the SH2 CPU reads 0x00 for empty RAM regions as opposed to the 'usual' 0xFF, so it thinks it sees a correct key, but it's really just empty RAM." [http://forum.arcadeotaku.com/viewtopic. ... 32#p285155])), e quindi i giochi dovranno essere stati decodificati e ricodificati da apposite tabelle di decodifica (una per ciascun gioco, tranne ovviamente SF3: 2nd Impact), nel secondo caso invece la CPU custom non necessiterà di tavole di decodifica.
Si, direte voi, tutto molto bello... ma all'atto pratico questo cosa significa? All'atto pratico ad oggi non sono state ravvisate differenze tra giochi ricodificati tramite tavole (custom SH) o direttamente (standard SH). Tuttavia esiste una probabilità, seppur minima, che una qualche tabella di decodifica sia stata calcolata erroneamente da Darksoft, e quindi il gioco possa presentare dei glitch, blocchi o comunque anomalie. Questo potenziale problema invece non si presenta se si procede con la sostituzione del chip SH2; tale procedura permette di poter effettuare modifiche più flessibili sul codice del BIOS e consente ad esempio anche l'esecuzioni di una versione customizzata (hacked) di "SF3: 3rd Strike" ribattezzata "SF3: 4th Strike".

Ready??? go!
Ora che abbiamo in che parco andremo a giocare, possiamo entrare un po' più nel dettaglio.

Prima di tutto dobbiamo decidere quale tipologia di modifica vogliamo effettuare. Visto che, ad oggi, la modifica che mantiene il custom SH2 non ha rilevato problemi di sorta, e considerato che rimpiazzare il chip SH2 sarebbe un lavoro decisamente rischioso, trattandosi di una CPU con una discretamente elevata densita di PIN, ho deciso di procedere con il mantenimento del custom SH2 e con la sola riprogrammazione dell'immagine del BIOS.
Prima di procedere ulteriormente dobbiamo anche assicurarci di avere una quantità di SIMM adeguata per far funzionare il nuovo BIOS modificato, vale a dire 4 moduli da 128Mb e due da 64Mb (cioè la stessa quantità di memoria che servirebbe per utilizzare SF3: Third strike).

Le immagini del BIOS e la copia dell'UniCD (necessarie per caricare il gioco desiderato((Si ricorda che si possono solo utilizzare giochi che si possiedono effettivamente.))) possono essere scaricate qui:
BIOS + UniCD

Prestare particolare attenzione alla coppia di file da scaricare:
  • UniCD-CPS3 for custom + SuperBIOS custom((Entrambi i BIOS custom e standard sono contenuti all'interno dello stesso archivio SuperBIOS for custom and standard SH2)) in caso di mantenimento della CPU SH2
  • UniCD-CPS3 for standard((Eventualmente la versione con SF3:4S)) + SuperBIOS standard((Entrambi i BIOS custom e standard sono contenuti all'interno dello stesso archivio SuperBIOS for custom and standard SH2)) in caso di sostituzione della CPU SH2
Arrivati a questo punto, la seconda cosa da fare è scoprire che di che tipo di cartuccia disponiamo. Per fare questo è necessario aprire la cartuccia (rimuovendo le due viti di chiusura del guscio di plastica).
cps3_openedcart.jpg
Solitamente il tipo di cartuccia è indicato da un'etichetta applicata sulla CPU SH2. Nel caso l'etichetta non fosse presente la tipologia è facilmente desumibile guardando il retro del PCB. Se c'è una piazzola atta ad ospitare una EEPROM 28F400 (eventualmente coperta dal sub-PCB per la ricarica della batteria) allora siamo in presenza di un tipo A o B. In caso contrario ci troveremo di fronte a un tipo C o D.
cps3_cartb-backdetail.png
...continua nel prossimo post a causa del limite di 10 attachment del forum...
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Ultima modifica di janniz il 12/02/2016, 16:43, modificato 1 volta in totale.


janniz
Gamer
Gamer
Messaggi: 129
Iscritto il: 07/12/2015, 12:50
Reputation: 114

Re: [TUTORIAL] Desuicidare cartucce CPS3 con SuperBIOS di Darksoft

Messaggio da janniz » 12/02/2016, 16:42

...segue dal post precedente...

SuperBIOS
Le cartucce di tipo A e B sono disegnate per essere equipaggiate con EEPROM di tipo 29F400, del tipo di quelle già presenti sul PCB, oppure con EEPROM di tipo 28F400, più facili da saldare avendo una densità di pin nettamente inferiore, nella parte posteriore del PCB.

Type A/B e BIOS su 28F400
Nel caso si scelga di procedere con le 28F400 si renderà necessario:
Rimuovere la EEPROM 29F400@U2 con il BIOS originale
cps3_biosrimosso.jpg
Successivamente, sul retro del PCB, bisognerà spostare la sub-pcb del circuito di ricarica, che solitamente è fissata con del nastro adesivo sopra la piazzola U5
cps3_removesubpcb.png
Scrivere il bios scaricato precedentemente su una EEPROM 28F400 (SOP44) precedentemente svuotata (blank + write + verify)
cps3_loadcustombios.png
Quindi si dovrà andare a saldare la nuova EEPROM 28F400, riposizionando anche il circuito per la ricarica della batteria
cps3_28f400soldered.jpg
Effettuare la sostituzione del BIOS utilizzando le 28F400 è molto più agevole in fase di saldatura dell'integrato, devo pero' segnalare che le piazzole @U5 sul PCB sono particolarmente fragili e tendono a rovinarsi facilmente nel caso in cui tentaste di rimuovere la EPROM (magari per riposizionarla perché mal disposta...).

Type A/B/C/D e BIOS su 29F400
Le cartucce di tipo C e D non ci pongono invece il dubbio su quale EEPROM si preferisca utilizzare. Esse infatti accettano solo memorie di tipo 29F, e quindi si deve necessariamente procedere con queste. Il procedimento seguente ovviamente è applicabile anche a cartucce di tipo A o B nel caso si decida di riutilizzare la EEPROM 29F400.

Questi i passi da seguire se si vuole adottare questa soluzione:
Come nel caso precedente si rende necessario rimuovere la EEPROM 29F400
cps3_biosrimosso.jpg
Cancellare la EEPROM 29F400 appena rimossa e riscrivere il bios scaricato precedentemente (blank + write + verify)
cps3_loadcustombios_29f.png
Risaldare la EEPROM 29F400@U2
cps3_29f400soldered.jpg

Riassumendo
Se si vuole procedere con le 28F (applicabile solo per cartucce A e B) i passi necessari da seguire saranno quindi:
  • Rimovere dal PCB l'integrato 29F400@U2
  • Spostare il sub-pcb presente sul retro del PCB in posizione consona
  • Scrivere il bios scaricato precedentemente su una EEPROM 28F400 precedentemente svuotata (blank + write + verify)
  • Saldare la EEPROM 28F400@U5
Parimenti per le EEPROM 29F:
  • Rimovere dal PCB l'integrato 29F400@U2
  • Cancellare la EEPROM 29F400 appena rimossa e riscrivere il bios scaricato precedentemente (blank + write + verify)
  • Risaldare la EEPROM 29F400@U2
Test
Provando ora ad inserire la cartuccia nella nostra base CPS3 dovremmo ottenere una schermata come questa:
cps3_darksoftbios.jpg
Nel caso invece la scheda non dovesse avviarsi consiglio di ricontrollare le saldature della EEPROM perché molto probabilmente il problema è causato da un falso contatto o da una saldatura mal fatta.

UniCD
E giungiamo quindi alla terza cosa da fare:
Masterizzare l'immagine dell'UniCD e provare il tutto :)
cps3_menu.jpg
cps3_rewrite.jpg
cps3_sf3ng.jpg
Conclusione
Le funzionalità offerte dal nuovo BIOS sono molteplici, per una breve visualizzazione delle stesse potete visualizzare il video di MitsurugiW su youtube:


Appendice
Elenco dei giochi CPS3

Codice: Seleziona tutto

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Data di rilascio  | Sviluppatore  | Titolo ver. inglese                                  | Titolo ver. giapponese                                              | Tipologia    |
|       1996-11-21  |       Capcom  | Red Earth                                            | Warzard (ウォーザード)                                                   | Picchiaduro  |
|       1997-02-04  |       Capcom  | Street Fighter III: New Generation                   | Street Fighter III (ストリートファイターIII)                                | Picchiaduro  |
|       1997-09-30  |       Capcom  | Street Fighter III 2nd Impact: Giant Attack          | Street Fighter III 2nd Impact (ストリートファイターIII 2nd Impact)          | Picchiaduro  |
|       1998-12-02  |       Capcom  | JoJo's Venture                                       | JoJo no Kimyō na Bōken (ジョジョの奇妙な冒険)                             | Picchiaduro  |
|       1999-05-12  |       Capcom  | Street Fighter III 3rd Strike: Fight for the Future  | Street Fighter III 3rd Strike (ストリートファイターIII 3rd Strike)          | Picchiaduro  |
|       1999-09-13  |       Capcom  | JoJo's Bizarre Adventure                             | JoJo no Kimyō na Bōken Mirai e no Isan (ジョジョの奇妙な冒険 未来への遺産)   | Picchiaduro  |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  • Red Earth \ Warzard (ウォーザード)
  • Street Fighter III: New Generation \ Street Fighter III (ストリートファイターIII)
  • Street Fighter III 2nd Impact: Giant Attack \ Street Fighter III 2nd Impact (ストリートファイターIII 2nd Impact)
  • JoJo's Venture \ JoJo no Kimyō na Bōken (ジョジョの奇妙な冒険)
  • Street Fighter III 3rd Strike: Fight for the Future \ Street Fighter III 3rd Strike (ストリートファイターIII 3rd Strike)
  • JoJo's Bizarre Adventure \ JoJo no Kimyō na Bōken Mirai e no Isan (ジョジョの奇妙な冒険 未来への遺産)
Fonti
http://wiki.arcadeotaku.com/w/CPS3
http://64darksoft.blogspot.it/2013/08/o ... -cdto.html
https://it.wikipedia.org/wiki/SuperH
http://www.arcade-projects.com/forums/i ... -releases/
http://forum.arcadeotaku.com/viewtopic. ... 32#p285155
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Ultima modifica di janniz il 12/02/2016, 16:53, modificato 4 volte in totale.


janniz
Gamer
Gamer
Messaggi: 129
Iscritto il: 07/12/2015, 12:50
Reputation: 114

Re: [TUTORIAL] Desuicidare cartucce CPS3 con SuperBIOS di Darksoft

Messaggio da janniz » 12/02/2016, 16:43

Inutile... si puo' cancellare :D


Avatar utente
bisus
Arcade Maniac
Arcade Maniac
Messaggi: 2922
Iscritto il: 03/11/2015, 2:16
Reputation: 486
Località: Firenze
Contatta:

Re: [TUTORIAL] Desuicidare cartucce CPS3 con SuperBIOS di Darksoft

Messaggio da bisus » 12/02/2016, 17:32

gran bella guida, complimenti
Segnalazioni problemi Forum
Non esitate a contattarmi in privato se doveste avere problemi sul forum http://www.arcademania.eu
grazie


Avatar utente
giuppo
Site Admin
Site Admin
Messaggi: 3314
Iscritto il: 03/11/2015, 7:46
Medaglie: 27
Reputation: 529
Località: San Salvo
Nazione: Italia
:
Medaglia d'oro Medaglia d'argento Medaglia di bronzo Medaglia di legno I - Team Battle Maestro Yoda

Re: [TUTORIAL] Desuicidare cartucce CPS3 con SuperBIOS di Darksoft

Messaggio da giuppo » 12/02/2016, 19:13

Dalla serie, non puoi sbagliare [sarcastic24.gif]
Arcademania the forum around you


Avatar utente
Zak0077
Extreme Arcader
Extreme Arcader
Messaggi: 1583
Iscritto il: 03/11/2015, 9:16
Reputation: 215
Località: Viterbo

Re: [TUTORIAL] Desuicidare cartucce CPS3 con SuperBIOS di Darksoft

Messaggio da Zak0077 » 12/02/2016, 20:40

Mostruosooooo
O.o
Complimenti e grazie
Bacheca Boys
[coolgun.gif] [coolgun.gif]


hishaq
Gamer
Gamer
Messaggi: 68
Iscritto il: 24/12/2015, 8:41
Reputation: 13

Re: [TUTORIAL] Desuicidare cartucce CPS3 con SuperBIOS di Darksoft

Messaggio da hishaq » 12/02/2016, 21:02

Complimenti bella guida!!!magari avere le tue conoscenze con le pcb,l'ho sempre desiderato!!!

The Future Is Now


Zuane
Gamer
Gamer
Messaggi: 41
Iscritto il: 10/12/2015, 15:59
Reputation: 6

Re: [TUTORIAL] Desuicidare cartucce CPS3 con SuperBIOS di Darksoft

Messaggio da Zuane » 12/02/2016, 21:55

Grazie Janniz

Ho proprio una cpsIII su cui fare questo lavoretto^^


Avatar utente
biasini
Extreme Arcader
Extreme Arcader
Messaggi: 2132
Iscritto il: 03/11/2015, 17:38
Reputation: 370
Località: Roma

Re: [TUTORIAL] Desuicidare cartucce CPS3 con SuperBIOS di Darksoft

Messaggio da biasini » 13/02/2016, 13:38

Complimenti Jan, sempre post molto tecnici e fatti con cura!


janniz
Gamer
Gamer
Messaggi: 129
Iscritto il: 07/12/2015, 12:50
Reputation: 114

Re: [TUTORIAL] Desuicidare cartucce CPS3 con SuperBIOS di Darksoft

Messaggio da janniz » 13/02/2016, 23:00

Grazie mille a tutti...
Io sono un mero redattore... il lavorone che c'è dietro questo BIOS, da parte di Darksoft (con la collaborazione di MitsurugiW) che permette di recuperare cartucce che altrimenti sarebbero dei meri fermacarte è una cosa veramente impressionante!
Non ne ho sentito parlare molto da queste parti e quindi ho pensato che una guida potesse essere utile... :)


Bloccato

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti