1

Je voudrais savoir s'il existe des techniques (assez propres de préférence^^) pour écrire directement en archive.
D'après tigcc, les fonctions qui m'intéressai ont disparues dans les ams récentes sad :
Note: The functions EM_blockErase, EM_blockVerifyErase, EM_delete, EM_writeToExtMem, EM_open, and EM_put, which were present in the AMS 1.xx TIOS jump table, don't exist in the AMS 2.xx TIOS jump table any more. This is a pity; some of them were useful (especially the last three of them).
In AMS 2.xx: EM_blockErase is replaced by: OSFastArrows.
EM_delete is replaced by: AB_getGateArrayVersion.
EM_open is replaced by: SetAlphaStatus.
EM_put is replaced by: GetAlphaStatus.
It seems that EM_writeToExtMem was simply removed, and there is no function replacing it.


Pour l'instant je désarchive avant et réarchive après, mais le fichier fait plus de 40 ko, donc j'ai des garbage collecte ...
Comment remédier à ce problème, sachant que mon fichier est de taille fixe ?
Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici

2

tu peux pas faire ça proprement sous AMS... tu es obligé de déprotéger la ROM et c'est assez dangereux parce que tu peux niquer ta calc si ton prog a un bug, donc vaut mieux éviter ^^

cela dit peut-être que tu peux réarranger tes structures de données pour pas avoir à désarchiver-réarchiver 40 ko à chaque fois ? que contient ton fichier et pourquoi est-ce que tu le modifies ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

3

C'est mon fichier de levels de grav, donc 110 levels, dans lequel j'ai intégré les highscores. Ca permet d'avoir un record par level et donc quand on crée un nouveau level, on peux y enregistrer son record. Et j'ai pas trouvé d'autre solution pour garder une compatibilité antérieure. (Enfin faudrait peut-être tout changer^^).
Donc le fichier est désarchivé chaque fois qu'on fait un nouveau record.
Une solution serait de modifier le fichier qu'a la fin de l'execution de grav en fait^^
Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici

4

ben c'est l'inconvénient d'avoir les scores et les données dans un même fichier... enfin tu peux toujours stocker les scores dans un autre fichier tout en gardant la compatibilité antérieure ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5

C'est le cas (dans la derniere version, levels et scores sont séparés), seulement seul les scores des levels "officiels" sont sauvegardés, et donc pas de record sur un level fait par un utilisateur. Il faudrait mettre en place un systeme d'identifiant unique ou quelque chose du genre.
Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici

6

bobti89
: Une solution serait de modifier le fichier qu'a la fin de l'execution de grav en fait^^

Dans tous les cas c'est mieux, que le fichier soit séparé ou non : ça évite d'user la flash pour rien
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

7

> tu peux pas faire ça proprement sous AMS...
En effet...
> tu es obligé de déprotéger la ROM
Pas sur certaines combinaisons HW/ version d'AMS ^^
Demande à PpHd ou ExtendeD si tu n'es pas au courant smile

Mais oui, clairement, il ne faut pas désarchiver/réarchiver un fichier de 40K à chaque fois...
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

8

je veux dire "de manière portable" ^^ (bobti89 sait déjà que c'est possible par exemple sous AMS 1, cf post de départ)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

9

bobti89 :
C'est le cas (dans la derniere version, levels et scores sont séparés), seulement seul les scores des levels "officiels" sont sauvegardés, et donc pas de record sur un level fait par un utilisateur. Il faudrait mettre en place un systeme d'identifiant unique ou quelque chose du genre.

Il n'y avait pas une fonction de hachage dans TIGCC ? Si c'est le cas, on peut penser hacher le code du niveau utilisateur et ainsi obtenir cette clef unique.

Si une telle fonction n'existe pas, il est possible de la coder. Je ne l'ai jamais fait, mais pour avoir vu le code d'une implémentation de MD5, ce n'est pas très long. Ainsi, prendre une implémentation libre d'un algo de hachage et la porter devrait bien se faire. Vu l'utilisation envisagée, cet algo devrait être le plus simple possible, au dépend de l'infaillibilité.

10

Il y a une implémentation de MD5 built in AMS smile
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

11

Lionel Debroux :
Il y a une implémentation de MD5 built in AMS smile

C'est ce que je prendrais alors.

12

C'est une bonne idée.
Seulement c'est dur de garder la compatibilité avec !

Mais c'est sans doute une vraie solution à mon problème, ce qui me permettrait en plus de sauvegarder les ghosts cool
Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici

13

bobti89 :
Seulement c'est dur de garder la compatibilité avec !



Avec les anciens levels ?

Je ne vois pas pourquoi, puisque le MD5 génère une signature 'unique' pour chaque tableau. Ainsi, le développeur du tableau n'a pas à se soucier du ID (à moins que l'on inclu la signature du tableau à la fin du fichier, pour éviter de la regénérer constamment).

Mais peut-être que l'on parle de l'ancien fichier de score... alors là, il va falloir penser à le convertir.