Lord-Chaos Posted August 16, 2004 Share Posted August 16, 2004 Are there any good compression programs for the ATARI 800 to reduce the size of executable programs? I'm looking for a compression program with a tiny decompression routine, speed is not very important. Thimo Quote Link to comment Share on other sites More sharing options...
voy Posted August 16, 2004 Share Posted August 16, 2004 You can download several crunchers from this page: http://www.serious-dial.atari.pl/atarisoft.html at "Uzytki - packery" section... Quote Link to comment Share on other sites More sharing options...
voy Posted August 16, 2004 Share Posted August 16, 2004 I think that FlashPack 2.1 is the most usable packer ever... flashpack.zip Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted August 16, 2004 Share Posted August 16, 2004 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... Quote Link to comment Share on other sites More sharing options...
TMR Posted August 16, 2004 Share Posted August 16, 2004 Seconding Superpacker since it does a nice job... Although i still want something like Pucruncher! =-) Quote Link to comment Share on other sites More sharing options...
miker Posted August 16, 2004 Share Posted August 16, 2004 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! c3_crunch.atr.zip Quote Link to comment Share on other sites More sharing options...
miker Posted August 16, 2004 Share Posted August 16, 2004 note - the progs above are usable for no-DOS programs - after depacking the DOS area is destroyed... Quote Link to comment Share on other sites More sharing options...
Lord-Chaos Posted August 17, 2004 Author Share Posted August 17, 2004 I think that FlashPack 2.1 is the most usable packer ever... 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 Quote Link to comment Share on other sites More sharing options...
Sheddy Posted August 17, 2004 Share Posted August 17, 2004 I think that FlashPack 2.1 is the most usable packer ever... 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 Quote Link to comment Share on other sites More sharing options...
Lord-Chaos Posted August 17, 2004 Author Share Posted August 17, 2004 I think that FlashPack 2.1 is the most usable packer ever... 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 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 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted August 17, 2004 Share Posted August 17, 2004 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. Quote Link to comment Share on other sites More sharing options...
Schmutzpuppe Posted August 17, 2004 Share Posted August 17, 2004 Let me guess, Minigame Compo Guess you will have better luck optimizing your code. Even the smallest packer costs you useful bytes and I am quite sure that it isn't worth it. Quote Link to comment Share on other sites More sharing options...
Lord-Chaos Posted August 18, 2004 Author Share Posted August 18, 2004 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 Quote Link to comment Share on other sites More sharing options...
Schmutzpuppe Posted August 18, 2004 Share Posted August 18, 2004 Maybe you should try to compress your prg. with zip just to see how good your data could be compressed. Of course zip should be more effective than e.g. flashpack but if zip just give you a few bytes than dealing with compression isn't recommended. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted August 18, 2004 Share Posted August 18, 2004 Or just port XIP to Atari. The source code is available. Quote Link to comment Share on other sites More sharing options...
+CharlieChaplin Posted August 18, 2004 Share Posted August 18, 2004 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... Quote Link to comment Share on other sites More sharing options...
Lord-Chaos Posted August 19, 2004 Author Share Posted August 19, 2004 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 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted August 19, 2004 Share Posted August 19, 2004 Try starting from here: http://starbase.globalpc.net/~bhz/cgi-bin/...963080;start=25 Quote Link to comment Share on other sites More sharing options...
Lord-Chaos Posted August 20, 2004 Author Share Posted August 20, 2004 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 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted August 20, 2004 Share Posted August 20, 2004 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.