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: 2197

Le 10/03/2022 à 20h57

Reprise du message précédent

On s'inter-impressionne alors. ;)

Par contre, je galère un peu sur la nouvelle version du player WYZ.
J'aimerai bien finir ça proprement avant de faire une nouvelle release officiel du moteur.


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2197

Le 13/03/2022 à 01h18
Ca y est !!! :|

Ca faisait plusieurs jours que j'essayais de comprendre pourquoi ma nouvelle version du player WYZ faisait parfois planter mes programmes.
Le fautif, c'est l'utilisation du registre IX dans une fonction !
J'avais jamais fait suffisamment attention, mais il est bien précisé dans la documentation de SDCC (le compilateur C), que tous les registres du Z80 sont utilisables dans les fonctions... sauf IX, qui est réservé pour le frame pointer.

Ca n'empêche pas d'utiliser IX dans une fonction, mais ça veut dire qu'il faut sauvegarder ce registre avant de l'utiliser (le push sur la pile) et le restaurer à la fin (pop).

Il y a aussi une option de compilation pour désactiver l'utilisation du frame pointer (--fomit-frame-pointer) mais intuitivement, j'aurai tendance à penser que ça impacterait négativement les performances.

En tout cas, je vais enfin pouvoir passer à autre chose. :)


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2197

Le 16/03/2022 à 08h15
Hello,

Voici une nouvelle version officielle de MSXgl : version alpha 0.3.2.

Change log (depuis la v0.3.0) :
○ Mise-à-jour de la version de SDCC incluse (passage en 4.2.0)
○ Ajout de modules pour gérer de nouveaux matériels audio: MSX-Music, MSX-Audio et SCC.
○ Ajout de modules pour gérer de nouveaux formats audio (en plus de PT3 et ayFX):
  • VGM (pour tous les hardware supportés),
  • lVGM (format VMG-léger fait maison pour PSG),
  • WYZ (version 47c de mvac7 + version 47d issue d'un code asm récent),
  • PCM-Encoder (de ARTRAG).
○ Ajout d'un module (game_pawn) pour gérer les animations, déplacement et collision (basé sur les tile) d'un personnage. Le sample s_game a été mis à jour comme exemple d'utilisation de ce module.
○ Ajout d'une option de Build pour installer automatiquement le driver BDOS pour un programme en ROM (via le hook STKE).
○ Amélioration du support de l'émulateur Emulicious (break-point en ligne, génération des symboles et options de lancement).
○ Mise-à-jour de la documentation du code : /engine/doc/html/ (ça reste très basique)

Fonctions prévues pour les futures versions :
○ Ajouter du support pour de nouveaux formats audio : Arkos Tracker (WIP), TriloTracker.
○ Ajouter un module pour gérer le scrolling d'écran.
○ Ajouter d'un module pour gérer les fonctions BDOS (pour gérer l'accès au disque pour les programmes DOS, BIN et ROM).
○ Ajouter du support complet de MSX-DOS 1 et 2 (notamment les paramètres de ligne de command).
○ Réécrire le BuildTool en Python et le rendre multi-plateforme (Linux & MacOS). Désolé, c'est toujours pour Windows seulement pour le moment.
○ Optimiser, optimiser and optimiser (en taille et en nombre de cycless)! ^^

Highlight de projet MSXgl :
○ msx3d par jbikker (https://github.com/jbikker/msx3d)
msx3d

○ Wizzl par GFX (WIP)
wizzl_12
wizzl_15

Si vous avez des questions ou besoin d'aide concernant MSXgl, je suis disponible ici ou sur Discord.

PS : C'est une traduction de mon message sur MRC, mais en tant que francophone, ça me semble important de relayer l'info aussi dans la langue de Molière.


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h33

Messages: 1421

Le 16/03/2022 à 08h34
Un travail de ouf ! Bravo


Clé de sol

Site web    
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 353

Le 16/03/2022 à 16h57
Un vrai plaisir à utiliser cette librairie MSXgl :)


Il faut cultiver notre jardin.
   
Sebbeug Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h33

Messages: 1421

Le 16/03/2022 à 17h04
(Wizzl a l'air sacrément sympa...)


Clé de sol

Site web    
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 353

Le 17/03/2022 à 09h50
Merci @sebbeug, Pour l'instant l'intérêt de jeu est très limité :D
Je posterai les avancées du projet. Edité par Gfx Le 17/03/2022 à 09h50


Il faut cultiver notre jardin.
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5301

Le 18/03/2022 à 10h49
@aoineko
J'ai intégré dans ma librairie, le PCM ENCODER d'Artrag, comme tu l'as fait.
Etrangement, pour que le PCM soit correctement joué, je suis obligé d'ajouter un DI / EI dans la routine qui joue le sample. Alors que de ton coté tu ne semble pas l'avoir mis en place.

SI je ne fait pas un DI / EI , le sample est joué de façon hachée, on entend bien que ca ne va pas.
Je me demande bien pourquoi cette différence, alors qu'on utilise tous les 2 exacmenet le même code fourni par Arturo. :hum :hum Edité par ericb59 Le 18/03/2022 à 13h14


banniere-ericb59e
Site web    
aoineko Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2197

Le 18/03/2022 à 13h07
J'imagine que la question pour moi et non sebbeug. ^^

Si tu laisses les interruptions activées, cela va forcement perturber le playback du son puisse que ça va changer le timing du code assembleur toutes les 1/50 ou 1/60 s.
Contrairement aux players de musique (PT3, WYZ, etc.) le player PCM est synchrone (il est synchronisé sur les instructions et non pas sur le VBlank).
Ceci dit, cela devrait être peu perceptible normalement (ce qui doit arriver avec ma version).

Si le son est vraiment déformé, c'est probablement un problème de data.
Il faut bien ajuster les paramètres de génération des données au player que tu veux utiliser (8, 11, 22 et 44 KHz).


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5301

Le 18/03/2022 à 13h19
aoineko :
J'imagine que la question pour moi et non sebbeug. ^^


Arf ! oui ! Non mais ...pfffff :(
J'ai modifié mon post.

J'ai aussi essayé avec le Sample Hello, que tu fournis dans ta librairie, j'ai le même soucis.

Effectivement, j'avais aussi désactivé les interruptions quand j'ai mis en place mon player de Sample via un module Covox.

Ce qui me surprenais, c'est que tu n'as pas désactivé les interruptions sur ta version. Et même que Arturo ne l'inclus pas dans son code directement. :hum


banniere-ericb59e
Site web    
aoineko Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2197

Le 18/03/2022 à 22h45
Le seul risque que je vois c'est si tu as un périphérique autre que VDP qui est connecté aux ports I/O et que tu veux pas raté une interruption.
Mais dans 95% des cas, à mon avis c'est mieux de désactivé les interruptions.

Ceci dit, check quand même bien car si avec les interruptions activés tu n'as pas le même résultat que moi, c'est que tu as surement un soucis qq part. Désactiver les interruptions risque que de "cacher" le problème.


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2197

Le 24/03/2022 à 19h38
@ericb59 Pour info j'ai porté mon outils CMSXbin (renommé MSXbin) sous GCC.
Je sais que c'est plus CMSXimg qui t'intéresse mais pour un premier test CMSXbin était beaucoup plus simple à porter sous GCC. ^^

Je vais passer sur CMSXimg (renommé MSXimg) maintenant.
En plus du passage sous GCC, je vais le compléter pour supporter les images en screen 0 et en screen 1, et ajouter des fonctionnalités pour la gestion du scrolling.


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5301

Le 25/03/2022 à 08h13
C'est super cool ! Merci.
Tes outils sont bien fichus, donc tous sont bon à prendre :siffle ;)
tu l'as mis sur GitHub ?


banniere-ericb59e
Site web    
aoineko Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2197

Le 25/03/2022 à 08h53
Non, c'est pas encore sur GitHub.
J'en profite pour centraliser certains traitements qui étaient redondant d'un outil a l'autre.
J'ai converti MSXzip et je m'occupe de MSXmath.
Je garde le meilleur (et le plus compliqué ^^) -- MSXimg -- pour la fin.


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2197

Le 27/03/2022 à 23h04
Salut,
Voici une premier version du module de scrolling pour MSXgl : https://webmsx.org/?ROM=https://github.com/aoineko-fr/MSXgl/raw/main/projects/samples/emul/rom/s_scroll.rom
Le scrolling horizontal tile-par-tile en 32x22 prend 37% du temps CPU d'une frame ; c'est pas trop mal pour du C, mais ça mériterait des optimisations.
Je vais ajouter une option de wrapping pour pouvoir boucler le scrolling sur un level.
Ensuite, ça sera scrolling vertical, puis une combinaison des deux.


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/03/2022 à 00h40
Génial ! Bravo


Il faut cultiver notre jardin.
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie