ARTICLES
28 / 43 |
Interférences Clavier CPC
Le CPC a un controleur clavier basé sur une matrice.
A n'importe quel moment, on pouvait connaitre l'état de n'importe quelle touche. L'inconvénient était qu'on ne pouvait pas savoir quand une touche avait été pressée ou relachée à moins de garder un enregistrement de la matrice en RAM et de la comparer avec l'état actuel pour voir les différences. A cause d'une fabrication à bas coût avec aussi peu de cables que possible, cela avait un effet secondaire : des appuis de touches "fantomes" apparaissent si on a plusieurs touches pressées en même temps.
Le PC, d'un autre côté, a un contrôleur clavier de type série. Lorsqu'une touche est pressée ou relachée, le contrôleur reçoit son octet d'ID, en même temps qu'un bit définissant si elle avait été pressée ou non.
Fabrication à bas coût ici aussi, mais avec l'effet secondaire opposé : des appuis de touches supplémentaires sont ignorés si trop de touches sont pressées.
C'est pourquoi une poignée de Cheat Mode sur les jeux Spectrum et CPC ne marchent pas sur les émulateurs : le hardware du PC se met en travers du chemin.
En conclusion : Le Clavier du CPC est très robuste, il permet l'appui de beaucoup de touches en même temps (chose impossible sur PC, vu que le clavier du PC sature au bout de 3 ou 4 touches enfoncées en même temps), mais ceci engendre des interférences générant l'appui de touches supplémentaires.
Le but de cet article est de découvrir les règles de ces interférences ou touches fantômes.
Voici le tableau (créé par Devilmarkus)
Bit | Ligne | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
7 | f. | f0 | CTRL | > . |
< , |
ESPACE | V | X | Z | DEL |
6 | ENTER | f2 | ` |
? / |
M | N | B | C | CAPS | |
5 | f3 | f1 | SHIFT | * : |
K | J | F | D | A | Joy 0 Fire 1 |
4 | f6 | f5 | f4 | + ; |
L | H | G | S | TAB | Joy 0 Fire 2 |
3 | f9 | f8 | } ] |
P | I | Y | T | W |
Q |
Joy 0 Right |
2 |
↓ |
f7 | RETURN | | @ |
O | U | R | E | ESC | Joy 0 Left |
1 |
→ |
COPY | { [ |
= - |
) 9 |
' 7 |
% 5 |
# 3 |
" 2 |
Joy 0 Down |
0 | ↑ Flèche Haut |
← Flèche Gauche |
CLR | £ † |
_ 0 |
( 8 |
& 6 |
$ 4 |
! 1 |
Joy 0 Up |
Je me suis penché sur ce problème suite a mes recherches pour activer les cheat-mode dans plusieurs jeux.
Voici quelques exemples :
Batman The Movie © Ocean Software (1989)
Le cheat mode est E+D+2+0+9
Mais en fait en appuyant simultanément sur les 5 touches E+D+2+0+9, les touches 2+0+9 vont engendrer comme interférence la touche 1 (Visible sur un vrai CPC)
Mais pourquoi ?
Ci-dessous nous avons les 5 touches qui sont colorées, les 2 lettres en gris (ici aucun intéret) et les 3 chiffres en vert.
Nous pouvons créer un carré avec le 9 2 0, et justement le coin de ce carré sera la touche généré par l'interférence ici le 1 (en rouge).
Bit | Ligne | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
7 | f. | f0 | CTRL | > . |
< , |
ESPACE | V | X | Z | DEL |
6 | ENTER | f2 | ` |
? / |
M | N | B | C | CAPS | |
5 | f3 | f1 | SHIFT | * : |
K | J | F | D | A | Joy 0 Fire 1 |
4 | f6 | f5 | f4 | + ; |
L | H | G | S | TAB | Joy 0 Fire 2 |
3 | f9 | f8 | } ] |
P | I | Y | T | W |
Q |
Joy 0 Right |
2 | ↓ Flèche Bas |
f7 | RETURN | | @ |
O | U | R | E | ESC | Joy 0 Left |
1 | → Flèche Droite |
COPY | { [ |
= - |
) 9 |
' 7 |
% 5 |
# 3 |
" 2 |
Joy 0 Down |
0 | ↑ Flèche Haut |
← Flèche Gauche |
CLR | £ † |
_ 0 |
( 8 |
& 6 |
$ 4 |
! 1 |
Joy 0 Up |
Ce qui veux dire qu'en appuyant sur E+D+2+0+9 sur un vrai CPC c'est comme si on enfonçait 6 touches E+D+2+0+9+(1)
Turrican © Rainbow Arts (1990)
Une fois le cheat mode activé nous pouvons passer au niveau suivant en appuyant tout simplement sur la touche ESC
Mais je n'avais pas découvert qu'il suffisait d'appuyer sur la touche ESC (Merci Dlfrsilver), j'étais persuadé qu'il fallait appuyer sur E+S+2+3
Simplement l'appui de ces 4 touches engendre deux interférences dont la touche ESC, et nous donne donc E+S+2+3+(ESC)+(TAB) activant le cheat mode par la même occasion.
Bit | Ligne | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
7 | f. | f0 | CTRL | > . |
< , |
ESPACE | V | X | Z | DEL |
6 | ENTER | f2 | ` |
? / |
M | N | B | C | CAPS | |
5 | f3 | f1 | SHIFT | * : |
K | J | F | D | A | Joy 0 Fire 1 |
4 | f6 | f5 | f4 | + ; |
L | H | G | S | TAB | Joy 0 Fire 2 |
3 | f9 | f8 | } ] |
P | I | Y | T | W |
Q |
Joy 0 Right |
2 | ↓ Flèche Bas |
f7 | RETURN | | @ |
O | U | R | E | ESC | Joy 0 Left |
1 | → Flèche Droite |
COPY | { [ |
= - |
) 9 |
' 7 |
% 5 |
# 3 |
" 2 |
Joy 0 Down |
0 | ↑ Flèche Haut |
← Flèche Gauche |
CLR | £ † |
_ 0 |
( 8 |
& 6 |
$ 4 |
! 1 |
Joy 0 Up |
Ici nous pouvons constater que nous avons 2 carrés : S+3+2 qui génére comme interférence la touche TAB et E+3+2 qui génére comme interférence la touche ESC
En espérant que ses quelques explications vous aiderons.
A noter que les interférence avec le clavier sont absente sur le CPC 664 FDD (Floppy Disc Drive, véritable version anglaise) mais présente sur le CPC 664 LDD (Lecteur de disquette, version française avec le clavier anglais).
Merci à PulkoMandy (Pour ses conseils) & Devilmarkus (Pour son émulateur gérant les interférences).
A noter que Caprice Forever gère lui aussi très bien les interférences du clavier.
Kukulcan
Article créé le : | Jeudi 17 Décembre 2009 à 15 h 44 |
Dernière mise à jour le : | Dimanche 26 Aout 2018 à 17 h 46 |