English Amiga Board Amiga Lore


Go Back   English Amiga Board > Coders > Coders. General

 
 
Thread Tools
Old 27 December 2007, 08:29   #1
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,542
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)
Toni Wilen is offline  
AdSense AdSense  
Old 27 December 2007, 09:03   #2
RedskullDC
Digital Corruption
RedskullDC's Avatar
 
Join Date: Jan 2007
Location: Sydney/Australia
Age: 53
Posts: 308
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
RedskullDC is offline  
Old 27 December 2007, 09:14   #3
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,542
Quote:
Originally Posted by RedskullDC View Post
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.
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 )
Toni Wilen is offline  
Old 27 December 2007, 09:29   #4
RedskullDC
Digital Corruption
RedskullDC's Avatar
 
Join Date: Jan 2007
Location: Sydney/Australia
Age: 53
Posts: 308
Quote:
Originally Posted by Toni Wilen View Post
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 )
I'm quite surprised by that actually!

Only other "free" one that comes to mind would be:
http://aminet.net/util/pack/xpkILZR.lha
(C-Source included)

Low mem, quick.

Red
RedskullDC is offline  
Old 27 December 2007, 10:55   #5
Photon
Moderator
Photon's Avatar
 
Join Date: Nov 2004
Location: Hult / Sweden
Posts: 4,437
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
Photon is offline  
Old 27 December 2007, 11:15   #6
Psygore
Moderator

Psygore's Avatar
 
Join Date: Jan 2002
Location: France
Posts: 482
Propack (RNC1) or Crunch (CRUa)
Psygore is offline  
Old 27 December 2007, 12:48   #7
Frog
Junior Member

Frog's Avatar
 
Join Date: Aug 2001
Location: France
Posts: 1,257
CRUa is very good, just in case you could also check StoneCracker
Frog is offline  
Old 27 December 2007, 13:29   #8
Galahad/FLT
Going nowhere

Galahad/FLT's Avatar
 
Join Date: Oct 2001
Location: United Kingdom
Age: 44
Posts: 6,504
Quote:
Originally Posted by Psygore View Post
Propack (RNC1)
I second Propack, very effective, and good depack speed.

Propack was the cruncher that enabled me to get Snow Bros to stay on 1 disk.
Galahad/FLT is online now  
Old 27 December 2007, 16:08   #9
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,542
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..
Toni Wilen is offline  
Old 27 December 2007, 20:34   #10
Photon
Moderator
Photon's Avatar
 
Join Date: Nov 2004
Location: Hult / Sweden
Posts: 4,437
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.
Photon is offline  
Old 28 December 2007, 08:16   #11
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,542
Quote:
Originally Posted by Photon View Post
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.
pp = powerpacker.

I didn't time others, I was too lazy to switch from jit modes to ce a500
Toni Wilen is offline  
Old 25 January 2008, 12:44   #12
meynaf
68k wisdom
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon (France)
Age: 44
Posts: 2,370
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.
meynaf is offline  
Old 17 May 2017, 00:30   #13
Foul
Registered User

Foul's Avatar
 
Join Date: Jun 2009
Location: Perigueux/France
Age: 42
Posts: 1,256
Send a message via ICQ to Foul Send a message via MSN to Foul Send a message via Skype™ to Foul
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.
Foul is offline  
AdSense AdSense  
 


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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 01:49.


Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Page generated in 0.18924 seconds with 12 queries