Posté le 28/10/2012 12:19
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 109 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
Citer : Posté le 28/10/2012 13:13 | #
Sinon tu télécharge FA-124, et tu édite les programmes avec ça.
Citer : Posté le 28/10/2012 13:15 | #
ou alors tu programme en c sur ton pc pour ta calto
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 28/10/2012 13:58 | # | Fichier joint
Dejà pour faire un editeur, il faut que tu choisisse ton format d'enregistrement. Je suppose que ton programme ne va pas gérer le transfert (du moins dans un premier temps).
Prenons donc par exemple le fichier G1M qui est utilisé avec FA-124(un logiciel qui permet de taper et de transférer des programmes en basic à la calculatrice). Ton but va être d'en générer un grâce à ton logiciel. A ma connaissance il n'existe pas de doc qui explique comment fonctionne ce type de fichier donc c'est à toi de trouver.
Donc tu va aller sous FA-124 et on va crer un fichier basic du nom de TEST par exemple et on va le remplir comme ci-dessous :
Ensuite tu l'exporte en G1M (fait un glisser deposer du fichier sur ton bureau par exemple) et tu va ouvrir ce fichier avec un editeur hexadecimale. En gros c'est un editeur qui decoupe ton fichier en octet et te donne sa traduction en hexadecimal et si possible il te donne le caractere qui correspond, mais il n'y en a pas toujours.
Prenons par exemple cet editeur
Quand on ouvre notre fichier voila ce qu'on obtient :
La partie gauche de donne le code hexadécimal correspondant à chaque octet. Et la partie droite te donne le caractere correspondant s'il y en a un.
Tu peut voir que tous les codes qu'il y a avant la partie en bleu n'est pas très compréhensible. C'est l'en-tete du fichier, elle donne des info sur le fichier comme le nom du programme (que tu peut voire un peu plus haut : TEST) et d'autres info qu'il faudra dans un premier temps recopier exactement pareil, puis peu a peu comprendre le fonctionnement pour faire varier ces paramètres.
Quand tu regarde a droite tu vois notre "Hello" et j'ai selectionné en bleu le code qui est juste avant. Dans notre code basic c'était une flèche de retour à la ligne, mais il n'y avait pas que celle la il y en avait après "Test" et après "Boug". J'ai sélectionne en vert ces caractères la. Tu peu voir que tous ces caractères ont le code hexadécimal 0D, on peut donc en conclure que le retour à la ligne est 0D dans notre fichier.
On avait mis un Disp entre "Hello" et "Test", il est sélectionné en orange, tu peu donc en déduire que le code de ce caractère est 0C.
La fonction disp était codé sur un seul octet, mais ça ne sera pas toujours le cas. Hésite pas a poser des question si tu n'a pas compris, c'est un projet ambitieux qui mérite notre attention
Citer : Posté le 28/10/2012 14:03 | #
oui, c'est vraiment cool, mais le plus dur pour toi sera de comprendre le fonctionnement des fichiers Basic.
Si tu y arrive, la communauté fera un grand bond
Invité
Citer : Posté le 28/10/2012 15:53 | #
__A ma connaissance il n'existe pas de doc qui explique comment fonctionne ce type de fichier donc c'est à toi de trouver.
J'ai.
Qu'il attende un peu, j'ai besoin de gens comme ça.
Stev75, contact moi si tu veux plus d'infos sur les g1m, je pensais avoir ça sur mon site, mais pas du tout finalement, je t'enverrais ça par email.
Mais sinon tu peux attendre, il me faut retravailler ce que j'ai pour le lancement du projet.
pascal _a_ diogoantunes _d_ org
Si je me souviens bien, je n'ai que quelques zones d'ombres, mais rien de bien méchant.
Citer : Posté le 28/10/2012 17:47 | #
you can get info about common header in fxReverse 2
Citer : Posté le 28/10/2012 19:22 | #
Merci beaucoup pour vos réponse, c'est très encourageant .
Je vais analyser tout ça et faire des tests. Je solliciterai votre aide si besoin. Ca ne va pas tarder...
Citer : Posté le 29/10/2012 21:48 | # | Fichier joint
Rebonjour !
J'ai fais quelques recherche et j'ai réussi à décoder toutes les fonctions de PGRM plus quelques KEY. Regarder s'il vous plait le pdf "Chara info" que j'ai joint.
Je crois avoir compris à peu près comment fonctionne un fichier G1M, mais pour ce qui est du Header, c'est encore un peu flou.Grâce à l'éditeur hexadécimal et en faisant plusieurs tests, j'ai un peu compris la structure des Headers :
Header : 86 Octets
De 00000000 à 0000001F offset : partie variable
De 00000020 à 00000044 offset : partie « constante »
entre 00000020 et 00000032 offset : PROGRAM + 00 + 00 + 00 + 00 + 00 + 00 + 00 + 00 + 00 + 00 + 00 + 00
entre 00000033 et 00000044 offset : 01 + system + 00 + 00 + nom du Programme (8 caractères max) + 01
De 00000045 à 00000055 offset : partie variable
Mais comme le montre les "parties variables", il me manque encore quelques informations pour avancer. J'ai regarder le fichier pdf que Helder7 m'a fournis et il y a une partie qui semble expliquer le fonctionnement des headers. Mais déjà que c'est compliqué à ce la s'ajoute une autre difficulté : l'anglais. Donc si vous pouviez m'aider à comprendre ce qu'il est dit, ça me ferait beaucoup avancer .
Citer : Posté le 29/10/2012 22:00 | #
Dafp avait fait une doc assez bien faite sur ce sujet, il faudrait lui demander.
Sinon le lien de Helder est sans doute la source la plus fiable qui existe.
Je ne sais pas si beaucoup pourrons t'aider sur Planète Casio, au pire demande sur Casiopeia, mais la encore c'est en anglais (l'anglais n'est pas en option avec la programmation).
Escape prison
Bloxorz
Free wheel
QR code
Nombre en or
RayCasting Engine
Mario Party
Zelda
et Planète Casio
Citer : Posté le 29/10/2012 22:13 | #
Merci du conseil, je vais demander à daffp et potasser encore le pdf d'Helder7 en anglais . Pas le choix va falloir me mettre sérieusement à l'anglais .
Citer : Posté le 29/10/2012 22:41 | #
Je m'excuse d'avance pour ce pavé indigeste, mais j'ai du mal a le tourner autrement pour qu'il soit plus agréable à lire :/
Pour la version plus condensé en anglais tu va dans le PDF qu'helder a mis dans la partie 3.3.1
Pour commencer, le header est codé en "contraire"(du moins la premiere partie), c'est à dire que pour avoir la valeur en normale de 0xCE (le 0x veut dire que c'est de l’hexadécimal) tu prend par exemple la calculatrice Windows tu la met en mode programmeur puis en Hex. Tu fait FF - CE ce qui te donne 0x31. Dans la suite je parlerais que dans le sens normal ça sera a toi de convertir pour avoir le sens contraire.
0 - Les 8 premiers octets sont constant et permettent de vérifier que le fichier est fait pour les calculatrice USB casio ces octets veulent dire "USBPower". Donc les 8 octets 55 53 42 50 6F 77 65 72, ce qui est la traduction de USBPower. (oublie pas de faire le contraire ce qui donne AA AC BD AF 90 88 9A 8D)
8 - Cet octet est constant et il permet d'identifier le type de fichier : D'après la doc c'est 31 pour les G1M (donc le contraire c'est CE)
9 - Les 5 octets suivants sont constant est vallent d'après la doc 00 10 00 10 00 (en contraire FF EF FF EF FF)
E - pour ce byte, C'est les LSB(Least significant bits : les bit les plus a droite quand tu écris le mot en binaire) de la taille du fichier auquel tu ajoute 0x41. Ici on prend les 8 derniers bits je suppose donc, on prend simplement les deux derniers caractères hexadécimales(un caractere hexadecimal=4bit). Pour prendre un exemple si tu as une taille de 539o, en hexa ça donne 0x21B, donc tu prend 0x1B et tu lui ajoute 0x41 ce qui te donne 0x5C. Et tu fait le contraire bien sur pour l’écrire dans ton fichier. Sinon les deux derniers caracteres de la taille en hexa correspondent à l'octet qui a pour offset 0x13, (oublie pas de faire le contraire).
F - un byte constant qui vaut 0x01 (donc 0xFE en contraire)
10 - Ces 4 octets sont la taille du fichier en unsigned int et en big endian. Je suppose que tu connais l'unsigned int, et pour le big endian, je ne connais pas, et ça ne change rien dans mon code actuel(il faut que je test avec des tailles plus grande et je te redirait ça, sinon fait des recherche toi même sur ce que c'est). En tout cas tu comprend pourquoi l'octet qui a pour offset 0x13 est le dernier octet de la taille
14 - Ce bit est comme pour l'offset E, le dernier octet de la taille, auquel tu ajoute cette fois si 0xB8
15 - La doc dit qu'elle ne connais pas le fonctionnement de ces 9 octets, mais qu'il ont l'aire de ne pas alterer le fichier. D'ailleur je suppose qu'ils valent toujours 0xFF (0x00 en contraire) donc te casse pas la tête pour ceux la, c'est sans doute de la place reservé pour mettre d'autres infos qui n'est pas utilisé.
1E - Ces deux bits sont le nombre d'objet que contient ton fichier(un G1M peut contenir plusieurs fichiers) Mais dans un premier temps je te conseille de rester sur un seul fichier, tu vera plus tard, pour en mettre plus alors ces octes auront pour valeur 0x0001 (0xFFFE en contraire)
20 - La doc dit qu'a partir d'ici cela dépend du fichier, et on a pas plus d'info je crois donc c'est a nous de trouver. D'ailleur tu peut voir qu'on est plus en "contraire" puisque le texte s'affiche a présent dans la partie droite de notre editeur hexadecimal.
Apparemment tu as assez bien compris le fonctionnent jusqu’à l'offset 45, donc il te reste plus que de 45 à 55 à trouver.
Citer : Posté le 30/10/2012 22:21 | #
Merci beaucoup Ziqumu . Je pense avoir compris maintenant. Il me reste plus que le fonctionnement de l'offset 45 à 55, et j'ai repéré qu'à l'offset 48, il y a toujours une valeur, même si le fichier est vide. J'ai cru d'abord que c'était pour n'importe quel fichier, mais j'ai fais le test avec un fichier d'environ 1ko et il y avait aussi une valeur à l'offset 47. Je vais encore faire des tests, pour l'instant je sais pas à quoi ça correspond. Je vais peut-être demander chez Casiopeia...
Mais une question : ceux qui ont fait le générateur de cours doivent s'avoir normalement comment fonctionne les fichiers G1M. Si oui est-il possible qu'ils m'aident ?
Citer : Posté le 30/10/2012 22:29 | #
Derien en tout cas c'est cool que t'ai compris j'avais peur de te perdre et de te dégouter de ton projet
Le générateur génére pas des G1M mais du code a copier coller donc ils ne connaissent pas le header.
Sinon envoi un mail à dafp apparemment il avait fait une doc, il t'avais donné son adresse email :
pascal _a_ diogoantunes _d_ org
tu enlève les _ et tu remplace le a par @ et le d par un point et t'a son adresse
Ajouté le 30/10/2012 à 22:31 :
En 47 j\'ai rien moi (du moins sur un fichier) et pour le 48 c\'est constant ? Si oui te casse pas la tete.
Citer : Posté le 30/10/2012 22:39 | #
C'est déjà fait j'attend sa réponse. Je vais encore continuer les recherches et continuer à décoder les caractères et les fonctions de la calculettes. Patience s'impose donc...
Citer : Posté le 30/10/2012 23:08 | #
Pour les caractères et les fonctions, poste les à la fin, ça sert toujours aux futur projets ce genre de chose
Citer : Posté le 31/10/2012 09:01 | #
Au pire, je pourrais te l'envoyer si je la retrouve.
Il l'avait hébergé sur son serveur il y a quelques temps.
Escape prison
Bloxorz
Free wheel
QR code
Nombre en or
RayCasting Engine
Mario Party
Zelda
et Planète Casio
Citer : Posté le 31/10/2012 09:15 | #
oO tu as déjà réussi à trouver quoi que ce soit dans son serveur ?
Parce que c'est bien le bordel...
Citer : Posté le 24/11/2012 11:02 | #
Bonjour,
Désolé d'avoir pris autant de temps pour donner des nouvelles, mais j'ai été beaucoup pris par les cours.
Dafp m'a fourni sa documentation qui est très bien faite. Avec les explications de Ziqumu et cette doc, je pense être en mesure de pouvoir commencer à développer le programme.
Je vous tiendrai au courant si il y a du nouveau. :).
Citer : Posté le 24/11/2012 12:16 | #
Génial, hésite pas à poser d'autres question si tu a besoin
(et si tu a du mal à créer l’éditeur en Qt, je sais qu'il existe un exemple quelque part qui montre comment faire la numérotation des lignes sur le coté et un autre sur la colorisation syntaxique si tu a besoin)