Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » libMicrofx : Remplacez fxlib pour faire des add-ins très légers.
Mb88 Hors ligne Labélisateur Points: 944 Défis: 3 Message

libMicrofx : Remplacez fxlib pour faire des add-ins très légers.

Posté le 14/01/2023 12:42

C'est une petite librairie qui pour l'instant est loin d'être terminée, qui permet de coder des petits add-ins très légers (1,2 Ko minimum avec -Os actuellement et 512 Ko max.).

Ce n'est pas réellement une alternative à gint, car libMicrofx utilise les syscalls et est donc pas très rapide. De plus, c'est une librairie avec le minimum de fonctions pour rester très légère, mais elle contiendra toute les fonctionnalités indispensables pour développer des add-ins et des petits jeux. Elle permet aussi aux habitués du basic casio de faire facilement des portages de leur jeux grâce à des fonctions similaires à celles du basic. Elle est sous la Unlicense pour que tout le monde peut l'utiliser comme il veut !

Dernière version : v.0.3


Dès maintenant vous pouvez l'essayer en téléchargeant le code sur la branche master :
>> Téléchargement <<

>> Branche dev <<

Coder son permier add-in avec Microfx :
>> Getting started <<


Un grand merci à Lephenixnoir et Yatis pour leur aide !


1, 2 Suivante
Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 14/01/2023 13:08 | #


Garantit les add-ins les plus petits, bon travail
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Mb88 Hors ligne Labélisateur Points: 944 Défis: 3 Message
Slyvtt Hors ligne Maître du Puzzle Points: 2309 Défis: 17 Message

Citer : Posté le 14/01/2023 13:14 | #


Du coup ça peut relancer l'idée du "coding challenge" style demoscene avec le plus bel addin tenant dans X kilo-octets (avec X bien entendu à définir)
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 14/01/2023 13:15 | #


Ooh c'est vrai ça, je participerais bien à un petit événement comme ça :o
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Mb88 Hors ligne Labélisateur Points: 944 Défis: 3 Message
Slyvtt Hors ligne Maître du Puzzle Points: 2309 Défis: 17 Message

Citer : Posté le 14/01/2023 14:43 | #


J'ai un peu suivi de loin vos discussions, du coup je suis un peu à la rue.

J'en profite pour remettre sur le tapis une vieille question/discussion de ma part sur la possibilité d'avoir un système d'addin compacté. J'avais posé la question lors de la conversion de la zlib.

En gros un g1a/g3a "zippé" qui contient une base pour décompresser l'addin en RAM avant de le lancer.

Je sais pas si :
1/ c'est faisable
2/ c'est difficile
3/ ça gagnera beaucoup ou pas
4/ ça sera supportable en terme de temps de chargement

Un avis ?
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Mb88 Hors ligne Labélisateur Points: 944 Défis: 3 Message

Citer : Posté le 14/01/2023 17:27 | #


J'en sais rien mais microfx ne permet que de faire des add-ins tout normaux, c'est juste qu'il utilise les syscalls et prend donc très peu de place. Il faut que je code encore quelque trucs pour que kcheck marche, ce qui agrandira un peu la taille des add-ins qui l'utilise, mais ça prendra sûrement pas beaucoup de place en plus.
Parisse Hors ligne Membre Points: 484 Défis: 0 Message

Citer : Posté le 14/01/2023 19:24 | #


Quel serait l'interet de decompresser le code d'un addin en RAM? Economiser de l'espace de stockage?
Mb88 Hors ligne Labélisateur Points: 944 Défis: 3 Message

Citer : Posté le 14/01/2023 19:32 | #


Oui, mais en réfléchissant je ne vois pas trop en quoi c'est mieux d'économiser la smem que la ram, mais bon, chacun son avis.
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 14/01/2023 19:35 | #


en dehors des gamejam avec dss cointrainte sur la taille des add-ins je vois pas trop, à part peut-être sur si on a beaucoup de texture pas forcement toutes en même temps genre un mario bros avec un tileset differents par monde ?
Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 14/01/2023 19:36 | #


Parisse a écrit :
Quel serait l'interet de decompresser le code d'un addin en RAM? Economiser de l'espace de stockage?

Perso surtout réduire le temps de transfert sur la Graph 90+E x) Et puis pour KhiCAS potentiellement faire tenir plus de 2 Mo dans un seul fichier (mais bon tout ça pour avoir un seul fichier c'est presque pas la peine)
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Slyvtt Hors ligne Maître du Puzzle Points: 2309 Défis: 17 Message

Citer : Posté le 14/01/2023 21:34 | #


Oui pour moi le but premier serait d'avoir une compaction des données notamment les assets graphiques. pour ne pas se trainer des addins massifs (surtout sur CG50) qui sont pénibles à transférer.

aussi un peu le challenge technique est sympa.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Mb88 Hors ligne Labélisateur Points: 944 Défis: 3 Message

Citer : Posté le 14/01/2023 22:10 | #


Bah ça ça va, tant que c'est pas du code je pense que c'est facile.
Parisse Hors ligne Membre Points: 484 Défis: 0 Message

Citer : Posté le 15/01/2023 08:31 | #


Lephenixnoir a écrit :

Perso surtout réduire le temps de transfert sur la Graph 90+E x) Et puis pour KhiCAS potentiellement faire tenir plus de 2 Mo dans un seul fichier (mais bon tout ça pour avoir un seul fichier c'est presque pas la peine)

Je ne pense pas qu'on puisse faire tenir KhiCAS dans un seul fichier de moins de 2Mo, le taux de compression global est d'environ 40% avec zip (37% pour l'overlay et 43% pour l'addin). Et puis, on ne pourrait pas tout decompresser en RAM, il faut en garder une partie en ROM.
Par contre, on pourrait compresser juste l'overlay et le decompresser au lancement de l'addin, ca economiserait un peu d'espace de stockage (environ 800K) et de temps de transfert (environ 20% globalement, c'est toujours ca en particulier sur l'emulateur) sans rien perdre.
Mais ca ne remplacerait pas un lanceur d'addin sur fichier plus gros que 2 Mo qui reprogrammerait le MMU, et permettrait d'acceder a 3Mo de RAM dans KhiCAS version complete. Ca ce serait un super challenge, mais tu dis que c'est trop dangereux. Je n'ai pas retrouve la description du brick de calculatrice, tu as un lien?
Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 15/01/2023 09:40 | #


"Trop dangereux" ce serait me donner trop de crédit : personnellement je n'ai pas assez confiance dans la stabilité de la chose pour le distribuer de façon large sur les calculatrices des utilisateurs (et toi tu en as pas mal en plus...). Récemment circuit10 (sur son serveur Discord) a fait des tests avec juste des mappings MMU en plus sans changer la configuration (quelque chose dont on peut argumenter que ça ne peut pas créer de problème) et j'ai clarifié que cette position est un résultat de mes standards de stabilité, qui sont très conservateurs. Vous n'êtes pas obligés de prendre mon estimation au pied de la lettre.

Cela dit, j'ai remis le nez dans le topic où AHelper a cassé sa calculatrice et la description qu'il fait de sa routine (notamment le code assembleur à trous) ne contient rien d'autre que charger des pages et re-router les exceptions à la gint.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Parisse Hors ligne Membre Points: 484 Défis: 0 Message

Citer : Posté le 15/01/2023 12:58 | #


Merci pour le lien. Effectivement, ca fait un peu peur. En tout cas, il n'y a pas vraiment de raisons de le faire pour le moment pour KhiCAS, vu qu'il y a 500K de ram disponible (il pourrait meme y avoir un peu plus, mais je prefere me garder un peu de marge pour ajouter des fonctionnalites dans KhiCAS)
Compresser le fichier d'overlay est beaucoup plus sur et sans doute pas trop complique a realiser. Un truc nettement plus dur serait d'avoir un noyau fixe (dans l'addin en ROM) et des parties independantes, compressees, et chargeables en RAM en adresse fixe a la demande.
Mb88 Hors ligne Labélisateur Points: 944 Défis: 3 Message

Citer : Posté le 15/01/2023 17:07 | #


Enfin j'ai fini par avoir un kcheck fonctionnel sur les calculatrices récentes !
Merci à Lephenixnoir et Yatis pour toute leur aide !
Mb88 Hors ligne Labélisateur Points: 944 Défis: 3 Message

Citer : Posté le 15/01/2023 20:51 | #


J'ai ajouté des fonctions, et maintenant il y a tout pour faire des jeux avec !

J'ai eu une trop bonne idée de challenge :
Taille 5120 octet max. (je ne sais même pas si c'est possible )
Graphismes : Isométrie
Acrocasio Hors ligne Membre Points: 974 Défis: 0 Message

Citer : Posté le 15/01/2023 20:54 | #


Ah ouais quand même O_o
Mb88 Hors ligne Labélisateur Points: 944 Défis: 3 Message

Citer : Posté le 15/01/2023 21:10 | #


Challenge d'add-ins bien sûr, en basic c'est plus facile (?)
1, 2 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 61 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

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