MSX Village forum

La Place des Développeurs [EN COURS] Double Buffer Scroll VDP(24) Créer un double buffer hors des zones d'affichage.

igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 29/03/2015 à 18h32
salut à tous.

Toujours la tête dans mon projet Joe&Mac, je suis confronté à un nouveau problème.

Tout au long des jours et selon mes questions, on peut voir des débuts de réponse dans différents sujets mais là, mon problème semble conjuguer plusieurs difficultés techniques.

Pour copier des graphismes sur la zone allant de 212 à 255 de la page [Zéro], on peut appliquer cette simple technique:

COPY (0,0)-(255,43),quelconque TO (0,211+1),Zéro
ce qui aura pour effet de copier un dessin Haut de 44 Pixels sur la


Par contre, lorsque l'on veut utiliser cette technique sur une page autre que la page ZERO, les graphismes ne s'affichent pas avec cette technique :(

Gdx nous à gratifié d'une technique permettant d'afficher des graphismes dans les zones non accessibles des pages autres que la page ZERO.
http://www.msxvillage.fr/forum/topic.php?id=1956#m44958

De mon coté, j'ai essayé d'aborder le problème autrement en essayer la technique suivante:

1) Je BLOAD une image de 256 pixels de long sur 44 Pixels de Haut tel que en décalant l'image de 27136 bytes :

Code TEXT :
 
1070 'Charger image UN [44X256] depuis la ligne Zero vers Zero + 27136 bytes de décalage
1072 BLOAD"00000001.SC5",S,0+27136: COLOR=RESTORE
1074 '
1076 'Entrer dans le repertoire I-1 [Image Un]
1078 CALL CHDIR ("J-1")
1080 '
 



2) Sauver les Bribes de l'images en indiquant qu'elles sont décalées de 27136 Bytes.

Code TEXT :
1090 'Creer repertoires de D a F et y générer 7 bribes hautes de 2 lignes.
1092 'Sauver les bribes lignes Zero vers Zero + 27136 bytes de décalage.
 
1206 CALL CHDIR ("D"): BSAVE"2",128*0+27136,128*2-1+27136,S
1207 BSAVE"3",128*2+27136,128*4-1+27136,S
1208 BSAVE"4",128*4+27136,128*6-1+27136,S
1209 BSAVE"5",128*6+27136,128*8-1+27136,S
1210 BSAVE"6",128*8+27136,128*10-1+27136,S
1211 BSAVE"7",128*10+27136,128*12-1+27136,S:CALL CHDIR ("..")
 
1212 CALL MKDIR ("E"):CALL CHDIR ("E"): BSAVE"0",128*12+27136,128*14-1+27136,S
1213 BSAVE"1",128*14+27136,128*16-1+27136,S
1214 BSAVE"2",128*16+27136,128*18-1+27136,S
1215 BSAVE"3",128*18+27136,128*20-1+27136,S
1216 BSAVE"4",128*20+27136,128*22-1+27136,S
1217 BSAVE"5",128*22+27136,128*24-1+27136,S
1218 BSAVE"6",128*24+27136,128*26-1+27136,S
1219 BSAVE"7",128*26+27136,128*28-1+27136,S:CALL CHDIR ("..")
 
1220 CALL MKDIR ("F"):CALL CHDIR ("F"): BSAVE"0",128*28+27136,128*30-1+27136,S
1221 BSAVE"1",128*30+27136,128*32-1+27136,S
1222 BSAVE"2",128*32+27136,128*34-1+27136,S
1223 BSAVE"3",128*34+27136,128*36-1+27136,S
1224 BSAVE"4",128*36+27136,128*38-1+27136,S
1225 BSAVE"5",128*38+27136,128*40-1+27136,S
1226 BSAVE"6",128*40+27136,128*42-1+27136,S
1227 BSAVE"7",128*42+27136,128*44-1+27136,S:CALL CHDIR ("..")
 
1264 'Revenir a la racine
1265 CALL CHDIR("..")


3) Charger les bribes par un simple BLOAD"BRIBES",S pour qu'elle se place automatiquement sur les lignes 212, 214, 216, 218 etc...jusqu'à la ligne 255 pour un total de 44 ligne affichées automatiquement sur la page Zéro.

Pour afficher des graphismes "Automatiquement" sur les zones 212 à 255 des pages 1, 2 et 3, il faut procéder comme suit:

1) On indique la page de travail ZERO (donc SET PAGE X,0)
SET PAGE 0,0 (par exemple)

2)On charge la bribe créée avec le générateur comme décrit plus haut (+27136 bytes)
Code TEXT :
560 CALL CHDIR ("F")
562 BLOAD"8",S:BLOAD"8",S,0+32768!:GOSUB 900
564 BLOAD"7",S:BLOAD"7",S,0+32768!:GOSUB 900
566 BLOAD"6",S:BLOAD"6",S,0+32768!:GOSUB 900
568 BLOAD"5",S:BLOAD"5",S,0+32768!:GOSUB 900
570 BLOAD"4",S:BLOAD"4",S,0+32768!:GOSUB 900:'zone sprites
572 BLOAD"3",S:BLOAD"3",S,0+32768!:GOSUB 900:'zone sprites
574 BLOAD"2",S:BLOAD"2",S,0+32768!:GOSUB 900
576 BLOAD"1",S:BLOAD"1",S,0+32768!:GOSUB 900:'zone sprites
578 CALL CHDIR ("..")
580 CALL CHDIR ("E")
582 BLOAD"8",S:BLOAD"8",S,0+32768!:GOSUB 900
584 BLOAD"7",S:BLOAD"7",S,0+32768!:GOSUB 900:'zone sprites
586 BLOAD"6",S:BLOAD"6",S,0+32768!:GOSUB 900:'zone sprites
588 BLOAD"5",S:BLOAD"5",S,0+32768!:GOSUB 900:'zone sprites
590 BLOAD"4",S:BLOAD"4",S,0+32768!:GOSUB 900
592 BLOAD"3",S:BLOAD"3",S,0+32768!:GOSUB 900
594 BLOAD"2",S:BLOAD"2",S,0+32768!:GOSUB 900
596 BLOAD"1",S:BLOAD"1",S,0+32768!:GOSUB 900
598 CALL CHDIR ("..")
600 CALL CHDIR ("D")
602 BLOAD"8",S:BLOAD"8",S,0+32768!:GOSUB 900
604 BLOAD"7",S:BLOAD"7",S,0+32768!:GOSUB 900
606 BLOAD"6",S:BLOAD"6",S,0+32768!:GOSUB 900
608 BLOAD"5",S:BLOAD"5",S,0+32768!:GOSUB 900
610 BLOAD"4",S:BLOAD"4",S,0+32768!:GOSUB 900
612 BLOAD"3",S:BLOAD"3",S,0+32768!:GOSUB 900
614 CALL CHDIR (".."):CALL CHDIR (".."):I=I+1:GOTO100


Jusqu'ici tout va bien.
On peut changer de page avec la commande SET PAGE 1,0 pour visualiser que les bribes s'affichent bien sur les zones allant de [212 à 255] de la page 1 :top

Vous aurez remarqué qu'il y a deux BLOAD par ligne sur ce listing.
Il s'agit d'un...
premier BLOAD "X",S qui va afficher sur les zone [212 à 255] de la page ZERO.
Second BLOAD "X",S,0+32768 qui va afficher sur les zone [212 à 255] de la page UN.

voici le listing complet:
Code TEXT :
10 'SAVE"RPLAY33.asc",A
12 'Version 002
14 'PLAYER DE BRIBES VERICALES[(106 X 2) + (22 X 2)]
15 'VDP(5)=4:VDP(12)=3:VDP(6)=49
16 VDP(10)=0:SCREEN 5:COLOR1,1,1:VDP(24)=VDP(24)+212:VDP(9)=VDP(9)OR2
18 C=0:I=0:X=100:Y=100:R=2
30 SET PAGE 0,2:BLOAD"HEROS.SC5",S:COLOR=RESTORE
32 SET PAGE 0,0:'VDP(14)=&H33:VDP(10)=VDP(10) OR 4
100 IF I=0THEN CALL CHDIR ("I-1"):GOTO 200
102 IF I=1THEN CALL CHDIR ("I-2"):GOTO 200
104 IF I=2THEN CALL CHDIR ("I-3"):GOTO 200
106 IF I=3THEN CALL CHDIR ("I-4"):GOTO 200
200 CALL CHDIR ("D"):VB=D
202 BLOAD"2",S:COPY(0,210)-(255,211),0TO(0,210),1:GOSUB900
204 BLOAD"1",S:COPY(0,208)-(255,209),0TO(0,208),1:GOSUB900
206 CALL CHDIR ("..")
300 CALL CHDIR ("C")
302 BLOAD"8",S:COPY(0,206)-(255,207),0TO(0,206),1:GOSUB900
304 BLOAD"7",S:COPY(0,204)-(255,205),0TO(0,204),1:GOSUB900
306 BLOAD"6",S:COPY(0,202)-(255,203),0TO(0,202),1:GOSUB900
308 BLOAD"5",S:COPY(0,200)-(255,201),0TO(0,200),1:GOSUB900
310 BLOAD"4",S:COPY(0,198)-(255,199),0TO(0,198),1:GOSUB900
312 BLOAD"3",S:COPY(0,196)-(255,197),0TO(0,196),1:GOSUB900
314 BLOAD"2",S:COPY(0,194)-(255,195),0TO(0,194),1:GOSUB900
316 BLOAD"1",S:COPY(0,192)-(255,193),0TO(0,192),1:GOSUB900
318 CALL CHDIR ("..")
320 CALL CHDIR ("B")
322 BLOAD"8",S:COPY(0,190)-(255,191),0TO(0,190),1:GOSUB900
324 BLOAD"7",S:COPY(0,188)-(255,189),0TO(0,188),1:GOSUB900
326 BLOAD"6",S:COPY(0,186)-(255,187),0TO(0,186),1:GOSUB900
328 BLOAD"5",S:COPY(0,184)-(255,185),0TO(0,184),1:GOSUB900
330 BLOAD"4",S:COPY(0,182)-(255,183),0TO(0,182),1:GOSUB900
332 BLOAD"3",S:COPY(0,180)-(255,181),0TO(0,180),1:GOSUB900
334 BLOAD"2",S:COPY(0,178)-(255,179),0TO(0,178),1:GOSUB900
336 BLOAD"1",S:COPY(0,176)-(255,177),0TO(0,176),1:GOSUB900
338 CALL CHDIR ("..")
340 CALL CHDIR ("A")
342 BLOAD"8",S:COPY(0,174)-(255,175),0TO(0,174),1:GOSUB900
344 BLOAD"7",S:COPY(0,172)-(255,173),0TO(0,172),1:GOSUB900
346 BLOAD"6",S:COPY(0,170)-(255,171),0TO(0,170),1:GOSUB900
348 BLOAD"5",S:COPY(0,168)-(255,169),0TO(0,168),1:GOSUB900
350 BLOAD"4",S:COPY(0,166)-(255,167),0TO(0,166),1:GOSUB900
352 BLOAD"3",S:COPY(0,164)-(255,165),0TO(0,164),1:GOSUB900
354 BLOAD"2",S:COPY(0,162)-(255,163),0TO(0,162),1:GOSUB900
356 BLOAD"1",S:COPY(0,160)-(255,161),0TO(0,160),1:GOSUB900
358 CALL CHDIR ("..")
360 CALL CHDIR ("9")
362 BLOAD"8",S:COPY(0,158)-(255,159),0TO(0,158),1:GOSUB900
364 BLOAD"7",S:COPY(0,156)-(255,157),0TO(0,156),1:GOSUB900
366 BLOAD"6",S:COPY(0,154)-(255,155),0TO(0,154),1:GOSUB900
368 BLOAD"5",S:COPY(0,152)-(255,153),0TO(0,152),1:GOSUB900
370 BLOAD"4",S:COPY(0,150)-(255,151),0TO(0,150),1:GOSUB900
372 BLOAD"3",S:COPY(0,148)-(255,149),0TO(0,148),1:GOSUB900
374 BLOAD"2",S:COPY(0,146)-(255,147),0TO(0,146),1:GOSUB900
376 BLOAD"1",S:COPY(0,144)-(255,145),0TO(0,144),1:GOSUB900
378 CALL CHDIR ("..")
380 CALL CHDIR ("8")
382 BLOAD"8",S:COPY(0,142)-(255,143),0TO(0,142),1:GOSUB900
384 BLOAD"7",S:COPY(0,140)-(255,141),0TO(0,140),1:GOSUB900
386 BLOAD"6",S:COPY(0,138)-(255,139),0TO(0,138),1:GOSUB900
388 BLOAD"5",S:COPY(0,136)-(255,137),0TO(0,136),1:GOSUB900
390 BLOAD"4",S:COPY(0,134)-(255,135),0TO(0,134),1:GOSUB900
392 BLOAD"3",S:COPY(0,132)-(255,133),0TO(0,132),1:GOSUB900
394 BLOAD"2",S:COPY(0,130)-(255,131),0TO(0,130),1:GOSUB900
396 BLOAD"1",S:COPY(0,128)-(255,129),0TO(0,128),1:GOSUB900
398 CALL CHDIR ("..")
400 CALL CHDIR ("7")
402 BLOAD"8",S:COPY(0,126)-(255,127),0TO(0,126),1:GOSUB900
404 BLOAD"7",S:COPY(0,124)-(255,125),0TO(0,124),1:GOSUB900
406 BLOAD"6",S:COPY(0,122)-(255,123),0TO(0,122),1:GOSUB900
408 BLOAD"5",S:COPY(0,120)-(255,121),0TO(0,120),1:GOSUB900
410 BLOAD"4",S:COPY(0,118)-(255,119),0TO(0,118),1:GOSUB900
412 BLOAD"3",S:COPY(0,116)-(255,117),0TO(0,116),1:GOSUB900
414 BLOAD"2",S:COPY(0,114)-(255,115),0TO(0,114),1:GOSUB900
416 BLOAD"1",S:COPY(0,112)-(255,113),0TO(0,112),1:GOSUB900
418 CALL CHDIR ("..")
420 CALL CHDIR ("6")
422 BLOAD"8",S:COPY(0,110)-(255,111),0TO(0,110),1:GOSUB900
424 BLOAD"7",S:COPY(0,108)-(255,109),0TO(0,108),1:GOSUB900
426 BLOAD"6",S:COPY(0,106)-(255,107),0TO(0,106),1:GOSUB900
428 BLOAD"5",S:COPY(0,104)-(255,105),0TO(0,104),1:GOSUB900
430 BLOAD"4",S:COPY(0,102)-(255,103),0TO(0,102),1:GOSUB900
432 BLOAD"3",S:COPY(0,100)-(255,101),0TO(0,100),1:GOSUB900
434 BLOAD"2",S:COPY(0,98)-(255,99),0TO(0,98),1:GOSUB900
436 BLOAD"1",S:COPY(0,96)-(255,97),0TO(0,96),1:GOSUB900
438 CALL CHDIR ("..")
440 CALL CHDIR ("5")
442 BLOAD"8",S:COPY(0,94)-(255,95),0TO(0,94),1:GOSUB900
444 BLOAD"7",S:COPY(0,92)-(255,93),0TO(0,92),1:GOSUB900
446 BLOAD"6",S:COPY(0,90)-(255,91),0TO(0,90),1:GOSUB900
448 BLOAD"5",S:COPY(0,88)-(255,89),0TO(0,88),1:GOSUB900
450 BLOAD"4",S:COPY(0,86)-(255,87),0TO(0,86),1:GOSUB900
452 BLOAD"3",S:COPY(0,84)-(255,85),0TO(0,84),1:GOSUB900
454 BLOAD"2",S:COPY(0,82)-(255,83),0TO(0,82),1:GOSUB900
456 BLOAD"1",S:COPY(0,80)-(255,81),0TO(0,80),1:GOSUB900
458 CALL CHDIR ("..")
460 CALL CHDIR ("4")
462 BLOAD"8",S:COPY(0,78)-(255,79),0TO(0,78),1:GOSUB900
464 BLOAD"7",S:COPY(0,76)-(255,77),0TO(0,76),1:GOSUB900
466 BLOAD"6",S:COPY(0,74)-(255,75),0TO(0,74),1:GOSUB900
468 BLOAD"5",S:COPY(0,72)-(255,73),0TO(0,72),1:GOSUB900
470 BLOAD"4",S:COPY(0,70)-(255,71),0TO(0,70),1:GOSUB900
472 BLOAD"3",S:COPY(0,68)-(255,69),0TO(0,68),1:GOSUB900
474 BLOAD"2",S:COPY(0,66)-(255,67),0TO(0,66),1:GOSUB900
476 BLOAD"1",S:COPY(0,64)-(255,65),0TO(0,64),1:GOSUB900
478 CALL CHDIR ("..")
480 CALL CHDIR ("3")
482 BLOAD"8",S:COPY(0,62)-(255,63),0TO(0,62),1:GOSUB900
484 BLOAD"7",S:COPY(0,60)-(255,61),0TO(0,60),1:GOSUB900
486 BLOAD"6",S:COPY(0,58)-(255,59),0TO(0,58),1:GOSUB900
488 BLOAD"5",S:COPY(0,56)-(255,57),0TO(0,56),1:GOSUB900
490 BLOAD"4",S:COPY(0,54)-(255,55),0TO(0,54),1:GOSUB900
492 BLOAD"3",S:COPY(0,52)-(255,53),0TO(0,52),1:GOSUB900
494 BLOAD"2",S:COPY(0,50)-(255,51),0TO(0,50),1:GOSUB900
496 BLOAD"1",S:COPY(0,48)-(255,49),0TO(0,48),1:GOSUB900
498 CALL CHDIR ("..")
500 CALL CHDIR ("2")
502 BLOAD"8",S:COPY(0,46)-(255,47),0TO(0,46),1:GOSUB900
504 BLOAD"7",S:COPY(0,44)-(255,45),0TO(0,44),1:GOSUB900
506 BLOAD"6",S:COPY(0,42)-(255,43),0TO(0,42),1:GOSUB900
508 BLOAD"5",S:COPY(0,40)-(255,41),0TO(0,40),1:GOSUB900
510 BLOAD"4",S:COPY(0,38)-(255,39),0TO(0,38),1:GOSUB900
512 BLOAD"3",S:COPY(0,36)-(255,37),0TO(0,36),1:GOSUB900
514 BLOAD"2",S:COPY(0,34)-(255,35),0TO(0,34),1:GOSUB900
516 BLOAD"1",S:COPY(0,32)-(255,33),0TO(0,32),1:GOSUB900
518 CALL CHDIR ("..")
520 CALL CHDIR ("1")
522 BLOAD"8",S:COPY(0,30)-(255,31),0TO(0,30),1:GOSUB900
524 BLOAD"7",S:COPY(0,28)-(255,29),0TO(0,28),1:GOSUB900
526 BLOAD"6",S:COPY(0,26)-(255,27),0TO(0,26),1:GOSUB900
528 BLOAD"5",S:COPY(0,24)-(255,25),0TO(0,24),1:GOSUB900
530 BLOAD"4",S:COPY(0,22)-(255,23),0TO(0,22),1:GOSUB900
532 BLOAD"3",S:COPY(0,20)-(255,21),0TO(0,20),1:GOSUB900
534 BLOAD"2",S:COPY(0,18)-(255,19),0TO(0,18),1:GOSUB900
536 BLOAD"1",S:COPY(0,16)-(255,17),0TO(0,16),1:GOSUB900
538 CALL CHDIR ("..")
540 CALL CHDIR ("0")
542 BLOAD"8",S:COPY(0,14)-(255,15),0TO(0,14),1:GOSUB900
544 BLOAD"7",S:COPY(0,12)-(255,13),0TO(0,12),1:GOSUB900
546 BLOAD"6",S:COPY(0,10)-(255,11),0TO(0,10),1:GOSUB900
548 BLOAD"5",S:COPY(0,8)-(255,9),0TO(0,8),1:GOSUB900
550 BLOAD"4",S:COPY(0,6)-(255,7),0TO(0,6),1:GOSUB900
552 BLOAD"3",S:COPY(0,4)-(255,5),0TO(0,4),1:GOSUB900
554 BLOAD"2",S:COPY(0,2)-(255,3),0TO(0,2),1:GOSUB900
556 BLOAD"1",S:COPY(0,0)-(255,1),0TO(0,0),1:GOSUB900
558 CALL CHDIR ("..")
559 IFI=3THENR=0:GOSUB900:GOTO559
560 CALL CHDIR ("F")
562 BLOAD"8",S:BLOAD"8",S,0+32768!:GOSUB 900
564 BLOAD"7",S:BLOAD"7",S,0+32768!:GOSUB 900
566 BLOAD"6",S:BLOAD"6",S,0+32768!:GOSUB 900
568 BLOAD"5",S:BLOAD"5",S,0+32768!:GOSUB 900
570 BLOAD"4",S:BLOAD"4",S,0+32768!:GOSUB 900:'zone sprites
572 BLOAD"3",S:BLOAD"3",S,0+32768!:GOSUB 900:'zone sprites
574 BLOAD"2",S:BLOAD"2",S,0+32768!:GOSUB 900
576 BLOAD"1",S:BLOAD"1",S,0+32768!:GOSUB 900:'zone sprites
578 CALL CHDIR ("..")
580 CALL CHDIR ("E")
582 BLOAD"8",S:BLOAD"8",S,0+32768!:GOSUB 900
584 BLOAD"7",S:BLOAD"7",S,0+32768!:GOSUB 900:'zone sprites
586 BLOAD"6",S:BLOAD"6",S,0+32768!:GOSUB 900:'zone sprites
588 BLOAD"5",S:BLOAD"5",S,0+32768!:GOSUB 900:'zone sprites
590 BLOAD"4",S:BLOAD"4",S,0+32768!:GOSUB 900
592 BLOAD"3",S:BLOAD"3",S,0+32768!:GOSUB 900
594 BLOAD"2",S:BLOAD"2",S,0+32768!:GOSUB 900
596 BLOAD"1",S:BLOAD"1",S,0+32768!:GOSUB 900
598 CALL CHDIR ("..")
600 CALL CHDIR ("D")
602 BLOAD"8",S:BLOAD"8",S,0+32768!:GOSUB 900
604 BLOAD"7",S:BLOAD"7",S,0+32768!:GOSUB 900
606 BLOAD"6",S:BLOAD"6",S,0+32768!:GOSUB 900
608 BLOAD"5",S:BLOAD"5",S,0+32768!:GOSUB 900
610 BLOAD"4",S:BLOAD"4",S,0+32768!:GOSUB 900
612 BLOAD"3",S:BLOAD"3",S,0+32768!:GOSUB 900
614 CALL CHDIR (".."):CALL CHDIR (".."):I=I+1:GOTO100
699 'TESTE STICK**************
900 S=STICK(0):ONS+1 GOSUB 1000,1100,1200,1300,1400,1500,1600,1700,1800:RETURN
999 SCREEN0:COLOR1,35:PRINT"S=STICK"
1000 'STATIQUE****************
1010 VDP(24)=VDP(24)-RAND255:IFSTRIG(0)THEN1050
1020 COPY(X-20,Y)-(X+39+20,Y+45),1TO(80,100),3
1021 COPY(A,B)-(A+39,B+45),2TO(100,100),3,TPSET
1022 COPY(100-20,100)-(100+39+20,100+45),3TO(X-20,Y),0
1030 RETURN
1050 COPY(X-20,Y)-(X+58+20,Y+45),1TO(80,100),3
1051 COPY(C,D)-(C+58,D+45),2TO(100,100),3,TPSET:C=C+59:IFC=177THENC=0
1052 COPY(100-20,100)-(100+58+20,100+45),3TO(X-20,Y),0
1060 RETURN
1099 SCREEN0:COLOR1,35:PRINT"STATIQUE ECHEC
1100 'SAUT********************
1110 VDP(24)=VDP(24)-RAND255:IFSTRIG(0)THEN1150
1120 Y=Y-64AND255:COPY(A,B)-(A+39,B+45),2TO(X,Y),0,TPSET
1122 COPY(X,Y)-(X+39,Y+45),1TO(X,Y),0
1130 Y=Y+16AND255:COPY(A,B)-(A+39,B+45),2TO(X,Y),0,TPSET
1132 COPY(X,Y)-(X+39,Y+45),1TO(X,Y),0
1140 RETURN
1150 Y=Y-64AND255:COPY(C,D)-(C+58,D+45),2TO(X,Y),0,TPSET:C=C+59:IFC=177THENC=0
1152 COPY(X,Y)-(X+58,Y+45),1TO(X,Y),0
1160 Y=Y+32AND255:COPY(C,D)-(C+58,D+45),2TO(X,Y),0,TPSET:C=C+59:IFC=177THENC=0
1162 COPY(X,Y)-(X+58,Y+45),1TO(X,Y),0
1170 RETURN
1199 SCREEN0:COLOR1,35:PRINT"SAUT ECHEC
1200 'SAUT DROITE**************
1210 VDP(24)=VDP(24)-RAND255:IFSTRIG(0)THEN1250
1220 X=X+32:Y=Y-64:B=0:D=92:COPY(A,B)-(A+39,B+45),2TO(X,Y),0,TPSET:A=(A+40)MOD160
1222 COPY(X,Y)-(X+39,Y+45),1TO(X,Y),0
1230 X=X+32:COPY(A,B)-(A+39,B+45),2TO(X,Y),0,TPSET:A=(A+40)MOD160
1232 COPY(X,Y)-(X+39,Y+45),1TO(X,Y),0
1240 Y=Y+16:COPY(A,B)-(A+39,B+45),2TO(X,Y),0,TPSET:A=(A+40)MOD160
1242 COPY(X,Y)-(X+39,Y+45),1TO(X,Y),0
1245 RETURN
1250 X=X+32:Y=Y-64:B=0:D=92:COPY(C,D)-(C+58,D+45),2TO(X-59,Y),0,TPSET:C=C+59:IFC=177THENC=0
1252 COPY(X,Y)-(X+58,Y+45),1TO(X-59,Y),0
1260 X=X+32:COPY(C,D)-(C+58,D+45),2TO(X-59,Y),0,TPSET:C=C+59:IFC=177THENC=0
1262 COPY(X,Y)-(X+58,Y+45),1TO(X-59,Y),1
1270 Y=Y+16:COPY(C,D)-(C+58,D+45),2TO(X-59,Y),0,TPSET:C=C+59:IFC=177THENC=0
1272 COPY(X,Y)-(X+58,Y+45),1TO(X-59,Y),0
1280 RETURN
1299 SCREEN0:COLOR1,35:PRINT"SAUT DROITE ECHEC
1300 'DROITE******************
1310 VDP(24)=VDP(24)-RAND255:IFSTRIG(0)THEN1350
1320 COPY(X-20,Y)-(X+39,Y+45),1TO(80,100),3
1321 X=X+20:B=0:D=92:COPY(A,B)-(A+39,B+45),2TO(100,100),3,TPSET:A=(A+40)MOD160
1322 COPY(80,100)-(100+39,100+45),3TO(X-40,Y),0
1330 RETURN
1350 COPY(X-20,Y)-(X+58,Y+45),1TO(80,100),3
1351 X=X+20:B=0:D=92:COPY(C,D)-(C+58,D+45),2TO(100,100),3,TPSET:C=C+59:IFC=177THENC=0
1352 COPY(80,100)-(100+58,100+45),3TO(X-40,Y),0
1360 RETURN
1399 SCREEN0:COLOR1,35:PRINT"DROITE ECHEC
1400 'CHUTE DROITE************
1410 VDP(24)=VDP(24)-RAND255:IFSTRIG(0)THEN1350
1420 X=X+32:Y=Y+32:B=0:D=92:COPY(A,B)-(A+39,B+45),2TO(X,Y),0,TPSET:A=(A+40)MOD160
1422 COPY(X,Y)-(X+39,Y+45),1TO(X,Y),0
1430 RETURN
1450 X=X+32:Y=Y+32:B=0:D=92:COPY(C,D)-(C+58,D+45),2TO(X-59,Y),0,TPSET:C=C+59:IFC=177THENC=0
1452 COPY(X,Y)-(X+58,Y+45),1TO(X-59,Y),0
1460 RETURN
1499 SCREEN0:COLOR1,35:PRINT"CHUTE DROITE ECHEC
1500 'CHUTE******************
1510 VDP(24)=VDP(24)-RAND255:IFSTRIG(0)THEN1550
1520 Y=Y+32AND255:B=B:COPY(A,B)-(A+39,B+45),2TO(X,Y),0,TPSET:A=(A+40)MOD160
1522 COPY(X,Y)-(X+39,Y+45),1TO(X,Y),0
1530 RETURN
1550 Y=Y+32AND255:B=B:COPY(C,D)-(C+58,D+45),2TO(X-59,Y),0,TPSET:C=C+59:IFC=177THENC=0
1552 COPY(X,Y)-(X+58,Y+45),1TO(X-59,Y),0
1560 RETURN
1599 SCREEN0:COLOR1,35:PRINT"CHUTE ECHEC
1600 'CHUTE GAUCHE************
1610 VDP(24)=VDP(24)-RAND255:IFSTRIG(0)THEN1650
1620 X=X-32:Y=Y+32:B=46:D=138:COPY(A,B)-(A+39,B+45),2TO(X,Y),0,TPSET:A=(A+40)MOD160
1622 COPY(X,Y)-(X+39,Y+45),1TO(X,Y),0
1630 RETURN
1650 X=X-32:Y=Y+32:B=46:D=138:COPY(C,D)-(C+58,D+45),2TO(X-59,Y),0,TPSET:C=C+59:IFC=177THENC=0
1652 COPY(X,Y)-(X+58,Y+45),1TO(X-59,Y),0
1660 RETURN
1699 SCREEN0:COLOR1,35:PRINT"CHUTE GAUCHE ECHEC
1700 'GAUCHE******************
1710 VDP(24)=VDP(24)-RAND255:IFSTRIG(0)THEN1750
1720 COPY(X,Y)-(X+39+20,Y+45),1TO(100,100),3
1721 X=X-20:B=46:D=138:COPY(A,B)-(A+39,B+45),2TO(100,100),3,TPSET:A=(A+40)MOD160
1722 COPY(100,100)-(100+39+20,100+45),3TO(X+20,Y),0
1730 RETURN
1750 COPY(X,Y)-(X+58+20,Y+45),1TO(100,100),3
1751 X=X-20:B=46:D=138:COPY(C,D)-(C+58,D+45),2TO(100,100),3,TPSET:C=C+59:IFC=177THENC=0
1752 COPY(100,100)-(100+58+20,100+45),3TO(X+20,Y),0
1760 RETURN
1799 SCREEN0:COLOR1,35:PRINT"GAUCHE ECHEC
1800 'SAUT GAUCHE**************
1810 VDP(24)=VDP(24)-RAND255:IFSTRIG(0)THEN1850
1820 X=X-32:Y=Y-64:B=46:D=138:COPY(A,B)-(A+39,B+45),2TO(X,Y),0,TPSET:A=(A+40)MOD160
1822 COPY(X,Y)-(X+39,Y+45),1TO(X,Y),0
1830 X=X-32:COPY(A,B)-(A+39,B+45),2TO(X,Y),0,TPSET:A=(A+40)MOD160
1832 COPY(X,Y)-(X+39,Y+45),1TO(X,Y),0
1840 Y=Y+16:COPY(A,B)-(A+39,B+45),2TO(X,Y),0,TPSET:A=(A+40)MOD160
1842 COPY(X,Y)-(X+39,Y+45),1TO(X,Y),0
1845 RETURN
1850 X=X-32:Y=Y-64:B=46:D=138:COPY(C,D)-(C+58,D+45),2TO(X-59,Y),0,TPSET:C=C+59:IFC=177THENC=0
1852 COPY(X,Y)-(X+58,Y+45),1TO(X-59,Y),0
1860 X=X-32:COPY(C,D)-(C+58,D+45),2TO(X-59,Y),0,TPSET:C=C+59:IFC=177THENC=0
1862 COPY(X,Y)-(X+58,Y+45),1TO(X-59,Y),0
1870 Y=Y+16:COPY(C,D)-(C+58,D+45),2TO(X-59,Y),0,TPSET:C=C+59:IFC=177THENC=0
1872 COPY(X,Y)-(X+58,Y+45),1TO(X-59,Y),0,
1880 RETURN
1899 SCREEN0:COLOR1,35:PRINT"SAUT GAUCHE ECHEC



Mais alors ou est le problème me direz vous?

Le problème est que même si les décors sont chargés de facon cohérente sur la Page 1 qui me sert de Buffer, lorsque je déplace le héro, les décors sont correctement copiés/collés depuis toutes les pages vers toutes les pages SAUF... Sauf lorsque le héro se déplace sur la zone allant des pixels [212 à 255].

Je compte sur les grosses têtes du village pour m'aider à trouver une solution.

La vidéo est en cours de chargement
(Je poste avant de perdre tout ce que j'ai ecrit lol )


Je ne comprends pas pourquoi la Zone [212 à 255] bufférisée en page 1 n'est pas correctement "affichée" comme le reste des décors :hum

Merci de votre aide. Edité par igal Le 03/04/2015 à 19h16


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
z80 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 17/05/2013 à 22h52

Messages: 956

Le 29/03/2015 à 19h46
Tu as des sprites? Si oui, sont-ils en page 1? Ça pourrait expliquer...


TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours) :top
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,... :\'(
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 29/03/2015 à 20h09
Pour le moment, j'utilise aucun SPRITE.

J'utilise la commande VDP(9)=VDP(9)OR2 pour désactiver empêcher leurs affichage.

Métalion m'avait donné une commande pour déplacer les zones de SPRITES sur la PAGE [UN] avec les commandes suivantes:
VDP(5)=4:VDP(12)=3:VDP(6)=49
(ces commandes doivent être placées après le dernier SET PAGE puisque ce même SET PAGE réinitialise toutes les valeurs par défaut y compris les valeurs prédéterminées pour les SPRITES!

Arf...Du coup, peut être que ca vient foutre la merde sur la page UN qui me sert de Buffer :fou
J'avais pas pensé à ca!

Je vais modifier le moteur pour placer le BUFFER en page 2 ou 3 ;)

Je continue à uploader la video... lol


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 29/03/2015 à 20h52
Voici la vidéo:



voici l'image disk contenant tout le nécessaire:
Le programme Basic est RPLAY33.ASC
JOE&MAC 29-03-2015.rar


Nb: Lorsque je parle de problèmes graphiques, je ne parle pas des "résidus" du Héro (j'ai pas terminé de couvrir toutes ses positions par le Buffer de la page 1).

Lorsque je parle de problème graphiques, je parle d'une large bande horizontale qui est [La Zone allant de 212 à 255] qui est bufférisée en page 1 et qui semble ne pas vouloir se "coller" correctement lors des opérations qui consiste à animer le Héro en page 3 :gne

(Z80...vais déplace la page qui sert de buffer :oups )

Merci de votre aide :top Edité par igal Le 29/03/2015 à 23h13


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 30/03/2015 à 07h02
la zone (0,212-(255,255) est innaccessible avec l'instruction copy


banniere-ericb59e
Site web    
z80 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 17/05/2013 à 22h52

Messages: 956

Le 30/03/2015 à 08h29
ericb59 :
la zone (0,212-(255,255) est innaccessible avec l'instruction copy




En BASIC peut-être, mais pas en ssembleur! :)


TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours) :top
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,... :\'(
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 30/03/2015 à 09h58
@Eric: Regarde la vidéo à de la seconde [10 à 30] tu vois défiler les lignes [0 à 211] sur la page UN grâce à la fonction COPY.

De la Seconde [30 à 37], tu vois défiler les lignes [212 à 255] toujours sur la page UN.

Pour atteindre cette Zone en page UN, grace à la commande BLOAD.
j'ai utilisé la méthode suivante:
1) je BLOAD une image de 44Lignes de 256 Pixels dans la zone allant de [212 à 256].
Voici comment => BLOAD"00000001.SC5",S,0+27136: COLOR=RESTORE

2) Je BSAVE cette image en indiquant qu'elle est située en zone [ ,0+27136].
BSAVE"IMAGE.SC5",128*0+27136,128*44-1+27136,S

3) Les Points (1) et (2) suffisent à afficher une image de 44 lignes de haut sur 256 de long [Automatiquement] dans la zone "inaccessible" allant de la ligne [212 à 255] par la commande suivante => BLOAD"IMAGE.SC5",S

Tu peux aussi afficher cette image haute de 44X256 dans la Zone allant des lignes [212 à 256] de la page UN en appliquant ce qui suit:
les points (1) et (2) restent les mêmes.
Le point (3) se présente comme suit:
=> SET PAGE 0,X
=> BLOAD"IMAGE.SC5",S,0+32768!

Cela signifie que tu ES sur la page ZERO.
Tu Charges sur la page ZERO une image qui dans son [Entête] indique qu'elle doit être placée dans la zone que j'appelle [Ligne 212 à 256].
Mais ...Mais... Mais...
Le bouquet final est que tu indique que tu veut afficher cette image 32768 bytes plus loin que la byte ZERO de la page ZERO!

Au final, ton image s'affiche dans la zone [212 à 255] décallée de 256 lignes avec un top départ de la Page ZERO, Pixel ZERO...donc Page UN :fou

Je n'ai pas appliqué la méthode de Gdx, mais si j'ai compris ses explications, on arrive au même résulta en procédant de deux façons différentes :top Edité par igal Le 30/03/2015 à 11h20


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 30/03/2015 à 13h46
Igal, avec Bload tu peux remplir la zone (0,212)-(255,255)
Mais pas avec un Copy


banniere-ericb59e
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 30/03/2015 à 16h49
On peut mon ami :D

C'est Jipe qui m'a sorti ce lapin d'son chapeau :top


http://youtu.be/UXV-3OdZI8c

Code TEXT :
 
10 'DEFUSR=&HD000:A=USR(0):FORP=0TO10:NEXT:POKE&HFD9F,201:SAVE"vdp27.asc",a
20 VDP(10)=(0):WIDTH80:SCREEN5,2:COLOR 15,1,1:SETPAGE0,0:CLS:DEFINTA-Z
30 '
40 '            Chargement ecran des niveaux en page 3
50 '
60 SETPAGE0,3:BLOAD"fondw.sc5",S
70 '
80 '            Chargement ecran des "sprites" en page 2
90 '
100 SETPAGE0,1:BLOAD"winnie.sc5",S
110 COLOR=RESTORE
120 '
130 ' -----------INSERTION DES MUSIQUES ET SONS----------
140 GOTO 1530
150 'DEFUSR=&HD000:A=USR(0):'STOP LA MUSIQUE
160 DEFUSR=&HD000:A=USR(0):POKE&HCFFF,30:A=USR2(0):' MUSIQUE STAGE 6
170 '
180 '            Cr‚ation d'un sprite pour masque en page 0
190 '
200 SETPAGE0,0
210 FORI=&H7800TO&H781F:VPOKEI,255:NEXTI
220 'PUTSPRITE0,(100,100),7,0
230 '
240 '            Initialisation des varibles
250 '
260 V=3
270 C=0:X=100:Y=80:D=52:A=0:N=1:M=0
280 '
290 '              Mise en place d‚cors
300 '
310 GOSUB 1440
320 COPY(0,161)-(255,199),0TO(0,192),0:' Overscan
330 '
340 '              Sprites ennemis statiques
350 '
360 'ONSPRITEGOSUB1090
370 'PUTSPRITE5,(150,100),1,0:PUTSPRITE6,(180,75),1,0:PUTSPRITE7,(180,125),1,0
380 'PUTSPRITE8,(200,150),1,0:PUTSPRITE9,(200,50),1,0:putsprite10,(100,100),1,0
390 'SPRITE ON
400 '
410 '              Boucle du moteur principale
420 '
430 S=STICK(0):ONS+1GOSUB510,570,640,710,770,840,910,980,1040
440 PUTSPRITE0,(X,Y),11,0:PUTSPRITE1,(X,Y),0,0:PUTSPRITE2,(-X,X),9,0
450 PUTSPRITE3,(-X,-Y),15,0:PUTSPRITE4,(-Y,X),8,0:PUTSPRITE5,(VDP(27),X),1,0
460 GOTO 430
470 '
480 '
490 '              SP gestion mouvement: STATIQUE
500 '
510 IFSTRIG(0)THENPOKE&HCFFF,11:A=USR2(0):PUTSPRITE1,(X+50,Y),3,0
520 IFX<1THENX=0:'N=N-1:GOSUB1380
530 VDP(27)=VDP(27)+1AND255:X=X-1:RETURN
540 '
550 '              SP gestion mouvement: HAUT
560 '
570 IFSTRIG(0)THENPOKE&HCFFF,11:A=USR2(0):PUTSPRITE1,(X,Y-50),3,0
580 IFY<-6THENY=-7:VDP(24)=VDP(24)+1
590 IFX<1THENX=0:'N=N-1:GOSUB1380
600 VDP(24)=VDP(24)-1AND255:Y=Y-6:X=X-1:VDP(27)=VDP(27)+1AND255:RETURN
610 '
620 '              SP gestion mouvement: HAUT/DROITE
630 '
640 IFSTRIG(0)THENPOKE&HCFFF,11:A=USR2(0):PUTSPRITE1,(X+50,Y-50),3,0
650 IFY<-6THENY=-7:VDP(24)=VDP(24)+1
660 IFX>200THENX=196:N=N+1:GOSUB1400
670 VDP(24)=VDP(24)-1AND255:Y=Y-6:X=X+4:VDP(27)=VDP(27)+1AND255:RETURN
680 '
690 '              SP gestion mouvement: DROITE
700 '
710 IFSTRIG(0)THENPOKE&HCFFF,11:A=USR2(0):PUTSPRITE1,(X+50,Y),3,0
720 IFX>200THENX=196:N=N+1:GOSUB1400
730 VDP(27)=VDP(27)+1AND255:X=X+4:RETURN
740 '
750 '              SP gestion mouvement: DROITE/BAS
760 '
770 IFSTRIG(0)THENPOKE&HCFFF,11:A=USR2(0):PUTSPRITE1,(X+50,Y+50),3,0
780 IFY>189THENY=190:VDP(24)=VDP(24)-1
790 IFX>200THENX=196:N=N+1:GOSUB1400
800 VDP(24)=VDP(24)+1AND255:Y=Y+6:X=X+4:VDP(27)=VDP(27)+1AND255:RETURN
810 '
820 '              SP gestion mouvement: BAS
830 '
840 IFSTRIG(0)THENPOKE&HCFFF,11:A=USR2(0):PUTSPRITE1,(X,Y+50),3,0
850 IFY>189THENY=190:VDP(24)=VDP(24)-1
860 IFX<1THENX=0:'N=N-1:GOSUB1380
870 VDP(24)=VDP(24)+1AND255:Y=Y+6:X=X-1:VDP(27)=VDP(27)+1AND255:RETURN
880 '
890 '              SP gestion mouvement: BAS/GAUCHE
900 '
910 IFSTRIG(0)THENPOKE&HCFFF,11:A=USR2(0):PUTSPRITE1,(X-50,Y+50),3,0:'THEND=0
920 IFY>189THENY=190:VDP(24)=VDP(24)-1
930 IFX<1THENX=0:'N=N-1:GOSUB1380
940 VDP(24)=VDP(24)+1AND255:Y=Y+6:X=X-4:VDP(27)=VDP(27)+1AND255:RETURN
950 '
960 '              SP gestion mouvement: GAUCHE
970 '
980 IFSTRIG(0)THENPOKE&HCFFF,11:A=USR2(0):PUTSPRITE1,(X-50,Y),3,0:'THEND=0
990 IFX<1THENX=0:'N=N-1:GOSUB1380
1000 VDP(27)=VDP(27)+1AND255:X=X-6:RETURN
1010 '
1020 '              SP gestion mouvement: GAUCHE/HAUT
1030 '
1040 IFSTRIG(0)THENPOKE&HCFFF,11:A=USR2(0):PUTSPRITE1,(X+50,Y+50),3,0:'THEND=0
1050 IFY<-6THENY=-7:VDP(24)=VDP(24)+1
1060 IFX<1THENX=0:'N=N-1:GOSUB1380
1070 VDP(24)=VDP(24)-1AND255:Y=Y-6:X=X-4:VDP(27)=VDP(27)+1AND255:RETURN
1080 '
1090 '                Collisions
1100 '
1110 IF P=10THEN1260  ' si trou -> SP tombe
1120 COPY(X,Y)-(X+34,Y+50),2TO(0,0),3
1130 COPY(D,A)-(D+25,A+37),1TO(4,4),3,TPSET
1140 COPY(0,0)-(34,50),3TO(X,Y),0
1150 POKE&HFD9F,201
1160 PSET(INT((X+15)/16),202+INT((Y+4)/16)),15:B=P*6:F=P*5
1170 COPY(240,191)-(255,206),1TO((INT((X+15)/16))*16,(INT((Y+36)/16))*16),2
1180 COPY(208,P*16-112)-(223,P*16-97),1TO(C*16+32,196),0
1190 POKE&HFD9F,201:POKE&HFDA0,&H6:POKE&HFDA1,&HD0:POKE&HFD9F,&HC3
1200 POKE&HCFFF,82:A=USR2(0)
1210 C=C+1
1220 GOTO 430
1230 '
1240 '              SP chute dans le trou
1250 '
1260 FORI=0TO36STEP2
1270 COPY(X,Y)-(X+34,Y+50),2TO(0,0),3
1280 COPY(D,A)-(D+25,A+37-I),1TO(4,4+I),3,TPSET
1290 COPY(0,0)-(34,50),3TO(X,Y),0
1300 A=A+38:IFA=190THENA=38
1310 B=I+40:POKE&HCFFF,70:A=USR2(0)
1320 IFPLAY(0)=-1THEN1320
1330 NEXT
1340 M=0:N=0
1350 LINE(32,196)-(255,212),1,BF
1360 V=V-1:IFV=0THEN1380
1370 GOTO 270
1380 SCREEN0:PRINT"                GAME OVER
1390 GOTO1390  
1400 '
1410 '              SP Mise en place du d‚cor
1420 '
1430 COPY(0,200)-(15,211),0TO(M*16,200),3
1440 COPY(N*16,200)-(15+N*16,211),3TO(0,200),0
1450 POKE&HCFFF,69:A=USR2(0)
1460 FORI=0TO15:FORJ=0TO11:P=POINT(I,J+200):COPY(P*16,191)-(15+P*16,206),1TO(I*16,J*16),0
1470 NEXTJ:NEXTI
1480 COPY(0,0)-(256,192),0TO(0,0),2
1490 M=N
1500 'BEEP
1510 RETURN
1520 GOTO 1520
1530 '---------DEBUT DE SALAMANDER DEMO MODIFIE----------------
1540 'POKE&HFBB1,1: 'EMPECHE CONTROL+STOP
1550 BLOAD"1.006":DEFUSR4=&HD600:' CHARGE LE PLAYER ?
1560 BLOAD"1.007":U=USR4(1):' CHARGE SONS ET MUSIQUES
1570 BLOAD"1.008":U=USR4(2):' CHARGE SONS ET MUSIQUES
1580 BLOAD"1.009":U=USR4(3):' CHARGE SONS ET MUSIQUES
1590 BLOAD"1.010":U=USR4(4):' CHARGE SONS ET MUSIQUES
1600 BLOAD"1.011":FORT=0TO2000:NEXT
1610 DEFUSR=&HD000:A=USR(0): 'PREREQUIS ARRET LA MUSIQUE
1620 DEFUSR2=&HD003:' PREREQUIS FONCTION INCONNUE
1630 POKE&HFD9F,201
1640 POKE&HFDA0,&H6:POKE&HFDA1,&HD0:POKE&HFD9F,&HC3
1650 ' LISTE COMPLETE DES MUSIQUES ET SONS DANS POKE SALAMANDER
1660 '
1670 DEFUSR=&HD000:A=USR(0):POKE&HCFFF,32:A=USR2(0):' MUSIQUE STAGE 6
1680 'POKE&HCFFF,67:A=USR2(0):' EXPLOSION D'ENNEMI MOYENNE
1690 '
1700 'DEFUSR=&HD000:A=USR(0):FORP=0TO10:NEXT:POKE&HFD9F,201:'PERMET ACCES DISK MAIS ARRETER MUSIQUE AVANT
1710 GOTO 150:' RETOUR A L ANIMATION
1720 '
1730 '---------FIN DE SALAMANDER DEMO MODIFIE-------------------
 


Ce qu'on peut pas faire avec COPY c'est [Copier] vers la zone [211 à 255] d'une page autre que la page ZERO.
Cela explique pourquoi mon Listing contient de COPY sur la quasi totalité des brides devant être affichées sur la Page UN, sauf pour la partie hors Zone de la page UN ou je "répète deux fois" la commande BLOAD ;)

C'est pour trouver une parade à ce problème que j'ai posté le sujet => http://www.msxvillage.fr/forum/topic.php?id=2703

Edit: étonnamment, les SPRITES n'ont pas l'air de souffrir d'avoir des graphismes affichés sur la zone des sprite :fou :fou :fou Edité par igal Le 30/03/2015 à 16h50


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10338

Le 30/03/2015 à 17h14
ça sort plutôt du chapeau de MSXosaure ;)


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 30/03/2015 à 17h47
ha ben ok alors ! :)

j'aurais appris un truc aujourd'hui...
je vais essayer ça... :)


banniere-ericb59e
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 30/03/2015 à 20h43
@z80: je vais réaliser différents générateurs de bribes de sorte à permettre l'affichage sur les zones automatique dans la zone [212 à 256] des pages 1, 2 et 3.

Logiquement, le BLOAD"image",S,0+ 32768 prend toujours comme point de référence le bytes 0 de la page 0 et ce, qu'elle que soit la page affichée ou la page de travail.

Soyons optimiste, ça devrait marcher :)


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 01/04/2015 à 12h45
Bonne nouvelle. Ca marche :top

En fait, il faut impérativement travailler de la façon suivante.

Tout d'abord, pour rappel, On peut atteindre aisément la Zone [212 à 256] de SET PAGE 0 avec la commande COPY:
SET PAGE 0,0
COPY (0,0)-(255,43),0 TO (0,212),0
Applicable sur toutes les pages pourvues que l'on copie dans la même page.

Les Copies Hors Zone peuvent être appliquées d'une page à l'autre pourvu que l'on procède par le binomes suivant:
COPY (0,0)-(255,43),0 TO (0,212),1
ou encore
COPY (0,0)-(255,43),2 TO (0,212),3

a partir de là toutes les combinaisons avec BLOAD sont possibles pourvue que l'on travail encore en respectant ces règles.

Les deux combinaisons suivantes sont possibles pour copier Hors Zone:
Je BLOAD sur la page ZERO et je COPY (hors Zone) en Page 1
Je BLOAD sur la Page DEUX et je COPY (hors Zone) en Page 3

Encore quelques testes et je classe le sujet comme résolu :top

N'hésitez pas à donner votre point de vu sur ces limitations :D


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 01/04/2015 à 13h40
Conclusions: on peut donc utiliser le double buffer avec la technique du vdp (24) pourvu que les COPY vers les hors zones se fasse en respectant les indications qui sont données juste au dessus.

L'affaire est [RESOLU] :)

Dédicacé a turboseb qui a supporté sans broncher mes délires sur le vdp lors de sa visite lol Edité par igal Le 01/04/2015 à 14h20


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10338

Le 01/04/2015 à 14h42
ça parait logique car les pages 0 et 1 sont dans le même bloc de 64K , idem pour page 2 et 3


:noel
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie