La Place des Développeurs Mes 1ers pas sur MSX ...
aoineko
Membre non connecté
Conseiller Municipal
Ricco59 :
Concernant le son en boucle, c'est ce qui me grignote bcp de place, j'ai ptet une idée, je vais plancher dessus ce soir, euh cette nuit hihihi
Pour tes problèmes de place, si tu es bien en Screen 2 comme il me semble, je pourrais te filer un outil de compression/décompression simple à mettre en place et qui fait gagner ~40% de place.
On est toujours ignorant avant de savoir.
Merci Jipe
J'ai fait le même test que toi. Je suis allé voir en 0x2b et ca à l'air correct. Cela dit qd la machine est > msx1, faut-il privilégier r#8 ou lire les infos en 0x2b,0x2c,0x2d suffisent ?
Edit : je viens de faire un test avec 2 instances de bMSX ouvertes et c'est kifkif. Le turbo va un poil plus vite que le msx1. peut etre que la fréquence n'est pas de 60hz mais 59 et des poussières...
Merci Guillaume
Oui, je suis en screen2. Toutes mes données sont déjà passées à la moulinette : Pletter
Pour info, il me reste 8 octets disponibles hihihi
- le son du rayon tracteur est le plus gros souci et j'en ai besoin
Ce son est joué dans la VBL donc il est lu de façon très très courte.
pour y palier, j'ai du faire un test :
if (FlagRT ==1) { JoueSon(Rayon_tracteur, 0); FlagRT = 0;} de ce fait le son est joué dans sa totalité
je pense qui si je teste la durée du son...
DureeRT = 0;
if (DureeRT < 5/50) { JoueSon(Rayon_tracteur, 0); DureeRT++;} else { DureeRT =0; }
... il sera joué en boucle jusqu'à ce qu'il y ait un autre son ou un Mute
J'men v essayer
Si ca marche je joue un son en boucle et je gagne 631-45 = ~580octets ce qui est suffisant pour ce que je veux faire
A+ les Zamis et stay tuned Edité par Ricco59 Le 15/04/2021 à 21h36
J'ai fait le même test que toi. Je suis allé voir en 0x2b et ca à l'air correct. Cela dit qd la machine est > msx1, faut-il privilégier r#8 ou lire les infos en 0x2b,0x2c,0x2d suffisent ?
Edit : je viens de faire un test avec 2 instances de bMSX ouvertes et c'est kifkif. Le turbo va un poil plus vite que le msx1. peut etre que la fréquence n'est pas de 60hz mais 59 et des poussières...
Merci Guillaume
Oui, je suis en screen2. Toutes mes données sont déjà passées à la moulinette : Pletter
Pour info, il me reste 8 octets disponibles hihihi
- le son du rayon tracteur est le plus gros souci et j'en ai besoin
Ce son est joué dans la VBL donc il est lu de façon très très courte.
pour y palier, j'ai du faire un test :
if (FlagRT ==1) { JoueSon(Rayon_tracteur, 0); FlagRT = 0;} de ce fait le son est joué dans sa totalité
je pense qui si je teste la durée du son...
DureeRT = 0;
if (DureeRT < 5/50) { JoueSon(Rayon_tracteur, 0); DureeRT++;} else { DureeRT =0; }
... il sera joué en boucle jusqu'à ce qu'il y ait un autre son ou un Mute
J'men v essayer
Si ca marche je joue un son en boucle et je gagne 631-45 = ~580octets ce qui est suffisant pour ce que je veux faire
A+ les Zamis et stay tuned Edité par Ricco59 Le 15/04/2021 à 21h36
Re
Ca y est, j'ai mon son qui boucle. Il ne me reste plus qu'à l'implémenter
if (DureeRT < 12) { DureeRT++; } else {ayFX_Play(RTracteur); DureeRT = 0; }
Yapuka
Ca y est, j'ai mon son qui boucle. Il ne me reste plus qu'à l'implémenter
if (DureeRT < 12) { DureeRT++; } else {ayFX_Play(RTracteur); DureeRT = 0; }
Yapuka
aoineko
Membre non connecté
Conseiller Municipal
Tu sais quel algo de compression utilise Pletter ?
J'imagine que tu as déjà testé l'option pour optimiser la taille du binaire dans SDCC ? Perso, ça me fait gagner 1 Ko.
J'imagine que tu as déjà testé l'option pour optimiser la taille du binaire dans SDCC ? Perso, ça me fait gagner 1 Ko.
On est toujours ignorant avant de savoir.
yo
Je pense que pletter est une version 'améliorée' de bitbuster. A confirmer...
Alors non, je n'ai pas testé l'option d'optimisation pour la taille du binaire car j'ai lu il y a quelques semaines que peep hole pouvait alterer le code asm inline.
J'essaierai surement pour un autre projet, ca serait dommage que cette option me mette le dawa dans le code
Actuellement j'en suis à ~32500octets. Il ne me reste qu'à initialiser les variables en fonction de la frequence et revoir une tite bricole et GAME OVER until next
As-tu resolu ton souci de slot / sous-slot... ?
Je te tiens au jus pour Wii?
A+ et merci encore
Je pense que pletter est une version 'améliorée' de bitbuster. A confirmer...
Alors non, je n'ai pas testé l'option d'optimisation pour la taille du binaire car j'ai lu il y a quelques semaines que peep hole pouvait alterer le code asm inline.
J'essaierai surement pour un autre projet, ca serait dommage que cette option me mette le dawa dans le code
Actuellement j'en suis à ~32500octets. Il ne me reste qu'à initialiser les variables en fonction de la frequence et revoir une tite bricole et GAME OVER until next
As-tu resolu ton souci de slot / sous-slot... ?
Je te tiens au jus pour Wii?
A+ et merci encore
aoineko
Membre non connecté
Conseiller Municipal
J'ai beaucoup beaucoup de code (et beaucoup de code inline), et pourtant l'optimisation de taille de code n'a posé aucun soucis.
Perso, si je l'active pas pour le moment, c'est surtout car j'ai besoin d'un maximum de performance coté Z80 (j'ai beaucoup de traitement à faire le temps d'une frame).
J'ai modifié mon crt0 pour que le jeu puisse démarrer depuis un sous-slot ; par contre, j'ai toujours un soucis avec la MegaFlashROM SCC+ SD si tu flash le jeu sans l'option /U.
Et ça, j'ai aucune idée d'où ça vient.
Perso, si je l'active pas pour le moment, c'est surtout car j'ai besoin d'un maximum de performance coté Z80 (j'ai beaucoup de traitement à faire le temps d'une frame).
J'ai modifié mon crt0 pour que le jeu puisse démarrer depuis un sous-slot ; par contre, j'ai toujours un soucis avec la MegaFlashROM SCC+ SD si tu flash le jeu sans l'option /U.
Et ça, j'ai aucune idée d'où ça vient.
On est toujours ignorant avant de savoir.
aoineko
Membre non connecté
Conseiller Municipal
Par curiosité, j'ai été regardé comment fonctionne Pletter (https://github.com/nanochess/Pletter).
C'est un algorithme généraliste de type LZ77 qui travail directement sur les bits.
J'ai testé ses taux de compression sur 3 images de Final Smash.
Il a un très bon taux de compression, mais son aspect généraliste fait qu'il n'est pas toujours aussi puissant que mon algo spécialisé pour le Screen 2/4 (RLE-P).
Le code de décompression de mon algo est tout petit, rapide et ne nécessite aucune RAM (je décompresse directement dans la VRAM).
Du coup, si a un moment tu es à court de place, ça pourrait valoir le coup d'y jeter un œil.
Si tu veux, tu peux m'envoyer des images, je les passerais à la moulinette pour te dire combien tu pourrais y gagner.
C'est un algorithme généraliste de type LZ77 qui travail directement sur les bits.
J'ai testé ses taux de compression sur 3 images de Final Smash.
Il a un très bon taux de compression, mais son aspect généraliste fait qu'il n'est pas toujours aussi puissant que mon algo spécialisé pour le Screen 2/4 (RLE-P).
Image | Original | Pletter | RLE-P |
Court | 14343 | 908 | 882 |
Logo | 14343 | 1285 | 1443 |
Score | 14343 | 1061 | 935 |
Le code de décompression de mon algo est tout petit, rapide et ne nécessite aucune RAM (je décompresse directement dans la VRAM).
Du coup, si a un moment tu es à court de place, ça pourrait valoir le coup d'y jeter un œil.
Si tu veux, tu peux m'envoyer des images, je les passerais à la moulinette pour te dire combien tu pourrais y gagner.
On est toujours ignorant avant de savoir.
C'est pas mal du tout, à part l'écran titre mais c'est du très bon boulot. Au total PLETTER fait 3254octets et RLE-P fait 3260 soit un poil plus.
Ceci dit avec ta routine qui est plus petite et la vitesse de dcompression qui doit etre > à celle de pletter, on reste gagnant
Alors pour Where is it ?.... c'est fini il me reste 102 octets
Cela dit, j'ai un autre projet pratiquement fini sur Colecovision que je désire mettre en route, c'est un autre puzzle game
Je reviendrai pour ta routine de compression, décompression à ce moment là
Edité par Ricco59 Le 19/04/2021 à 16h34
Ceci dit avec ta routine qui est plus petite et la vitesse de dcompression qui doit etre > à celle de pletter, on reste gagnant
Alors pour Where is it ?.... c'est fini il me reste 102 octets
Cela dit, j'ai un autre projet pratiquement fini sur Colecovision que je désire mettre en route, c'est un autre puzzle game
Je reviendrai pour ta routine de compression, décompression à ce moment là
Edité par Ricco59 Le 19/04/2021 à 16h34
yes
Mais, j'ai encore envie de modifier un pti truc (ou pas) :
lorsque le joueur trouve la bonne pattern, avant il y avait un gros flash vert. Maintenant le curseur passe au vert et revient dans sa couleur d'origine. Je pense que je vais une petite animation genre quand la solution apparaît pour que cela soit plus visible.
edit ; après réflexions, je me suis dit que le joueur pensera peut être qu'il n'avait plus de temps et que c'est la solution qui apparaît à lui. De plus, il faut savoir dire STOP. Je m'arrête là (a moins d'un bug venu du fin fond de l'espace) Edité par Ricco59 Le 19/04/2021 à 20h05
Mais, j'ai encore envie de modifier un pti truc (ou pas) :
lorsque le joueur trouve la bonne pattern, avant il y avait un gros flash vert. Maintenant le curseur passe au vert et revient dans sa couleur d'origine. Je pense que je vais une petite animation genre quand la solution apparaît pour que cela soit plus visible.
edit ; après réflexions, je me suis dit que le joueur pensera peut être qu'il n'avait plus de temps et que c'est la solution qui apparaît à lui. De plus, il faut savoir dire STOP. Je m'arrête là (a moins d'un bug venu du fin fond de l'espace) Edité par Ricco59 Le 19/04/2021 à 20h05
Bon, bin ca y est, j'ai sauté le pas : j'ai tout balancé pour la MSXDEV'21 et j'ai reçu un retour par mail. c'est parti
Yesss
ton tour arrivera bientôt
ton tour arrivera bientôt
Ca y est, Where is it ? est sur msxdev.org
C'est chouette et c'est grace à vous Edité par Ricco59 Le 06/05/2021 à 23h38
C'est chouette et c'est grace à vous Edité par Ricco59 Le 06/05/2021 à 23h38
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie