Jump to content

Recommended Posts

Yop All :)

 

Un petit thread pour faire connaitre le projet sur lequel je boss depuis quelque temps.

 

Il y'as plus d'un an Eikacy ma questionner sur la difficulté pour créer une puce saturn (surement en ref avec ce thread: http://www.ultimate-consoles.fr/topic/18765-ultimate-modchip-pour-saturn/?do=findComment&comment=233843).

Après quelque recherche je me suis rendu compte qu'un ode pouvais être faisable :)

 

Pour la théorie du fonctionnement d'un modchip saturn.

* La puce sniff les commandes en continue

* Elle attend que la commande Seek to security ring soit envoyer

* Elle coupe l'envoie des données et commandes entre saturn et lecteur

* Elle calcule la réponse à renvoyer à la saturn (le seek n'est jamais fait à la même position)

* La saturn envoie une commande de lecture du secteur de ring en cours

* La puce calcule et renvoie un ring secteur

* La saturn envoie une commande de seek normal

* La puce se désactive et redonne la main au lecteur cd

 

La puce agit donc comme un mini ode ^^ uniquement pour la partie du ring sector.

 

Il y'as quelque semaine j'ai décider de regarder ça plus sérieusement et de sniffer un peu ce qui ce passe: https://github.com/Ced2911/sega_saturn_drive_log

 

J'ai donc commencer à sniffer les commandes/status envoyer entre la saturn et le lecteur cd pour mieux comprendre le fonctionnement du lecteur.

 

J'en suis venu rapidement a la conclusion que:

Les commandes ressemblent à du spi

Mais les données envoyées en série sont assez bizarre...

j'en ai parlé a X-Death qui me dit "hey regarde du coté du mega cd, ils ont surement pas réinventé la roue..." et je tombe sur cette doc: http://gendev.spritesmind.net/page-megasd.html

Et la baam oui il a raison les données sont bien envoyé en i2s :)

Par contre, impossible de retrouver les données sniffer sur mon iso...

Je retrouve bien l'header de chaque secteur mais pas le reste...

Et si sega avait crypté les données sur le bus i2s?

Et oui ils ont bien crypté avec une simple clé xor les données !

Et voilà les données sur le bus sont compréhensible !

 

Maintenant qu'une bonne partie du lecteur cd est compréhensible je me suis attaquer a la suite...

L'ODE :)

Pour l'instant je me sert d'un devkit psoc4 (http://www.cypress.com/documentation/development-kitsboards/psoc-4-cy8ckit-049-4xxx-prototyping-kits)

Une puce qui contient un petit mcu arm qui contient des port logique (UDB). On peut mélanger du code classic et du verilog !!! C'est simplement génial pour le prix ! Par contre l'ide est assez chiant à prendre en main.

 

C'est derniers jour, j'ai réussi à implémenter les commandes suivantes:

LID OPEN

NOP

SEEK

STOP

READ TOC

Voici ce que ça donne sous le player:

wqRVEYq.jpg

 

Maintenant j'attaque la lecture des données binaire ! le gros du taff :)

Je sens que ça va être galère de trouver comment se synchroniser entre les 2 bus :)

 

Bonus photo de l'ode :)

KTb3vsW.jpg

  • Upvote 1

Share this post


Link to post
Share on other sites

C'est trop cool, (même si j'ai pas compris 80% des truc technique ). En tous cas j'ai hâte de voir le résultat final !

 

Courage à toi !

Share this post


Link to post
Share on other sites

×
×
  • Create New...