ham_convert is a freeware (also free for commercial use) graphic converter written by Sebastian Sieczko that can convert a normal jpg/gif/png/tiff/jpeg2000 image to one of the graphic modes of the Commodore Amiga. Its main use is to produce high-quality hold-and-modify (HAM) images using brute-force search.
It can produce ILBM IFF files (Amiga graphic modes: EHB, HAM6, HAM8, 2/4/8/16/32/64/128/256-color indexed, PCHG – 4/8/16/32/EHB modes).
This program has two interfaces: normal gui interface and a command line interface, that can be used by other applications.
This program requires java and should work on any operating system supported by JRE9 or newer (latest jre version recommended, on version 8 may suffer from low performance if started without start_jre8.bat). For best performance start using the included startup scripts or type “java -Xms500m -Xmx2g -jar ham_convert_1.9.1.jar” in the the command line.
If you get an error message when starting the program with the included start script try to run ham_convert jar file directly by double-clicking on it (there is no exe file, java uses jar files instead).
You can use JRE portable if you can’t use the normal version. Just install it into
X:\PortableApps\CommonFiles\OpenJDKJRE64 where X is your drive letter, and create a text file named start_portable.bat containing the following line (or edit this sample file):
X:\PortableApps\CommonFiles\OpenJDKJRE64\bin\java.exe -Xms500m -Xmx2g -jar ham_convert_1.9.1.jar
again replacing X with your drive letter. Place start_portable.bat in the same folder as ham_convert jar and double click on it to run ham_convert.
ham_convert (and any other java app) can be run on Steam Deck. Download Java runtime directly from Oracle: https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz. Extract this file to another folder, for example /home/deck/java/. Inside this folder you should see a bin folder (which contains all the needed Java binaries). We now have a portable Java environment that we can use for any Java applications. Now you need to run a command in the terminal to start ham_convert:
/home/deck/java/bin/java -Xms500m -Xmx2g -jar path_to_the_ham_convert_jar
You can modify the included start.sh. This script needs to have executable permissions in order for Steam to launch it.
WSL normally only supports pure command line applications. It is still possible to run ham_convert in cli mode under WSL by installing Xvfb:
sudo apt install xvfb. Running ham_convert under WSL:
xvfb-run -a java -Xms500m -Xmx2g -jar ham_convert_1.8.5.jar [image/txt file list] [options]. Alternative Xvfb configuration. Version 1.7.0 was confirmed working under WSL with Xvfb. To run gui version you need to install full X Server like VcXsrv or XMing or upgrade to Windows 11.
There are two program versions: stable, and a more frequently updated beta version containing most recent fixes and improvements. Beta version is released to allow users to test newly added features that aren’t yet fully polished to be included in the stable release. This mostly means improved conversion so beta version is recommended for best image quality.
If you found an issue while using stable version, try the latest beta. If the problem still exist please send bug report here.
Example HAM6 images are available here.
Contact info (also available in the program – click on the copyright note at the bottom-left of the main window). You’re welcome to send you’re ideas how to improve HAM conversion quality. Please report missing features, incompatibilities, regressions, image quality issues, visual glitches, bugs and any undesired or simply weird behavior. If the conversion stalls it could be the result if an error. Try starting the program from command line and repeat the conversion. If you get an error message in the command line, send it to a contact e-mail to help fixing the problem. Inclusion of your test pictures and conversion settings will also be really helpful. If you don’t get an answer (your e-mail was probably classified as spam by gmail) write a comment below.
I send thanks to the following people who helped me with testing and gave some interesting ideas:
Tomasz Rachwal, cholok