MSX Village forum

La Place des Développeurs Final Smash Cette fois c'est le bon !?

Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 04/03/2021 à 17h09

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


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2908

Le 04/03/2021 à 17h27
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 !?!? :hum


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.
Github    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 04/03/2021 à 17h35
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



:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2908

Le 04/03/2021 à 17h42
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.
Github    
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 04/03/2021 à 19h40
OK. Je te laisse avancer. N'hésite pas.


Il faut cultiver notre jardin.
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1503

Le 04/03/2021 à 19h45
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)

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

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2908

Le 04/03/2021 à 20h42
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) ?


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.
Github    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2908

Le 04/03/2021 à 21h34
@GFX, voici une liste des éléments graphiques qui pourrait m’aider.
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. :D


On est toujours ignorant avant de savoir.
Github    
Ricco59 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 02/01/2021 à 11h22

Messages: 248

Le 04/03/2021 à 21h37
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 :top



Tous mes travaux sont centralisés sur mon piti blog : https://ricco59.blogspot.com/
E-mail    
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 04/03/2021 à 21h50
Ahhh j'adore avoir du boulot aussi bien expliqué :p C'est excellent Aoineko !!

Bon je vais faire tout ça dans l'ordre (même si je meurt d'envie de commencer par l'arbitre Pentaru :D)


Il faut cultiver notre jardin.
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2908

Le 04/03/2021 à 21h51
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. :p

Gfx :
Bon je vais faire tout ça dans l'ordre (même si je meurt d'envie de commencer par l'arbitre Pentaru :D)


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... :glass


On est toujours ignorant avant de savoir.
Github    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2908

Le 04/03/2021 à 22h36
O mon dieu, les amis... ça y est !! :top
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. :tchin

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.
Github    
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 04/03/2021 à 23h00
T'es un chef ! :top :top


Il faut cultiver notre jardin.
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 05/03/2021 à 09h43
tu as mis un fichier MP3
il faut faire un clic droit Enregister la cible du lien sous pour l'enregistrer
peux tu corriger svp ;)


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 05/03/2021 à 10h07
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


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2908

Le 05/03/2021 à 10h30
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... :hum


On est toujours ignorant avant de savoir.
Github    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie