La Place des Développeurs Test Fusion-c
Hello,
Il y a quelques mois je me suis offert le livre Fusion-C.
Vu que je suis fan de MSX, de C et de Popolon, je me suis amusé lors de ma semaine passé de vacance entre la plage et
les Paella, à tapoter le POC (Proof Of Concept comme on dit dans la profession) suivant pour voir ce qu'il était possible de faire...
L'environnement de Developpement proposé est pas mal du tout... Le bouquin peut paraitre un peu light mais bon Google fait le reste...
Je n'ai pas démontré tout ce dont j'ai besoin pour la suite du projet, mais un c bien compilé permet de faire pas des choses intéressante et assez rapidement...
J'ai quand même noté que si on met des Cosinus et des Sinus dans les calculs de Saut, il y a une certaine latence... . mais bon ça s'optimise...
Etapes suivantes :
-Faire taper avec l'épée
-Un fond d'écran digne de ce nom...
-Faire bouger un ennemi (Sprite ou dans le fond d'écran, ça dépend de sa taille, vu les limites techniques de 8 sprites par ligne je crois...)
-Du son
-Faire du 1 v 1 (pas d'intelligence à donner à un ennemi)
-Faire bouger un ennemi (pas trop bête si possible)
-De la musique...
ça donne bien des idées...
Après il faut prendre en compte les limites de mémoire etc... je suis déja à 60 Ko, une image screen 8, ça prend trop de place, je comprend mieux pourquoi les jeux sont en screen 5...
ce n'est pas grand chose, juste un petit début...
A plus !
PS : le forum ne permettant pas de télécharger de .SC8 et de .COM, comment puis-je faire pour mettre à disposition un fichier ?
Cricri. Edité par Cricri Le 17/07/2023 à 09h18
Il y a quelques mois je me suis offert le livre Fusion-C.
Vu que je suis fan de MSX, de C et de Popolon, je me suis amusé lors de ma semaine passé de vacance entre la plage et
les Paella, à tapoter le POC (Proof Of Concept comme on dit dans la profession) suivant pour voir ce qu'il était possible de faire...
L'environnement de Developpement proposé est pas mal du tout... Le bouquin peut paraitre un peu light mais bon Google fait le reste...
Je n'ai pas démontré tout ce dont j'ai besoin pour la suite du projet, mais un c bien compilé permet de faire pas des choses intéressante et assez rapidement...
J'ai quand même noté que si on met des Cosinus et des Sinus dans les calculs de Saut, il y a une certaine latence... . mais bon ça s'optimise...
Etapes suivantes :
-Faire taper avec l'épée
-Un fond d'écran digne de ce nom...
-Faire bouger un ennemi (Sprite ou dans le fond d'écran, ça dépend de sa taille, vu les limites techniques de 8 sprites par ligne je crois...)
-Du son
-Faire du 1 v 1 (pas d'intelligence à donner à un ennemi)
-Faire bouger un ennemi (pas trop bête si possible)
-De la musique...
ça donne bien des idées...
Après il faut prendre en compte les limites de mémoire etc... je suis déja à 60 Ko, une image screen 8, ça prend trop de place, je comprend mieux pourquoi les jeux sont en screen 5...
ce n'est pas grand chose, juste un petit début...
A plus !
PS : le forum ne permettant pas de télécharger de .SC8 et de .COM, comment puis-je faire pour mettre à disposition un fichier ?
Cricri. Edité par Cricri Le 17/07/2023 à 09h18
Hello.
J'ai une question pour "les sprites" et une fonction qui n'existe que sur MSX2 et supérieurs : copy vram to vram.
Comment est-ce abordé dans le bouquin ?
le pourquoi :
La fonction XOR, collée à cette fonction graphique, permet de positionner un bloc (carré ou rectangle) d'un endroit de la VRAM vers un autre mais en utilisant la transparence (vu ça au... siècle dernier...). De mémoire donc, tu copie-colle ton bloc d'une zone d'une page non visible vers une zone de la page vidéo active sans écraser les pixels qui seraient couverts par la couleur 0, transparente (à re vérifier). Et l'opération inverse restitue la zone initiale active sans la dégrader.
Par contre, la détection est impossible via la fonction dédiée aux sprites hard. Mais dans l’absolue si les sprites sont employés par superpostion (façon Konami pour augmenter le nombre de couleurs), cette fonction ne peut plus être employée.
L'avantage majeure du screen 05 étant de disposer de 04 pages ou plutôt de 02 couples de pages. Le 00 et 01 et le 02 et 03.
Logiquement, le transfert de 0 vers 1 et inversement et plus rapide que de 1 vers 2.
MsxLegend pourrait peut-être infirmer / confirmer cela ?
Si je dis de grosses énormités, ne surtout pas hésiter à me le dire
J'ai une question pour "les sprites" et une fonction qui n'existe que sur MSX2 et supérieurs : copy vram to vram.
Comment est-ce abordé dans le bouquin ?
le pourquoi :
La fonction XOR, collée à cette fonction graphique, permet de positionner un bloc (carré ou rectangle) d'un endroit de la VRAM vers un autre mais en utilisant la transparence (vu ça au... siècle dernier...). De mémoire donc, tu copie-colle ton bloc d'une zone d'une page non visible vers une zone de la page vidéo active sans écraser les pixels qui seraient couverts par la couleur 0, transparente (à re vérifier). Et l'opération inverse restitue la zone initiale active sans la dégrader.
Par contre, la détection est impossible via la fonction dédiée aux sprites hard. Mais dans l’absolue si les sprites sont employés par superpostion (façon Konami pour augmenter le nombre de couleurs), cette fonction ne peut plus être employée.
L'avantage majeure du screen 05 étant de disposer de 04 pages ou plutôt de 02 couples de pages. Le 00 et 01 et le 02 et 03.
Logiquement, le transfert de 0 vers 1 et inversement et plus rapide que de 1 vers 2.
MsxLegend pourrait peut-être infirmer / confirmer cela ?
Si je dis de grosses énormités, ne surtout pas hésiter à me le dire
Pourquoi s'évertuer à voler avec des aigles quand on travaille avec des dindes...
Hello,
Il y a bien des fonctions qui permettent de copier des portions de mémoire de la RAM vers la VRAM et de la VRAM vers la VRAM.
je pense qu'elles doivent permettre de faire des boss animées à tester en effet, ça fait partie de la phase faire bouger un ennemi...
Après pour éviter les problématiques de transparence de fond d'écran je partais sur un fond uni dans un premier temps, voir ce que ça donne avec un XOR, voir si on a un fond sur lequel on se déplace et on recopie les parties que l'on a précédemment écrasé... voir la solution la plus optimum...
Et pour ce qui est de la détection elle n'est possible qu'entre sprite, on peut coller des sprites invisibles autour du monstre ou gérer à la mimine tout ça... Après si on superpose on peut ignorer les superposés... et prendre en compte les autres collisions... A tester voir si ça met pas le brin...
Screen 5 ou pas, on verra, pour l'instant ça pas trop d'impact sur le code... mais il est clair que ça permet d'avoir 3 fois plus d'écran cachés.. et moins d'octets à bouger donc plus de rapidité...
Edité par Cricri Le 17/07/2023 à 10h16
Il y a bien des fonctions qui permettent de copier des portions de mémoire de la RAM vers la VRAM et de la VRAM vers la VRAM.
je pense qu'elles doivent permettre de faire des boss animées à tester en effet, ça fait partie de la phase faire bouger un ennemi...
Après pour éviter les problématiques de transparence de fond d'écran je partais sur un fond uni dans un premier temps, voir ce que ça donne avec un XOR, voir si on a un fond sur lequel on se déplace et on recopie les parties que l'on a précédemment écrasé... voir la solution la plus optimum...
Et pour ce qui est de la détection elle n'est possible qu'entre sprite, on peut coller des sprites invisibles autour du monstre ou gérer à la mimine tout ça... Après si on superpose on peut ignorer les superposés... et prendre en compte les autres collisions... A tester voir si ça met pas le brin...
Screen 5 ou pas, on verra, pour l'instant ça pas trop d'impact sur le code... mais il est clair que ça permet d'avoir 3 fois plus d'écran cachés.. et moins d'octets à bouger donc plus de rapidité...
Edité par Cricri Le 17/07/2023 à 10h16
Yep.
Les autres ordis n'ayant pas ce genre de "facilités cablées en hard", utilisent les fameuses hitbox. Qui doivent rajouter un laps de temps de calcul...
Les 128ko de VRAM restent un confort appréciable, dès lors que le jeu est développé pour MSX2 ou ultérieur cela ouvre vers de belles possibilités.
Tiens nous au jus, c'est super
Les autres ordis n'ayant pas ce genre de "facilités cablées en hard", utilisent les fameuses hitbox. Qui doivent rajouter un laps de temps de calcul...
Les 128ko de VRAM restent un confort appréciable, dès lors que le jeu est développé pour MSX2 ou ultérieur cela ouvre vers de belles possibilités.
Tiens nous au jus, c'est super
Pourquoi s'évertuer à voler avec des aigles quand on travaille avec des dindes...
aoineko
Membre non connecté
Conseiller Municipal
Cricri :
J'ai quand même noté que si on met des Cosinus et des Sinus dans les calculs de Saut, il y a une certaine latence... . mais bon ça s'optimise...
Les calculs de Sinus et Cosinus sont très lourds pour notre pauvre petit Z80. Tu ferais mieux d'utiliser une table précalculée.
Par exemple, tu précalcul 72 Sinus (si un pas de 5° te suffit comme précision) et tu remplaces tes fonctions trigonométriques par des accès à ce tableau. En bonus, il suffit de décaler ton tableau d'un quart (18 dans le cas d'un tableau de 72 entrées) pour passer du Sinus au Cosinus. Tu n'as donc besoin que d'un seul tableau.
Et si tu veux encore accélérer les choses, prends une table de taille puissance de 2 (32, 64, 128, ...). Ça va rendre les divisions et les multiplications quasi gratos (SDCC va les convertir en décalage de bits). Edité par aoineko Le 18/07/2023 à 08h08
On est toujours ignorant avant de savoir.
ericb59
Membre non connecté
Conseiller Municipal
Salut,
Merci de tester Fusion-C.
La version actuellement disponible de fusion-c est relativement limitée.
Je serai heureux de partager avec vous la version 2.0 beta qui devrait sortir cette année.
Elle est plus complète , plus optilisée, et permet de créer des ROM.
En parrallèle je suis en train de finaliser un jeu avec la version 2.0
https://youtu.be/XWOQ6k6MQOI
Un portage d’un jeu NES de 1985 (Il est quasi terminé, mais je viens finalement de trouver le moyen de créer une ROM de 64KO au lieu des 48KO habituels (ROM sans Mapper) donc j’ajoute des petites choses ….
Merci de tester Fusion-C.
La version actuellement disponible de fusion-c est relativement limitée.
Je serai heureux de partager avec vous la version 2.0 beta qui devrait sortir cette année.
Elle est plus complète , plus optilisée, et permet de créer des ROM.
En parrallèle je suis en train de finaliser un jeu avec la version 2.0
https://youtu.be/XWOQ6k6MQOI
Un portage d’un jeu NES de 1985 (Il est quasi terminé, mais je viens finalement de trouver le moyen de créer une ROM de 64KO au lieu des 48KO habituels (ROM sans Mapper) donc j’ajoute des petites choses ….
ericb59 :
Je serai heureux de partager avec vous la version 2.0 beta qui devrait sortir cette année.
Elle est plus complète , plus optilisée, et permet de créer des ROM.
Elle est plus complète , plus optilisée, et permet de créer des ROM.
Salut Eric, j'ai commandé et reçu ton livre sur Fusion-C (v1.1) auquel je vais désormais m'intéresser peu à peu en plus de la reprise de compétences sur l'assembleur Z80. Le C avait été le second langage appris (après l'assembleur) en étant plus jeune et est bien plus pratique que l'assembleur pour créer des programmes. J'ai appris par la suite le C++ puis le C# mais maintenant je suis plutôt java dans mon activité professionnelle.
J'ai téléchargé aussi la librairie MSXgl mais je la met par contre de côté pour l'instant vu qu'il n'y a pas de livre dédié à celle ci. Même si toute l'information peut être trouvée en ligne, j'aime bien commencer avec un bouquin entre les mains plutôt qu'un écran, je suis d'une ancienne génération
En plus ton bouquin est grand et aéré, il peut donc être lu facilement sans avoir à chercher ses lunettes
La sortie de la version 2.0 de Fusion-C ayant visiblement pris du retard puisque seule la v1.3 est actuellement disponible, as tu une nouvelle date de mise à disposition prévue ? A quoi peut on s'attendre avec cette version 2.0 ? Edité par Chris (Spysoft) Le 09/08/2024 à 08h09
.......................>>> SPYSOFT <<< ...........................
...___.__..__..._.....__..__._____..__.._____.___..._...__..__...
../.__|..\/..|./_\...|..\/../.__\.\/./.|_..._|.__|./_\.|..\/..|..
..\__.\.|\/|.|/._.\..|.|\/|.\__.\>..<....|.|.|._|./._.\|.|\/|.|..
..|___/_|..|_/_/.\_\.|_|..|_|___/_/\_\...|_|.|___/_/.\_\_|..|_|..
.....
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie