La Place des Développeurs Mes 1ers pas sur MSX ...
aoineko
Membre non connecté
Conseiller Municipal
Reprise du message précédent
D'après mes tests pour Final Smash, RuMSX ne semble pas supporter par le flag EC sur les sprites (celui qui permet de décaler un spite de 32 px vers la gauche).Je ne sais pas si ton problème vient de là, mais cet émulateur semble moins complet que les autres.
Sinon, j'ai fait tester à Madame. Elle apprécie ce genre de jeu... et elle a apprécié Where Is It
Elle trouvait le son du timer un peu stressant, mais c'est p'être voulu.
Elle a pas compris tout de suite non plus que le pattern à chercher est celui de droite et pas celui de gauche (mais ça, tu t'en rends compte rapidement).
Pour ma part, tu sais que j'aime beaucoup.
J'ai toujours un peu de mal avec le T de ta font ; dans les menus c'est pas gênant, mais dès qu'il y a du texte à lire, je trouve que ça rend la lecture moins fluide.
Je t'en ai aussi déjà parlé, mais parfois j'ai du mal à m'arrêter sur la bonne case avec les déplacements du curseur.
Pour jouer deux sons en simultané, ça ne va pas être possible avec la version de ayFX que je t'ai filé (ni avec aucune autre que je connaisse).
Il faudrait updater les infos de plusieurs channels en même temps (ce qui est n'est pas prévu dans le player ayFX).
Par contre, tu as un système de priorité qui permet de t'assurer que le son le plus important est toujours joués (il remplace un son de moins grande prio).
En tout cas, bravo
On est toujours ignorant avant de savoir.
Merci pour vos retours JP et Guillaume ainsi que Mme Guillaume
Concernant le sprite et le ECB : je n'ai pas réussi à trouver fillfile.exe (mode sherlock on). Si qqn pouvait le mettre à dispo ce serait super et je pourrais reproduire le bug de JP
Un autre retour :
qd je lance meisei, tout est ok. Par contre, avec emulicious, il y a qqchose au niveau du son : une init mal faite (ou pas faite), le hook. Le petit bip du presents laisse sa place à un gros souffle qui dure tout le jeu... quokché qcha ? (ou emulicious qui perd les pédales...)
Merci encore les zamis
Concernant le sprite et le ECB : je n'ai pas réussi à trouver fillfile.exe (mode sherlock on). Si qqn pouvait le mettre à dispo ce serait super et je pourrais reproduire le bug de JP
Un autre retour :
qd je lance meisei, tout est ok. Par contre, avec emulicious, il y a qqchose au niveau du son : une init mal faite (ou pas faite), le hook. Le petit bip du presents laisse sa place à un gros souffle qui dure tout le jeu... quokché qcha ? (ou emulicious qui perd les pédales...)
Merci encore les zamis
aoineko
Membre non connecté
Conseiller Municipal
Ricco59 :
Concernant le sprite et le ECB : je n'ai pas réussi à trouver fillfile.exe (mode sherlock on). Si qqn pouvait le mettre à dispo ce serait super et je pourrais reproduire le bug de JP
Voici : https://github.com/aoineko-fr/CMSX/tree/master/tools/MakeROM
Pour créer une ROM de 32 KB :
Code BASH :
FillFile.exe mygame.rom 32768
Emulicious me semble assez fidèle. En tout cas, à chaque fois que j'ai eu un soucis avec lui, c'était un vrai bug. Souvent effectivement des problèmes d'initialisation.
On est toujours ignorant avant de savoir.
re
Concernant ruMSX, ce n'est pas ECB le pb. dès que je me déplace, le curseur va n'importe ou !!! alors que c'est ok sur meisei et emulicious Je vais devoir tester sur mon 8245, mon hb501f étant en panne...
C'est au niveau des directions : Bas et droite OK, haut et gauche... dans les choux... des reinitialisations de valeurs ???? je pense que je vais rester sur mes refs : meisei/emulicious/openMSX et blueMSX
J'ai aussi remarqué que sous ruMSX, il y a un petit temps de réponse entre l'appuie sur une touche et le son, mais ça marche
Pour le bug du son, ca le fait dès l'insertion de la rom sur emulicious (juste après le logo cbios0.29)...
Voici ce que je mets dans le main() avant le screen2();
void MonHook()
{
ayFX_Update();
ayFX_SendToPSG();
}
void main(void)
{
ayFX_InitBank(g_ayfx_bank);
ayFX_SetChannel(PSG_CHANNEL_A);
ayFX_SetMode(AYFX_MODE_FIXED);
Bios_SetHookDirectCallback(H_TIMI, MonHook);
screen_mode_2();
init diverses
while(1)
{
intro_em();
...
}
}
Je vais devoir faire des recherches...
Bonne nuit les zamis Edité par Ricco59 Le 10/04/2021 à 00h26
Concernant ruMSX, ce n'est pas ECB le pb. dès que je me déplace, le curseur va n'importe ou !!! alors que c'est ok sur meisei et emulicious Je vais devoir tester sur mon 8245, mon hb501f étant en panne...
C'est au niveau des directions : Bas et droite OK, haut et gauche... dans les choux... des reinitialisations de valeurs ???? je pense que je vais rester sur mes refs : meisei/emulicious/openMSX et blueMSX
J'ai aussi remarqué que sous ruMSX, il y a un petit temps de réponse entre l'appuie sur une touche et le son, mais ça marche
Pour le bug du son, ca le fait dès l'insertion de la rom sur emulicious (juste après le logo cbios0.29)...
Voici ce que je mets dans le main() avant le screen2();
void MonHook()
{
ayFX_Update();
ayFX_SendToPSG();
}
void main(void)
{
ayFX_InitBank(g_ayfx_bank);
ayFX_SetChannel(PSG_CHANNEL_A);
ayFX_SetMode(AYFX_MODE_FIXED);
Bios_SetHookDirectCallback(H_TIMI, MonHook);
screen_mode_2();
init diverses
while(1)
{
intro_em();
...
}
}
Je vais devoir faire des recherches...
Bonne nuit les zamis Edité par Ricco59 Le 10/04/2021 à 00h26
aoineko
Membre non connecté
Conseiller Municipal
Il faut surement initialiser le tableau
ayRegs[14];
avec des 0 avant de brancher ta callback (sinon, y a des données parasites qui risquent d'être envoyé au PSG).
Tu peux utiliser l'initialisation global (surement plus court que de le faire en code) :
D'ailleurs, il faudrait que tu checkes dans ton crt0 que tu gères bien les données _INITIALIZER (en ROM) qui doivent être copié vers _INITIALIZED (en RAM).
Sinon tu risques d'avoir plein de petits problème d'initialisation.
Voir l'exemple de mon crt0_rom32.asm ligne 57 à 63 : https://github.com/aoineko-fr/CMSX/blob/master/cmsx/src/crt0/crt0_rom32.asm
Tu peux utiliser l'initialisation global (surement plus court que de le faire en code) :
Code C :
unsigned char ayRegs[14] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
D'ailleurs, il faudrait que tu checkes dans ton crt0 que tu gères bien les données _INITIALIZER (en ROM) qui doivent être copié vers _INITIALIZED (en RAM).
Sinon tu risques d'avoir plein de petits problème d'initialisation.
Voir l'exemple de mon crt0_rom32.asm ligne 57 à 63 : https://github.com/aoineko-fr/CMSX/blob/master/cmsx/src/crt0/crt0_rom32.asm
On est toujours ignorant avant de savoir.
j'ai essayé ton jeu sur mon Turbo-R A1-ST
il y a un ronflement dès le lancement de la rom et ensuite les sons sont comme étouffés
sur un 8280 le ronflement est trés discret et les sons plus clairs
j'ai enfin essayé sur mon VG8010 et la le son est devenu horrible a écouter comme un essaim d'abeilles
j'ai même remis Salamander derriére pour être sur que ça ne venait pas du MSX ouf il va bien
d'aprés Emulicious tu joue les sons sur le chanel 3 du PSG, y a t'il une raison ?
il y a un ronflement dès le lancement de la rom et ensuite les sons sont comme étouffés
sur un 8280 le ronflement est trés discret et les sons plus clairs
j'ai enfin essayé sur mon VG8010 et la le son est devenu horrible a écouter comme un essaim d'abeilles
j'ai même remis Salamander derriére pour être sur que ça ne venait pas du MSX ouf il va bien
d'aprés Emulicious tu joue les sons sur le chanel 3 du PSG, y a t'il une raison ?
Merci pour vos retours
@Guillaume> initialiser la table comme tu me l'as préconisé fonctionne. Néanmoins le son est différent et plus faible
@JiPe> je reviens sur ruMSX : le souci se produit lorsque je vais à gauche ou en haut. Pour ce faire je soustrais 8 à la position initiale (variable initialisée en signed char)
si je dois me déplacer à gauche, le curseur traverse tout l'écran pour se retrouver à droite à la bonne position. Je v zieuter pour ce souci et pour le son en chanel 3 (je pense que la routine de Guillaume etait prévue ainsi car il avait le tracker qui tournait aussi et donc balancait les sfx sur la 3e voie. Merci de me corriger
Petite correction > la rom : http://ericmcolleco.free.fr/msx/msxr/Wisit2.rom Edité par Ricco59 Le 10/04/2021 à 17h51
@Guillaume> initialiser la table comme tu me l'as préconisé fonctionne. Néanmoins le son est différent et plus faible
@JiPe> je reviens sur ruMSX : le souci se produit lorsque je vais à gauche ou en haut. Pour ce faire je soustrais 8 à la position initiale (variable initialisée en signed char)
si je dois me déplacer à gauche, le curseur traverse tout l'écran pour se retrouver à droite à la bonne position. Je v zieuter pour ce souci et pour le son en chanel 3 (je pense que la routine de Guillaume etait prévue ainsi car il avait le tracker qui tournait aussi et donc balancait les sfx sur la 3e voie. Merci de me corriger
Petite correction > la rom : http://ericmcolleco.free.fr/msx/msxr/Wisit2.rom Edité par Ricco59 Le 10/04/2021 à 17h51
aoineko
Membre non connecté
Conseiller Municipal
Ricco59 :
@Guillaume> initialiser la table comme tu me l'as préconisé fonctionne. Néanmoins le son est différent et plus faible
Tu es censé entendre le bon son maintenant (il faut absolument que tu mettes la mémoire à 0 sinon ça peut produire tout une tas d'effets hasardeux et indésirables).
Ricco59 :
Je v zieuter pour ce souci et pour le son en chanel 3 (je pense que la routine de Guillaume etait prévue ainsi car il avait le tracker qui tournait aussi et donc balancait les sfx sur la 3e voie.
Normalement c'est pas un problème. Si tu as pas de musique, tu peux jouer tes SFX sur n'importe quel canal du PSG normalement.
On est toujours ignorant avant de savoir.
Pour le canal 3, il n'y avait aucun souci pour moi
Voici la WISIT3 modifiée avec la priorité du son (chrono et validation dont les sons s'annulaient parfois)
Merci pour vos tests les zamis
la rom > http://ericmcolleco.free.fr/msx/msxr/Wisit3.rom
Voici la WISIT3 modifiée avec la priorité du son (chrono et validation dont les sons s'annulaient parfois)
Merci pour vos tests les zamis
la rom > http://ericmcolleco.free.fr/msx/msxr/Wisit3.rom
essai sur Turbo-R dans la SRAM 64k Elektor -> plus de problémes de son mais le volume choisi est quand même un peu faiblard
je propose une petite modif : utiliser la touche STOP pour la pause et la touche ESC pour revenir au menu des choix (enfin c'est toi qui voit
test ultime sur le VG8010 -> plus aucun bruit d'abeilles et le son est plus fort sur ce MSX qu'avec le Turbo-R
faut dire que c'est pas testé avec le même écran : Philips sur le Turbo-R et Sony sur le VG8010
je propose une petite modif : utiliser la touche STOP pour la pause et la touche ESC pour revenir au menu des choix (enfin c'est toi qui voit
test ultime sur le VG8010 -> plus aucun bruit d'abeilles et le son est plus fort sur ce MSX qu'avec le Turbo-R
faut dire que c'est pas testé avec le même écran : Philips sur le Turbo-R et Sony sur le VG8010
Salut les Potos
Je reviens vers vous car je sèche un peu, beaucoup, sur mes recherches 50hz/60hz
Ce que j'aurais aimé arriver à faire c'est qu'en fonction de la fréquence 50 ou 60hz j'ai ceci :
* 50hz : vitesse_vague = 2; vitesse_ufo = 3
* 60hz : vitesse_vague = ~2*1.2; vitesse_ufo = ~3*1.2
Dans le debugger d'openMSX, et dans 'VDP registers view', si je choisis le TMS99x8, rien ne me dit si c'est PAL ou NTSC.
Par contre si je choisis V9938, dans R#9, le bit NT indique si PAL ou NTSC (c'est aussi précisé ici > https://www.msx.org/wiki/VDP_Mode_Registers)
Existe-t-il donc un moyen peut être détourné (une astuce même) de connaître la fréquence sur MSX1 ?
Merci beaucoup les zamis
ps : qu'en est-il pour ayfx_player qui joue ses sons plus rapidement en 60hz ?
ps1 : il me reste encore 3 ptites choses à faire avec 90 octets libres...
ps2 : un son qui se répète une15aine de fois ne peut-il être joué en boucle avec ayfx_player (j'économiserai pas mal d'octets ) Edité par Ricco59 Le 15/04/2021 à 00h27
Je reviens vers vous car je sèche un peu, beaucoup, sur mes recherches 50hz/60hz
Ce que j'aurais aimé arriver à faire c'est qu'en fonction de la fréquence 50 ou 60hz j'ai ceci :
* 50hz : vitesse_vague = 2; vitesse_ufo = 3
* 60hz : vitesse_vague = ~2*1.2; vitesse_ufo = ~3*1.2
Dans le debugger d'openMSX, et dans 'VDP registers view', si je choisis le TMS99x8, rien ne me dit si c'est PAL ou NTSC.
Par contre si je choisis V9938, dans R#9, le bit NT indique si PAL ou NTSC (c'est aussi précisé ici > https://www.msx.org/wiki/VDP_Mode_Registers)
Existe-t-il donc un moyen peut être détourné (une astuce même) de connaître la fréquence sur MSX1 ?
Merci beaucoup les zamis
ps : qu'en est-il pour ayfx_player qui joue ses sons plus rapidement en 60hz ?
ps1 : il me reste encore 3 ptites choses à faire avec 90 octets libres...
ps2 : un son qui se répète une15aine de fois ne peut-il être joué en boucle avec ayfx_player (j'économiserai pas mal d'octets ) Edité par Ricco59 Le 15/04/2021 à 00h27
aoineko
Membre non connecté
Conseiller Municipal
Sur MSX1, s'il n'a pas été modifié, tu as la fréquence du VDP dans le bit #7 de l'adresse mémoire 0x002B : 0 = 60Hz, 1 = 50Hz.
(cf. http://map.grauw.nl/resources/msxsystemvars.php)
Ce que je compte faire pour Final Smash, c'est d'avoir toutes mes valeurs gameplay dans un double tableau (50/60Hz) et, à l'initialisation, de copier le tableau correspondant au VDP dans un espace mémoire que mon code accède (du coup, je gère le problème qu'une fois au démarrage et ensuite j'ai plus à m'en occuper).
Pour la musique (même si tu n'en as pas), la solution que j'ai choisi c'est d'avoir une musique avec un délais de 5 (la plupart ont des délais de 4~8) et sur MSX 60Hz, de forcer le délais à 6.
Pour le son, il n'y a pas de moyen simple de modifier les datas pour qu'ils se jouent correctement sur les 2 fréquences.
La méthode classique, c'est créer tes sons en 50 Hz et de ne simplement pas update le son à la 6e frame pour le 60 Hz.
En théorie ça va créer une dissonance, mais c'est tellement rapide qu'une oreille normale ne verra pas la différence.
(cf. http://map.grauw.nl/resources/msxsystemvars.php)
Ce que je compte faire pour Final Smash, c'est d'avoir toutes mes valeurs gameplay dans un double tableau (50/60Hz) et, à l'initialisation, de copier le tableau correspondant au VDP dans un espace mémoire que mon code accède (du coup, je gère le problème qu'une fois au démarrage et ensuite j'ai plus à m'en occuper).
Pour la musique (même si tu n'en as pas), la solution que j'ai choisi c'est d'avoir une musique avec un délais de 5 (la plupart ont des délais de 4~8) et sur MSX 60Hz, de forcer le délais à 6.
Pour le son, il n'y a pas de moyen simple de modifier les datas pour qu'ils se jouent correctement sur les 2 fréquences.
La méthode classique, c'est créer tes sons en 50 Hz et de ne simplement pas update le son à la 6e frame pour le 60 Hz.
En théorie ça va créer une dissonance, mais c'est tellement rapide qu'une oreille normale ne verra pas la différence.
On est toujours ignorant avant de savoir.
Hello
J'ai eu quelques minutes pour implémenter une 'detection 50/60'
Avez vous la possibilité de tester cette rom sur une machine ntsc ? (il faudra vous assurer que les secondes en 60hz en soient bien aller au jeu et ecouter/visualiser le timer)
Wisit3_50-60
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
(seul le son du rayon tracteur fait 631octets alors que ce meme son seul ferait 45octets...)
Merci les zamis
Edité par Ricco59 Le 15/04/2021 à 16h49
J'ai eu quelques minutes pour implémenter une 'detection 50/60'
Avez vous la possibilité de tester cette rom sur une machine ntsc ? (il faudra vous assurer que les secondes en 60hz en soient bien aller au jeu et ecouter/visualiser le timer)
Wisit3_50-60
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
(seul le son du rayon tracteur fait 631octets alors que ce meme son seul ferait 45octets...)
Merci les zamis
Edité par Ricco59 Le 15/04/2021 à 16h49
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie