27 December 2007, 08:29 | #1 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
|
decompression routines
Any recommendations for good compression algorithm that has free 68000-compatible pc-relative assembler decompression routine? (preferably short, fast and with not too bad compression ratio)
I had (another) crazy idea: create hrtmon rom resident structure that allocate memory for hrtmon, decompresses, relocates and finally initializes it (I still have free ROM space in my 1M CDTV..) Compression is needed because hrtmon is quite big (about 200k uncompressed), 40k-60k compressed. (I tried powerpacker but it created about 10k bigger executable than gzip) |
27 December 2007, 09:03 | #2 |
Digital Corruption
Join Date: Jan 2007
Location: Dorrigo/Australia
Age: 60
Posts: 355
|
Hi Toni,
Think you would be hard pressed to better LZX in terms of size, still holds it's own against recent algorithms like 7z. Free source for decompression routine(in C) is on Aminet: http://aminet.net/misc/unix/unlzx.c.gz Not 68k, admittedly, but compiles easy enough. Cheers, Red |
27 December 2007, 09:14 | #3 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
|
Thanks but lzx decompression speed is too low, decompression routine is extremely complex (I know because it is in winuae already) and takes too much memory. (lzx decompression + hrtmon lzx packed size > powerpacker decompression routine + hrtmon pp packed size )
|
27 December 2007, 09:29 | #4 | |
Digital Corruption
Join Date: Jan 2007
Location: Dorrigo/Australia
Age: 60
Posts: 355
|
Quote:
Only other "free" one that comes to mind would be: http://aminet.net/util/pack/xpkILZR.lha (C-Source included) Low mem, quick. Red |
|
27 December 2007, 10:55 | #5 |
Moderator
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,655
|
There's something about putting C code in boot roms that makes me shiver ...
If you want, you can have a look if SCX-Crunch can match the compression ratio. Although - it's made for decompression speed, about 5 times faster than ordinary crunchers. Crunching is very slow, so setup a fast config. Decrunch routine is reloc and 150-200 bytes IIRC. As per http://eab.abime.net/showthread.php?t=16183 SCX-Crunch is here: http://coppershade.org/amiga/files/scxcrunch.lha |
27 December 2007, 12:48 | #7 |
Junior Member
Join Date: Aug 2001
Location: France
Posts: 1,385
|
CRUa is very good, just in case you could also check StoneCracker
|
27 December 2007, 16:08 | #9 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
|
Thanks for suggestions.
I did some tests (v2.30 hrtmon.data, 207 764 bytes, exe header 0x03f3 cleared if packer decided to be "smart" and not pack in data-mode) pp 58924 scx 58560 stc 52372 cru 50917 rnc 49495 lha 48883 zip 48480 gzip 48361 lzx 44670 rar 42451 7z 39229 "Surprisingly" all "modern" archives have the best compression rate (highest compression mode was always selected). Unfortunately they also have most complex and slowest decompression I guess my choice is RNC1, very small and fast decompression code, quite good compression ratio. Interestingly some Amiga packers made smaller archives in exe-mode. (I guess it was due to hrtmon.data having quite large relocation data) btw, no packer wars please.. |
27 December 2007, 20:34 | #10 |
Moderator
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,655
|
Is pp=propacker, or PowerPacker? Also, if you happened to note the decrunch timings I'd love to see how mine fared there - haven't really measured it since I've only used it for decrunching a demo of 110K on A500 in the time it takes to say "pyip". :P
Please don't test all crunchers decrunch time on my account, hehe ... only if you happened to note it down. |
28 December 2007, 08:16 | #11 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
|
Quote:
I didn't time others, I was too lazy to switch from jit modes to ce a500 |
|
25 January 2008, 12:44 | #12 |
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
|
You may try crunch-mania. It can decrunch in-place so memory requirements are low. Compression ratio should be good enough for what you need.
|
17 May 2017, 00:30 | #13 |
Registered User
|
tested compiling v2.37 hrtmon.data (203.6 kb) with cranker : http://aminet.net/package/util/pack/cranker
RNC sill winner : RNC Pro Pack 2.08 : 50500 kb Cranker 0.53 : 51168 kb PowerPacker 5.0b : 55724 kb Imploder 4.0 : 50712 kb Last edited by Foul; 17 May 2017 at 20:00. |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
OSTER's assembler routines & tricks | Shoonay | Coders. Tutorials | 8 | 17 November 2016 15:41 |
total chaos stuck at audio decompression. | Mendel | support.Games | 0 | 30 June 2012 23:04 |
XFD decompression on PC | mokster | support.Other | 10 | 06 August 2010 13:50 |
Checksum routines in games | Joejoe | Coders. Tutorials | 11 | 26 December 2009 20:24 |
Tilemap + Scrolling routines source code | Ultron | Coders. General | 0 | 02 April 2007 01:00 |
|
|