Gamoover

Si vous êtes nouveau, n'hésitez pas à vous présenter ici et à poser toutes vos questions, meme si elles vous paraissent ridicules... Gamoover regroupe une communauté de passionnés prêts à vous aider ! Bienvenue à vous ;)

[WIP-terminé] Panel Arcade Project Diva sur PS4

Démarré par gojirien, Mardi 14 Avril 2020, 15:17:56 PM

gojirien

Si cela peut intéresser des personnes, voici comment j'ai fait, en détail, pour adapter un panel arcade project diva pour être jouable sur PS4.

Mon objectif est donc de jouer à Project Diva sur PS4 avec le panel arcade : PANEL PROJECT DIVA ARCADE -> JEU PROJECT DIVA SUR PS4

Voici le site web dont je parlais quelques lignes au-dessus : http://ryun.halfmoon.jp/touchslider/index.html.

Il suffit de lire (!) pour bien comprendre comment s'y prendre et pour connaître tout le nécessaire qu'il faut avoir pour assurer ce bricolage. L'outil de traduction Google étant plutôt pas mal, je suis parti d'une traduction automatique en anglais pour arriver à mes fins, tout en contactant RuyHalfMoon sur Twitter pour toute question complémentaire. Par chance, il parle pas trop mal anglais, et est prêt à m'aider.

En gros, sur le principe, voici ce dont j'ai eu besoin pour ce wip :

- Un panel Project Diva évidemment.


Le panel fraîchement reçu à Noël.

Jusqu'à finir ce wip, j'ai eu le stress d'avoir un touch slider cramé, ou bien un ou plusieurs boutons en rade. Ces boutons sanwa coûtent la peau du cul.


- Un Dualschock PS4, pour faire un hack pad, mais attention il faut soit une révision JDM-001 ou bien JDM-030.


Assez dur à trouver en fait maintenant, la révision JDM-001.

- Un FPGA, pour permettre au touchslider du panel arcade d'être reconnu par la PS4 comme le touchpad.


Le FPGA dont s'est servi RuyHalfMoon, j'ai pris le même.

- Un pad NeoGeo CD. Pourquoi ? Et bien le panel arcade ne possède pas de croix directionnelle, et sur PS4 j'ai aussi besoin de touches importantes comme PS, OPTION, L1 et R1. Le pad NeoGeo CD est donc couplé au panel. Bien-sûr autre chose peut convenir, comme un stick NeoGeo, ou bien un pad megadrive ou encore un truc homemade.


PARTIE HACKPAD PS4


Un hack pad n'est en général pas bien complexe, mais dans le cas d'un dualshock PS4, c'est un peu une autre histoire. Les boutons L1, L2, R1, R2, L3, et R3 doivent en-effet passer un circuit logique pour pouvoir fonctionner correctement lorsqu'ils sont "hackés".

Je suis parti de la pcb de dualshock modèle JDM-001, et conformément au site de Ryuhalfmoon, voici les points d'extraction à prendre en compte :


Les signaux principaux, et il y en a un paquet.


Au verso de la PCB, les signaux SDA et SCL qui concernent la partie Touchpad.


Retour sur le recto de la PCB, le signal CHG, lui aussi pour le Touchpad. Le signal RESET n'est pas à prendre en compte.

Les soudures, même si elles sont en réalité minuscules, ne sont pas bien compliquées à réaliser à l'exception des signaux SCL, SDA et CHG, sur lesquels j'ai buté (mauvaise tenue, contact pas parfait). Pour palier cette difficulté, je suis passé par ce petit adaptateur :


Un petit adaptateur bien utile.

En reliant cet adaptateur au connecteur du Touchpad avec un câble ruban, je peux alors récupérer facilement les signaux nécessaires :


Correspondance des signaux SCL, SDA et CHG sur le connecteur du Touchpad.


Et on récupère ces mêmes signaux simplement sur l'adaptateur.

Passons ensuite au schéma de câblage incluant le circuit logique pour les boutons L1, L2, R1, R2, L3 et R3 :


Schéma de câblage du dualshock (à droite), allant jusqu'à un connecteur IDE 34 points (à gauche), en passant par un circuit logique (au centre).

Quelques observations :

- Les numéros indiqués à gauche sur le schéma correspondent aux pins du connecteur IDE 34 points.

- Le signal VDD repiqué sur le dualshock sert à permettre à la partie FPGA de communiquer avec le dualshock ; en gros ça dit au FPGA "le dualshock est branché et présent".

- RuyHalfMoon a choisi d'alimenter le dualshock en 5V en passant par 2 diodes en série pour adapter le voltage (voir sur le schéma, le signal allant à "Batt +"). Perso, j'ai fait le choix de laisser la batterie du dualshock en place, pour pouvoir continuer à profiter de la connexion blutooth.

- Les signaux LX, LY, RX et RY ne sont pas forcément nécessaires si on ne prévoit pas de se servir des signaux des sticks analogiques, du coup je ne les ai pas connecté. A noter en sus que si on connecte ces signaux à la partie FPGA, il faut alors absolument enlever les sticks analogiques sur la PCB du dualshock.

- La masse peut-être repiquée un peu partout sur le dualshock, il faut juste s'assurer que ce point d'extraction représente un masse commune.

- Le circuit logique : ah, un bon petit morceau celui-là. Tout d'abord le nécessaire pour le réaliser :

## 1 chip 74HC4066
## 1 chip 74HC04
## 1 résistance de 100 kohms (qui sert à maintenir le signal CHG du touchpad dans un état logique 1, une fois relié au signal VDD)
## 2 résistances de 8 kohms
## 6 résistances de 10 kohms
## 2 condos céramiques de 0,1 µF
## 1 plaque à bande (certains diront peut-être que je me suis fait chier, mais je suis plus à l'aise avec ce genre de plaque)
## 1 câble IDE 34 pins de récup

Une fois ces composants réunis, j'ai préféré me refaire un schéma simplifié et propre du circuit, en le représentant sur une plaque à bandes :


Circuit logique sur plaque à bandes. Il faut partir du principe que les plots d'une même ligne horizontale sont reliés.

C'est parti pour la réalisation du circuit :


Les TTL iront sur support tulipe, car je suis habitué à tuer ces composants si je les soude directement ; ils aiment pas la chaleur de mon fer à souder.

Et on relie tout ça au dualshock :


Soupe de fils.


PARTIE FGPA


Le hack pad du dualshock et le circuit logique sont à relier ensuite à la partie FPGA, par l'intermédiaire du connecteur IDE.

Voici le schéma de principe :


Schéma du circuit permettant au panel de communiquer avec le dualshock.

Le nécessaire :

1 FPGA : FPGA-SPAR3E   
1 condo polarisé 10uF
1 LM317T
4 transistors NPN (C1815)   
1 oscillateur 50MHz
1 chip MAX3232   
5 condos céramique 0.1uF   
4 résistance de 10KΩ   
4 résistance de 8KΩ   
1 connecteur MOLEX 4 pin (comme sur les alims ATX)
1 socket femelle 40 pins à mettre sur le FPGA
1 socket femelle 34 pins à mettre sur le FPGA

Des pins mâles sécable pour faire :

1 socket mâle 40 pins
1 socket mâle 34 pins
1 socket mâle 6 pins (pour le harness "LED" du schéma)
1 socket mâle 8 pins (pour connecter les 4 boutons du panel)
1 socket mâle 4 pins pin (pour connecter les signaux TXD, RXD et GND du touchslider)
1 socket mâle 16 pins pour connecter tous les autres boutons de la PS4 (PS, Share, Option, les directions, etc...)
1 socket mâle de 10 pins pour le "serial debug", qui sert en fait à contrôler le FPGA et le bidouiller



Joli tas de composants.


Du câble IDE :

1 câble IDE 2x8 pins
1 câble IDE 2x4 pins
1 câble IDE 2X2 pins (pour celui-là j'avais du câble avec connectique dupont de côté, me suis servi de ça)1
1 câble IDE 2X3 pins

Et du connecteur MOLEX :

1 connecteur molex JST YLR-16 2x8 pins + ses pins mâles (connections du 12V et des boutons du panel)
1 connecteur molex JST YLR-08V 2x4 + ses pins mâles (connections de la gestion des LEDs des boutons du panel)
1 connecteur molex JST SMP-05V-BC 5 pins + ses pins femelles (connections du touch slider du panel)
1 connecteur molex JST SMP-03V-BC 3 pins + ses pins femelles (optionnel, c'est pour connecter la sortie casque du panel arcade, il faut alors à l'autre bout avoir un jack stéréo relié à la prise casque du dualshock)


Et voici à quoi cela ressemble en vrai :


Le FPGA vient se connecter sur ce circuit.

Je ne vais pas vous mentir, pour cette partie c'est RyuHalfmoon qui a fait le taf, je n'ai pas monté le truc moi-même. Ce pour plusieurs raisons :

- Le modèle de FPGA, je ne l'ai trouvé qu'au Japon en commande. Et je ne suis pas assez pointu sur les FPGA pour en prendre un autre modèle et m'adapter.

- Le modèle de FPGA coûte cher neuf, dans les 20000 Yens. Mais tout nu, sans les composants à mettre dessus, et non programmé bien-sûr.

- Le FPGA doit être programmé, je ne sais pas faire ça. J'aurais pu apprendre certes, d'autant plus que RuyHalfMoon met à disposition le protocole tout prêt.

- RuyHalfMoon m'a proposé, contre un peu de sous, de m'en envoyer un déjà prêt qu'il avait. Réflexion faite sur temps/argent/complexité/défi du truc, j'ai opté pour la facilité.

Au final, après quelques jours de patience, voici ce qui a été assemblé et ce que j'ai reçu :








Une fois arrivé à la maison. C'est beau !

Le taf qu'il m'a resté à faire a donc consisté à relier le FPGA au dualshock, et à relier le FPGA au panel en confectionnant les connecteurs adéquats.

Ci-dessous les différents pinouts. Ce qui est noté "qi" représente les connecteurs côté FPGA, les colonnes de gauche étant pour les différents connecteurs MOLEX.



Concernant la connexion du Pad NeoCD, je suis parti sur un connecteur DB15, câblé avec le pinout classique NeoGeo :


Pour l'usage de ce wip, Select devient PS, Start devient OPTION, A devient L1 et B R1.

Ce qui signifie que j'ai volontairement oublié quelques boutons dans l'histoire : en-effet pour naviguer dans les menus de la PS4 mais aussi dans Project Diva, j'ai besoin uniquement des directions haut, bas, gauche, droite, de OPTION (le "Start" de la PS4), de PS (le bouton "HOME" de la PS4), et de L1 et R1. Tout le reste (L2, R2, L3, R3, Touch, Share), je n'ai pas câblé pour le moment, car pas besoin au final.

Sinon pour m'y retrouver dans tout ça, j'ai fait un récapitulatif global du pinout sur le circuit du FPGA :


Rien de tel que de se faire un schéma simplifié pour pas se tromper dans les connectiques.[/i]


Réalisation des connecteurs pour connecter le panel arcade et le pad NeoCD. Pour ce dernier je me sers donc simplement d'un DB15 sur lequel le pad vient se brancher.


Partie FPGA reliée à la partie PS4


FINALISATION

Pour alimenter le FPGA, je me sers d'une alimentation ATX de PC, qui envoie assez d'ampères sur le 12V et le 5V. J'ai également testé un bloc secteur, avec 3A en 5V et 3A en 12V, ce n'était pas assez pour alimenter le touchslider qui fonctionne en 12V.

Test de fonctionnement, roulement de tambours :


Déjà, ça s'allume. Le touchslider de couleur rouge indique que la FPGA ne voit pas le dualshock PS4, qui lui est encore éteint.


Mise en route de la PS4, le dualshock s'allume, le touchslider passe en blanc. Communication établie.


ça marche :).

Pour la petite histoire, cela n'a pas marché du premier coup. J'avais en effet d'abord tenté de souder les signaux CHG, SDA, et SCL directement sur la pcb dualshock. Mal m'en a pris, puisque j'ai carrément endommagé cette partie, du coup le touchpad n'était plus fonctionnel. C'est pour cela que j'ai cherché l'autre option de l'adaptateur à relier au connecteur du touchpad, mais j'ai dû trouver une autre PCB de dualshock avec le bon modèle de révision. Par chance, Batou pd en avait 2 qui prenaient la poussière, je lui ai pris, il n'en avait plus l'utilité.

Il est maintenant temps de mettre un peu d'ordre dans tout ça, et de profiter à fond :





Je remercierai jamais assez RyuHalfMoon, déjà pour son taf, mais aussi pour son aide, car je lui ai posé 1000 questions et il a toujours répondu.

Une dernière chose si vous vous posez la question : J'ai dit au début que la version PS4 de Project DIva utilisait les directions, hors sur le panel je n'ai que 4 touches (Triangle, Carré, Rond et Croix). En fait dans les options du jeu, on peut customiser pour que seules ces touches servent :).

J'essaierai de faire une vidéo rapidement pour vous montrer mon high level :soldat:

En attendant, voici une vidéo de RuyHalfmoon et de son panel PS4 (en plus d'être un sacré bidouilleur, il a un level monstrueux à Project Diva :lol:)

https://www.youtube.com/watch?v=veAijGx6VYg&feature=emb_title

Iro

Oh le beau panel !!!  :-* :-*
Pas simple à mettre en oeuvre mais rien n'est trop beau pour un panel dédié  :love: :love:   :D
Par contre, je comprends pas bien pour le FPGA. Il sert à interfacer le touchpad ou il sert aussi pour les touches ?

En tout cas, c'est super chouette  ^-^
Merci pour ton partage  <:)
"Jet set 2, c'est avec Robert Garcia ?" Kaneda, Lapsus de sac Vol.1
Peter Shou Owner' Club

WIPs : Naomi - SEGA Rally - AB Cop - Lethal Enforcers - COMPUMI - Terminator 2 - Space Invaders - Artworks pour Boitiers K7 Naomi CF - Ma collec' de panels

LES TUTOS DE GAMO   

gojirien

Merki <:)

Le FPGA sert en lui-même exclusivement à :

- Faire communiquer le panel avec le touchpad PS4

- Gérer les fonctions LED des boutons Triangle, Carré, Croix et Rond du panel.

On voit sur les schémas que tous les boutons passent par la PCB sur laquelle se trouve le FPGA, mais c'est du simple "Passthrough", il n'y a aucun traitement des autres signaux. Je pense que le concepteur originel a fait ça par souci d'organisation de câblage (car c'est un beau bordel quand on y pense :D)

DaRkPaT

 ^-^ Pouuaahhhh  ^-^ le truc de fou, je connaissais pas le jeu ni le panel mais je suis impressionné....

c'est trop beau....

Felicitation....