La Place des Développeurs "Diddy kong" petit programme basic en screen 8 test: animation du personnage
Reprise du message précédent
la taille disponible est affichée quand on arrive sous basicsans drives on dispose de 28k avec drive ça dépend de la machine de 23k a 25k , avec CTRL a l'INIT on gagne un peu de place
MSXlegend
Membre non connecté
Conseiller Municipal
Y a t il un moyen de calculer l'espace disponible? et/ou a quoi correspond la valeur calculé s en ko (s=222) par sprite 41x41 merci de ton aide
Si je dois faire sauter mon perso, il faut bien que je gratte un peu de place
(La programmation ça me changera des soudures ) Edité par MSXlegend Le 09/10/2012 à 19h19
Si je dois faire sauter mon perso, il faut bien que je gratte un peu de place
(La programmation ça me changera des soudures ) Edité par MSXlegend Le 09/10/2012 à 19h19
Je ne connaissais pas cette méthode de copie de données de la VRAM vers un tableau de variables.
Comme quoi, on peut encore découvrir des choses sur le MSX, 30 ans après !
D'après le guide officiel, le tableau peut être en variable entières, simple précision ou double précision.
Entre ces deux extrêmes, la taille du tableau est divisée par 4 ...
Essaie donc de remplacer ton DIM P(222) par un DIM P!(222), tu devrais ainsi gagner de la place.
Edité par Metalion Le 09/10/2012 à 21h50
Comme quoi, on peut encore découvrir des choses sur le MSX, 30 ans après !
D'après le guide officiel, le tableau peut être en variable entières, simple précision ou double précision.
Entre ces deux extrêmes, la taille du tableau est divisée par 4 ...
Essaie donc de remplacer ton DIM P(222) par un DIM P!(222), tu devrais ainsi gagner de la place.
Edité par Metalion Le 09/10/2012 à 21h50
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)
MSXlegend
Membre non connecté
Conseiller Municipal
MSXlegend
Membre non connecté
Conseiller Municipal
Verdict !!!
J'ai mis clear 3000 et j'ai encore moin de place. J'ai essayé 400,500, etc.. et c'est deja un peu mieux, mais il me manque de quoi mettre 2 pages
J'ai donc essayé de remplacer tous les DIM x(222) par un DIM x!(222). Je n'ai aucun message d'erreur, mais c'est au moment de la copie vers A,B,C, etc.. que j'ai un message d'erreur.
Je suis bloqué!! Jipé, j'aimerais que tu y jette un oeil quand tu pourras, je pense etres passé a coté de quelque chose.... Je te joind le fichier zip qui contient:
-variable.bas
-donkey.sc8
J'ai pris soin de tout detailler dans le programme, mais je sais que tu maitrise déja parfaitement le basic
L'animation a partir des variables fonctionnent très bien, mais il manque 2 anims !!!
http://www.mediafire.com/?27530hdc66zhwhd
Si tu peux me trouver la solution, ce serait Edité par MSXlegend Le 10/10/2012 à 11h44
J'ai mis clear 3000 et j'ai encore moin de place. J'ai essayé 400,500, etc.. et c'est deja un peu mieux, mais il me manque de quoi mettre 2 pages
J'ai donc essayé de remplacer tous les DIM x(222) par un DIM x!(222). Je n'ai aucun message d'erreur, mais c'est au moment de la copie vers A,B,C, etc.. que j'ai un message d'erreur.
Je suis bloqué!! Jipé, j'aimerais que tu y jette un oeil quand tu pourras, je pense etres passé a coté de quelque chose.... Je te joind le fichier zip qui contient:
-variable.bas
-donkey.sc8
J'ai pris soin de tout detailler dans le programme, mais je sais que tu maitrise déja parfaitement le basic
L'animation a partir des variables fonctionnent très bien, mais il manque 2 anims !!!
http://www.mediafire.com/?27530hdc66zhwhd
Si tu peux me trouver la solution, ce serait Edité par MSXlegend Le 10/10/2012 à 11h44
j'ai inséré des lignes print fre(0) dans ton programme
ligne 0 ,105 , 115 , 125 etc
le résultat est que l'on passe de 27145 a 19931 sur la 1ére variable tableau ce qui représente 1792 sauf le 1er tableau
c'est énorme
ligne 0 ,105 , 115 , 125 etc
le résultat est que l'on passe de 27145 a 19931 sur la 1ére variable tableau ce qui représente 1792 sauf le 1er tableau
c'est énorme
MSXlegend :
Y a t il un moyen de calculer l'espace disponible? et/ou a quoi correspond la valeur calculé s en ko (s=222) par sprite 41x41
Ton "sprite" fait 41x41 pixels, soit 1681 pixels. Comme on est en SCREEN8, un pixel est stocké dans un octet.
Donc, chaque sprite nécessite 1681 octets pour être stocké.
La valeur 222 correspond à la taille du tableau nécessaire pour stocker l'image concernée. Puisque que tu définis un tableau en variable double précision (8 octets par valeur), ton tableau fait donc 222 x 8 = 1776 octets. On retrouve donc bien la taille nécessaire (à 80 octets près ...).
Mon idée de passer les tableaux en variables entières était donc fausse. Car si on est en variable entière (2 octets par valeur), il faudrait alors dimensionner le tableau non pas à 222 variables, mais à 888, pour garder la même place en mémoire.
Il est donc normal que tu sois bloqué à 13 sprites, puisque 13 tableaux de 1776 octets prennent 23.088 octets, c'est à dire quasiment toute la mémoire libre pour le BASIC (23.432 octets avec le Disk BASIC).
Tu pourrais passer à 16 sprites si tu te passais du Disk BASIC (appuyer sur SHIFT au démarrage), tu aurais alors 28.815 octets de libre. Mais cela ne te servirai pas à grand chose vu que tu en as besoin ...
Sans changer quelque chose de dimensionnant à ton programme, il n'y a donc pas de solution à ton problème.
Mes propositions :
- Changer la taille de tes personnages : une fois ton programme BASIC chargé, tu regardes l'espace mémoire restant libre par un PRINT FRE(0), et tu divises ce résultat par 15. Cela te donnera la taille maxi en octets (et donc en pixels) de ton personnage.
- Passer ton animation en SCREEN5 : tu auras 4 pages graphiques disponibles, et tes sprites prendront deux fois moins de place en mémoire. Mais avec les limitations du SCREEN5 évidemment ... Edité par Metalion Le 10/10/2012 à 14h25
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)
MSXlegend
Membre non connecté
Conseiller Municipal
J'ai pigé, merci pour toutes ces indications. LA solution reste donc de redimentionner mes sprites. Je comprend mieux grace aux explication que vous m'avez tous donné ...Pourtant mon idée était bonne mais bon
peux t on modifier la memoire destiné au basic par une petite modif hardware ou software
En attendant, je vais tester ctrl et sinon shift au demarrage pour voir. Je vais comparer aussi la place de disponible sur un vrai 2+ pour comparer
C'est quand même dingue que les concepteur du MSX n'avais pas prévu que des dingues comme nous allais faire des truc de ouf sur un MSX2 en 2012 Edité par MSXlegend Le 10/10/2012 à 14h41
peux t on modifier la memoire destiné au basic par une petite modif hardware ou software
En attendant, je vais tester ctrl et sinon shift au demarrage pour voir. Je vais comparer aussi la place de disponible sur un vrai 2+ pour comparer
C'est quand même dingue que les concepteur du MSX n'avais pas prévu que des dingues comme nous allais faire des truc de ouf sur un MSX2 en 2012 Edité par MSXlegend Le 10/10/2012 à 14h41
Cela en devrait pas t'aider des masses, mais en re-faisant le calcul de dimensionnement du tableau, j'arrive à 221 et non pas 222.
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)
Fabf
Membre non connecté
Conseiller Municipal
Tu devrais regarder avec le NestorBasic, il me semble qu'on peut utiliser toute la mémoire
MSXlegend
Membre non connecté
Conseiller Municipal
Metalion :
Cela en devrait pas t'aider des masses, mais en re-faisant le calcul de dimensionnement du tableau, j'arrive à 221 et non pas 222.
oui j'ai remarqué, j'ai aussi calculé 221 (j'ai essayé de réduire au max tu te doute bien )
Fabf :
Tu devrais regarder avec le NestorBasic, il me semble qu'on peut utiliser toute la mémoire
Etant curieux, je vais essayer mais je pense surtout que c'est coté ROM basic que c'est comme ça.
_________________
Quoi qu'il en soit, j'ai trouvé une autre utilité coté variable, du genre pour ça
Edité par MSXlegend Le 10/10/2012 à 17h25
Fabf :
Tu devrais regarder avec le NestorBasic, il me semble qu'on peut utiliser toute la mémoire
Fabf a raison : NestorBASIC est peut être la solution à ton problème.
C'est une extension du BASIC MSX qui permet pas mal de choses, notamment l'accès direct du BASIC à tout l'espace mémoire disponible sur ta machine. Cependant, en pratique, il n'est intéressant que si ton MSX2 possède plus de 64Ko de RAM, car NestorBASIC utilise déjà les 32Ko supplémentaires pour son propre fonctionnement.
Et en bonus, tu as le compilateur intégré, qui te permet d'accélérer l'exécution de ton programme.
Par contre, cela va t'obliger à gérer tes "sprites" différemment, car si j'ai bien compris, NestorBASIC donne accès à toute la RAM disponible, mais indirectement. C'est à dire que tu peux y aller lire et écrire des données, mais pas y placer tes tableaux de variables. En soi, ce n'est pas vraiment un problème, car tu as la facilité d'avoir des fonctions de transfert RAM->VRAM sans passer par les tableaux de données. Mais tu devras stocker tous les sprites d'animation, c'est à dire 26 sprites au lieu de 13.
Si tu as besoin d'un coup de main ...
PS : Bon, je suis tout seul dans un Campanile en banlieue parisienne, je vais me jeter à l'eau avec NestorBASIC, on verra bien. Edité par Metalion Le 10/10/2012 à 18h07
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)
MSXlegend
Membre non connecté
Conseiller Municipal
Merci du coup de pouce
Les variable ne fonctionnent pas avec le xbasic. Pas grave, j'ai tout simplement reduit mes 15 plans a 11. On verra bien
Je me suis gardé 2 place de 41x41 pour les variables au cas ou (pour 2 ou 3 petite anim du genre les bananes qui tourne sur eux même)
verdict ce soir Edité par MSXlegend Le 10/10/2012 à 19h32
Les variable ne fonctionnent pas avec le xbasic. Pas grave, j'ai tout simplement reduit mes 15 plans a 11. On verra bien
Je me suis gardé 2 place de 41x41 pour les variables au cas ou (pour 2 ou 3 petite anim du genre les bananes qui tourne sur eux même)
verdict ce soir Edité par MSXlegend Le 10/10/2012 à 19h32
il reste la solution sc8 to sc5 : s8tos5.zip
cet utilitaire permet d'utiliser la palette et d'optimiser les couleurs
un conseil : il faut mettre une partie du décor et tes sprites personnage et objets sur une seule page screen 8 afin d'avoir la palette la plus adaptée a la totalité des couleurs
ainsi tu pourra disposer des 4 pages du screen 5 et inverser directement ton perso dans une page sans passer par les variables tableaux
cet utilitaire permet d'utiliser la palette et d'optimiser les couleurs
un conseil : il faut mettre une partie du décor et tes sprites personnage et objets sur une seule page screen 8 afin d'avoir la palette la plus adaptée a la totalité des couleurs
ainsi tu pourra disposer des 4 pages du screen 5 et inverser directement ton perso dans une page sans passer par les variables tableaux
MSXlegend
Membre non connecté
Conseiller Municipal
Tien je ne connaissait pas
Je pense que si je dois en faire un mini-jeux et ça va certainement le devenir, je serais obligé de tout simpifier au niveau des couleurs . Le moins evidant ce sera le decors qu'il va falloir convertir en 8 ou 10 couleurs max.Je conserve le code couleur 0, le reste pour le perso et les ennemis. ça va etre chaud bouillant là
Je vais refaire ma demo en screen 8 avec quelques items par ci et par là, et je vais essayer un tableau complet jouable, ça devrait suffir avec mes 4 pages et quelques variables Edité par MSXlegend Le 11/10/2012 à 22h42
Je pense que si je dois en faire un mini-jeux et ça va certainement le devenir, je serais obligé de tout simpifier au niveau des couleurs . Le moins evidant ce sera le decors qu'il va falloir convertir en 8 ou 10 couleurs max.Je conserve le code couleur 0, le reste pour le perso et les ennemis. ça va etre chaud bouillant là
Je vais refaire ma demo en screen 8 avec quelques items par ci et par là, et je vais essayer un tableau complet jouable, ça devrait suffir avec mes 4 pages et quelques variables Edité par MSXlegend Le 11/10/2012 à 22h42
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie