La Place des Développeurs Final Smash Cette fois c'est le bon !?
Reprise du message précédent
je ne comprends pas comment tu compte les octets d e la taille de ton terrain et de ton logo ?en screen 2 mode que tu emploie
terrain 49 tiles * 8 = 392 octets pour la Table des Formes et autant pour la Table des Couleurs ce qui donne 784 octets et non 1,5k
logo 106 tiles * 8 = 848 octets pour la Table des Formes et autant pour la Table des Couleurs ce qui donne 1696 octets et non 2,5k
aprés il faut juste copier pour avoir les 3 zones de 256 octets de la Table des Noms identiques
aoineko
Membre non connecté
Conseiller Municipal
JIPEMSX :
je ne comprends pas comment tu compte les octets d e la taille de ton terrain et de ton logo ?
En screen 2 :
- Table de Layout (32 * 24 entrées = 768 octets)
- Table de pattern : 256 * 8 octets = 2048 octets
- Table de couleur : 256 * 8 octets = 2048 octets
Donc dans le pire des cas, une image SC2 fait 4864 octets.
Non ?
L'image terrain fait 1552 octets et celle du logo 2464 octets.
Y a largement moyen de compresser tout ça, je dis pas pas le contraire.
Si tu veux une formule en fonction du nombre de patterns, ça serait : Taille total = 768 + (Patterns * 8 * 2) .
Metalion :
Là il faut que tu m'expliques comment tu fais pour remplir les 32Kb !?!?
Mes sprites utilisent 5 couches de couleurs (2 noirs + 3 couleurs) ; rien que ça ça fait plus de data que pour le screen mode 5.
- Sprite Ball : 120 bytes
- Image Terrain : 1552 bytes
- Image Logo : 2464 bytes
- Ball Logo : 256 bytes
- Sprite Player 1 : 6048 bytes (j'ai 6 images x 5 layers réservés mais non encore utilisés)
- Sprite Player 2 : 6048 bytes (idem)
- Raquette : 128 bytes
- Score : 384 bytes
- Font : 640 bytes
- Music : 1608 bytes
- Table de notes : 96 bytes
- Banque SFX : 1012 bytes (19 sons)
----------------------------------------------
Soit 20538 bytes.
Si on ajoute tous les datas gameplay et le code (y a une grosse librairie en C derrière), ça m'étonne pas qu'on arrive à 32K.
Sur les sprites, un simple RLE0 (blocs de 0 et de non-0) me permettrait surement de diviser leur taille par 2 (ou pas loin).
On est toujours ignorant avant de savoir.
tu n'est pas obligé de remplir toute la table des pattern ni la table des couleurs
tu rempli juste le nombre de tiles dont tu as besoin
tu copie dans les 3 zones
ensuite tu affiche ton pattern dans la table de layout directement
tu rempli juste le nombre de tiles dont tu as besoin
tu copie dans les 3 zones
ensuite tu affiche ton pattern dans la table de layout directement
aoineko
Membre non connecté
Conseiller Municipal
JIPEMSX :
tu n'est pas obligé de remplir toute la table des pattern ni la table des couleurs
C'est ce que je fais.
J'ai ma table de layout complète (768 octets) + uniquement les tuiles utilisés (16 octets par tuiles : 8 pour le pattern et 8 pour les couleurs).
Je pourrais facilement compresser tout ça mais en tout cas j'ai juste ce qu'il faut.
Gfx :
Dis-moi comment je peux t'aider pour avancer, ça pourrait être sympa de prendre une font un peu similaire à celle du logo pour les scores, je vais te faire une proposition, tu me diras...
Attends.
Ce soir je donnerai des pistes si tu veux aider.
On est toujours ignorant avant de savoir.
aoineko :
- Sprite Player 1 : 6048 bytes (j'ai 6 images x 5 layers réservés mais non encore utilisés)
- Sprite Player 2 : 6048 bytes (idem)
- Sprite Player 2 : 6048 bytes (idem)
Ca fait 12096 octets, et donc ... 378 sprites !
Sachant qu'au mieux tu peux en stocker uniquement 128 en VRAM, comment tu vas faire ?
Tu transfère les patterns à la volée (sans jeu de mot) ?
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)
aoineko
Membre non connecté
Conseiller Municipal
Metalion :
Sachant qu'au mieux tu peux en stocker uniquement 128 en VRAM, comment tu vas faire ?
Tu transfère les patterns à la volée (sans jeu de mot) ?
Tu transfère les patterns à la volée (sans jeu de mot) ?
Le jeu tourne déjà sur un MSX1 avec 16K de VRAM (graphiquement, tout est en place).
J'envoie effectivement les datas de sprites à la volée.
J'utiliser un double buffer en VRAM pour la table des patterns de sprite.
Pour que ça rentre dans les 16K en Screen 2, j'utilise 2 demi-tables de 128 entrées.
L'organisation de ma VRAM :
L'organisation de ma table de patterns de sprite :
On est toujours ignorant avant de savoir.
aoineko
Membre non connecté
Conseiller Municipal
@GFX, voici une liste des éléments graphiques qui pourrait m’aider.
La plupart sont optionnels, mais ça améliorerait la qualité du jeu.
Le tir en extension, est un tir spécial que le joueur pourra tenter quand il est un peu top loin de la balle.
Si le joueur appuie 2 fois sur le bouton de tir, son personnage va donner un coup de raquette tout en se déplaçant légèrement à droite ou à gauche (contrairement au tir normal qui se fait sur place).
Visuellement, on doit sentir que le personnage fait un effort pour atteindre une balle sinon hors de portée.
La référence est le saut de Final Match Tennis https://www.youtube.com/watch?v=Fv_hhYSpYys, mais sans que le personnage tombe au sol (au passage, le nom Final Smash, rend hommage à ce grand jeu de la PC-Engine ).
Il nous reste 6 frames utilisables pour chaque personnage, mais pour cette action, j’aimerai qu’on essaye d’en utiliser qu’une seule par direction (droite/gauche). Si ça passe vraiment pas, on verra si on investit un frame de plus.
Pour l’animation, on pourrait réutiliser la frame de début et/ou fin du tir normal en plus de cette nouvelle frame.
Comme pour toutes les frames, les contraintes habituelles s’appliquent (taille 16x24, découpage des couleurs, etc.) et comme c’est un tir, il faut que la main soit au même endroit que pour le tir normal (pour que ça coïncide avec la position de la raquette)
Quand on va marquer un point, le score va s’afficher en sprites au milieu de l’écran.
Tu peut les retoucher pour leur donner un peu plus de style (qq chose dans l’esprit "sport" ou "tv").
A chaque fois l’un des scores de gauche sera associé à l’un des scores de droite (c’est le point du milieu qui assure la liaison). On va commencer par 2 couleurs (1 contour et 1 fond). On verra plus tard pour avoir éventuellement 2 couleurs de fond.
Entre chaque jeu (ou si les joueurs appuis sur F1 pour faire pause), le tableau des scores va rappeler le nombre de jeu pour chaque set.
Il faudrait qu’il soit fait avec les mêmes contraintes que le logo (celles du Screen 2).
L'idée serait qu'il s'affiche en petit au milieu de l'écran (par dessus) le terrain.
Sur le modèle des scores, on pourrait avoir des sprites dans le même style pour les événements suivant :
- Fault
- Double Fault
- Ace
- Out
- Let
- Net
(je crois que c’est tout )
C’est pas prioritaire car on peut très bien afficher ces infos avec la font standard.
Lors des événements (voir ci-dessus), il serait cool d’afficher la tête de l’arbitre comme dans Tennis de la Gameboy.
Le personnage emblématique du MSX étant le pingouin Pentaru, ça pourrait être sympa que ce soit lui l’arbitre.
Ou sinon, un homme/femme rigolo (par ex. avec de grosses lunettes).
Il faudrait qu’il soit fait avec les mêmes contraintes que le logo (celles du Screen 2).
Une seule image serait déjà bien.
Je comptais utiliser la font que j’avais créé pour un autre projet, mais on peut essayer de trouver quelque chose qui correspond mieux à un jeu de tennis.
On pourrait ajouter un arbitre sur sa chaise dans l’image du terrain.
Le gros problème visuellement, c’est que le personnage du haut va toujours s’afficher par-dessus l’arbitre alors qu’il devrait être derrière (les sprites s’affichent toujours devant le décor). Et il est hors de question d’empêcher le joueur du haut de se déplacer jusqu’au bord de l’écran (comme on a pas de scrolling, il a besoin de 100 % de l’écran).
Donc soit on accepte d’avoir un arbitre qui "bug" quand on passe devant, soit on le fait pas.
Si on le fait, il faudrait que ce soit le plus proche possible du bord (pour limiter les cas de "bug").
On pourrait avoir la tête avec 3 positions (haut, milieu, bas) pour donner l’impression qu’il suit le jeu
Cf.
Voilà. Tu as de quoi faire.
La plupart sont optionnels, mais ça améliorerait la qualité du jeu.
1. Ajouter une animation de tir en extension
Le tir en extension, est un tir spécial que le joueur pourra tenter quand il est un peu top loin de la balle.
Si le joueur appuie 2 fois sur le bouton de tir, son personnage va donner un coup de raquette tout en se déplaçant légèrement à droite ou à gauche (contrairement au tir normal qui se fait sur place).
Visuellement, on doit sentir que le personnage fait un effort pour atteindre une balle sinon hors de portée.
La référence est le saut de Final Match Tennis https://www.youtube.com/watch?v=Fv_hhYSpYys, mais sans que le personnage tombe au sol (au passage, le nom Final Smash, rend hommage à ce grand jeu de la PC-Engine ).
Il nous reste 6 frames utilisables pour chaque personnage, mais pour cette action, j’aimerai qu’on essaye d’en utiliser qu’une seule par direction (droite/gauche). Si ça passe vraiment pas, on verra si on investit un frame de plus.
Pour l’animation, on pourrait réutiliser la frame de début et/ou fin du tir normal en plus de cette nouvelle frame.
Comme pour toutes les frames, les contraintes habituelles s’appliquent (taille 16x24, découpage des couleurs, etc.) et comme c’est un tir, il faut que la main soit au même endroit que pour le tir normal (pour que ça coïncide avec la position de la raquette)
2. Retoucher les sprites de scores
Quand on va marquer un point, le score va s’afficher en sprites au milieu de l’écran.
Tu peut les retoucher pour leur donner un peu plus de style (qq chose dans l’esprit "sport" ou "tv").
A chaque fois l’un des scores de gauche sera associé à l’un des scores de droite (c’est le point du milieu qui assure la liaison). On va commencer par 2 couleurs (1 contour et 1 fond). On verra plus tard pour avoir éventuellement 2 couleurs de fond.
3. Tableau de score
Entre chaque jeu (ou si les joueurs appuis sur F1 pour faire pause), le tableau des scores va rappeler le nombre de jeu pour chaque set.
Il faudrait qu’il soit fait avec les mêmes contraintes que le logo (celles du Screen 2).
L'idée serait qu'il s'affiche en petit au milieu de l'écran (par dessus) le terrain.
4. Sprite d’événements
Sur le modèle des scores, on pourrait avoir des sprites dans le même style pour les événements suivant :
- Fault
- Double Fault
- Ace
- Out
- Let
- Net
(je crois que c’est tout )
C’est pas prioritaire car on peut très bien afficher ces infos avec la font standard.
5. Arbitre encart
Lors des événements (voir ci-dessus), il serait cool d’afficher la tête de l’arbitre comme dans Tennis de la Gameboy.
Le personnage emblématique du MSX étant le pingouin Pentaru, ça pourrait être sympa que ce soit lui l’arbitre.
Ou sinon, un homme/femme rigolo (par ex. avec de grosses lunettes).
Il faudrait qu’il soit fait avec les mêmes contraintes que le logo (celles du Screen 2).
Une seule image serait déjà bien.
6. Créer une font original pour le jeu
Je comptais utiliser la font que j’avais créé pour un autre projet, mais on peut essayer de trouver quelque chose qui correspond mieux à un jeu de tennis.
7. Arbitre décor
On pourrait ajouter un arbitre sur sa chaise dans l’image du terrain.
Le gros problème visuellement, c’est que le personnage du haut va toujours s’afficher par-dessus l’arbitre alors qu’il devrait être derrière (les sprites s’affichent toujours devant le décor). Et il est hors de question d’empêcher le joueur du haut de se déplacer jusqu’au bord de l’écran (comme on a pas de scrolling, il a besoin de 100 % de l’écran).
Donc soit on accepte d’avoir un arbitre qui "bug" quand on passe devant, soit on le fait pas.
Si on le fait, il faudrait que ce soit le plus proche possible du bord (pour limiter les cas de "bug").
On pourrait avoir la tête avec 3 positions (haut, milieu, bas) pour donner l’impression qu’il suit le jeu
Cf.
Voilà. Tu as de quoi faire.
On est toujours ignorant avant de savoir.
Bondiou, chut les gars, je me sens déjà tout petit à coté de vous et plus le projet avance, plus je me sens encore plus petit
Bô boulot les gars
Bô boulot les gars
aoineko
Membre non connecté
Conseiller Municipal
Ricco59 :
Bondiou, chut les gars, je me sens déjà tout petit à coté de vous et plus le projet avance, plus je me sens encore plus petit
Y a plein de gens qui seront pas intéressé par un jeu de tennis et qui s'éclateront avec tes jeux de réflexion.
Comme quoi, même dans le monde du MSX, size don't matter.
Gfx :
Bon je vais faire tout ça dans l'ordre (même si je meurt d'envie de commencer par l'arbitre Pentaru )
Après, on est pas au taf. Fait ce qui te fait le plus plaisir.
C'est juste que plus c'est bas dans les prio, plus la probabilité que ça soit pas dans le jeu final pour X ou Y raisons est grande.
Tant que tu t'amuses à le faire, tout va bien.
Et puis, tout me semble faisable pour le moment.
Bon, je vais déjà tâcher de nous libérer 16K de ROM en plus...
On est toujours ignorant avant de savoir.
aoineko
Membre non connecté
Conseiller Municipal
O mon dieu, les amis... ça y est !!
Après tous ces mois de programmation nocturne, j'ai enfin couper les amarres avec le Bios !
J'ai une ROM 48K qui remplace la ROM du Bios (avec mon propre code d'interruption optimisé).
Du coup, nul besoin de switcher des pages à la volée, j'ai la propriété exclusive des 3 premières pages visible par le Z80 (0000h~BFFFh).
Je suis joie.
Bon, ça parlera pas aux non-initiés, mais l'info importante pour le projet Final Smash, c'est qu'on a maintenant 16K de plus à goinfrer de données.
EDIT : Si vous pouviez tester cette version sur de vrais MSX (surtout MSX1, mais aussi MSX2+ et Turbo-R), ça serait génial : fs_0_11.rom
Après tous ces mois de programmation nocturne, j'ai enfin couper les amarres avec le Bios !
J'ai une ROM 48K qui remplace la ROM du Bios (avec mon propre code d'interruption optimisé).
Du coup, nul besoin de switcher des pages à la volée, j'ai la propriété exclusive des 3 premières pages visible par le Z80 (0000h~BFFFh).
Je suis joie.
Bon, ça parlera pas aux non-initiés, mais l'info importante pour le projet Final Smash, c'est qu'on a maintenant 16K de plus à goinfrer de données.
EDIT : Si vous pouviez tester cette version sur de vrais MSX (surtout MSX1, mais aussi MSX2+ et Turbo-R), ça serait génial : fs_0_11.rom
On est toujours ignorant avant de savoir.
j'ai testé sur mon Turbo-R ST 512k avec ODO le seul programme qui fait tourner les rom 48K en ram
il y a un reflet du sprite des cheveux du joueur en haut de l'écran qui change avec les déplacements
je vais essayer de le charger dans une sram de 64K pour voir
il y a un reflet du sprite des cheveux du joueur en haut de l'écran qui change avec les déplacements
je vais essayer de le charger dans une sram de 64K pour voir
aoineko
Membre non connecté
Conseiller Municipal
Merci Jipe.
J'ai testé l'émulateur turbo-R de BlueMSX mais pas les autres (il n'y avait pas de problème visible).
Je resterais ce soir.
Tu as essayé de lancer plusieurs fois ?
C'est p'être un bug qui n'arrive que dans certaines conditions...
J'ai testé l'émulateur turbo-R de BlueMSX mais pas les autres (il n'y avait pas de problème visible).
Je resterais ce soir.
Tu as essayé de lancer plusieurs fois ?
C'est p'être un bug qui n'arrive que dans certaines conditions...
On est toujours ignorant avant de savoir.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie