Project Diva : Panel Arcade sur PS4

Exposez vos projets et créations (sticks, superguns...)

Project Diva : Panel Arcade sur PS4

Message par ゴジラ » 10 Janvier 2020, 13:01

Image


PREAMBULE


Alors non, ceci n'est pas un topic à la gloire de Xintruc, la Mariah Carey de l'arcade.

Il s'agit d'un topic sur un jeu certes pas bien récent, mais que j'ai découvert en juin dernier au détour des errements sur le web, à la recherche d'un truc typiquement jap à tester.

Project Diva est un jeu de rythme développé par SEGA, qui a connu plusieurs déclinaisons depuis quasiment une dizaine d'années, tout d'abord en arcade puis consoles de salon (ps3, ps4 et bientôt switch).

"L'héroïne" du jeu, Hatsune Miku ((初音ミク, "premier son du futur"), est à la base un personnage fictif servant d'avatar à la série des soft Vocaloid (synthèse de voix), et est un véritable phénomène au Japon, on peut même assister à des concerts de Hatsune Miku (sisi, avec un personnage qui n'existe donc pas en vrai).

Image

Hatsune Miku, ou la chanteuse moderne.


La série de jeux "Hatsune Miku, Project Diva" suit un principe commun aux rythm games : On appuie sur le bon bouton, au bon moment. Les dernières révisions du jeu font également intervenir, en plus des 4 boutons principaux, un "touch slider", comprenez par là une barre tactile permettant de pimenter l'action.

Voici le panel original de la version arcade :

Image

4 touches : Triangle, Carré, Croix et Rond, Start à droite, et le touch slider en haut au centre.
Les boutons sont des sanwa OBSA 100 UMQ, avec microswitchs optiques OBSA LHSXF.


Et une vidéo illustrant parfaitement le principe du jeu (avec dans le même temps une brute aux commandes et une petite chanson bien sympathique qui ne rend pas du tout zinzin) :




J'ai rapidement été séduit par ce jeu, et comme il existe sur PS4 (versions Project Diva Future Tone, Colorful Tone et bientôt une version Megamix avec encore plus de chansons), bah je me suis jeté dessus.

Sur la version PS4 donc, le jeu peut se jouer au pad comme suit :

Image

Sur PS4, on joue comme ça si on qu'un Dualshock. Le touchpad de la PS4 fait ici office de Touchslider, ainsi que les boutons L1, L2 et les sticks analogiques


La marque Hori a également sorti des sticks arcade dédiés, pour apporter plus d'authenticité et de fun :

Image

Le stick arcade Hori spécial PS4, pareil le Touchpad sert de touchslider


Sur PS4, le jeu inclut d'office, en plus des touches habituelles Triangle, Carré, Rond et Croix, la possibilité d'utiliser les touches directionnelles en plein jeu.

En réalité, et l'image ci-dessus l'illustre, les touches directionnelles Haut, Bas, Gauche et Droite correspondent respectivement à Triangle, Croix, Carré et Rond. Donc si vous appuyez sur Haut, alors que c'est sur Triangle que le jeu vous demande d'appuyer, bah ça passera. Ce principe permet de faire des combinaisons de touches plus facilement au pad, et facilite quelque peu le jeu.

Certes, j'aime beaucoup le jeu au pad PS4, mais il faut avouer qu'avec les contrôles d'origine, avec les 4 boutons alignés et le touchslider, ça doit être top.

J'ai donc eu envie de pouvoir jouer au jeu sur PS4 avec un contrôleur ressemblant au panel arcade. A partir de ce constat, plusieurs options possibles :

- Le contrôleur homemade : pas mal comme solution, mais la plupart du temps on se passera du touchslider, ou alors on garde le touchpad après avoir fait un hackpad du dualshock PS4. On peut aussi se fabriquer un slider de toute pièce avec des cartes "sensors" ou capteurs tactils, mais là on rentre dans un truc difficile (il faut 32 capteurs, et passer par un arduino ou bien un FPGA pour interfacer le tout.

Image

Exemple de contrôleur homemade, mais pas de touchslider présent.


- Le stick Hori : il est sympa, mais je le trouve cher pour ce que c'est (dans les 150 balles au Japon), et le touchpad pour jouer, bof.

- Le contrôleur tier développé par des pros :

Image

Le "Divaller", un des contrôleurs pro sorti récemment. Très très chouette, mais très très...cher. Compter 750€ tout compris pour l'avoir.


- Le nouveau contrôleur officiel Hori, qui va sortir en ce début 2020 :

Image

Oh la belle bête ! Mais il n'était dispo qu'en préco, pour 450€.


- Récupérer un panel original et l'adapter sur PS4 : Bon déjà, il faut trouver le panel en pièce détachée, puis il faut relier le panel à la PS4 en passant par un hackpad. Le touchslider quand à lui, doit être reconnu comme le touchpad de la PS4, et là ça devient compliqué, il faut passer par de l'arduino ou du FPGA.

C'est au final cette dernière solution que j'ai choisi, d'une part car j'ai réussi à trouver un panel original sur Yahoo Auction pour pas bien cher, et qu'après quelques recherches, j'ai trouvé un site jap où un taré d'électronique, RuyHalfMoon de son pseudo, à réussi à interfacer un panel original sur PS4 et il explique tout ! La procédure n'est pas simple, fait très "usine à gaz", mais je me suis dit que c'était à ma portée et que je serai bien content de cette création si elle aboutit.



PRINCIPE ET NECESSAIRE


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.

Image

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.

Image

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.

Image

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 :

Image

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


Image

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


Image

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 :

Image

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 :

Image

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


Image

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 :

Image

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 :

Image

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 :

Image

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 (non, pas le gros fer que j'ai dans le slip Kretinou).


Et on relie tout ça au dualshock :

Image

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 :

Image

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


Image

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 :

Image

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 :

Image

Oh oui.


Image

Oh oui, encore !.


Image

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.

Image


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

Image

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 :

Image

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


Image

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.


Image

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 :

Image

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.


Image

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


Image

ç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 :

Image



Image


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:)

Avatar de l’utilisateur
ゴジラ
Administrateur
 
Message(s) : 2659
Inscription : 11 Janvier 2013, 14:39

Retour vers Créations

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)

cron