MSX Village forum

La Place des Développeurs les "sprites" par copy en screen 8

Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10358

Le 13/01/2016 à 13h27
je ressort un programme de MSXosaure sur les animations en screen 8 par COPY

pour voir la face cachée il suffit de changer la ligne 15 en SET PAGE 1.0:CLS

gods.zip

ça ouvre plus de possibilités que les sprites même superposés qui vont clignoter en basic ;)


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 13/01/2016 à 17h34
Vaut mieux remplacer par set Page 1,1
Sinon on ne comprend pas trop ce qui se passe !

oui je vois comment il a fait... Tout ses éléments de fond sont sur sa page 1.
Toute fois, la zone utilisable pour déplacer son sprite en page 0 est limitée à sa capacité de stockage d'un décors fixe en page 1.


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10358

Le 13/01/2016 à 18h09
avec des vrais sprites la taille est de 32x32 max et il en faut 3 pour avoir plusieurs couleurs

donc si on se limite a des copy de 32x32 on a directement 256 couleurs et c'est rapide

256/32=8 emplacements de sprites sur une largeur de l'écran pour y animer 8 sprites

reste 160 pixels de haut 160 / 32 = 5 , 5 x 8 = 40 cases pour les animations des persos ou vaisseaux


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 13/01/2016 à 18h13
Jipe :


256/32=8 emplacements de sprites sur une largeur de l'écran pour y animer 8 sprites



reste 160 pixels de haut 160 / 32 = 5 , 5 x 8 = 40 cases pour les animations des persos ou vaisseaux




Oui, si on suppose que ton Sprite n'évolue que sur une bande horizontale de 32 pixels de haut Edité par ericb59 Le 13/01/2016 à 18h13


banniere-ericb59e
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 13/01/2016 à 18h35
J'avais pas mal réfléchi à la solution des Faux Sprites mais ça oblige à descendre en SCREEN5 sans quoi, y a pas assez de pages pour:

Page Visible 0 => Décors originaux ET [Faux sprites résultants de la page 3]
Page invisible 1=> Décors originaux [Alimente la page 3 en Décors non altérés]
Page invisible 2=> Faux Sprites [Alimente la page 3 en Faux Sprites]
Page invisible 3 => Décors de la page 1 et faux sprites de la page 2 s'empilent et clignotent sur cette page]

2 problèmes se posent:
1) Trop d'opérations COPY sont nécessaires pour permettre d'exploiter cette solution (testé avec Caveman Ninja)
2) Cette méthode OBLIGE à travailler en SCREEN5 :(

La meilleur solution serait d'alimenter la zone de sprites avec de nouveaux vrais sprites renouvelés autant que nécessaire selon les besoins du jeu.

@Eric: Tu as dit expérimenté une solution par BSAVE/COPY des zones de Sprites une fois "préchargées" par des DATAS.

Un outils qui systématiserait la création des Sprites avec ta méthode devrait être une bonne solution :gne Edité par igal Le 13/01/2016 à 18h35


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/01/2016 à 18h38
Avec l'utilisation de NestorBasic, on peut stocker en RAM des pages graphiques de 16K (soit 64 lignes en screen8).
On peut transférer ces graphismes de la RAM vers la VRAM en page 1, par exemple rapidement (beaucoup plus rapide qu'un copy) et ainsi avoir une multitude de fond accessibles...


banniere-ericb59e
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1488

Le 14/01/2016 à 10h36
Jipe :
avec des vrais sprites la taille est de 32x32 max et il en faut 3 pour avoir plusieurs couleurs


Ce n'est pas tout à fait vrai.



D'abord chaque ligne de sprite peut avoir sa propre couleur, donc c'est déjà 16 couleurs par sprites, mais je suppose que tu voulais parler du nombre de couleurs par ligne. Il suffit de 2 sprites superposés pour avoir 3 couleurs différentes par ligne (celle du sprite 1, celle du sprite 2, et la couleur obtenue par combinaison).



igal :
J'avais pas mal réfléchi à la solution des Faux Sprites mais ça oblige à descendre en SCREEN5


Ce n'est pas pour rien que la majorité des jeux sur MSX2 sont en SCREEN5. Ce mode graphique est un très bon compromis entre les contraintes de tailles et les possibilités du VDP. Et effectivement, il laisse 4 pages de disponible pour stocker tout ce qui est nécessaire.



Personnellement, je trouve que c'est un excellent mode graphique, les autres étant soit trop limités (SCREEN6) ou trop volumineux (SCREEN7 et 8).


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)
   
z80 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 17/05/2013 à 22h52

Messages: 956

Le 15/01/2016 à 20h17
igal :
La meilleur solution serait d'alimenter la zone de sprites avec de nouveaux vrais sprites renouvelés autant que nécessaire selon les besoins du jeu.



@Eric: Tu as dit expérimenté une solution par BSAVE/COPY des zones de Sprites une fois "préchargées" par des DATAS.



Un outils qui systématiserait la création des Sprites avec ta méthode devrait être une bonne solution :gne




Espionez ce qui se passe dans M-Kid et vous aurez un exemple du fonctionnement préconisé par l'ami Igal.

;)

Je dois admettre être plutôt fier de cette routine d'animation :)


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

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1488

Le 16/01/2016 à 10h37
igal :
@Eric: Tu as dit expérimenté une solution par BSAVE/COPY des zones de Sprites une fois "préchargées" par des DATAS.


C'est pas très compliqué.

Il suffit de charger normalement les sprites, et puis de faire un BSAVE,S de la zone complète des sprites.

Ensuite, quand on en a besoin, un BLOAD,S va venir recharger toute la zone.

C'est tout.


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 16/01/2016 à 10h41
@Z80: Si je fais un VDP(24)=VDP(24)+44 et que je lance M-KID par (Run"Autoexec.bas) ou encore (POKE &hf346,1:CAL SYSTEM) on devrait voir la "métamorphose" de tes Sprites en temps réel?

J'essaierai ça dès demain et si ca le fait, je posterai une tite vidéo :D


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

Le 16/01/2016 à 13h58
pour aider igal car M-KID se lance sous DOS

il faut utiliser BlueMSX

arrivé sur l'écran jeu de M-KID faire PAUSE || dans BlueMSX

aller dans Outils /Debogeur

ensuite aller dans le Debugger et ouvrir la fenêtre Peripheral Registers si elle n'est pas a l'écran ( pour cela cliquer Window )

dans cette fenêtre afficher 5 : VDP V9958 - registers

chercher le R23 qui est le registre 24 en Basic

si on est en pause || en cliquant sur la valeur 00 on peut la modifier , mettre 30

revenir dans la fenêtre BlueMSX et lancer le Jeu par le triangle play >

observer


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 16/01/2016 à 15h30
Merci Jipe.

Ta technique fonctionne très bien.

Effectivement, on y voit la modification de 3 ligne qui semblent bien être le Héro ainsi qu'un clignotement rapide de quelques pixels lorsque le héro n'est pas statique.

L'idée de coller des bribes "préenregistrées" correspondant à l'état graphique du héro peut etre très interessant mais ca demande une méthode et quelques outils pour préparer ça en amont.

@Z80: les décors sont très net pour du SCREEN10/11/12. t'a utilisé un logiciel de dessin sur MSX pour créer les décors sans bavures?

Par exemple, le bords des pyramides jaune tranche très bien avec le ciel bleu sans déborder l'un sur l'autre :top


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

Le 16/01/2016 à 15h50
le secret de M-Kid c'est du screen11
un utilitaire maison a été développé spécialement pour SCREEN 11 DESIGNER


:noel
Site web    
z80 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 17/05/2013 à 22h52

Messages: 956

Le 16/01/2016 à 18h52
Pour répondre à Igal. Oui comme l'a dit Jipe, j'ai développé SCREEN11 DESIGNER pour que les graphiste du jeux et tous ceux qui désiraient utiliser le mode SCREEN11 /10.
Pour les sprites ils étaient dessinés en SCREEN 5. et un simple programme en BASIC, créait un fichier texte avec des datas pour le code assembleur.
Je pourrais essayer de retrouver le code assembleur si vous voulez


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 16/01/2016 à 19h10
z80 :
Pour répondre à Igal. Oui comme l'a dit Jipe, j'ai développé SCREEN11 DESIGNER pour que les graphiste du jeux et tous ceux qui désiraient utiliser le mode SCREEN11 /10.

Pour les sprites ils étaient dessinés en SCREEN 5. et un simple programme en BASIC, créait un fichier texte avec des datas pour le code assembleur.

Je pourrais essayer de retrouver le code assembleur si vous voulez




Ah Voui :noel :noel :noel


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie