Warning: Cannot modify header information - headers already sent by (output started at /home/vampiren/www/header.php:32) in /home/vampiren/www/includes/sessions.php on line 291
Warning: Cannot modify header information - headers already sent by (output started at /home/vampiren/www/header.php:32) in /home/vampiren/www/includes/sessions.php on line 292
Warning: Cannot modify header information - headers already sent by (output started at /home/vampiren/www/header.php:32) in /home/vampiren/www/includes/page_header.php on line 488
Warning: Cannot modify header information - headers already sent by (output started at /home/vampiren/www/header.php:32) in /home/vampiren/www/includes/page_header.php on line 490
Warning: Cannot modify header information - headers already sent by (output started at /home/vampiren/www/header.php:32) in /home/vampiren/www/includes/page_header.php on line 491 Vampire-Network.net :: Voir le sujet - Installeur Bloodline
Posté le: 22/02/2007 13:15 Sujet du message: Installeur Bloodline
Voilà, je ne savais pas ou mettre le topic car je dévellope un logiciel installeur de mod pour BLOODLINE avec NSIS.
Mais je bute sur un problème de programmation en C.
Je develloppe un extracteur de *.vpk.
Avec un éditeur Hexa, j'ai remarqué que le *.vpk contient les fichiers du jeu à la suite en non-compressé et en fin de fichier y es inséré le code d'extraction.
un peu comme ça:
############### #################
# "data" #
############### #################
#O 000000 'chemin relatif du fichier1' NNNNYYYY #
#O 000000 'chemin relatif du fichier2' NNNNYYYY #
############### #################
D'ou:
O: est un octet que je n'ai pas compris le sens
NNNN: est une chaine de 4 octets qui donne l'adresse du début du fichier dans le vpk
YYYY: est une chaine de 4 octets qui donne la taille du fichier pointé
Les deux chaines sont inversés (ex.: NNNN= 4F 54 02 00 indique l'adresse 00 02 54 4F)
Voilà, si quelqu'un peut m'expliquer à quoi sert le premier octet et comment je puis mettre ces adresse dans une chaine en C.
quel est la valeur de l'octet dont tu n'a pas compris le sens ?
ils sert peut etre simplement de separateur.
l'inversion de sens ressemble a l'ancien systeme de fichier ms_dos ou les octets etaient inverses ce qui ne facilitait pas le decodage, quand je programmais sur mon atari j'avais realise un programme de formatage de disquette avec ces memes inversions (les micro atari pouvaient lire les disquettes au format dos ). _________________ je ne serais jamais un ventru avec un pseudo pareil.
Le problème, c'est que je pense bien que ce soit un séparateur mais la valeur diffère quelque peu (le plus souvent 1Ah mais il ya des 20h, 26h...) peut être est-ce une indication de 'type de fichier' ?!? qui ne me parait pas cohérent étant donné qu'il y a le chemin relatif du fichier avec son nom et son extension juste après.
Ayant étudié l'assembleur pour les micro-contrôleurs je comprends tout à fait que les octets d'adresse soient inversés car plus rapide de les enregistrer comme ça.
PS.: J'ai apperçu aussi une séquence de fin de fichier de moins d'une dizaine d'octets que je n'ai pas 'étudié' pour comprendre son sens.
Eurekate!!!!
c'est en trois partie.
1) Les fichiers sont à la suite.
2) L'information de décompression est à la suite et est comme ça: (à répéter selon le nombre de fichier)
A0 A1 A2 A3 XXXXX.....XXXXX B0 B1 B2 B3 C0 C1 C2 C3
A0~A3: nombre de caractère du chemin relatif du fichier à décompresser.
X...X: chemin relatif du fichier à décompresser (ex.: dlg/chinatown/barabus.dlg)
B0~B3: Adresse par rapport au début du paquet du début du fichier à décompresser
C0~C3: Taille du fichier en octet
3) L'information d'information de décompression est à la suite et est comme ça:
D0 D1 D2 D3 E0 E1 E2 E3 F0
D0~D3: nombre de fichiers?!? (je suis pas sur)
E0~E3: Adresse début d'information de décompression
F0: "00h" (indication de la methode de décompression?!?)
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum