PDA

Voir la version complète : [Pré-Projet DS] ZIP DS


sephiroth ff7
22/06/2007, 23h05
Bonjour à tous,
je m'adresse à ceux qui ont leur carte CF/SD surchargée de gros fichiers qu'a chaque fois qui veulent ajouter qualquechose il faut effacer autre chose.
Je me propose d'essayer (c'est pas dit que j'y arrive) de faire un zipper pour DS, histoire d'économiser de l'espace. Vous aurez plus qu'a mettre tout sous forme de zips, laisser de l'espace libre et désipper juste ce que vous avez besoin. Effacez ou rezippez-les aprés les avoir utilisés. Ya-t-il des intérésées?

PaaD
22/06/2007, 23h13
je vois pas trop l'utilité perso, je stock tout sur mon pc et je supprime de la carte quand j'ai plus besoin et je remet après... mais bon ça peut servir à d'autres!

snk4ever
23/06/2007, 08h05
Pourquoi pas, lors d'un long voyage ça peut etre interessant d'embarquer plus de jeux sur sa carte. Ca me parait intéressant.
Question : est ce que ça n'est pas déja dispo avec Linux DS (il faut vraiment que je fasse un tuto sur ce soft, j'ai l'impression que personne ne l'utilise ici) ?

valeuf
23/06/2007, 08h58
Salut,

Déjà oublie le zip, l'algo étant fermée tu n'arriveras à rien. Tourne toi vers du tar qui lui est ouvert par exemple.

J'emet par contre plusieurs réserves. Tout d'abord l'algorithme pour compresser et décompresser des fichiers et particulièrement lourde. Déjà sur des ordinateurs récent et puissant il faut compter une bonne minute pour décompresser 64 Mo, j'ose à peine imaginer le temps qu'il faudras sur la DS ! (Genre 10 minutes pour lancer son jeu ...).

De plus l'autre problème c'est de voir comment mettre en place la décompression. En effet la logique voudrait que tu face cela dans un application type DSorganize ou Moonshell sous forme de plugins. Sous DsOrganize l'API de plugins est abordable, mais il n'en existe pas pour Moonshell. Ou alors porter l'utilitaire tar sous DSlinux ! Cela n'existe pas DSlinux car tar dépend de libraires qui seraient difficile à porter.

Bref, c'est une chose fort peu aisée et fort peu pratique que tu cherche à faire. Surtout que pour 15 euros tu trouve des Mini SD à 1Go (et c'est grosso modo les prix pour tous les types de carte mémoires il me semble).

greeeg
23/06/2007, 10h36
Sur la Neo Geo Pocket, le linker permettait de compresser ses jeux pour gagner de la place... Yavait genre 30sec avant de jouer a un jeu mais cetait pas la mort... Ca reste pour moi une bonne idee !

jujurackham
23/06/2007, 11h09
Salut,
Déjà oublie le zip, l'algo étant fermée tu n'arriveras à rien. Tourne toi vers du tar qui lui est ouvert par exemple.

Faux, faux, faux, archi-faux :D

Le format Zip utilise l'algorithme "deflate (http://fr.wikipedia.org/wiki/Deflate)" qui est libre de droits. Et sur le site de zlib (http://www.zlib.net/) tu peux librement télécharger le code source (http://www.gzip.org/zlib/zlib123.zip) et aussi la DLL compilée pour windows (http://www.gzip.org/zlib/zlib123-dll.zip).
C'est donc tout à fait possible d'utiliser le zip (enfin en théorie, dans le sens on a le droit ^^).

EDIT : En plus si tu regardes bien, dans 'C:/devkitpro/libnds/lib/" tu as un fichier "libz.a" qui a l'air de contenir tout ce dont tu as besoin.

sephiroth ff7
23/06/2007, 17h23
J'utilise un algorythme perso mais il est lent. J'ai pas réussi a utiliser la ziplib, je vais regarder le libz de la libnds.

Bobby Sixkilla
23/06/2007, 17h28
Et 7zip, c'est pas open source?

bong
23/06/2007, 17h48
bah si:
http://sourceforge.net/projects/sevenzip/

sephiroth ff7
23/06/2007, 19h09
Désolé mais j'y arrive pas: trop lent, un fichier de 578 ko ça en fait 297 ko en 10 minutes. Si on veut compresser un jeu de 32 mo faut être très patient...

jujurackham
23/06/2007, 20h12
Au moins tu auras essayé ^^. Peut-être qu'en optimisant... (Mikegba ?).
Non je rêve :lol:

En tout cas c'était une bonne idée.

Nhut
23/06/2007, 22h43
Je suis de l'avis de valeuf: une carte mémoire plus grosse serait une solution bien plus simple pour tout le monde ^^ Et aussi:

La DS est-elle capable de lire les ogg? A qualité égale ils prennent moins de place. ça pourrait épargner pas mal pour ceux qui s'en servent de lecteur mp3.

On pourrait virer l'espace mort des roms en les trimmant. On est parfois surpris de tout l'espace vide que les développeurs peuvent laisser sur une cartouche ^^

M@cZér0
23/06/2007, 22h57
Et 7zip, c'est pas open source?

J'y ai direct penser mais j'ai aussi penser que si pour un zip c'était chaud pour un 7z c'est pas la peine...

jujurackham
23/06/2007, 23h27
C'est clair, vaut mieux y penser directement en trimmant ses fichiers, et en choisissant des formats qui économisent de la place (eviter les bmp et les wav :rolleyes:)

sephiroth ff7
24/06/2007, 02h17
J'ai fait le compresseur sur PC, en général on bidouille pas les fichiers (sauf les images et les textes pour certains). Ca reste assez lent (sur un processeur proche du pentium III) mais c'est la compression qui est comme ça, ça sera plus rapide à la décompression.

Nhut
24/06/2007, 05h19
Je viens de penser à un truc.

Admettons que tu aies une carte de 512 Mo. Tu as dedans 10 fichiers de 50 Mo qui rentrent pile dedans (ce sont des jeux de 64 Mo dézippés). Pour y jouer tu dois:
- les décompresser "à la volée" pendant le jeu: m'étonnerait que la DS soit conçue pour ^^
- les décompresser dans la carte mémoire, mais où? Il n'y a plus de place :p
Tu pourrais alors imaginer virer deux archives pour libérer 100 Mo et pouvoir dézipper, mais alors à quoi ça sert de vouloir libérer de l'espace, si pour ça on doit libérer de l'espace?

Conclusion:
- un type aura pris du temps à coder cette app
- tu perdras du temps à décompresser les archives
- c'est prise de tête à mort ^^
- achat de carte de capacité supérieure powa (ou alors achat d'une nouvelle carte en complément de l'ancienne) :D

mastertop101
24/06/2007, 05h34
Tu as dedans 10 fichiers de 50 Mo qui rentrent pile dedans

Ben, même s'il reste que 50mo d'espace encore, ca sera pas suffisant pour dézipper un fichier de 50mo... (à moins que le programme ; dézippe, supprime l'archive et crée le fichier à mesure, mais ensuite, il faut rezipper... et donc ça enleve de l'intérêt et ca complique la chose)

thoduv
24/06/2007, 14h23
Regarde du côté de libunzip, libzzip, ou des trucs comme ca...

sephiroth ff7
24/06/2007, 18h57
Je viens de penser à un truc.

Admettons que tu aies une carte de 512 Mo. Tu as dedans 10 fichiers de 50 Mo qui rentrent pile dedans (ce sont des jeux de 64 Mo dézippés). Pour y jouer tu dois:
- les décompresser "à la volée" pendant le jeu: m'étonnerait que la DS soit conçue pour ^^
- les décompresser dans la carte mémoire, mais où? Il n'y a plus de place :p
Tu pourrais alors imaginer virer deux archives pour libérer 100 Mo et pouvoir dézipper, mais alors à quoi ça sert de vouloir libérer de l'espace, si pour ça on doit libérer de l'espace?

Conclusion:
- un type aura pris du temps à coder cette app
- tu perdras du temps à décompresser les archives
- c'est prise de tête à mort ^^
- achat de carte de capacité supérieure powa (ou alors achat d'une nouvelle carte en complément de l'ancienne) :D
Ben faut prévoire de l'espace libre quand même sinon ça sert à rien. Les SC n'acceptent pas les cartes >1Go. Imagine qu'en compressant tu gagnes plus de 64Mo, tu peux le laisser 64Mo en espace libre, tu gagneras la difference.
EDIT: La décompression est très rapide par contre.

snk4ever
25/06/2007, 07h47
Rectification: les SC acceptent les cartes 2go sans bidouilles et 4 avec bidouille légère (formatage fat16 avec clusters non standards).