Plugins d'accès direct aux manettes N64 pour mupen64plus et Project64



De quoi s'agit-il?

Tout ceci fonctionne

Tout ceci fonctionne

Ces plugins pour mupen64plus et Project 64 exploite la fonction d'accès direct aux manettes offerte par mes adaptateurs N64 à USB (versions 3 et plus) pour permettre au jeu tournant dans l'émulateur de communiquer directement avec les manettes.

Qu'est-ce que cela apporte? Plusieurs avantages! En voici quelques uns:
[1] Je ne peux pas tester les accessoires que je ne possède pas encore. Mais la beauté de la chose est qu'en théorie ça fonctionne déjà. (Contactez-moi si vous avez la chance de tester)

Attention: Ce projet est encore en développement et considéré expérimental. Bien que ce plugin soit déjà utilisable, certaines fonctionalités évoquées ci-dessus, en particulier celles qui ne sont pas encore confirmées pourraient à la fin ne pas fonctionner du tout. De plus, il pourrait y avoir (probablement déjà) des bugs, et plusieurs fonctionnalités manquantes telles le support de plusieurs adaptateurs en simultané. Votre patience et votre aide pour les tests de même que vos commentaires constructifs sont des plus bienvenus.

goto top Retour en haut


Screenshots

Voici quelques screenshots réalisés avec une carte mémoire N64 dans la manette. Le gestionnaire de mempak de Mario Kart 64 (maintenir START enfoncé lors du lancement du jeu) est utilisable malgré les glitch graphiques. En jeu, nous pouvons constater la présence d'un ghost (sauvegardé dans le mempak lors d'une partie précédente (le jeu a été redémarré depuis). Plus tard (et sur une machine Linux dans ce screenshot) les données écrites par MK64 peuvent être relues avec l'outil de gestion d'adaptateur.
Gestionnaire MK64

Gestionnaire MK64

Ghost

Ghost

Ghost

Ghost

Gestionnaire d'adaptateur

Gestionnaire d'adaptateur


Gestionnaire MK64 (project64)

Gestionnaire MK64 (project64)

Plugin dans project 64

Plugin dans project 64


Note: Pour l'instant il ne vaut mieux pas utiliser le gestionnaire d'adaptateur en même temps qu'un jeu est en marche.
Contributions:
Controller, Transfer and Tremor paks

Controller, Transfer and Tremor paks

MaMaLuigi9001 a testé le Transfer Pak et un Tremor Pak Plus (Équivalent au Rumble Pak de Nintendo) et tout fonctionne. Le jeux testés avec le Transfer Pak sont Pokemon Statium et Pokemon Statium 2 avec Project 64 version 2.3.0.216 sous Windows 10. Il précise toutefois que le jeu plante (l'écran devient noir) lorsqu'il se rends au Gameboy Tower.

Voici quelques screenshots avec les jeux Pokemon:

Pokemon Stadium

Pokemon Stadium

Pokemon Stadium

Pokemon Stadium

Pokemon Stadium

Pokemon Stadium

Pokemon Stadium

Pokemon Stadium

Pokemon Stadium 2

Pokemon Stadium 2

Pokemon Stadium 2

Pokemon Stadium 2

Pokemon Stadium 2

Pokemon Stadium 2


MaMaLuigi9001 confirme également que le VRU est fonctionnel, mais la version ports1_4 du plugin qui fait en sorte que le deuxième port de l'adaptateur fonctionne comme le port 4 du N64 est requise. Ce plugin fera partie de la version 1.0.0.
VRU

VRU


goto top Retour en haut


Adaptateurs supportés

Ce plugin fonctionne uniquement avec les adaptateurs GC/N64 à USB raphnet de troisième génération. Vous n'êtes pas certain de quelle est la version de votre adaptateur? Il y a un moyen très rapide pour le savoir: Si le câble USB est amovible, c'est un adaptateur de troisième génération.

PhotoModèle(s)Supporté?
GC/N64 to USB ADAP-GCN64-USB_V3: Adaptateur manette N64 ou Gamecube à USB (v3, Boîtier Noir)
ADAP-GCN64-USB-V_V3: Adaptateur manette N64 ou Gamecube à USB (v3, Boîtier Violet)


Les prototypes (ADAP-USB-GCN64-V3-PROTO) et unités de pré-lancement (ADAP-USB-GCN64-V3-PR) fonctionnent aussi!
Oui
N64 to USB ADAP-N64-USB_V3: Adaptateur manette N64 à USB (v3, Boîtier Noir) Oui
Dual N64 to USB ADAP-2XN64-USB: Adaptateur pour deux manettes N64 à USB Oui
Old GC/N64 to USB ADAP-GCN64-USB: Adaptateur manette N64 ou Gamecube à USB (n'est plus fabriqué) Non
Old N64 to USB ADAP-N64-USB: Adaptateur manette N64 à USB (n'est plus fabriqué) Non
Note: Ce n'est pas par manque de volonté que les anciennes versions ne sont pas supportées. C'est simplement qu'elles ne permettent pas la communication directe avec les manettes.

goto top Retour en haut


Fonctionnement

Voici une illustration permettant de comparer les grandes lignes de l'architecture habituelle (input-sdl) et celle obtenue via le plugin d'accès direct raphnet.




La chaîne d'événements « normale » est plus ou moins la suivante: (écrit en pensant à mupen64plus, mais s'applique à project64 également)
  1. L'adaptateur interroge la manette et store la réponse contenant les valeurs d'axes et de boutons en mémoire.
  2. Le PC hôte interroge périodiquement l'adaptateur et reçoit en réponse l'état le plus récent.
  3. Ce nouvel état fait son chemin à travers quelques niveaux logiciels driver HID, librairie DirectX ou pilote de joystick et librairie SDL. (L'information est en fait stockée dans un buffer quelque part)
  4. Lorsque le jeu tournant dans l'émulateur fait requête de lecture d'état de la manette, une réponse est construite à partir des donnés les plus récentes obtenues par la librairie SDL.
AvantagesDésavantages
  • L'émulateur n'a pas a attendre. Les donnés les plus récentes sont déjà disponibles, il n'a donc qu'à les mettre dans le bon format et les retourner au jeu.
  • La valeurs exactes d'axes sont souvent perdues (calibration, attentes de l'émulateur vis-à-vis des limites de valeurs d'axe, etc), et obtenir exactement la sensation du jeu original peut nécessiter beaucoup d'ajustement.
  • L'émulateur doit savoir s'il doit émuler un mempack ou un rumble pack. Il est nécessaire de configurer tout cela, cela dépends des jeux. Et bien que la vibration soit possible (avec le standard HID PID) le support des mempack est moins évident et généralement virtuel (stockage dans des fichiers).


La chaîne d'événements de l'approche directe est plus ou moins la suivante:
  1. Le jeu tournant dans l'émulateur fait une requête de lecture d'état de la manette.
  2. Le plugin se charge de transmettre la demande à l'adaptateur par USB
  3. L'adaptateur retransmet la requête telle-quelle à la manette N64 (ou au périphérique en question)
  4. La manette (ou périphérique) réponds
  5. La réponse est reçue par l'adaptateur et retransmise par USB
  6. Le plugin recoit la réponse et la sert sans modifications au jeu.
AvantagesDésavantages
  • Le jeu échange réellement avec la manette. Le support des accessoires tels le mem pack, rumble pack et autres fonctionne donc naturellement.
  • La réponse de la manette ne subit aucune transformation. Les valeurs d'axes reçues par le jeu sont exactement les mêmes que dans la réalité. Pas d'inconnues et pas d'ajustements!
  • Puisque la requête doit faire un allez-retour jusqu'à la manette, l'acte de lire le statut des axes et boutons prends un peu plus de temps. Lorsqu'il y a beaucoup d'échanges (notamment pour la lecture et l'écriture de mempacks, cela peut causer un ralentissement temporaire de l'émulation.

goto top Retour en haut


Téléchargement

Question: Quel fichier me faut-il? Quelle est la différence entre le fichier .zip et le fichier .tar.gz?
Réponse: Les fichiers .zip contiennent des plugins pour Windows (.DLL) prêts à l'emploi. Les fichiers .tar.gz contiennent le code source. Si vous êtes sous Linux, c'est ce qu'il vous faut.

Flux RSS pour cette table
Fichier(s)DateDescription
pj64raphnetraw-1.0.1.tar.gz (20.3 KB)
pj64raphnetraw-1.0.1.zip (139.2 KB)
4 Février 2017 (Samedi) Ajout d'une autre version spéciale où les ports d'un adaptateur à deux joueurs correspondent aux ports 1 et 3 de la N64. (Ceci est dans l'espoir que le contrôle Densha de GO! fonctionnera alors.)
mupen64plus-input-raphnetraw-1.0.0.tar.gz (30.1 KB)
mupen64plus-input-raphnetraw-windows-1.0.0.zip (161.8 KB)
pj64raphnetraw-1.0.0.tar.gz (20.3 KB)
pj64raphnetraw-1.0.0.zip (106.6 KB)
15 Janvier 2017 (Dimanche) Nouvelles fonctionalités et changments internes:
  • Supporte maintenant plusieurs adaptateurs simultanément.
  • Ajout d'une version spéciale Ports 1 et 4 où les ports d'un adaptateurs à deux joueurs correspondent aux porst 1 et 4 du N64.
mupen64plus-input-raphnetraw-0.9.4.tar.gz (29.8 KB)
mupen64plus-input-raphnetraw-windows-0.9.4.zip (161 KB)
pj64raphnetraw-0.9.4.tar.gz (19.6 KB)
pj64raphnetraw-0.9.4.zip (72.8 KB)
3 Décembre 2016 (Samedi) Maintenance:
  • Amélioration de la structure pour faciliter la maintenance du code en commun des versions Project 64 et mupen64plus du plugin.
  • Support pour le firmware 3.4.x à venir.
mupen64plus-input-raphnetraw-0.9.3.tar.gz (26.8 KB)
mupen64plus-input-raphnetraw-windows-0.9.3.zip (158.4 KB)
pj64raphnetraw-0.9.3.tar.gz (16.1 KB)
pj64raphnetraw-0.9.3.zip (71.6 KB)
26 Novembre 2016 (Samedi) Correctif et optimisation::
  • Ne gère maintenant que les canaux supportés par l'adaptateur. Ceci résulte en une meilleure performance (moins de lag) en évitant des tentatives inutiles de communiquer avec les manettes de ports physiquement inexistants sur l'adaptateur. Ceci corrige aussi le problème de certains jeux qui voyaient plus de manettes qu'il y en avait en réalité (avec un adaptateur mono-joueur)
mupen64plus-input-raphnetraw-0.9.2.tar.gz (26.3 KB)
mupen64plus-input-raphnetraw-windows-0.9.2.zip (155.7 KB)
pj64raphnetraw-0.9.2.tar.gz (15.9 KB)
pj64raphnetraw-0.9.2.zip (69.4 KB)
24 Novembre 2016 (Jeudi) Correctif de fiabilité::
  • Ajout d'une protection contre la réception de commandes invalides depuis l'émulateur. Ceci corrige le problème qu'avaient certains jeux de ne pas démarrer. (Le problème touchait PJ64 et mupen64plus)
mupen64plus-input-raphnetraw-0.9.1.tar.gz (25.8 KB)
mupen64plus-input-raphnetraw-windows-0.9.1.zip (155.6 KB)
pj64raphnetraw-0.9.1.tar.gz (15.2 KB)
pj64raphnetraw-0.9.1.zip (69.3 KB)
23 Novembre 2016 (Mercredi) Changements spécifiques à la version Project64:
  • Changement de spécification de plugin (v1.0 plutôt que v1.1) afin d'être aussi utilisable avec les version précédentes de project64 (1.4-1.6).
Changements communs aux deux versions:
  • Le polling n'est maintenant désactivé que pendant le jeu (Dans la version précédente, après avoir employé le plugin, il fallait débrancher et rebrancher l'adaptateur pour qu'il fonctionne à nouveau normalement (par DirectInput par exemple).
pj64raphnetraw-0.9.tar.gz (13.8 KB)
pj64raphnetraw-0.9.zip (69.3 KB)
22 Novembre 2016 (Mardi) Première version publiée pour project64
mupen64plus-input-raphnetraw-0.9.tar.gz (25.7 KB)
mupen64plus-input-raphnetraw-windows-0.9.zip (155.4 KB)
20 Novembre 2016 (Dimanche) Première version publiée (mupen64plus)
Ce projet est aussi disponible sur GitHub!
Pour suggérer de nouvelles fonctionalités, rapporter un problème ou contribuer au projet, vous pouvez m'écrire ou utiliser le dépôt GitHub:
https://github.com/raphnet/mupen64plus-input-raphnetraw
Ce projet est aussi disponible sur GitHub!
Pour suggérer de nouvelles fonctionalités, rapporter un problème ou contribuer au projet, vous pouvez m'écrire ou utiliser le dépôt GitHub:
https://github.com/raphnet/pj64raphnetraw

goto top Retour en haut


Utilisation (Project 64 sous Windows)

Pour installer et utiliser le plugin pour PJ64 deux fichiers doivent être copiés vers des endroits spécifiques.

1: Copiez le fichier suivant dans "répertoire d'installation PJ64"/Plugin/Input: (Pour les version plus anciennes de PJ64 (par exemple, version 1.4) il faut mettre le DLL directement dans le répertoire Plugin car il n'y a pas de classification par type.)

2: Vous devez également copier le fichier suivant dans le répertoire racine de votre installation PJ64 (c'est à dire, le répertoire contenant le .EXE): Ensuite dans la fenêtre de configuration de PJ64, choisissez "raphnetraw for Project64 version xx.xx" de la liste des input plugins.

Installation du plugin (pj64raphnetraw.dll)

Installation du plugin (pj64raphnetraw.dll)

Installation du fichier de support (libhidapi-0.dll)

Installation du fichier de support (libhidapi-0.dll)

Sélection du plugin

Sélection du plugin


Note: La version actuelle du plugin créera un fichier de logs nommé raphnetraw.log dans le répertoire de votre utilisateur.

goto top Retour en haut


Utilisation (mupen64plus sous Windows)

La version .zip du plugin disponible depuis la section téléchargements ci-dessus contient les versions 32 et 64 bits du plugin. Le contenu du .zip ressemble à ceci:
mupen64plus-input-raphnetraw-windows-0.9/
mupen64plus-input-raphnetraw-windows-0.9/README.md
mupen64plus-input-raphnetraw-windows-0.9/dist_win64/
mupen64plus-input-raphnetraw-windows-0.9/dist_win64/libhidapi-0.dll
mupen64plus-input-raphnetraw-windows-0.9/dist_win64/mupen64plus-input-raphnetraw.dll
mupen64plus-input-raphnetraw-windows-0.9/dist_win32/
mupen64plus-input-raphnetraw-windows-0.9/dist_win32/libhidapi-0.dll
mupen64plus-input-raphnetraw-windows-0.9/dist_win32/mupen64plus-input-raphnetraw.dll
Si vous avez la version 64 bit de mupen64-plus, utilisez fichiers du répertoire dist_win64. Pour la version 32 bits, utilisez plutôt les fichiers du répertoire dist_win32.

Installez le plugin (fichiers .dll) dans un répertoire que mupen64plus examinera lors de la recherche des plugins (ex: Dans le même répertoire que l'exécutable et des autres fichiers .DLL) puis lancez l'émulateur ainsi:
$ mupen64plus --input mupen64plus-input-raphnetraw
(en ajoutant naturellement les autres éléments applicables tels que le fichier du jeu)

goto top Retour en haut


Utilisation (mupen64plus under Linux)

Suivez les instructions du fichier README.md inclut avec le code source. Ensuite, Installez le plugin (fichier .so) dans le répertoire de plugins de votre installation mupen64plus puis lancez l'émulateur ainsi:
$ mupen64plus --input mupen64plus-input-raphnetraw
(en ajoutant naturellement les autres éléments applicables tels que le fichier du jeu)

goto top Retour en haut


Vérifier le fonctionnement

Si vous n'êtes pas certain d'avoir réussi à lancer l'émulateur de manière à ce que le plugin raphnet-raw soit utilisé, jetez un coup d'oeil aux messages dans le terminal:

goto top Retour en haut


Avertissement

Je ne saurais être tenu responsable pour les dommages que l'utilisation des informations ou la mise en œuvre des instructions présentées sur cette page pourrait causer à votre équipement, à vous-même ou à autrui. Aussi, je ne donne aucune garantie quant à l'exactitude des informations et à leur fonctionnement.

goto top Retour en haut


Les marques de commerce utilisées dans ce site appartiennent à leurs propriétaires respectifs.
Copyright © 2002-2017, Raphaël Assénat
Site codé avecSite codé avec vimDernière mise à jour: 21 Janvier 2017 (Samedi)