English Amiga Board


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: 49
Posts: 26,505
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  
Old 27 December 2007, 09:03   #2
RedskullDC
Digital Corruption
 
RedskullDC's Avatar
 
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
RedskullDC is offline  
Old 27 December 2007, 09:14   #3
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
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: Dorrigo/Australia
Age: 60
Posts: 355
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: Eksjö / Sweden
Posts: 5,602
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: 491
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,385
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: 50
Posts: 8,986
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 offline  
Old 27 December 2007, 16:08   #9
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
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: Eksjö / Sweden
Posts: 5,602
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: 49
Posts: 26,505
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
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
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: 49
Posts: 1,516
Send a message via ICQ to Foul Send a message via MSN 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  
 


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 00:55.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.08624 seconds with 13 queries