mercredi 13 août 2014

Compression (II) [eng]

Today, a quick article about the firmware composition :
  1. fastram tester installed on card,
  2. SCSI driver cybppc.device v44.71,
  3. filesystem v3.20 for CD Roms drives (compressed)
  4. Two VGA v44.1 drivers (compressed)
  5. cybpci.library v2.2 (compressed)

There's also in the BlizzardPPC firmware, the ppc.library v46.35 (compressed) and the 68060.library v46.15 (uncompressed)...

The last four programms have been compressed with a Phase5 home made compressor which we'll call "crunchP5". In all the compression routines I have here, I didn't found the one which give the same final file.

Whatever, I started to optimise the uncompressing Shri routine  which has 3224 bytes for his original size. I've already won 600 bytes... It was so slow my friends, Oh la la... This xpkSHRI.library v2.2 dating from 1996 has, without a doubt, been compiled with a old version of SAS/C, it's a disaster...

The compressed programs have been uncompressed with the "decrunchP5" routine which is in the firmware and then compressed this time with our Shri. I've made some compression testing and Shri gives much better results, see for yourself :
  1. CDFileSystem : 15 440 bytes => 10 332 bytes (crunchP5) => 8884 bytes (Shri.100),
  2. VGAMonitor_1 : 19 072 bytes => 7984 bytes (crunchP5) => 7060 bytes (Shri.100),
  3. VGAmonitor_2 : 4756 bytes => 3020 bytes (crunchP5) => 2588 bytes (Shri.100),
  4. cybpci.library : 8856 bytes => 5456 bytes (crunchP5) => 4636 bytes (Shri.100),
  5. 68060.library (BlizzardPPC) : 101 608 bytes => 36 724 bytes (Shri.100),
  6. ppc.library (BlizzardPPC) : 160 532 bytes => 68 324 bytes (crunchP5) => 60 104 bytes (Shri.100).

No matter for the ppc.library (PowerUp), I let it outside, the fact is that Shri is a really powerfull compression routine for a lot of programs, this going to make us win some valuable space which is welcome in our famous firmware...

(translated by Squaley)
    

Aucun commentaire:

Enregistrer un commentaire

Laissez vos commentaires ici :