Planète Casio - Projets de programmation - Flux RSS http://www.planet-casio.com Programmes Casio, Jeux, Cours pour Calculatrices Casio fr-FR https://www.planet-casio.com/images/logo.gif Planète Casio - Projets de programmation - Flux RSS http://www.planet-casio.com 55 50 Programmes Casio, Jeux, Cours pour Calculatrices Casio. Sun, 15 Sep 2024 09:39:53 GMT Sun, 15 Sep 2024 09:39:53 GMT contact@planet-casio.com (Planet Casio) contact@planet-casio.com (Planet Casio) 5 Un petit raycaster https://www.planet-casio.com/Fr/forums/topic17874--.html J'ai commencé à coder un raycaster et j'en publie un premier port pour les 20 ans de PC :D https://git.planet-casio.com/mibi88/raycaster_pc_20 . Add-in en pièce jointe :D Il supporte les textures, qui peuvent être désactivés avec OPTN. ALPHA permet d'activer la correction de l'effet œil de poisson, et SHIFT de changer vers la vue en 1ère personne. VARS cache ou affiche le compteur de FPS. Sun, 15 Sep 2024 00:01:54 +0200 WIP: md2bb - un convertisseur en ligne de commande de Markdown vers du BBCode https://www.planet-casio.com/Fr/forums/topic17850--.html WIP: md2bb - un convertisseur en ligne de commande de Markdown vers du BBCode Dépot : https://github.com/mibi88/md2bb Il y a quelque jours j'ai commencé à coder un convertisseur Markdown vers BBCode, car il est bien plus pratique d'écrire de longs textes en Markdown qu'en BBCode. Il existe déjà des convertisseurs Markdown vers BBCode, mais le BBCode est différent d'un site web à l'autre, mon convertisseur peut donc être adapté pour des sites web différents assez facilement. Pour l'instant, seul phpBB et Planet Casio sont supportés. Tout cela semble merveilleux, mais mon convertisseur, qui vise à être compatible avec https://daringfireball.net/projects/markdown/dingus, est loin de l'être. Essayez de convertir le fichier test.md du dépôt, et vous verrez que beaucoup de choses ne sont pas encore converties, mais les fonctionnalités les plus basiques du markdown sont déjà supportés, comme vous pouvez le voir, car ce post lui même est écrit en markdown (markdown en pièce jointe). Pour convertir du markdown en BBCode avec, il vous suffit d'entrer la commande suivante : $ python3 main.py [fichier markdown] -o [fichier BBCode] -t planet-casio -o spécifie le fichier de sortie. Si vous ne le spécifiez pas de fichier de sortie, le BBCode sera écrit sur la sortie standard. -t spécifie le site web visé, ici planet-casio. Toutes les contributions sont, bien sûr, bienvenues ! PS: J'ai du renommer le fichier markdown en .txt pour pouvoir l'ajouter en pièce jointe. Mon, 26 Aug 2024 18:09:44 +0200 3D Racer : Un petit jeu en 3D wireframe ! https://www.planet-casio.com/Fr/forums/topic17831--.html Un petit jeu en wireframe :D ! https://www.planet-casio.com/storage/forums/Capture%20de%20Capture%20vid%C3%A9o%20du%202024-08-11%2016-00-28.mp4-17831.png Programme : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html Dépôt git : https://git.planet-casio.com/mibi88/racer3d Version pour Graph 90+e : https://www.planet-casio.com/Fr/programmes/programme4445-1-racer3d-cg-mb88-jeux-add-ins.html Dépôt de la version pour Graph 90+e : https://git.planet-casio.com/mibi88/racer3d_cg Une vidéo du jeu sur mono : https://www.planet-casio.com/storage/forums/main-2000_40-197661.mp4 Une vidéo du jeu sur G90+e : https://www.planet-casio.com/storage/forums/Capture%20vid%C3%A9o%20du%202024-08-12%2014-40-37-197669.mp4 Des fonctions de trigonométrie : https://www.planet-casio.com/storage/forums/Capture%20d%E2%80%99%C3%A9cran%20du%202024-08-09%2014-55-11-17831.png Du rendu 3D : https://www.planet-casio.com/storage/forums/Capture%20vid%C3%A9o%20du%202024-08-09%2018-06-02-197627.mp4 On peut bouger le vaisseau dans un joli champ d'étoiles : https://www.planet-casio.com/storage/forums/Capture%20vid%C3%A9o%20du%202024-08-09%2022-04-44-197639.mp4 Un écran de titre : https://www.planet-casio.com/storage/forums/Capture%20vid%C3%A9o%20du%202024-08-09%2023-10-52-197640.mp4 Le jeu est déjà presque complet : https://www.planet-casio.com/storage/forums/main2-197648.mp4 Le jeu est fini : https://www.planet-casio.com/storage/forums/main-2000_40-197661.mp4 Je suis en train de faire un petit jeu en 3D wireframe avec libMicrofx, et je viens de faire des fonctions pour la trigonométrie en fixed point (mais va falloir un jour que je les change parce que là avec des tables ça fait un add-in de 6Ko :/) : https://www.planet-casio.com/storage/forums/Capture%20d%E2%80%99%C3%A9cran%20du%202024-08-09%2014-55-11-17831.png Fri, 09 Aug 2024 14:57:41 +0200 Mini Moteur 3D https://www.planet-casio.com/Fr/forums/topic17830--.html Hello les gens ! Ça fait un moment ! Comme certains le savent déjà, je travaille depuis un certain temps sur un moteur de jeu, et plus précisément sur un moteur 3D. Cela m'a conduit à effectuer de nombreux essais. Aujourd'hui, je suis ravi de vous partager les sources d'une version miniature de ce moteur, qui est destinée à remplacer celui de TOTN à l'avenir. Le code est ultra minimaliste, ce qui le rend facile à comprendre. Si vous avez des suggestions d'améliorations (optimisations ou autres), n'hésitez pas à me les faire savoir. Si vous souhaitez tester le moteur, voici les touches utiles à connaître : Croix directionnelle : avancer, reculer, aller à droite, aller à gauche 8 : monter 2 : descendre 4 : rotation vers la gauche 6 : rotation vers la droite 7 : rotation vers le haut 1 : rotation vers le bas MENU : quitter Les sources sont jointes à ce topic. ^^ https://zupimages.net/up/24/32/jiw2.png Fri, 09 Aug 2024 02:48:37 +0200 Démos Graph 90—à vos pinceaux ! https://www.planet-casio.com/Fr/forums/topic17829--.html Tout à l'heure sur la shout avec Mb88 on repassait sur l'idée de faire des démos (voir scène démo si vous ne connaissez pas). Essentiellement, c'est des programmes minuscules (aussi petits que possible) qui font des trucs graphiques stylés. Sur Graph 90, on ne peut pas trop faire ça parce que de toute façon un add-in doit faire 28 ko rien que pour mettre l'en-tête du g3a avec les icônes... donc vous imaginez que les démos de 4 ko c'est pas la peine d'y penser. ^^" Du coup j'ai écrit un petit programme, "Prizm Demos Loader" (PDL) qui permet essentiellement de charger des binaires purs de petite taille pour les exécuter : Prizm Demos Loader https://git.planet-casio.com/Lephenixnoir/prizm-demos-loader/raw/branch/main/loader/icon-uns.pngComme le bare metal c'est quand même un peu chiant, le chargeur fournit à la démo : Un pointeur VRAM et un pointeur vers la fonction d'affichage (`dupdate`) ; Une variable qui compte automatiquement le temps écoulé en millisecondes. Avec le loader il y a aussi une démo d'exemple toute bête qui fait une sorte de fondu de couleurs pendant 4 secondes . Quand on le compile ça donne un fichier `.pdl` qui est juste un binaire pur (124 octets, plutôt optimisé !) et qu'on peut lancer dans l'add-in de chargement. Voilà c'est très primitif encore mais c'est pour lancer un peu le mouvement. Si vous avez des commentaires ou pensez qu'on devrait s'y prendre différemment, allez-y. Je serais intéressé pour faire une mini-compétition de démos, genre 1 ko comme clin d’œil à la 1kBCJ, s'il y a des preneurs ! :D Télécharger pour tester : :here: PrizmDemos.g3a :here: exdemo.pdl :here: Copier les deux fichiers sur la calto, lancer l'add-in "PrizmDemos", sélectionner "example.pdl" (EXE) Thu, 08 Aug 2024 23:55:02 +0200 peut-on transformer une fx 92 2023 en Graph 25 https://www.planet-casio.com/Fr/forums/topic17805--.html bonjour je voudrais transformer ma fx 92 2023 en Graph 25 parce que techniquement elle son proche du poin de vu mémoire Sat, 06 Jul 2024 18:39:28 +0200 PyGint https://www.planet-casio.com/Fr/forums/topic17777--.html Salut a tous et a toutes, je suis heureux de vous annoncer mon nouveau projet PyGint :D . Un peu de contexte... Je travail en ce moment sur Gint++ et ce qui me dérange, est que je suis obligé de developper sur ma calculatrice car j'utilise le module gint. Et si je voulais coder sur l'ordinateur, je serai obligé de transférer le fichier sur la calculatrice pour essayer, ce qui est long. Je suis alors en train de travailler sur un autre projet appelé PyGint qui permet d'éxécuter des programmes gint sur ton ordinateur! Avec une seul commande depuis ton terminal, pip install pygame tout est pret a utiliser ^^ . Evidemment, le projet n'est pas encore fini et il manque pas mal de fonctions mais les bases sont la (a voir sur la TODO list) La taille de la fenetre est customable sur le script gint.py en modifiant la variable size. Lien git: PyGint j'espere que ce serait utile pour des autres personnes ^^ Tuper Fri, 31 May 2024 22:20:45 +0200 Emulateur addins Graph100 https://www.planet-casio.com/Fr/forums/topic17730--.html Bonjour tous ! La graph100 est bien vieille maintenant, et chez certains (très) anciens, c'est une calculatrice qui nous a accompagné et qui a été une formidable aventure. La graph100 disposait d'un processeur 5Mz avec un système proche de DOS et de l'assembleur x86 16 bits (80286 plus précisément). Les addins étaient limités à 64KO ! De merveilleux programmes ont été écrits pour cette calculatrice, qui supportait les addins (à l'époque c'était la seule de CASIO avec la Classpad à les supporter). Hélas la plupart des sites graph100 et la communeauté associée a disparue. De nombreux programmes ont été perdus, mais de nombreux sont encore disponible sur planet-casio. Quelques documents sont encore disponibles: https://bible.planet-casio.com/cakeisalie5/websaves/graph100.com/ Le processeur est également bien documenté (v30Mx), par exemple: http://www.buchty.net/casio/files/v30-core.pdf D'autres docs sur le jeu d'instructions: https://www.gladir.com/CODER/ASM8086/serie-nec-v20-v30.htm https://www.ardent-tool.com/CPU/docs/NEC/V20-V30/v_series.pdf Une projet déjà existant d'émulation de cpu proche (V30Mz): https://github.com/FluBBaOfWard/ARMV30MZ La documentation disponible permet donc de reproduire le comportement mémoire, et les timings du processeur, ainsi que de savoir comment décoder toutes les instructions. Il est donc possible d'écrire un interpréteur des programmes graph100. Dans un premier temps sur PC, mais qui sais peut-être plus tard sur calculatrice. Des idées pour démarrer ? Des volontaires pour participer au projet ? Sat, 06 Apr 2024 23:03:07 +0200 omega/oSDK - un (autre) unikernel pour Graph 90+E https://www.planet-casio.com/Fr/forums/topic17724--.html Pour programmer sur les calculatrices Casio, la solution la plus simple a souvent été le Basic Casio. Bien que très utilisé au cours du temps - et Planète Casio en est un bon exemple -, c'est un langage vraiment lent, et plutôt pauvre en possibilités. La solution du Python s'est incorporée progressivement : c'est mieux, mais pas idéal. Enfin, il a - quasiment - toujours été possible d'utiliser le SDK de Casio. Ce SDK - kit de développement - permet de développer des add-ins, c'est-à-dire des applications natives. Mais en 2015, Lephenixnoir crée sa propre solution : gint, et son acolyte le fxSDK. Permettant toujours de programmer des add-ins, c'est aujourd'hui la solution la plus répandue. C'est ici que j'arrive. Fin 2023, je regarde le code de gint de près : je me découvre un intérêt pour la programmation bas niveau et la compréhension de ce genre de systèmes. C'est donc dans l'optique de toucher ça d'un peu plus près que je me lance dans omega. Mon but n'est pas de concurrencer gint - je n'en ai ni l'envie ni les capacités - : je veux simplement m'amuser et découvrir des choses. :D omega est un unikernel. Cela veut dire qu'à l'intérieur de chaque add-in réalisé avec omega, se trouve le kernel qui le lance. Le but est de ne pas utiliser l'OS de Casio, et de créer le nôtre, en quelque sorte. Ce fonctionnement est aussi celui de gint. Avec omega vient l'oSDK, mon kit de développement. Les sources sont sur le dépôt git d'omega ainsi que sur le dépôt git du oSDK Principales fonctionnalités omega est actuellement en cours de développement. Voici une liste des principales fonctionnalités gérées : - Driver de l'écran, fonctions basiques de dessin et de texte (printf-like, fonctions de dessins de ligne/rectangles...) ; avec, bien sûr, mise en place d'une VRAM - Conversion d'images .png - oconv - et fonctions d'affichage de ces images - Gestion basique du clavier : keydown() et keypressed() actuellement - Gestion des interruptions : je gère les interruptions, les exceptions (souvent appelées System ERROR) et les interruptions du TMU - Gestion de timers : possibilité de gérer 3 timers en simultané, ce qui est surtout utile pour garder un nombre constant de FPS (possibilité d'attendre la fin d'un timer) Installation du oSDK et d'omega Il est nécessaire au préalable d'installer sh-elf-gcc et sh-elf-binutils via GiteaPC. Compilons et installons ensuite omega : % git clone https://git.planet-casio.com/Potter360/omega/ % make % sudo make install Enfin, installons l'oSDK : % git clone https://git.planet-casio.com/Potter360/osdk % chmod +x install.sh % ./install.sh Et voilà ! On peut maintenant créer un nouveau projet avec : % osdk new [<nom du projet>] Démonstration(s) Il n'existe pour l'instant pas de démonstration. J'aurai pu joindre quelques photos d'un projet minimal (texte, image) créé avec omega, mais je préfère attendre d'avoir un "vrai" jeu ou projet codé avec omega. J'en profite pour dire que si ça vous tente d'utiliser omega pour votre prochain projet, ce serait avec plaisir ! En attendant quelques projets arrivent... stay tuned ! Sun, 24 Mar 2024 23:15:16 +0100 [mini-projet] azuray -- un raycaster avec Azur https://www.planet-casio.com/Fr/forums/topic17720--.html C'est la saison des raycasters en ce moment, et je me suis fait tenter une fois de trop donc j'ai fini par essayer d'en coder un. Le rendu graphique c'est plus drôle que debugger MicroPython (désolé mais facts quoi). Ça a bien tourné et le résultat est raisonnablement utilisable je pense, donc je partage. Télécharger une démo .g3a Dépôt Git Lephenixnoir/azuray https://git.planet-casio.com/Lephenixnoir/azuray/media/branch/main/screenshot.jpg Le "mini-projet" dans le titre est pour clarifier que c'est un projet que j'ai commencé sur coup de tête et je n'ai pas l'intention de le pousser plus loin. Je suis toujours là pour debugger ou tirer sur des petites fonctionnalités si des gens s'en servent, mais sinon ça ne bougera plus. Contrôles pour la démo : Flèches pour se déplacer, F1/F2 pour strife VARS pour afficher le HUD et les compteurs de performance F4, F5, F6 pour se téléporter à quelques endroits prédéterminés C'est mon délire habituel : prendre un truc raisonnable (un raycaster), le passer sous Azur, et ensuite commit après commit de grattage de cycles jusqu'à ce que ce tout le code qui manipule le moindre pixel soit au milieu d'un gros paquet d'assembleur illisible. Mais d'un autre côté, ça va vite ! Le raycaster est documenté dans `azuray.h` et le moteur est séparé de l'exemple, ce qui devrait le rendre vaguement réutilisable si jamais il y a des gens qui voudraient essayer de jouer avec. Notez que je ne l'ai testé que sur cet exemple par contre, donc je garantis pas que vous arriviez forcément à faire ce que vous voulez avec. Voilà voilààà, retour à PythonExtra maintenant. Sun, 17 Mar 2024 23:23:10 +0100