amitools is a collection of Python 3 tools that I've written to work with
Amiga OS binaries and files on macOS and all other *nix-like platforms
supporting Python. Windows might work as
well, but is heavily untested. However, patches are welcome.
I focus with my tools on classic Amiga setups, i.e. a 680x0 based system with Amiga OS 1.x - 3.x running on it. However, this is an open project, so you can provide other Amiga support, too.
The tools are mostly developer-oriented, so a background in Amiga programming will be very helpful.
First make sure to have the Python 3 package installer
On macOS you have multiple ways of installing
sudo easy_install pip
With the Homebrew package manager (
pip3 is included in the
brew install python3
On Linux Ubuntu use the provided packages
sudo apt-get install python3-pip
To get pip run:
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" python3 get-pip.py
cd C:\Python3x\Scripts pip install amitools
pacman -Sy pacman --needed -S bash pacman msys2-runtime
MinGW-w64 Win64 Shell)
pacman -Su pacman -S mingw-w64-x86_64-python2-pip mingw-w64-x86_64-gcc git make
pip3 install amitools
sudoto install for all users
pip3 install -U git+https://github.com/cnvogelg/amitools.git
This will install the latest version found in the github repository. You find the latest features but it may also be unstable from time to time.
sudo pip3 install cython
You have multiple variants to install the tools with Python's
sudo python3 setup.py install
python3 setup.py install --user
python3 setup.py develop --user
bindirectory without any installation. You need
makeonly to build the native library of vamos:
python3 setup.py build_ext -i
or if you have installed
GNU make simply use:
make init # global or virtualenv setup make init_user # user setup
For more help on the
make targets run:
The new Documentation of
amitools is hosted on readthedocs
vamos V)irtual AM)iga OS
vamos allows you to run command line (CLI) Amiga programs on your host Mac or PC. vamos is an API level Amiga OS Emulator that replaces exec and dos calls with its own implementation and maps all file access to your local file system.
Create and modify ADF or HDF disk image files.
Scan directory trees for ADF or HDF disk image files and verify the contents.
Create or modify disk images with Rigid Disk Block (RDB)
A tool to inspect, dissect, and build Amiga Kickstart ROM images to be used with emulators, run with soft kickers or burned into flash ROMs.
The hunktool uses amitools' hunk library to load a hunk-based amiga binary. Currently, its main purpose is to display the contents of the files in various formats.
You can load hunk-based binaries, libraries, and object files. Even overlayed binary files are supporte.
This little tool is a companion for vamos. It allows you to dump and get further information on the API C structure of AmigaOS used in vamos.
This tool reads the fd (function description) files Commodore supplied for all of their libraries and dumps their contents in different formats including a code structure used in vamos.
You can query functions and find their jump table offset.
This library allows to read Amiga OS loadSeg()able binaries and represent them in a python structure. You could query all items found there, retrieve the code, data, and bss segments and even relocate them to target addresses
This library allows to read a subset of the ELF format mainly used in AROS m68k.
.fd File Parser
Parse function descriptions shipped by Commodore to describe the Amiga APIs
OFS and FFS File System Tools
Create or modify Amiga's OFS and FFS file system structures
I've written some scanners that walk through file trees and retrieve the file data for further processing. I support file trees on the file system, in lha archives or in adf/hdf disk images