QUOTE
UPX is a versatile executable packer with the following features:
- Excellent compression ratio: typically compresses better than WinZip/zip/gzip, use UPX to decrease the size of your distribution !
- Very fast decompression: ~10 MB/sec on an ancient Pentium 133, ~200 MB/sec on an Athlon XP 2000+.
- No memory overhead for your compressed executables because of in-place decompression.
- Safe: you can list, test and unpack your executables. Also, a checksum of both the compressed and uncompressed file is maintained internally.
- Universal: UPX can pack a number of executable formats.
- Portable: UPX is written in portable endian-neutral C++
- Extendable: because of the class layout it's very easy to add new executable formats or new compression algorithms
- Free: UPX is distributed with full source code under the GNU General Public License, and may be used freely even with commercial programs.
Basically, UPX is a command-line utility for compressing EXE/DLL (as well as some other specific formats). The compressed files are not like ZIP/RAR archives. When you run the compressed EXE files, there will be decompression taking place before the program is launched. However, this decompression process is so fast that you may not notice the difference. Sometimes, the program may even launch faster than in the original state.
Recently, one of the developers ported the command line utility over to Windows CE. However, there isn't a user interface for it. So, I also wrote a simple freeware called UPX4PPC to provide the frontend UI for the command line utility.
P.S: Windows Desktop and Windows Mobile Smartphone versions are also available. Refer to end of the post for all the links.

Here are some notes for using UPX4PPC.
1) Please make sure you have LOADS of Program Memory free as UPX uses quite alot of resources. It's worst if the apps you wish to compress are large, as the memory requirements go up significantly depending on the size of the files you wish to compress are large. On my Pocket PC, a total of almost 30MB of RAM free wasn't enough to compress a 6MB EXE file.
2) If you are compressing large files, it is very highly recommended to use the fastest compression ratio. For example, it took me 17.5 seconds to compress a 4.2MB file to 2.8MB using fastest compression. But it took me 187 seconds to compress the same file (down to 2.7MB) using maximum (slowest) compression. For files that are below 1MB, the compression time is less than a minute. I seem to notice that the time taken is not linearly proportional to the filesize, but somewhat like exponential relationship.
3) It is not advisable to compress files that contain multiple icons associated with file extensions. For example, one of the EXE files for Resco Explorer has icons associated with ZIP files. Such icons may be lost after compression. You can use an icon viewer, such as RViewer, to do a quick check on the EXE/DLL file.
4) Not all files can be compressed. This is true especially for apps written using .Net. Advice is to test one by one.
5) Not all programs will work properly after compression. Only a small fraction of programs fall into this category though. The same advice goes: test one by one and make backups. Alternatively, you can uncompress the files using UPX to get back to original state.
6) There are some files which have already been compressed using UPX before. This is not common though, since many developers don't seem to be aware of UPX.
7) Generally, it's not advisable to use the WinCE version of UPX for compressing large files. If you want to deal with large files, try the desktop version instead. This is due to the huge amount of resources required and also the lengthy process which may mislead you into thinking the device has hanged.
If you are serious about freeing up storage space on your main memory of Storage Card, you can give UPX (either desktop version of WinCE version) a try. Do remember to backup and/or test slowly though.
Disclaimer: Please do not hold me responsible if anything goes wrong while using UPX.
Related Notes:
Compress your SmartPhone EXE with UPX 2.0
Compressing EXE files
Compress EXE files on PPC
Overview of UPX
Notes for using UPX
Related Software:
Ultimate Packer for eXecutables (UPX)
UPXgui (UI for Windows PC)
GUI4UPX (UI for Windows PC)
RViewer
UPX for ARM
My UPX-related software:
UPX4PC
UPX4PPC
UPX4SP


