Plugins d'accès direct aux manettes N64 pour mupen64plus et Project64
Contenu
De quoi s'agit-il?
Ces plugins pour
mupen64plus et
Project 64
exploitent 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:
- Aucune calibration requise. Puisque le jeu parle directement avec la manette,
il recevra exactement les mêmes valeurs d'axe que s'il ne s'agissait pas d'émulation. Bref,
la manette fonctionnera et répondra aussi bien (ou aussi mal) et exactement comme dans la vraie vie, et ce
sans efforts.
- Latency très bas. Lorsque le jeu doit lire la manette, le message de requête
est sur le champ relayé à la manette par l'adaptateur qui à son tour retourne la réponse au jeu.
- Support potentiel de tout accessoire branché dans le port d'expansion de la manette N64
sans aucune intervention ni fonctionnalités y étant spécifiques requises de la part de l'émulateur,
du plugin et de l'adaptateur (autre que l'accès direct). Ce qui veut dire:
- Support du rumble pack (testé)
- Support du memory pack (testé)
- Support du transfer pack (confirmé!)
- Support du Bio Sensor (testé)
Comme lorsqu'une vraie console N64 est utilisée, il suffit simplement d'insérer
l'accessoire voulu et le jeu s'occupe du reste. Aucune configuration de l'émulateur
n'est nécessaire.
- Support de périphériques autres que des manettes.
- Souris N64 (testé)
- VRU (confirmé!)
- Clavier N64 (non confirmé[1])
[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.
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.
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:
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:
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.
Adaptateurs supportés
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)
- L'adaptateur interroge la manette et store la réponse contenant les valeurs d'axes et de boutons en mémoire.
- Le PC hôte interroge périodiquement l'adaptateur et reçoit en réponse l'état le plus récent.
- 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)
- 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.
Avantages | Dé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:
- Le jeu tournant dans l'émulateur fait une requête de lecture d'état de la manette.
- Le plugin se charge de transmettre la demande à l'adaptateur par USB
- L'adaptateur retransmet la requête telle-quelle à la manette N64 (ou au périphérique en question)
- La manette (ou périphérique) réponds
- La réponse est reçue par l'adaptateur et retransmise par USB
- Le plugin recoit la réponse et la sert sans modifications au jeu.
Avantages | Dé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.
|
Version spéciales
Le fichier .zip pour Project 64 (voir la section téléchargement) contient plusieurs fichiers DLL, chacun
correspondant à une version du plugin. Voici une table en expliquant les différences et utilitées:
Nom | Fichier | Raison d'être et description |
Standard |
pj64raphnetraw.dll |
La version standard. supporte jusuqu'à 4 joueurs avec n'importe quelle combinaison d'adaptateurs à 1 et 2 ports. |
1 joueur |
pj64raphnetraw_1player.dll |
Version spéciale ne prenant en charge qu'une seule manette, peu importe combien de ports votre adaptateur comporte.
Permet parfois, selon le jeu, un léger gain de performance en évitant d'avoir à interroger une manette absente ou
non utilisée.
Utilisez cette version lorsque vous jouez seul, et la version standard (ci-dessus) lorsque vous jouez entre
amis.
|
Ports 1 et 3 |
pj64raphnetraw_ports1and3.dll |
Version spéciale faisant fonctionner les ports 1 et 2 de votre adaptateur comme les ports
1 et 3 de l'émulateur. Prévue pour le jeu Densha de GO! qui s'attend au raccord d'une manette spéciale
dans le port 3.
|
Ports 1 et 4 |
pj64raphnetraw_ports1and4.dll |
Version spéciale faisant fonctionner les ports 1 et 2 de votre adaptateur comme les ports
1 et 4 de l'émulateur. Prévue pour être utilisée avec le VRU qui doit être branché au port 4.
|
Net |
pj64raphnetraw_net.dll |
Il y a quelques problèmes (en ce moment inexpliqués) avec le jeu réseau sous Project64k. Cela ne fonctionne
pas, à moins d'installer un très vieux firmware (version 3.3.2). Une nouvelle fonctionnalité
visant à augmenter la performance a été ajoutée à la version 3.4.0, et c'est depuis que raphnetraw v0.9.4 s'en
sert que ça va mal...
Solution temporaire: Cette version n'utilise pas la fonctionnalité en question et permet le jeu en réseau,
du moins je l'espère...
|
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 tableVersion 2018-10-06 6 octobre 2018 (Samedi) |
---|
Maintenance:- Support des adaptateurs avec firmware version 3.6.x
|
Fichier(s): pj64raphnetraw-1.0.6.tar.gz (21.3 KB)
pj64raphnetraw-1.0.6.zip (483.1 KB)
mupen64plus-input-raphnetraw-1.0.2.tar.gz (30.3 KB)
mupen64plus-input-raphnetraw-windows-1.0.2.zip (262.2 KB)
|
Version 1.0.5 16 mai 2018 (Mercredi) |
---|
Correctif/maintenance:- Protection contre les commandes invalides (Évite des erreurs lorsque plusieurs Controller Pak sont utilisés)
- Déactivation du log file. (très petit gain de performance)
|
Fichier(s): pj64raphnetraw-1.0.5.zip (483 KB)
pj64raphnetraw-1.0.5.tar.gz (21.3 KB)
|
Version 1.0.4 22 novembre 2017 (Mercredi) |
---|
Plugin version 1.0.4 pour PJ64 et version 1.0.1 pour mupen64plus:- Support pour les adaptateurs version 3.5 disponibles sous peu (mise à jour nécessaire pour le bon fonctionnement des versions deux joueurs)
|
Fichier(s): pj64raphnetraw-1.0.4.tar.gz (21 KB)
pj64raphnetraw-1.0.4.zip (204.6 KB)
mupen64plus-input-raphnetraw-1.0.1.tar.gz (30.2 KB)
mupen64plus-input-raphnetraw-windows-1.0.1.zip (161.9 KB)
|
Version 1.0.3 16 avril 2017 (Dimanche) |
---|
Correctif(s):Correction de la version spéciale ports 1 et 3Nouvelle tentative de réparer le jeu en ligne (la version 1.0.2 n'a pas fonctionné) |
Fichier(s): pj64raphnetraw-1.0.3.tar.gz (20.9 KB)
pj64raphnetraw-1.0.3.zip (204.6 KB)
|
Version 1.0.2 10 avril 2017 (Lundi) |
---|
Nouvelles version spéciales:- Ajout d'une version spécial pour 1 joueur. (Augmentation de performance dans certaines situations en évitant les tentatives d'interrogation de manettes absentes ou inutilisées)
- Ajout d'une version pour le jeu en réseau.
(Pour un joueur seulement. N'est pas encore testé, mais cette version permettra j'espère de jouer en réseau avec le plus récent firmware Mise à jour: Malheureusement, cela n'a pas fonctionné.
|
Fichier(s): pj64raphnetraw-1.0.2.tar.gz (20.7 KB)
pj64raphnetraw-1.0.2.zip (203.9 KB)
|
Version 1.0.1 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.) |
Fichier(s): pj64raphnetraw-1.0.1.tar.gz (20.3 KB)
pj64raphnetraw-1.0.1.zip (139.2 KB)
|
Version 1.0.0 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.
|
Fichier(s): 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)
|
Version 0.9.4 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.
|
Fichier(s): 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)
|
Version 0.9.3 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)
|
Fichier(s): 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)
|
Version 0.9.2 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)
|
Fichier(s): 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)
|
Version 0.9.1 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).
|
Fichier(s): 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)
|
Version 0.9b 22 novembre 2016 (Mardi) |
---|
Première version publiée pour project64 |
Fichier(s): pj64raphnetraw-0.9.tar.gz (13.8 KB)
pj64raphnetraw-0.9.zip (69.3 KB)
|
Version 0.9 20 novembre 2016 (Dimanche) |
---|
Première version publiée (mupen64plus) |
Fichier(s): mupen64plus-input-raphnetraw-0.9.tar.gz (25.7 KB)
mupen64plus-input-raphnetraw-windows-0.9.zip (155.4 KB)
|
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.
Note: La version actuelle du plugin créera un fichier de
logs nommé
raphnetraw.log dans le répertoire de votre utilisateur.
Utilisation (1964 sous Windows)
Seule la version
Net du plugin (voir
Versions spéciales) est compatible avec 1964 en raison
d'un
hack de performance ne fonctionnant qu'avec Project64. (Ce
hack
empêche également le jeu en ligne de fonctionner sous Project64).
L'installation du plugin sous 1964 doit être faite ainsi:
- Copiez le ficheir raphnetraw_net.dll vers le sous-répertoire plugin/ du dossier 1964.
- Copiez le fichier libhidapi-0.dll dans le répertoire racine de 1964 (pas dans le sous-répertoire plugin)
- Sélectionnez le plugin raphnetraw de la liste de la boîte de dialogue Change Plugins.
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)
Utilisation (mupen64plus sous 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)
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:
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.