Bonjour à Toutes et Tous les Casionautes et Casiophiles,
Soyez les bienvenus sur la page de cette 243ème édition de votre Revue De Projets. Aujourd'hui au programme, pour changer de l'habitude, on va parler de projets qui ne sont pas des jeux, comme bien souvent, mais des outils de développement, des émulateurs et des librairies. Tout cela dans le but de coder et/ou tester des addins pour vos machines préférées.
Bref, encore un bien beau programme, sans oublier quelques annonces de fin de RDP...
Donc partons explorer tous ces projets sans plus attendre.
Casio Dev Tools est une extension pour Visual Studio Code (ie. vscode) qui a pour vocation de faciliter et d'automatiser à la fois l'installation de fxSDK et des librairies disponibles avec Giteapc, mais aussi l'utilisation d'outils de programmation d'add-ins pour calculatrices Casio.
Casio Dev Tools est actuellement compatible avec Windows (via WSL) et en natif Linux (Yannis300307 a testé sur Debian mais cela devrait fonctionner avec à peu près toutes les distributions utilisant apt telles que les dérivés d'Ubuntu).
L'outil se distingue par une petite icône sous forme d'une calculatrice sur le côté de Visual Studio Code dans la barre latérale, qui permet d'accéder à un menu avec l'ensemble des fonctionnalités disponibles :
A ce jour, l'extension Casio Dev Tool présente les fonctionnalités additionnelles suivantes pour vscode :
Installation automatique de GiteaPC
Installation automatique du FxSDK
Interface permettant de gérer (lister / installer / désinstaller) les bibliothèques GiteaPC
Interface permettant d'utiliser le FxSDK ( Compilation et création de nouveaux projets)
Configuration automatique du projet VS code
Lancement de l'émulateur de Circuit10 / Heath123 après la compilation
Transfert auto sur la calculatrice et lancement automatique avec Add-in Push (sur Linux uniquement)
Je précise que j'ai pu installer l'extension sur mon vscodium sous Ubuntu 20.04LTS sans soucis, donc Yannis300307 a fait du bon travail.
A n'en pas douter, cet outil va fortement aider les nouveaux arrivants sur le développement avec fxSDK/gint. Merci donc à lui pour cette jolie extension à vscode/vscodium qui saura certainement trouver des adeptes.
N'hésitez donc pas à tester par vous-même, et si vous rencontrez des bugs ou avez des interrogations, faites remonter à Yannis300307 qui saura très certainement vous apporter toutes les réponses ou le support nécessaire.
Bon, par où commencer ? Il y a tant de choses à dire sur le développement d'un émulateur ...
Donc notre ami Drakalex007 a décidé il y a un mois de s'attaquer à la réalisation d'un émulateur de Casio Monochrome basée sur un processeur Renesas SH4 (processeur qui équipe nos fxCG20/Graph 90+E/Graph 35+EII/fxCP400+E etc.). Drakalex007 se focalisant sur les machines un peu plus anciennes, à savoir les Graph 35+/75.
Après s'être documenté sur l'existant et avoir dépouillé la documentation du SH4, notre ami s'est donc lancé dans la folle aventure de coder son émulateur en repartant de zéro.
Compte tenu de l'ampleur du projet, je laisse Drakalex007 en parler pour résumer :
Drakalex007 a écrit : Vous avez peut-être vu passer dans le forum mon projet du moment, qui est une tentative de créer un émulateur pour calculatrices monochromes SH4.
(Dans le futur, j'aimerais pouvoir supporter également les add-ins SH3 et 35+EII en parallèle.)
Le but ultime de ce projet serait de pouvoir tester tous les add-ins monochromes directement depuis planet-casio avant de les télécharger, et de proposer un environnement de développement en ligne pour la compilation, l’émulation et le debugging d'add-ins.
Grâce à la précieuse aide de Lephe et du forum, j'ai pu avancer très vite dans ce projet et publier la première version fonctionnelle directement testable en ligne : https://sh4.vercel.app/.
Cette démo comporte les jeux suivants qui marchent sans soucis : Jetpack Joyride, Gravity Duck, Fruit Ninja, 2048, Test Andropov, Orton and the Princess, Dead Labs et Hardest Game.
Il est aussi possible d'importer ses propres fichiers .G1A. S'ils sont SH4 et n'utilisent pas gint, il y a de grandes chances qu'ils marchent !
Finalement, si l'émulation est trop lente, il est possible d'augmenter le nombre d'instructions dans le slider en haut à droite.
La prochaine étape est désormais d'intégrer gint à l'émulateur, ce qui s'avère être une tâche tout aussi complexe.
Vous pouvez suivre l'avancement du projet sur le topic officiel, n’hésitez pas à me signaler les add-ins incompatibles ainsi que les erreurs rencontrées !
Le code source est également disponible sur Gitea : https://gitea.planet-casio.com/Drakalex007/fx9860-emulator-playground
Je me permets de rajouter deux captures d'écran de l'émulateur fonctionnant en version web et faisant tourner Gravity Duck :
C'est vraiment un excellent travail de la part de Drakalex007, nous espérons tous avoir bientôt une version standalone pour tester nos addins depuis notre PC.
Ce projet vise à porter la librairie bien connue Box2D sur calculatrice fx-CGs et fx9860G. Box2D est une bibliothèque logicielle libre de moteur physique 2D écrite en C++ par Erin Catto. Box2D simule un système de corps rigides sur un plan. Physiquement, un corps rigide peut être simulé par un point (le centre de gravité) avec une position, un angle, une vitesse et une rotation, auquel on applique des forces (gravité, ...) et des impulsions (contacts, …).
Des contraintes peuvent exister entre ces corps, pour représenter une liaison (un pivot, un coulissement… éventuellement avec une résistance ou une force motrice) ou un contact temporaire. Afin de calculer les contacts entre ces corps, Box2D fournit un détecteur de collision. Chaque corps simulé peut avoir une forme, limité soit à un assemblage de cercles, de polygones convexes (triangle, rectangle…) ou de formes définies par l'utilisateur. En cas de collision on peut alors ajouter des contacts entre les corps et aussi préciser des frottements, une élasticité ... La forme d'un corps peut également servir à calculer la masse et le moment d'inertie du corps rigide.
Plus près de nos considérations usuelles, Box2D est ce qui permet de motoriser un certain nombre de jeux reposant sur de la physique de contact, de chute et de mécanisme. L'exemple le plus connu étant très certainement et de très loin le fameux Angry Birds.
Le portage de la librairie standard C++ par Lephé avec gint 2.9.0 nous permet d'avoir désormais toutes les fonctions nécessaires afin de porter ce genre de librairies sur Prizm et Monochrome. Voilà donc qui est fait pur Box2D. Plutôt que d'expliciter durant des heures ce qu'il est possible de faire avec cette librairie, voici une démo visuelle qui illustrera d'autant mieux :
La librairie est à la base créée pour fonctionner avec des ordinateurs puissants ayant un FPU (Float Processing Unit) qui n'est pas dispo sur nos machines. Le calcul des opérations avec des flottants étant "émulé" en soft sur la base de calculs sur des entiers, donc on a pas des performances hyper importantes. Concrêtement, cela fonctionne, mais met très vite la machine sur les genoux dès que les scènes à calculer deviennent complexes. Cela étant dit, pour des petits portages de jeux, ça doit faire le taf.
Le détail de l'utilisation est donné dans le fil dédié du forum, ainsi que l'accès à un addin de test/documentation.
N'hésitez pas à tester et faire remonter les questions et/ou bugs.
N'oubliez pas non plus le magnifique concours du Puzzle de l'Avent 2023. Cette année, Lephé s'est encore arraché pour nous concocter de bien belles énigmes afin de récolter au fur et à mesure des jours les chères pièces du puzzle qui vous permettrons de reconstituer le pixel-art de 2023.
Cette année, le thème est très industriel et tourne autours d'un style à la Factorio. Comme le précise Lephé:
Lephé a écrit : On a un thème industriel cette année, où on va suivre les efforts et aventures d'une petite usine avec des préoccupations très calculatoires. Les graphismes sont 100% originaux et toute ressemblance avec n'importe quoi est entièrement fortuite.
... comme vous pouvez le constater sur cet exemple d'image illustrant le concours.
Pensez donc à participer et démenez-vous pour remporter la Casio Graph 90+E donnée en lot pour le plus rapide à reconstituer le puzzle en entier.
Les finishers seront tous affublés du grade de "Maître du Puzzle", récompense honorifique sur Planète Casio.
Faites chauffer vos neurones ... et soyez malins ...
--------------------------------
Nous voici arrivés à la fin de cette 243ème édition de la Revue des Projets !
Nous espérons que vous avez pris du plaisir à redécouvrir ou découvrir certains projets à travers cette longue revue. N'hésitez surtout pas à laisser vos commentaires, questions et autres remarques pertinentes.
En ces temps d'achats de Noël, nous vous souhaitons de trouver tous les cadeaux pour gâter vos proches, de bons projets et vous disons à bientôt sur Planète Casio.
Et surtout, faites nous part de vos créations avec un petit @RDP bien placé enfin de post !
Mhhh... Il faudrait que je mette à jour les screens sur la page de CDT et que je finisse le polish...
Merci pour cette RDP !
WOW ! Mais qu'est-ce-que je vois ??!! Une extension VS Code qui permet de simplifier le développement sur calculatrices ??!! C'est ici : Casio Dev Tools. C'est incroyable ! C'est prodigieux !
J'ai remarqué aussi que lorsque l'on demande le rafraichissement de la liste des librairies dispo sur la forge Gitea de PC, cette opération se fait en boucle au lieu d'une seule fois.
On pourrait sauver quelques ressources de ce côté là je pense.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Je vais aller voir ça et faire une issue. Mais je n'ai pas trop le temps de travailler sur CDT en ce moment donc ça pourrait quelque temps avant que ce soit fix vue le nombre d'issue qu'il y a à regler .
EDIT : Que veux tu dires par "se fait en boucle" et de quel partie parles-tu exactement ?
WOW ! Mais qu'est-ce-que je vois ??!! Une extension VS Code qui permet de simplifier le développement sur calculatrices ??!! C'est ici : Casio Dev Tools. C'est incroyable ! C'est prodigieux !
J'ai une notification en bas à droite de vscode / codium qui "pop" régulièrement pour me dire qu'il réactualise la liste des librairies giteapc.
Il me semble que c'est lorsque je demande un rafraichissement de la liste avec le bouton loupe que ça commence.
Je regarderai mieux et essaierai de te faire une capture d'écran.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
WOW ! Mais qu'est-ce-que je vois ??!! Une extension VS Code qui permet de simplifier le développement sur calculatrices ??!! C'est ici : Casio Dev Tools. C'est incroyable ! C'est prodigieux !
Wow gros banger l'émulateur, j'avais déjà émis l'idée de faire un truc du genre, bravo ! Et merci pour l'inclusion du 2048 ça fait toujours plaisir qu'après toutes ces années mes programmes continuent de vivre .
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris(élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs(élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush(jeu concours)(élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce(élu Jeu Du Mois)
C'est le préload de la table de shift pour l'effet wormhole.
Sinon le calcul en temps réel prends 30s
Donc j'ai fait un pré-pré calcul sur PC et reinjecté dans le code G90+E.
Malin le Lapin
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 11/12/2023 16:28 | #
Mhhh... Il faudrait que je mette à jour les screens sur la page de CDT et que je finisse le polish...
Merci pour cette RDP !
Citer : Posté le 13/12/2023 14:12 | #
J'ai remarqué aussi que lorsque l'on demande le rafraichissement de la liste des librairies dispo sur la forge Gitea de PC, cette opération se fait en boucle au lieu d'une seule fois.
On pourrait sauver quelques ressources de ce côté là je pense.
Citer : Posté le 13/12/2023 14:45 | #
Je vais aller voir ça et faire une issue. Mais je n'ai pas trop le temps de travailler sur CDT en ce moment donc ça pourrait quelque temps avant que ce soit fix vue le nombre d'issue qu'il y a à regler .
EDIT : Que veux tu dires par "se fait en boucle" et de quel partie parles-tu exactement ?
Citer : Posté le 14/12/2023 15:41 | #
J'ai une notification en bas à droite de vscode / codium qui "pop" régulièrement pour me dire qu'il réactualise la liste des librairies giteapc.
Il me semble que c'est lorsque je demande un rafraichissement de la liste avec le bouton loupe que ça commence.
Je regarderai mieux et essaierai de te faire une capture d'écran.
Citer : Posté le 14/12/2023 17:32 | #
Tu es sous Linux ou Windows ?
Citer : Posté le 14/12/2023 18:11 | #
sous linux (ubuntu 20.04 LTS)
Citer : Posté le 14/12/2023 18:19 | #
En fait il cherche à mettre à jour les headers :
Ceci se produit après avoir installé une lib.
Citer : Posté le 14/12/2023 18:33 | #
GG pour l'émulateur j'avais pas vu qu'il avait autant avancé.
Citer : Posté le 15/12/2023 11:53 | #
Wow gros banger l'émulateur, j'avais déjà émis l'idée de faire un truc du genre, bravo ! Et merci pour l'inclusion du 2048 ça fait toujours plaisir qu'après toutes ces années mes programmes continuent de vivre .
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Citer : Posté le 15/12/2023 14:12 | #
Dis donc Sly c'est quoi ce gros tableau tout moche en plein milieu du code. :P
Citer : Posté le 15/12/2023 14:15 | #
C'est le préload de la table de shift pour l'effet wormhole.
Sinon le calcul en temps réel prends 30s
Donc j'ai fait un pré-pré calcul sur PC et reinjecté dans le code G90+E.
Malin le Lapin
Citer : Posté le 15/12/2023 14:19 | #
Je précise en plus que tu n'en vois qu'un tout petit morceau, le tableau fait 396*224 valeurs :P