Exomizer 2 website
Exomizer is a program that compresses files in a way that tries to be
as efficient as possible but still allows them to be decompressed in
environments where CPU speed and RAM are limited. For some popular
8-bit computers using 6502 compatible CPUs it can also generate
executable files that decompress themselves in memory when run.
The exomizer program itself is a console application written in ANSI-C.
Exomizer operates in two major modes. It has a raw mode that
compresses plain files and produces plain files. This mode is used by
the raw subcommand. All other subcommands use the second mode. It
requires all source files to be targeted to be decrunched at specific
addresses in the 16-bit address space of the target computer. In this
mode, no file can be larger than 64kB since all data must be addressable
using 16-bits. The targeted mode has the following features:
- It reads plain or .prg files to any given address.
- It can produce stand-alone self-decrunching files for the following
targets:
- Commodore VIC20, C64, C16/plus4 and C128
- Atari 400/800 XL/XE
- Apple ][+ and //e
- Oric-1 and Oric Atmos
- It can produce files for both "in memory" and "from disk" decrunching.
- It handles RLE-sequences well, no packer is necessary.
- It is able to link/combine more than one source file into the same
crunched target file.
Exomizer version 2.0 has been released and is available for download.
Included in the downloadable zip file are the source
code and precompiled binaries for DOS and Win32. It also includes a
makefile for Gnu make and gcc so it should be easy to build on any
system where these tools are available.
Any suggestions, comments and/or bug reports can be sent to
me, the author.
2013-04-14: Exomizer v2.0.7 released
Changes since the 2.0.6 release:
- Bugfixed commodore sfx targets to automatically disable
irq when decrunching over system areas. This was reported for the
plus4 target by Luca/FIRE. This fix together with moving the
decrunch table to zero-page, -Di_table_addr=0x2, allows decrunching
$0200-<end of mem> without corruption for all commodore
targets except for the vic20-configs that have a memory hole at
$0400-$1000.
- Bugfixed z80 decrunchers from Metalbrain.
- Bugfixed sfx c16/plus4 target where the default decrunch
effect could corrupt memory while decrunching data that covers
$0be7, reported by Luca/FIRE.
- Added feature to sfx-mode that complains if the data it
too big to fit in the available memory of the selected target,
suggested by Luca/FIRE.
- Added c16 target, -t 16, like -t4 but with smaller memory,
suggested by Luca/FIRE.
A complete changelog is included in the zip file.
Download it here.
2013-01-27: Exomizer v2.0.6 released
Changes since the 2.0.5 release:
- Improvements to the z80 decunchers, now smaller and
faster.
A complete changelog is included in the zip file.
(download removed)
2013-01-12: Exomizer v2.0.5 released
Changes since the 2.0.4 release:
- Added two flags -C, and -M <length>, that trades
crunch result for speed. -C enables more imprecise rle
matching and -M limits the maximum sequence length. It is
now possible to really speed up crunching, even for
"worst case"-type files.
- Now skips the DAG traversing of the final pass if the
encoding hasn't changed since the previous pass.
A complete changelog is included in the zip file.
(download removed)
2012-08-16: Exomizer v2.0.4 released
Changes since the 2.0.3 release:
- Bug fixed in the z80 decruncher.
- Enabled complete sfx basic mode support for the Apple II
target. This mode and target combination now generates
headerless files for easier import into disk images. The
included exo20info.txt file contains more details about
this.
A complete changelog is included in the zip file.
(download removed)
2012-03-25: Exomizer v2.0.3 released
Changes since the 2.0.2 release:
- z80 decruncher improvements by Antonio Villena.
A complete changelog is included in the zip file.
(download removed)
2011-08-19: Exomizer v2.0.2 released
Changes since the 2.0.1 release:
- Added 6809-decruncher contributed by Edouard Forler.
- Fix language errors in the documentation. Thanks to
Csabo/LOD.
- Remove bogus printout about the default decrunch effect when
using a custom decrunch effect. Bug reported by Csabo/LOD.
- Fix bug that prevented the correct error message from showing
when trying to combine a basic start and a non rom config for
the sfx command. Bug reported by iAN CooG.
A complete changelog is included in the zip file.
(download removed)
2011-02-06: Exomizer v2.0.1 released
Changes since the 2.0 release:
- Fixed a bug in the logging framework that caused the desfx
command to loop.
A complete changelog is included in the zip file.
(download removed)
2011-01-22: Exomizer v2.0 released
Changes since the 2.0 beta 7 release:
- Fixed a bug in sfx decruncher setup where data was copied
unnecessary.
- Added the i_line_number symbol to be able to change the default
line number of the basic line of the sfx decruncher.
- Added various improvements and documentation of the desfx
command.
A complete changelog is included in the zip file.
(download removed)
2008-09-08: Exomizer v2.0 beta 7 released
Changes since the 2.0 beta 6 release:
- Fixed a bug in the 6502 forward decruncher regarding literal
sequences longer than 255 bytes.
- Added z80 decruncher source code contributed by Metalbrain.
- Added experimental desfx sub-command to decrunch a
sfx-generated file.
- Fix broken ROM/RAM banking NMI handling for the Atari target
of the sfx sub-command.
- Added flags to customize enter and exit code for the sfx
sub-command.
- Added loading of Oric tap files to the sfx sub-command.
- Oric 1 target of the sfx sub-command supports starting
basic-programs.
A complete changelog is included in the zip file.
(download removed)
2007-01-28: Exomizer v2.0 beta 6 released
Changes since the 2.0 beta 5 release:
- Bugfix: sfx -t 128 placed decrunch table at $0334, not at
$0b00 where it is supposed to be.
- Bugfix: sfx -t 128 was unable to bank RAM/ROM properly.
- Bugfix: Now works when compiled in a setting where
unspecified char types are unsigned.
- Added experimental Oric 1 target to the sfx command.
(not properly tested, comments are welcome)
A complete changelog is included in the zip file.
(download removed)
2006-10-08: Exomizer v2.0 beta 5 released
Changes since the 2.0 beta 4 release:
- New option -f to the mem and level sub commands that enables
forward crunching.
- Added a forward decruncher contributed by Krill / Plush.
- Fixed a bug that made the sfx sub command fail on big endian
architectures.
- Added a dasm syntax version of exodecrunch.s.
- Changed exodecrunch.s to support literal sequences by default.
A complete changelog is included in the zip file.
(download removed)
2006-07-08: Exomizer v2.0 beta 4 released
Changes since the 2.0 beta 3 release:
- Change email address.
- Don't use setjmp/longjmp due to obscure bug when building using
mingw with -O3 -fomit-frame-pointer.
- Add multipass functionality to the assembler in order to be able
to do more complex things in the decruncher source.
- Fix the sfx decruncher to work for a wider range of i_load_addr
values.
- Add optional offset,len for raw command file reading.
A complete changelog is included in the zip file.
(download removed)
2005-11-14: Exomizer v2.0 beta 3 released
First public 2.x beta release.
(Download removed)
If you're looking for builds for other operating systems, here's some external links:
- Exomizer built for AmigaOS 4 is available for download here.
- Exomizer port for MorphOS is available for download here.
For older releases, see the old website here.
Latest update 2013-04-15.