MSX Village forum

La Place des Développeurs [EN COURS] Joe&mac Challenge. scrolling du jeu Joe And Ma.

Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 10/02/2015 à 15h48

Reprise du message précédent

Essaie de positionner les commandes VDP après la commande SCREEN5.


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 10/02/2015 à 17h32
je viens d'essayer, mais ca ne change rien :moue

En attendant de voir si t'arrives à mieux, je continue de corriger quelques pb ;)


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

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 11/02/2015 à 12h01
Bizarre.
J'obtiens un "Disk I/O error" avec ton image disque sur BlueMSX :hum


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 11/02/2015 à 15h20
Metalion :
Bizarre.

J'obtiens un "Disk I/O error" avec ton image disque sur BlueMSX :hum


Bon, ce n'est pas ton image disque, parce que j'ai le même problème avec une autre disquette ... Etrange :hum



Metalion :
Essaie de positionner les commandes VDP après la commande SCREEN5.


Je pense que le problème vient des commandes SET PAGE. Elles redéfinissent les zones SAT et SPT également.

Essaie donc de positionner les commandes VDP après les SET PAGE.

En fait, le plus près possible de ton moteur.


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 12/02/2015 à 11h02
Bien vu Métalion.

Il suffit de placer après SET PAGE pour déplacer les SPRITES.
Je vais donc éliminer toutes les commandes COPY ainsi que le Double Buffering.

Ca ira bien mieux comme ça :top

Par contre, un PUT SPRITE n'affiche plus aucun SPRITE :( Edité par igal Le 12/02/2015 à 11h14


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: 10339

Le 12/02/2015 à 12h33
les sprites sont peut être dans une autre page , a tester avec SET PAGE


:noel
Site web    
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5794

Le 12/02/2015 à 20h39
C'est pas automatiquement dans la page 0 (premier plan) les sprites?



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
z80 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 17/05/2013 à 22h52

Messages: 956

Le 12/02/2015 à 20h44
Y a pas une histoire entre la page affichée et la page de travail?


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,... :\'(
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 12/02/2015 à 20h54
si tu fait un
set page 0,1
puis un put sprite
il n'y aura rien qui s'affiche.
Quand tu fais ton put sprite, ta page active doit être la 0


banniere-ericb59e
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 13/02/2015 à 10h38
igal :
Par contre, un PUT SPRITE n'affiche plus aucun SPRITE :(


C'est normal.



Les commandes VDP ont redéfini les zones SAT et SPT, directement par accès au processeur vidéo. Le BASIC n'est pas au courant de ces modifications. Et donc, il utilise toujours les anciennes adresses (stockées dans la zone des variables système) pour gérer les sprites. Sauf que cela ne fonctionne plus, puisque nous les avons déplacées.



Pour pouvoir continuer à utiliser les sprites en BASIC, il faut mettre à jour ces adresses dans la zone des variables système. Et c'est là que ça se complique. Parce que ces adresses sont codées en 16 bits (2 octets), soit une adresse maxi en VRAM de $FFFF (65535), ce qui est bien en dessous de l'adresse que nous utilisons.



Le MSX BASIC a prévu le cas, en utilisant ces adresses non pas directement, mais de façon relative, à partir de l'adresse de la page active (c'est d'ailleurs ce qui m'a mis la puce à l'oreille sur le rôle de la commande SET PAGE). Mais cela ne nous arrange pas plus, car pour que les zones SAT et SPT puissent être localisés par le BASIC en page 3, il faudrait que la page active soit au minimum la page 2 (pour que le déplacement relatif des zones soit inférieur à 65536).



En résumé, nous nous heurtons ici à une limite du BASIC : il lui est impossible de déplacer la zone des sprites plus de 64Ko au delà de la page active, et de continuer à gérer les sprites par les commandes habituelles.



Pour être constructif, il est quand même possible de gérer des sprites après cette modification, mais tout doit se faire par la commande VPOKE (définition des patterns, des attributs ...).



PS : A noter que le BASIC aurait pu s'affranchir de ces problèmes si il avait autorisé la modification des adresses stratégiques par la commande BASE pour les modes graphiques au dessus de SCREEN 4. Pour une raison que j'ignore, on peut le faire jusqu'au SCREEN 4, mais pas au-delà. A partir de SCREEN 5, ces adresses sont en lecture seule uniquement. Edité par Metalion Le 13/02/2015 à 13h40


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 13/02/2015 à 14h15
Salut Metalion et merci pour ces explications :)

Dans l'absolu, on pourrait mettre les "zones réservées" en page 1.
Cela rendrait alors impossible le projet de faire un scroll à la 3DS.

Avant cela, il me semble avoir appris je ne sais plus où dans le village que les adresses supérieurs à 65535 donc &HFFFF en hexadécimal sont accessibles grâce à une méthode toute simple prévue par Microsoft (il me semble)

Par exemple une adresse située à 65635 doit être écrite 65535 + 100
Ou encore &HFFFF + 100.

Il faut que le complément servant à l'adressage dépassant les 65535 soit en decimal obligatoirement.

Je me trompe peut être, mais il me semble bien que :) Edité par igal Le 13/02/2015 à 14h19


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 13/02/2015 à 14h19
Pour jouer un son PCM stocké à une adresse supérieur à 65535 sur le turbo-R je dois indiqué l'adresse en Décimale.


banniere-ericb59e
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 13/02/2015 à 14h24
On peut aussi atteindre la page 3 non pas en comptant 1+1+1+1+1 plus de 65535 fois...

Mais en comptant 1-1-1-1-1-1-1 quelques centaine de fois pour atteindre la même adresse non!?!?

Par rapport au point d'origine, la zone peut être déplacée de (moins 212 ligne)
Sachant que la zone couvre 44 ligne, il faudrait compter:

(-212) + (-44) ce qui donnerait... point de départ - 256 lignes pour que la zone se retrouve déplacée sur la page 3 de la ligne zéro à la ligne 43.

Bon... c'est juste une idée lol Edité par igal Le 13/02/2015 à 14h35


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

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 13/02/2015 à 15h00
igal :
Il faut que le complément servant à l'adressage dépassant les 65535 soit en decimal obligatoirement.


Non, ça n'a rien à voir avec cette méthode d'adressage (que je ne connaît pas d'ailleurs) et/ou de codage des nombres.



Ici le problème est que la variable réservée en zone de variables fait 2 octets de long.

Elle ne peut donc contenir qu'un nombre entre 0 et 65535.

Ni plus, ni moins.



Mais comme je l'ai dit, rien ne t'empêche de gérer les sprites en utilisant VPOKE. Edité par Metalion Le 13/02/2015 à 15h01


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 14/02/2015 à 17h40
Ok je comprends Métalion.

Le plus simple serait alors de déplacer en page 1.

De la sorte, je pourrais utiliser mes SPRITES sans ajouter de commandes particulières à celles prévues au départ ^^

Dans la pratique, j'utiliserai:
SET PAGE 0 => Back ground Scrollé.
SET PAGE 1 => Sprites Héros + Balises Terre, Fer, Feu.
SET PAGE 2 => Faux Sprites Boss
SET PAGE 3 => Back Ground Supplémentaire pour un scrool court mais très rapide.

Merci de ton aide :)


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: 10339

Le 14/02/2015 à 17h48
quand tu parles de SPRITES tu veux dire "COPY" car il n'y a pas de PUT SPRITES dans ton programme ?


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