Etude du format C1A
Posté le 01/11/2013 17:19
Comme vous le savez sûrement, la ClassPad 330 PLUS ne supporte pas le même format d'addins que les ClassPad 300/300+/330. Avant un kit de développement permettait de générer des addins au format cpa. Désormais le format des addins est le C1A, et à ce jour aucun logiciel permettant de compiler ce format ou de transformer un cpa en C1A n'a été publié publiquement.
Cependant "steps in logic" propose son application
algy 2 aux deux formats ainsi que pour la ClassPad 400 (en couleur).
Simon Lothar a commencé à étudier ce format :
SimLo a écrit :fx-CP, C1A-structure
CLASSPAD
virtual start address: 0x00300000
virtual RAM address: 0x08100000
syscall table entry: the address at 0x08100000 (obviously initialized by the system before starting the add-in.)
It has been observed that the static RAM starts at 0x081000CC.
The file format is similar to the G3A file format.
Standardheader
All file formats that are read or written by the calculator share a common header format. This header is inverted before being written and read, so a description of the inverted file data make more sense than the normal file data. The C1A-header seems to be identical to that of a G3A.
Addin subheader
Upon execution, the addin-code starting at file offset 0x1000 is virtually mapped to 0x00300000, and the OS jumps to address 0x00300000 (“Addin code”). The virtual RAM-address is still 0x08100000. But it seems, that at 0x08100000 the address to the syscall-table is stored.
Addin subheader fields (items, which differ from the G3A-structure, are printed in red)
Si vous trouvez d'autres choses, merci de m'en faire part.
Màj du 05/11/13 : remplacement de mon analyse par celle de Simon Lothar, plus complète.
Citer : Posté le 02/11/2013 21:55 | #
Essai de voir par rapport à l'assembleur SH4 si tu trouves des instructions ressemblantes dans la partie source. Pour ce qui est du header, rien d'étonnant.
Citer : Posté le 02/11/2013 22:00 | #
Ce qui est bizarre c'est que le header des cpa est bien différent.
Citer : Posté le 02/11/2013 22:28 | #
J'avais déjà vu un truc comme sur casiopeia, au moment où algy 2 est sorti pour cp330+
Citer : Posté le 02/11/2013 22:48 | #
Ce qui est très étonnant, c'est que le fichier C1A est exactement le même que le fichier C2A qu'ils donnent pour la FxCP400, Pour les deux on a :
SHA256: ff3a2b9474e091b3b82ae6ae43a841e4fedd469d2ff0947a6313200b7bf71ab2
Bon un petit tour d'editeur hexadecimal et on voit que dans le fichier on a un endroit où c'est écrit "algy2.C1A", je pense donc que la version du C2A est fausse ? Faudrait le tester, et contacter la société d'Algy si c'est bien une erreur, mais j'ai pas réussi à importer des fichiers sur l'emulateur. Mais ce C2A m'intrigue, dans le C1A, il semble y avoir du code binaire, alors en toute logique le C2A devrait être un addin aussi, et donc il supporterais les addins.
Les fichier C1A et CPA sont quand même totalement différents : rien que la taille, respectivement 218ko et 70ko. La différence d'entete en soit n'est pas choquante, sachant que le format change, l'entete change, c'est normal. Par contre que la taille change autant alors que les calculatrices sont très proches materielement et que les programmes sont les mêmes, ça c'est étonnant.
Elle commence où la partie binaire dans les CPA ?
Citer : Posté le 02/11/2013 23:40 | #
On en avait déjà parlé :
Algy2.C2A obviously is kinda pseudo-addin. The cp400 checks the filename and some checksums to decide, if the Algy 2 icon is shown in the menu. I tried an empty, checksum-adjusted Algy2.C2A, which surprisingly did not crash on start, but (even more surprising) showed the Algy 2 start screen! The only explanation is, that the Algy 2 program resides inside of the OS. It is to fear, that the cp400 does not support addins at all. What a waste! What an incredible waste!
Steps in logic travaillerait - il pour Casio ? Un peu comme le CAS de la graph 100, dont Casio n'était pas propriétaire.
Personnellement je me suis fais un avis
Escape prison
Bloxorz
Free wheel
QR code
Nombre en or
RayCasting Engine
Mario Party
Zelda
et Planète Casio
Citer : Posté le 02/11/2013 23:48 | #
Hmm ouais en même temps, ça expliquerais le fait que le C2A soit le même que le C1A, si, peut importe le contenu, il active l'addin qui est dans l'OS tant que les checksum sont bons. La seule possibilité serait donc de recup une image de l'OS et de chercher à la modifier pour qu'elle accepte les addin. (mine de rien on a déjà une base pour lui faire accepter les addin, puisqu'elle est capable d'analyser les fichiers en mémoire, pour voir si c'est des addin et de créer un icone pour le lancer). Si ca se trouve lors de l'indexage des addins, ils ont modifié à la dernière minute pour que, dans la table où est enregistré la liste des addin, au lieu de mettre l'addresse du point d'entré du fichier, ils mettent celui d'Algy2 qui est dans l'OS et donc on pourrait eventuelement modifier ça. Bon j'ai pas le temps mais ça pour être faisable via un flash de l'OS.
Et ouais, je pense qu'ils ont eu un contrat si l'addin est carrément dans l'OS, mais là c'est bien plus officiel que pour le CAS de la G100
Citer : Posté le 03/11/2013 13:19 | #
Je ne pense pas que l'add-in soit directement dans l'OS, on retrouve dans le C1A toutes les chaînes de caractères apparaissant dans l'add-in et donc probablement le code aussi mais je n'y connais rien donc je peux pas lire ce code. Si ça ne faisait qu'activer l'add-in dans l'OS le fichier ne serait pas plus gros que le C1A.
Par contre il n'est pas exclu qu'ils aient un contrat avec Casio puisqu'eux seuls arrivent à développer ces applications... c'esr louche.
Citer : Posté le 03/11/2013 14:20 | #
Si je ne me trompe pas, Louloux, là Ziqumu est en train de parler de l'OS des CP400 et donc des C2A, plutôt que des C1A
Citer : Posté le 03/11/2013 16:13 | #
Ah oui ok.
Dans tous les cas si le fichier pour les C2A ne fait qu'activer un add-in qui est déjà dans le système pourquoi s'être encombrés avec tout ce code en plus qui serait donc inutile ?
Citer : Posté le 03/11/2013 18:01 | #
Aucune idée..
Ce que tu pourrais faire louloux, pour qu'on en sache plus sur les C1A : il y a sans doute des checksum, ou du moins des outils pour vérifier l'intégrité du fichier. Sans ces outils, on ne sera pas capable de générer des C1A, il faudrait que tu trouves où est situé cette (ou ces) valeur(s) et que tu fasses quelques modifs pour voir si la calculatrice l'accepte. Fait gaffe quand même si tu modifie la partie binaire, ils pourrait y avoir des conséquences inattendues ..
Citer : Posté le 03/11/2013 18:02 | #
Je veux bien essayer mais j'y connais vraiment rien en assembleur, checksums, etc.
Citer : Posté le 03/11/2013 18:09 | #
Et on a que ce fichier là sous format C1A ? Parce que ça serait plus pratique d'en avoir d'autres..
Citer : Posté le 03/11/2013 18:10 | #
A ma connaissance oui...
Citer : Posté le 04/11/2013 17:44 | #
C'est ce que j'allais dire : y'a un checksum ? Quand t'a modifié le nom de l'addin et son icône, t'a eu un pb ou pas ?
Citer : Posté le 04/11/2013 19:09 | #
Ouais en faisant trop de modifications dans l'entête j'arrivais plus à le lancer...
Ajouté le 04/11/2013 à 19:13 :
Mail au support Casio Europe :
Bonjour,
Dans votre page de présentation de la ClassPad 330 PLUS, vous mettez en valeur la possibilité d’ajouter des applications additionnelles sur ces modèles.
J’ai récemment acquis à la suite d’un échange avec la page Facebook Casio Calculatrices gérée par Open2Europe ce modèle de calculatrice, et je développe déjà des applications additionnelles pour les Casio Graph 75/85/95 grâce au kit de développement que vous distribuez sur Internet.
Les applications additionnelles pour les modèles de ClassPad 300/300+/330 étaient développées sur un kit de développement que vous distribuez également, sous le format cpa. Or le nouveau format d'applications additionnelles pour la ClassPad 330 PLUS est le format C1A, que le kit de développement ne permet pas de compiler, ce qui rend incompatibles toutes les applications additionnelles développées jusque-là, et surtout empêche de développer de nouvelles applications.
Cependant, le site "steps in logic" distribue une application additionnelle dans ce format cpa mais aussi C1A, et la radicale différence entre les deux fichiers est relativement étonnante.
J'en arrive donc aux conclusions qu'il existe un outil permettant de développer ces applications additionnelles, ou de transformer les applications pour les anciens modèles, qui n'aurait pas été actuellement distribué publiquement.
Pouvez-vous m'éclairer sur l'existence d'un tel outil et, si c'est le cas, me permettre de l'acquérir ?
Cordialement,
Réponse :
Bonjour monsieur,
Il n'existe malheureusement pas de SDK pour le Classpad 330+. Une conversion des anciennes applications n'est pas possible.
Salutations distinguées
Mais ils se fichent de nous ?!
Citer : Posté le 04/11/2013 19:31 | #
Je crois :
Bonjour,
Ayant récemment acquis un ClassPad 330+, j'ai voulu y installer des applications C (addins), mais ceux existant pour les ClasspPas des versions antérieures ne sont pas compatibles avec le CP330+.
En effet, le format habituel pour ce genre d'application est le .cpa, tandis que mon modèle ne supporte que le .c1a.
Toutefois, après une série de recherches, je n'ai trouvé aucune information concernant les .c1a, ni aucun addin sous ce format.
Y'a t'il possibilité de convertir les anciens addins, ou d'avoir des informations sur les différences entre .cpa et .c1a ?
Certains addins communautaires comme Physium me serai très utiles pour mes études.
Bonne journée,
L. *****
Réponse (du 16 octobre)
Bonjour monsieur,
Les anciens add-in ne sont pas compatible avec votre calculatrice. Il n'existe malheureusement pas de SDK pour le Classpad 330+. Une conversion n'est pas possible.
Salutations distinguées
Ajouté le 04/11/2013 à 19:31 :
Ca doit être un adepte du "copier-coller"
Citer : Posté le 04/11/2013 20:35 | #
C'est vraiment dommage que Casio prenne aussi peu de soin pour ceux qui soutiennent leurs produits. Je ne sais pas ce qu'ils ont à gagner à brider leurs machines comme ça. Ils se rendent pas compte qu'à cause de ça on cherche seulement à acheter de l'occasion et pas des nouvelles car elles sont totalement bridées et inutilisables pour les programmeurs ? Qu'un projet de calculatrice libre voit le bout du tunnel, ça, ça serait vraiment le bonheur.
Calculatrices : Graph 35+ USB tweakée et Classpad 330
Suivez moi et mon humour dévastateur ici focliquéla
Citer : Posté le 04/11/2013 20:41 | #
en même temps, de leur point de vue, les programmeurs ne représentent qu'une très mince portion de leurs client (même pas 1%), alors qu'un client "normal" ne vas pas se soucier de savoir si il peut avoir des add-ins dessus, il va juste vérifier qu'il peut faire des calculs dessus...
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 04/11/2013 20:51 | #
C'est sûr. Société de meeeeerde. Quand je pense qu'on est les seuls à s'intéresser vraiment à leur boulot en plus.
Calculatrices : Graph 35+ USB tweakée et Classpad 330
Suivez moi et mon humour dévastateur ici focliquéla
Citer : Posté le 04/11/2013 21:03 | #
Le problème est qu'ils ont un moyen de développer des add-ins compatibles mais qu'ils ne veulent pas nous en parler...