1

Bonsoir,
Je souhaite partagé ici un projet que j'ai commencé il y quelques mois, le but était de réalisé un outil capable de lire/écrire dans les cartouches WonderSwan bandana

J'ai voulu utilisé mon Raspberry Pi car il partage le même tension que la WonderSwan : (3.3V) et je le trouve très pratique pour développer : Port GPIO ,SPI , I²C , pilotage à distance avec Internet etc..
A partir du modèle 2,son port GPIO possède 28 IO ce qui est suffit pour beaucoup de petits projet mais malheureusement pas pour pouvoir adresser tout le port de la WonderSwan.
Pour résoudre cette contrainte j'ai créer avec Kicad un petit PCB avec un système simple de multiplexage.

m1YTmnm.png

Le circuit tourne avec un CPLD ( rescapé d'un ancien projet ) qui active les différentes adresses de la cartouche en fonction de l'état des lignes de DATA du Raspberry ( partager avec le connecteur cartouche ) et de 3 IO.
Cela me permet donc de piloter 20 adresses et d'utiliser le reste des IO du Raspberry pour les Entrées/Sorties restantes du port cartouche.
Le reste du circuit est le connecteur IDE , le connecteur de programmation du CPLD et un port cartouche récupéré sur une WonderSwan HS.

Voici le résultat soudé et monter :

5429QRq.jpg

lTRibvq.jpg

Côté Raspberry j'ai coder un petit programme console en C en utilisant la librairie WiringPi ( intégré à Raspibian ).
Il permet de lire les cartouches équiper du Bandai 2001 et de récupérer le contenu de la ROM mais aussi de lire ou écrire les sauvegardes de type SRAM.

GfhMKIL.jpg

ED4XFYR.jpg

La prochaine étape va être de pouvoir reprogrammer un Cartmod afin de pouvoir tester du code sur la console.
Pour ceux que ça intéresse , tout le projet est OpenSource sur mon Github https://github.com/X-death25/Pi_Projects/tree/master/WS_Dumper
Par contre je ne suis qu'un amateur, le code est surement loin d'être un exemple attention couic2
Pour les PCB restant ( 3 ) je vends au prix des frais d'envoi.

Un merci au passage à

Zerosquare pour son document Excel Cartouches_WS http://www.mirari.fr/2yuN?_language=fr qui détaille toutes les IO de la Wonderswan chinois
Godzil pour la Wondermadeleine https://github.com/986-Studio/WonderMadeleine qui décrit le fonctionnement du Bandai et de son système de communication. chinois
@_sansors_ ‏ Pour la soudure du PCB chinois

2

Bravo pour ce projet top
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

3

Godzil a été invité sur ce sujet.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

4

Super projet !
avatar
@originalfei
Homebrews Connexion
In pixels we trust.
ORE WO DARE DA TO OMOTTE YAGARU !

5

UP.
J'ai réussi à bypasser la protection du Bandai 2003 smile

Wiokpi9.png

Je vais pouvoir attaquer les choses sérieuses tongue

6

top
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

7

king
avatar
@originalfei
Homebrews Connexion
In pixels we trust.
ORE WO DARE DA TO OMOTTE YAGARU !

8

Bonsoir,
Petite update sur ce topic.
Dans le but de pouvoir tester du code et en attendant la cartouche Flash, j'ai souhaité réalisé un cartmod WonderSwan reprogrammable.

La mémoire sur certain PCB est en SOP44 ce qui corresponds quasi-parfaitement à une MX29L3211 ( EEPROM reprogrammable de 4Mo en 16 bits).
Afin de permettre sa reprogrammation il faut que la pin /WE soit pilotable , ou figé à VCC pour la lecture.
Voici une photo du cartmod avec un interrupteur pour la bascule.

ImgurImgur


Pour la reprogrammation j'ai conçu un seconds adaptateur qui vient s'enficher sur le port HE10M40 de mon dumper.
Celui-ci fonctionne avec un STM32F103 , j'utilise cette petite board low cost de Robotdyn prête à l'emploi à prix très abordable et avec port micro USB ( donc plus besoin d'un Raspberry Pi tout est pilotable en USB)

httprobotdyn.compubmedia0g-00005692stm32f103c8t6-stm32minisystemphotophotoangle0g-00005692stm32f103c8t6-stm32minisystemsoldered.jpg

L'adaptateur sert à faire la correspondance entre les I/O de la board Robotdyn et celle du port GPIO Raspberry PI 2.

Voici une photo du montage avec la cartouche ( et quelques redirections à la main car tout n'était pas juste et pour plus de simplicité /WE est attaqué directement pour le moment )

ImgurImgur


Pour le reste c'est deux codes en C
-le premier côté PC qui envoie les ordres au STM32 avec LibUSB
-Le seconds côté STM32 avec la librairie libopencm3 qui reçoit les ordres et renvoie le paquet correspondants ( ex : READ ROM , READ SRAM , WRITE FLASH).
Je ne suis pas parti de zéro j'avais déjà +- 90% du code qui provient de mon dumper Megadrive qui utilise la même board.
d'ailleurs tout mes codes qui utilisent cette board sont public ( la dernière version qui gère la Flash n'est pas encore en ligne).
X-death25/STM32_ProjectsGitHubUltimate-Consoles projects for STM32F103C8. Contribute to X-death25/STM32_Projects development by creating an account on GitHub.


Voici une petite photo du soft pour info ( la dernière version à juste des sous menu supplémentaire pour ID , read , write et erase Flash ) :

ImgurImgur


Le plus dur à été le support des algos de la puce MX car enplus d'avoir des timings assez chiants , l'écriture fonctionne par page de 256 bytes/128 words.
j'ai donc du pas mal adapté le code côté PC pour préparer les paquets.
La vitesse d'écriture est de 70s pour programmer les 4Mo en USB, ce qui sans être ouf me suffit.

Une fois la mémoire ré-écrite c'est gagné , il reste plus qu'a replacé l'interrupteur en position "lecture" et profité un peu de la ludothèque de la WonderSwan arme

Voici quelques photos sur ma Crystal ( pas simple à prendre à cause des reflets sur l'écran couic) et la N&B

--Crystal--

https://i.imgur.com/TRvQqpV

https://imgur.com/a/M6HRSEc

--N&B--

https://imgur.com/a/nR7pfOK

et mes 2 démos :

https://imgur.com/a/Azk70Mu

9

Super tout ça grin
avatar
@originalfei
Homebrews Connexion
In pixels we trust.
ORE WO DARE DA TO OMOTTE YAGARU !

10

Merci.
Plus qu a attendre la release de la backdoor on verra si ya moyen de faire quelque chose 😋

11

Backdoor?

Le fait de booter sans lecture "protections"?

Oublie ca ce n'est vraiment pas fait pour pour etre "pain free" il faut faire une modif sur la console pour etre utilisable et ca peux potentiellement faire foirer certains jeux.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

12

Ok merci pour le retour.

13

Pour info le Sanni cart reader supporte maintenant la WonderSwan :

splash5/cartreaderGitHubA shield for the Arduino Mega that can back up video game cartridges. - splash5/cartreader


il gère la lecture des jeux 2001 et 2003 ( intègre la fameuse routine de déblocage).
Il semble aussi supporter la réécriture des sauvegardes SRAM et EEPROM + reflash du WonderWitch.

C'est cool de plus en plus de monde s'intéresse à la WonderSwan smile

14

Ceci dit ca ne change pas le probleme principal: Pas de connecteur cartouche sans vampiriser une console..
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.