MKLibZ v0.1

View previous topic View next topic Go down

MKLibZ v0.1

Post  Yann on Tue 3 Jun - 1:21

Je dois dire que c'est bien la première fois que je parviens à faire quelque chose d'utile.
A la recherche d'un système de packaging efficace pour les ressources, je suis parvenu à la conclusion que la librairie était très proche de ce qui se fait de mieux, avec son système de table de pointeurs intégrée qui permet d'attaquer la donnée "en direct". Faire mieux est certainement possible, mais réclame un effort plus que substantiel, pour un gain pas forcément transcendant.

J'ai donc songé à utiliser la librairie également pour les ressources, les problèmes de traduction de référence venant compliquer la tâche. Oui, mais quid de la compression ? On en a parlé dans un précédent billet, les ressources sont "condamnées" à prendre de plus en plus de place, il est donc important de tenter de mitiger en partie cet effet par un mécanisme générique de compression des données.
Alors pourquoi pas marier les deux ? Compresser une librairie ? non, ça ne marche évidemment pas. Faire une librairie d'objets compressés ? pas mieux, on perd toute la traduction des références.
En fait, c'est un peu plus compliqué que cela. Il faudrait pouvoir compresser le programme après qu'il ait été traduit avec la table de référence, et avant qu'il ne soit fusionné dans la librairie; c'est en dire en plein milieu du processus de création Shocked .

Enter MkLib, le programme de création de librairie que j'utilise avec Phantasie Conquest depuis la version 14. Le moins que l'on puisse dire, c'est que Detlef Muller, son auteur, est un excellent programmeur, qui pousse la galanterie jusqu'à permettre l'accès au code source de son programe. En fait ce n'est pas immédiat, il faut passer un peu de temps à chercher avant de se rendre compte qu'une version plus moderne de son utilitaire est fournie avec les sources au sein de l'oeuvre principale de Detlef, RPL48v3.0, un environnement de programmation rival de Jazz. Le monsieur, il a plutôt un bon niveau dirons nous.
Il a fallu pas mal de patience pour trouver ces sources, pas mal de patience pour les comprendre, et encore plus pour être capable de les exploiter, l'environnement RPLCOMP sous DOS m'étant totalement inconnu, et fourni par petits morceaux souvent incompatibles entre eux. Il m'a fallu beaucoup de temps avant d'en trouver une version qui fonctionne et de bidouiller quelques fichiers jusqu'à parvenir enfin au résultat, une librairie fonctionnelle.

Partant de là, cette première version MkLibZ v0.1 est plus un "proof of concept" qu'un produit fini. Au minimum, il prouve la faisabilité de l'idée, avec d'ailleurs un excellent exemple grâce à Phantasie Core Lib v1.16c (pour "compressé"), qui permet de gagner tranquillement 15Ko, ramenant d'un seul coup la taille du programme de 50 à 35Ko, ce qui est tout de même énorme.

MkLibZ mérite d'être un peu raffiné avant d'être rendu public. En particulier, il faudrait pouvoir sélectionner des fichiers seraient intentionnellement laissés tels quels, pour ne pas ralentir les performances. Pour Phantasie Conquest, il s'agirait par exemple de AUGMEN, VERIATT ou SREPL1/SREPLS, qui sont extrêmement sollicités

Mais bon, bien que plus lente, la version v1.16c est surprenamment jouable, probablement grâce à l'excellente rapidité de décompression de BZ.
Je peaufinerai donc MkLibZ dans les prochains jours, avant d'en faire une release et de communiquer le résultat à son auteur originel, Detlef Muller.

Yann
Admin

Number of posts : 174
Registration date : 2008-05-01

http://phantasie.tonempire.net

Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum