Jump to content
IGNORED

Good compression-programs for the ATARI?


Lord-Chaos

Recommended Posts

flashpack is fast... and has a small 128 byte decompressor...

BUT you can just pack one binary file only...so if you want to pack a complete file with several different ORG & file segments than i would

go for bewesoft's superpacker...

 

all here:

 

www.s-direktnet.de/homepages/k_nadj/main.html

 

incl. examples how to use them...

Link to comment
Share on other sites

The good packers were also CODE3 CRUNCHERS. They were able to pack progs and games in three passes: RLE, Imploding & then some kind of Shanon-Fano method. The main disadvantage was the fact that they were permanently modifying the program-structure.

 

Here's the .ATR with version 2.2 (with counter) and two versions 3.0 - (3.0L is with counter the other is without).

 

All of them pack the following areas in memory:

 

* $0480 - $06ff

* $0a00 - $cfff

* $d800 - $ffff

 

Is atr file there is some documentation - unfortunately in Polish :)

 

so... go experiment! :D

c3_crunch.atr.zip

Link to comment
Share on other sites

I think that FlashPack 2.1 is the most usable packer ever...  :D

 

I wonder what kind of compression this one uses.Simple RLE or something more advanced ?

 

And what about this "XIP" packer ? The program seems to be for the C64 , but is there something similar for the ATARI ?

 

Because I need a packer for an 1Kbyte game for the ATARI.

 

Thimo

Link to comment
Share on other sites

I think that FlashPack 2.1 is the most usable packer ever...  :D

 

I wonder what kind of compression this one uses.Simple RLE or something more advanced ?

 

And what about this "XIP" packer ? The program seems to be for the C64 , but is there something similar for the ATARI ?

 

Because I need a packer for an 1Kbyte game for the ATARI.

 

Thimo

 

With just 1K to compress I'd be very surprised if you'll get much compression worth having - it's all about data redundancy and patterns of data, and unless you're very sloppy with your data or code, there shouldn't be too much of that in just 1K. Don't forget you have to get better than 10% off even with the 128b unpack prog to make it worthwhile. You'd really be better off thinking of the most efficient ways to represent your data (IMO). That said, of course it's worth trying the packers to see if they do help though :D

Link to comment
Share on other sites

I think that FlashPack 2.1 is the most usable packer ever...  :D

 

I wonder what kind of compression this one uses.Simple RLE or something more advanced ?

 

And what about this "XIP" packer ? The program seems to be for the C64 , but is there something similar for the ATARI ?

 

Because I need a packer for an 1Kbyte game for the ATARI.

 

Thimo

 

With just 1K to compress I'd be very surprised if you'll get much compression worth having - it's all about data redundancy and patterns of data, and unless you're very sloppy with your data or code, there shouldn't be too much of that in just 1K. Don't forget you have to get better than 10% off even with the 128b unpack prog to make it worthwhile. You'd really be better off thinking of the most efficient ways to represent your data (IMO). That said, of course it's worth trying the packers to see if they do help though :D

 

Yes, because of this problem someone created this "XIP" packer, which

should be especially good for small programs , because you usually have lots of same opcodes like $a9 for the LDA #.

It seems to compress optimized small programs very good, unfortunately

the packer is for the C64.

 

My problem is that I have written a game that should fit into 1K, but is 2K in size.Flashpack can reduce it to about 1,2Kbyte, but it's still too much.

 

Thimo

Link to comment
Share on other sites

My problem is that I have written a game that should fit into 1K, but is 2K in size.Flashpack can reduce it to about 1,2Kbyte, but it's still too much.

Do you know the overhead Flashpack adds? E.g. you could compress a 1 byte file and check the result. If the overhead isn't much larger than 0.2K, then I strongly doubt any simple compressor could help you here. I suppose trying to optimize your code (or ask someone to help you there) will give you a better chance.

Link to comment
Share on other sites

My problem is that I have written a game that should fit into 1K, but is 2K in size.Flashpack can reduce it to about 1,2Kbyte, but it's still too much.

Do you know the overhead Flashpack adds? E.g. you could compress a 1 byte file and check the result. If the overhead isn't much larger than 0.2K, then I strongly doubt any simple compressor could help you here. I suppose trying to optimize your code (or ask someone to help you there) will give you a better chance.

 

AFAIk the overhead is 128 Bytes.

 

But it's maybe possible to optimize the code if I knew how Flashpack works.

 

Thimo

Link to comment
Share on other sites

Well,

my favourite packers are the DJ packers. they have better compression results than the Flashpacker or Superpacker (they both depack faster than the Superpacker). They do also accept Init adresses, they (de-)pack segments (not full programs), so a program can be much longer than 30kbytes... but alas, they both use afaik more than 128 bytes for decompression / overhead and most of all, one packer uses (part of) page 1 and page 4 and the other packer uses (part of) page 5 and page 6... -Andreas Magenheimer.

 

P.S.: Has anybody found out how to reboot the APC packer (and load the linker) ?? well, RESET does not work and I have no clue which key-combination does...

Link to comment
Share on other sites

Or just port XIP to Atari. The source code is available.

 

The assembler source code of XIP seems to be too C64-specific for me (I don't have any C64 knowledge), so is there any source of the basic algorithm ?

 

I mean it would be ok to write the packer in (Turbo) BASIC (the emulator can accelerate BASIC programs a few 500% or more) and the decompressor in MC Code.

 

Thimo

Link to comment
Share on other sites

:idea: Try starting from here:http://starbase.globalpc.net/~bhz/cgi-bin/minigame2003/YaBB.cgi?board=2003_compo;action=display;num=1075963080;start=25

 

This program seems to be hard to understand for someone not experienced with compression (I can only create RLE packers which in my case gain not enough; I didn't study this stuff, so I don't know much about more sophisticated algorithms).

 

But isn't it possible to transfer the XL data to a C64 emulator and use XIP on the XL data and manually change the headers back to the XL ?

 

I found Vice (C64 emulator), but don't know how to copy files into .d64 images (the ATARI 800 emulator allows to import files from a PC disk/hd).

 

Since both systems have the same CPU, this would be the easy way to check if XIP can gain any bytes combined or not combined with Flashpack or my simple RLE packer, should work as long as it doesn't check the files if they are real C64 executables.

 

Thimo

Link to comment
Share on other sites

But isn't it possible to transfer the XL data to a C64 emulator and use XIP on the XL data and manually change the headers back to the XL ?

Unfortunately I don't know enough about the Atari 8Bits. Maybe you should ask the original author. He might be able to explain the algrithm too.

 

AFAIK, it's quite simple, instead of compressing RL sequences, you compress single bytes based on their frequency (Huffman encoding). Thus a frequent bytecode gets a short bitsequence (e.g. 5 bits) and a rarely used one gets a long sequence (e.g. 10 bits). If you also optimize your code and put your important variables at the addresses of often used opcode, you can gain some extra bytes.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...