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

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

Tous mes PCB -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
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)

Merci beaucoup Metalion
je vais faire des tests dans la soirée. Si je gagne de la place, je devrais au moins pouvoir en charger une de plus sans le clear (peut etres?)


Tous mes PCB -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter

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

Tous mes PCB -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
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)

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


Tous mes PCB -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
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)

Tu devrais regarder avec le NestorBasic, il me semble qu'on peut utiliser toute la mémoire


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






Tous mes PCB -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
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)

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

verdict ce soir Edité par MSXlegend Le 10/10/2012 à 19h32
Tous mes PCB -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
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

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

Tous mes PCB -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie