Souris SNES sur PC

L'idée

Pour ceux qui l'ignorent, Nintendo ont fait une souris pour leur console Super-Nintendo. À l'origine, cette souris était vendue avec le jeu Mario Paint (un jeu de dessin). Je trouvais dommage de ne plus utiliser cette souris alors j'ai trouvé le moyen de l'utiliser avec mon PC.

Vous vous demandez pourquoi faire cela? Voici quelques raisons: (valables pour moi)
  • Utilisation du Jeu Mario-Paint avec la vraie souris. (L'Authenticité!)
  • Réutilisation cette souris avec laquelle on a de bons souvenirs de jeunesse pour autre chose. (Nostalgie)
  • Parce que c'est possible et amusant. (Cool factor)

Nouveau: J'ai mis au point un version USB. La souris fonctionne maintenant sous tout les systèmes d'exploitation supportant les souris USB standard. Pour plus d'informations, visitez ma page Adaptateur manette (et souris) SNES/NES à USB.


Détails techniques

La souris SNES communique avec la console de la même manière qu'une manette, mais la console récupère 32 bits au lieu de 16. Les 15 premiers bits sont équivalent à ceux d'une manette (les deux boutons de la sourie correspondent aux boutons 'A' et 'X'), le 16ième bit est a 0 plutot qu'a 1 (permet d'identifier une souris) et les 16 bits supplémentaires contiennent de l'information sur la direction et le nombre de pixels de mouvement depuis la dernière lecture.

Voici une table résumant l'utilisation de chaque bit. Le bit 0 dans cette table est le premier bit à être mis sur le fil:
0 1 2 3 4 5 6 7 8 9 A B C D E F
00 BYSelectStart UpDownLeftRight AXLR 1 1 1 0
10 Sens Y Y6Y5Y4Y3Y2Y1Y0 Sens X X6X5X4X3X2X1X0

Note: Sur un vrai SNES, les 16 bits supplémentaires sont lus plus rapidement que les 16 premiers.

Pour plus d'information sur les manettes et la souris SNES, je vous recommande cette page:
Super Nintendo Entertainment System: pinouts & protocol
(la section contenant l'information sur la souris est de moi)


Schéma

Le schéma de l'adaptateur pour port parallèle est le même que pour les manettes.:

(source: Direct Pad Pro)


Logiciel

Pour l'instant, la souris est supportée sous Linux seulement grace aux quelques modifications que j'ai apporté au pilote 'gamecon' (le pilote gamecon gère entre autres les manettes SNES, NES, Playstation et Nintendo 64)

Patcher le kernel:

Le patch est actuellement dans le kernel d'Andrew Morton (-mm). Si tout se passe bien, le patch devrait finit par etre inclus dans le kernel officiel (probablement dans 2.6.17 ou 2.6.18). En attendant, vous pouvez toujours appliquer ce patch:
gamecon_snesmouse.diff

Pour appliquer le patch, allez dans le répertoire de votre kernel et tapez (en modifiant le chemin d'accès au patch bien sur...):
# patch -p1 < ../gamecon_snesmouse.diff

Insertion du module pour utiliser la souris:

# modprobe gamecon map=0,9,0,0,0,0
Voici la significaton des chiffres donnés à l'argument map:
No du port parallèle, Type du périférique 1, Type du périférique 2, Type du périférique 3, Type du périférique 4, Type du périférique 5

Pour plus d'information, lisez le fichier Documentation/input/joystick-parport.txt fournis avec les sources du Kernel.

Conseils pour l'utilisation avec X:

Si vous utilisez la souris pour du travail normal avec X, vous voudrez peux-être ajuster l'accélération du pointeur de souris car cette souris ne rapporte pas beaucoup de pixels de mouvement par centimètre. Pour l'ajustement, vous pouvez utiliser xset:
$ xset m 3/2 2
Les paramètres ci-dessus sont ceux qui me plaisent, si vous voulez en essayer d'autres, voici la syntaxe:
xset m [multiplication acceleration[/division acceleration] [seuil]]

Si vous l'utilisez avec Mario Paint, désactivez l'accélération complètement.

Version Windows?

Désolé, mais je n'ai pas et je ne ferai pas de driver windows pour cette souris. Si vous en faites un vous même, cela me fera plaisir de mettre un liens vers votre page ou d'héberger le fichier ici.


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.