Shoot ... Again n°21

Par Dominique Pessan


FIREFLASH, encore un classique auquel il manquait la possibilité de jouer avec une manette de jeu. Mais comme tout vient à temps, à qui sait attendre...


L'état des lieux.


Un seul module , situé entre #2000 et #67FF. La gestion du clavier est elle, située en #20CC


La gestion du clavier.


Très semblable à celle de RATSPLAT par exemple. Ici, c'est la case mémoire $07 qui sert "d'image" des touches pressées, suivant la logique suivante:



adresses   col.    touches   effets   bit de $7 valeur de $7



$20D0	 #$FB    <>>        haut	7       #$80

$20BD	 #$F7    <.>        bas	6       #$40

$20E8	 #$FD    <<>        gauche	5       #$20

$20F5	 #$7F    <,>        droite	4       #$10

$21E1	 #$BF    <Esp>      tir	0       #$01

$212B	 #$FE    <P>        pause	1       #$02

$2138	 #$DF    <X>        hyper sp	2       #$04

Les valeurs pour les positions intermédiaires comme "en bas ET à droite" par exemple, sont calculées en faisant un OU logique entre les valeurs bas et droite. Soit #$40 OU #$10 = #$50.

 


La méthode utilisée.


La même que pour RATSPLAT, à savoir remplacement des deux premières instructions du sous programme en $20CC par l'appel de notre routine de lecture de la manette. Méthode qui permet de conserver la gestion du clavier pour, entre autre, la Pause et l'hyper-Espace.

Le calcul des différents OU pour les positions intermédiaires de la manette, nous a conduit à la table de lecture suivante.

 

$6860 : 00 00 00 00 00 90 A0 80
$6868 : 00 50 60 40 00 10 20 00


La marche à suivre.


1 - Entrez le listing suivant

 

10 A=#6800:F=#6870:L=100:REPEAT:FOR A=A TO A+15:READ C$

20 K=VAL("#"+C$):S=S+K+65536*(S+K>65535):IF A<=F THEN POKE A,K

30 NEXT:READ D$:IF S=VAL("#"+D$) THEN L=L+5: UNTIL A>F:END

40 PING:PRINT"Erreur ligne";L


100
DATA 98,48,AD,01,03,48,AD,03,03,48,A9,00,85,07,A9, C0,0572
105
DATA 8D,03,03,A9,40,8D,01,03,AD,01,03,A8,29,20,AA, 98,0A63
110
DATA 4A,29,0C,8D,2B,68,98,29,03,18,69,04,A8,B9,60, 68,0F74
115
DATA 8D,5E,68,E0,20,F0,08,A2,01,8E,5F,68,4C,44,68, A2,1651
120
DATA 00,8E,5F,68,68,8D,03,03,68,8D,01,03,68,A8,AD, 5F,1BB6
125
DATA 68,0D,5E,68,85,07,60,00,00,00,00,00,00,00,00, 00,1DDD
130
DATA 00,00,00,00,00,90,A0,80,00,50,60,40,00,10,20, 00,20AD
135
DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,20AD

 

2 - RUN

3 - FIFLASH ( le nom de votre programme )

4 - POKE#20CC,#20:DOKE#20CD,#6800:POKE#20CF:#EA

10-SAVEU"FIFLASH",A#2000,E#6870,AUTO

La gestion par le clavier est conservée et vous pouvez jouer avec la manette .

Les interférences avec la gestion du son peuvent être pénibles sur ce jeu... Généralement, un petit coup de JS vers l'arrière fait cesser un bruit indésirable.

A bientôt...

 

 


Télécharger  FIRE FLASH ! Download

la page baton de joie   joystick page