| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| unice68-2.0.0.690.tar.gz | 2016-11-21 | 356.5 kB | |
| unice68-2.0.0.690.tar.xz | 2016-11-21 | 244.3 kB | |
| Totals: 2 Items | 600.8 kB | 0 | |
unice68 - ice packer and depacker
unice68 is part of the sc68 project
(C) 1998-2016 Benjamin Gerard
ABOUT UNICE68
unice68 project is a "C" library and a command line program for
packing and depacking !Ice compressed files.
Both the packer and depacker are buffer based only, you can't stream
them.
The depacker is based on the original ICE unpack public source file
version 2.40. The packer is based on the original PACKICE version
2.35. This difference does not really matter as the file generated
by the 2.35 cruncher are compatible with the 2.40 decruncher. The
only problem is the magic 4CC identifier being different ('Ice!' for
the version 2.35 / 'ICE!' for the version 2.40). Unice68 depacker
will accept both. Unice68 packer will generate the 2.40 by default
for compatibility issue, even if it should not. It is still
possible to force the header with the library and the cli program.
In the begin unice68 was a front-end to the original *native* ICE!
depacker routine written in 68000 assembler. It was functional
enough but pretty much slow so I decided to convert the 68000
assembly to "C" code. This conversion is straight forward and kind
of ugly.
In 2013 the packer source which was not available until then came to
my attention (I think it was released in 2011 but I'm not
sure). Because sndh files is the dominant format sc68 need the best
possible support for them. Also it save me the time to maintaining
the sc68 music database. A few sndh files are bugged and too many of
them lack the duration information in their header, this is
something I really don't like with them so I intended to fix that
and submit the modified file back to their respective
maintainer. SNDH files being by convention ICE! packed I can now do
that without launching a ST (simulator or real) to achieve this
goal.
Just like the depacker I have first tried a simulated version but it
was clearly too slow so I decided to do the same I had done before
with the depacker: to convert the m68k assembler source into "C"
code straight forward. Maybe someday I will take the time to do
something cleaner but do not expect too much.
To perform the first simulated try with the ice packer the source
had to be cleaned. Mainly stripping every thing unnecessary like
TOS/GEM/AES calls to keep only the main crunch routine. Also in the
process it has become PIC (position independent code) and re-entrant
(variables are stored in the stack rather than globally).
ABOUT ICE!
ICE was a common compressor running on Atari ST(tm) and compatible
machines made by Axe of Superior. sc68 project needs to handle the
many ICE! compressed Atari ST music files (namely sndh files).
From the source files you can read:
PACK-ICE is simply the best packer that's available on the ST. I
used especially much time to get the depacking-routine as small
and fast (!!!) as possible
HERE COMES A NEW CHALLENGER
pack-ice source code has been release. It's a much comprehensive ice
packer/depacker library with various command line utilities.
pack-ice by Lars Brinkhoff <lars@nocrew.org> is available at
<https://github.com/larsbrinkhoff/pack-ice>
I might or not use this library in the future. It's clearly cleaner
than unice68 rough conversion of the 68K code. However unice68 has
been extensively tested and it's working flawlessly (so far).