des sprites du style:
dc.b %00000000,%00000000,%00000000...,%00000000
ou
dc.b %11111111,%11111111,...,%11111111
Tu peux tjrs les recréer en RAM avec des handles
mais il est possible de les compresser, et compresser tout type de sprites avant m'interesse.
Fo utiliser shrnklib pour compresser des graphismes
t'as pas la même chose en nostub & ASM?
L'ExePack automatique, ça ne te convient pas?
>Asterix: Ouai mais l'avantage que shrnklib, c que tu peux stocker tes graphismes compressés dans le prog lui-même
Même chose pour l'ExePack.
PpHd Le 19/09/2001 à 18:52 L'avantage de shrnklib est d'etre une librarie exploitable dans ton programme, pas comme ttpack.
Meme si tu peux te debrouiller.
L'avantage que je vois dans shrinklib, c'est justement que les graphismes et données compressés n'ont pas besoin d'être dans l'exécutable. A partir du moment où on a plusieurs fichiers, l'exepack ne suffit pas. Pour ce que j'en ai vu, il ne peut compresser que les exécutable.
Et comment procède-t-il ? Il appelle le décompresseur lui même ?
Ca m'interesse s'il est possible de ne décompresser qu'une partie du fichier, par exemple les sprites d'un niveau.
Oui, c'est possible.
Il suffit d'inclure ca :
#include <ttunpack.h>
#include <ttarchive.h>
Et puis, apres, tu n'as qu'a utiliser la fonction unpack().
Ca doit etre documente dans la doc de tigcc, je ne m'y suis jamais penche encore :]
Ok merci !
Je viens de compresser la dernière version de SMB3 avec ttpack et shrinklib :
_ sans compression : 64743
_ avec shrinklib : 29904
_ avec ttpack : 27652
J'opte donc pour ttpack
>BlueZ, FlashZ
En effet, ttpack compresse mieux que shrnklib (même si PpHd prétend le contraire à plusieurs reprises).
>Asterix
Le lanceur serait nécessaire de toute façon si le programme dépasse 8 KO (8 pour la compatibilité avec AMS 2.00-2.03).
Asterix> justement la on vient de montrer que malgré un deuxieme fichier (petit) ttpack compresse mieux que shrnklib et qu'en plus avec ca on peut le faire ne nostub. Alors s'embeter avec un kernel pour obtenir un resultat moindre, c'est vicieux...
Je commence a reussir a faire bouger un sprite. Ou bah je suis content !
Ouai mais imagine kelk1 qui ne prog ken kernel (comme la plupart des débutants en ASM), ben il est niké pour utiliser ttpack, donc il se rabattra préférentiellement sur shrnklib.
Je sais que Pphd utilise la combinaison shrinklib/packer92, ce qui lui permet d'obtenir de meilleures performances. Tout doit dépendre du type de donnée à compresser. De toute manière, shrinklib n'existe que pour kernel, et ttpack n'existe que pour _nostub. Ce qui règle à peut près le problème.
>Blue_Z: Je sais que Pphd utilise la combinaison shrinklib/packer92, ce qui lui permet d'obtenir de meilleures performances.
1. On ne peut pas combiner les 2 pour un seul fichier, mais seulement choisir une librairie différente selon le fichier.
2. Les versions récentes de runc de PpHd n'utilisent plus pk92lib.
3. Dans mes tests, ttpack a été meilleur que le choix pour chaque fichier du meilleur entre shrnklib et pk92lib.
paxal Le 19/09/2001 à 18:52 Ca dépend si tu fais du deflate, du huffman, ou encore un autre...
FlashZ> Bah de toute façon, tu ne peux pas compresser un prog kernel avec l'Exepack.
Comme le dis Blue_Z, prog kernel = shrnklib (ou pk92lib ou ...) et prog nostub = Exepack.
PpHd Le 19/09/2001 à 18:52 Sauf que l'utilisation de ttpack pour compresser des donnees externes est idiot.
Un : 2Ko de routines pour le decompresseur de programme.
Deux : 2Ko de routines pour le decompresseur des images.
Donc le gain de 2 Ko est perdu pour le doublage de la routine...
Et de toute facon, je prepare un prog de compression qui mettra
tout le monde d'accord.
C plus proche des taux de compressions Pc, que calc.
Ca bat meme WinZip et WinRar sur certains fichiers :P
(Sc pour pas le nommer).
PpHd, si c'est utilisable en _nostub sans un 3ème fichier (librairie de décompression), si le décompresseur n'est pas plus gros que le gain de place par rapport à ttpack, et si ce n'est pas trop lent, peut-être qu'on l'utilisera.