MSX Village forum

La Place des Développeurs MSXgl MSX Game Library

aoineko Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2308

Le 20/01/2022 à 10h10

Reprise du message précédent

RibbSayan :
Pour ma part, ça serait un jeu plateforme style valis 2 en screen 4 avec scrolling fluide et musiques SCC...
Et depuis ce matin, avec la demo que tu viens de mettre en ligne. J'ai des étoiles pleins les yeux.


Par contre, faudrait que je trouve un format qui support le SCC car avec le VGM (qui n'est qu'un log des accès aux registres) les musiques SCC sont énormes.
Je vais regarder du coté de TriloTracker, qui me semble être le plus utilisé récemment.


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

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 353

Le 20/01/2022 à 10h47
@aoineko géniale cette musique de Dragon slayer 4, j'avais acheté le jeu lorsque j'avais 13 ans et j'ai passé des heures dessus... d'autant que la version était japonnaise. Souvenirs, souvenirs...


Il faut cultiver notre jardin.
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1451

Le 20/01/2022 à 11h06
aoineko :
Par contre, faudrait que je trouve un format qui support le SCC car avec le VGM (qui n'est qu'un log des accès aux registres) les musiques SCC sont énormes

C'est le gros problème du format VGM. Il est précis et fidèle, mais comme c'est juste un dump des registres, les tailles sont justes incompatibles avec un jeu, par exemple. Edité par Metalion Le 20/01/2022 à 11h06


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é

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2308

Le 20/01/2022 à 16h35
Metalion :
C'est le gros problème du format VGM. Il est précis et fidèle, mais comme c'est juste un dump des registres, les tailles sont justes incompatibles avec un jeu, par exemple.


Ma version VGM "light" pour le AY-3-8910 a une taille compatible avec un jeu MegaROM et me semble même une option tout à fait justifiable vu la légèreté de son replayer.
Pour le SCC, ça semble plus compliqué d'en faire une version vraiment compact (surtout à cause des wave-tables), mais ça se tente. :)


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2308

Le 21/01/2022 à 10h07
J'ai fait une version light de VGM qui inclus les infos du SCC, mais même si j'ai des réductions de l'ordre de 63%, la par contre, on reste sur des tailles qui ne sont pas viables pour un jeu (plusieurs dizaine de KB).
Du coup, je vais garder que la version light pour PSG (ayVGM).


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2308

Le 25/01/2022 à 18h14
Après le SCC, MSXgl support maintenant le MSX-Music (YM2413) !
On peut accéder directement au YM2413 et le format VGM supporte maintenant cette puce sonore.
J'ai mis à jour le sample VGM avec une musique de Undeadline qui n'utilise que le MSX-Music (pas de PSG).
C'est la 6e musique : https://webmsx.org/?MACHINE=MSXTR&ROM=https://github.com/aoineko-fr/MSXgl/raw/main/projects/samples/emul/rom/s_vgm.rom&CARTRIDGE1_FORMAT=ASCII16&PRESETS=SCC2


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

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 353

Le 25/01/2022 à 20h01
@aoineko j'ai préparé une carte électronique avec un YM2413 en version ultra light à greffer en interne. J'ai ajouté des réglages pour les aigus, grave et le volume. Je vais faite un test et si ça marche je te ferai signe si tu veux en installer une dans ton MSX.


Il faut cultiver notre jardin.
   
aoineko Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2308

Le 25/01/2022 à 20h49
Gfx :
@aoineko j'ai préparé une carte électronique avec un YM2413 en version ultra light à greffer en interne. J'ai ajouté des réglages pour les aigus, grave et le volume. Je vais faite un test et si ça marche je te ferai signe si tu veux en installer une dans ton MSX.


Ah oui, ça serait super ! :top
Tiens nous au courant de tes avancées.


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

Villageois

Rang

Avatar

Inscrit le : 02/01/2021 à 11h22

Messages: 246

Le 25/01/2022 à 21h00
MSX-Music, c chouette ça
le YM2413, c'est le chip sonore que l'on peut mettre dans une mastersystem pour avoir le son FM ??

Quel Talent ce Gfx ;)


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2308

Le 25/01/2022 à 21h20
Ricco59 :
le YM2413, c'est le chip sonore que l'on peut mettre dans une mastersystem pour avoir le son FM ??


Toutafé. :)

Et comme y a qu'un seul instrument custom (les autres sont "build-in" dans une ROM), ça génère que peu de donnée.
C'est une super puce sonore pour un jeu 8-bits je trouve.
Et quand on voit ce que Falcom en a fait dans Dragon Slayer VI par ex., je me dis qu'elle mérite plus de reconnaissance (le YM2413 est souvent critiqué pour ses faibles capacités).


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

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 353

Le 28/01/2022 à 23h00
Hello @aoineko,
je tente quelques trucs avec ta super librairie et je me demandais quelle serait la meilleure méthode pour découper les sprites de mon petit personnage avec CMSXimg :



j'ai essayé ça mais je crois que je n'ai pas compris comment fonctionnent les layers... :(
cmd :
CMSXimg.exe animations.png -out animations.h -name g_Data -mode sprt -size 8 8 -skip -num 8 12 -trans 0x060606 -pal msx1 -bpc 1 -l i8 0 0 1 1 0xded087 8 0 1 1 0xb766b5 0 8 2 1 0xffffff


Edité par Gfx Le 28/01/2022 à 23h33


Il faut cultiver notre jardin.
   
aoineko Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2308

Le 29/01/2022 à 00h04
Les layers, c'est un sous-découpage des blocs de base.
Par rapport à tes données, il faut que ton bloc de base soit en 16 x 16 ( -size 16 16 ).
Ensuite, à l'intérieur de ces blocks, tu va pouvoir définir plusieurs layers (il faut un -l pour chaque layer).
J'ai pas tester (si tu veux, envoi-moi ton PNG que je test), mais ça devrait ressembler à ça :

Code BASH :
CMSXimg.exe animations.png -out animations.h -name g_Data -mode sprt -pos 0 0 -size 16 16 -num 4 6 ^
    -l i8 0  0 1 1 0xDED087 ^
    -l i8 0  0 2 1 0xB766B5 ^
    -l i8 0  8 2 1 0xFFFFFF

(tu peux tout mettre sur une ligne mais perso je préfère mettre un layer par ligne dans mes fichiers bash, surtout quand ils incluent plusieurs couleurs)

Les layers :
- La couleur de peau présente que dans le sous-blocs 8x8 en haut à gauche (position 0,0 et taille 1,1),
- La couleur du chapeau présente dans le sous-blocs de 16x8 du haut (position 0,0 et taille 2,1),
- La couleur de vêtement présente dans le sous-blocs de 16x8 du bas (position 0,8 et taille 2,1).


(en bleu, les blocs et en vert, les layers)

Dis-moi si c'est bon.



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

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 353

Le 29/01/2022 à 13h04
Merci @aoineko, ça fonctionne bien maintenant. J'obtiens bien un tableau de cette forme :
Citation :
// ======== Frame[0]
// ---- Layer[0] (8x8 0,0 1,1 inc 1)
// Sprite[0] (offset:0)
0x00, /* ........ */
0x02, /* ......#. */
0x05, /* .....#.# */
0x05, /* .....#.# */
0x0F, /* ....#### */
0x05, /* .....#.# */
0x03, /* ......## */
0x00, /* ........ */
// ---- Layer[1] (8x8 0,0 2,1 inc 1)
// Sprite[1] (offset:8)
0x00, /* ........ */
0x00, /* ........ */
0x00, /* ........ */
0x00, /* ........ */
0x00, /* ........ */
0x00, /* ........ */
0x00, /* ........ */
0x00, /* ........ */
// Sprite[2] (offset:16)
0x00, /* ........ */
0xF8, /* #####... */
0xBC, /* #.####.. */
0x5C, /* .#.###.. */
0x5C, /* .#.###.. */
0x6E, /* .##.###. */
0x66, /* .##..##. */
0x00, /* ........ */
// ---- Layer[2] (8x8 0,8 2,1 inc 1)
// Sprite[3] (offset:24)
0x01, /* .......# */
0x05, /* .....#.# */
0x0C, /* ....##.. */
0x1B, /* ...##.## */
0x27, /* ..#..### */
0x07, /* .....### */
0x28, /* ..#.#... */
0x18, /* ...##... */
// Sprite[4] (offset:32)
0x80, /* #....... */
0xC0, /* ##...... */
0xE0, /* ###..... */
0x70, /* .###.... */
0x80, /* #....... */
0xF0, /* ####.... */
0x08, /* ....#... */
0x30, /* ..##.... */
// ======== Frame[1]


Je vais essayer d'ajouter ça en VRAM en partant de ton example s_game :p
Merci !


Il faut cultiver notre jardin.
   
aoineko Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2308

Le 29/01/2022 à 15h12
Cool :top

Ce qui est un peu technique, c'est que tu dois réagencer les blocks de 8x8 en VRAM.
Pour maximiser le nombre de sprites que tu peux afficher par ligne, je te conseille d'utiliser des sprites 16x16 avec l'une de ces configurations :


Et du coup, dans un sprite 16x16, tu dois agencer les 4 blocks 8x8 dans cet ordre : haut-gauche, bas-gauche, haut-droite, bas-droite.


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

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 353

Le 29/01/2022 à 16h21
Yess! ça marche.
Bon je vais essayer d'ajouter quelques animations ^^


Il faut cultiver notre jardin.
   
aoineko Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2308

Le 29/01/2022 à 18h39
Tiens, ça me fait penser que ça fait un bout de temps que je souhaite ajouter un module pour gérer les animations. :)
En fait j'ai fait un truc assez avancé pour Final Smash, il faudrait juste que je le sorte du projet pour le mettre dans la librairie.


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