Being able to write code on any system for AmigaOS 4, and test it easily, is the main topic for this post. I will try to describe below what are the available tools and how this can be done with the easiest, in my opinion, way. Of course, what I propose here is not the only way to do things, but this is my way. And this post covers only code that is written in C or C++. For other programming languages, a different approach may be necessary, although some parts might be the same.
So what do we need to write, compile, test and release an application for AmigaOS 4 on any system? And when I am saying any system, I am talking about the three major platforms that are widely used, and these are Linux, macOS and Windows. Let's start, shall we?
Editor/IDE
Writing code can be done in multiple ways, and every developer has their own preferred way to do that. There is a plethora of editors and IDEs to choose from. For myself, I choose VSCode which is available for all the major operating systems, and it is quite modular to make it work as I like. There are plenty of plugins for C/C++ programming, like the cpptools. And if you like to use AI helping you on code, there is an excellent integration with Copilot.
Furthermore, VSCode has plugins that simplifying the usage of Docker containers on your system. And that is something I mainly use for compiling my applications. The one I am using is the Dev containers which allows coding inside the containers, having the compiler and other tools available.
Compiler
As soon as your code is written, this needs to be compiled to a binary that can work on AmigaOS 4. Usually, you will need a compiler, the necessary binutils, a libc and the AmigaOS 4 SDK. They all need to be installed and orchestrated on your system. There is a need to compile the gcc compiler yourself, as it is not available as a binary for different systems, and then you have to set up everything in a way that will work fine. And then you will need to install third-party libraries as you need them, getting them from various websites.
That sounds a little bit scary, right? And it is, especially if these are your first steps on AmigaOS 4 development. That's why I created the AmigaGCConDocker docker images, which I maintain for more than 5 years now. These docker images include all the needed software to start compiling your code in no time. It only requires having Docker installed on your system and some basic knowledge on how docker to use docker containers.
The AmigaLabs team is doing their best to keep the compilers and all the necessary tools updated and bug fixed. Also, the development of clib4, the newest and open source libc for AmigaOS 4, provides a better support to the end developer, especially for software ports from other systems.
By using Docker, a container running Linux is created and inside that there is all the needed software to compile any source code. This code can be shared between the host machine (the main system) and the Docker container, where all the changes are reflected instantly.
Here are some informative videos that show how this works.
Testing
For testing an application, there is a need to have an AmigaOS 4 system running. This can be done on a PowerPC-based system, if there is one available, or on an emulated system using Qemu, which can run on the same computer that is used for development. The latter option has plenty of benefits, but also downsides, which I will mention below.
The benefits are:
- The freshly compiled application can be tested instantly, without even considering restarting the system many times, especially in cases of crashes that drag the OS down.
- It is possible to work on the project from anywhere, in case the main system that is used is a laptop.
- Different setups can be used for testing the compiled application, i.e. a system that has all the latest updates and one that is older.
There are some downsides, and here is my list as I see them.
- The accuracy of emulation is not perfect, and incompatibilities may cause an application to crash, even though this may not occur on the actual hardware. It's also possible for the opposite to happen: an app might run fine on the emulated system, but crash when run on real hardware. Therefore, testing on actual PowerPC systems is required prior to release.
- Depending on the host computer, emulated systems will be slower than the real systems.
- Some software will be difficult or impossible to be tested because of lack of the necessary hardware, i.e. OpenGL games that use 3D graphics, or drivers for specific hardware.
Setting up an emulated system for AmigaOS 4 with Qemu requires access to the latest CD ISO of the operating system and updates. AmigaOS 4.1 FE can be purchased from various dealers around the globe or online. The computers that can be emulated right now are the Pegasos2, the AmigaOne and the Sam460ex. Qemu is required to be installed and configured in the host computer, using command line arguments.
To make things a little bit easier for everyone, I developed an application called Kyvos, which is a Qemu frontend and can help users to set up and run AmigaOS 4 on emulated systems with just a few clicks. This can be found at my ko-fi shop, and it is available free of charge. A comprehensive manual of more than 120 pages is also available that helps with the first steps on having AmigaOS 4 installed, which remains quite useful even if you do not decide to use Kyvos.
Using Kyvos, multiple emulated systems can be created with just a couple of clicks, their specifications can be altered using an intuitive UI and a well-working configuration can be applied automatically. And it works seemingly on Linux, macOS and Windows.
Release
So, the application or game is developed, compiled and tested, and now it is time for a release. What should be done?
AmigaGCConDocker images already include a version of the lha archiver, which this can be used to compress the application with the extra required files. Then, it needs to be made available to users. The best way to do it is uploading the archive with an informative description to the OS4Depot and Aminet. This way, everyone will be able to see it as soon as it is available. Of course, an announcement in Amigans.net will also be useful, since this is the most dedicated and active forum for AmigaOS 4.
Help and documentation
Questions will eventually need to be answered, and assistance will be required. The best places to find other developers who could help are the OS4Coding.net and Amigans.net, which are both forums for AmigaOS 4, with the former being a dedicated forum for development. Register, and start sharing your experience with the system, what you try to achieve. The people in these forums are encouraging and helpful.
The best places to look for further documentation is the developers section in the AmigaOS wiki pages. The latest autodocs, describing the AmigaOS 4 API, and articles around development for AmigaOS can be found there. Furthermore, as part of the AmigaOS 4 SDK, there are plenty of examples that can get you started, as well as the "Documentation" folder that includes the autodocs and other useful information.
Conclusion
In this post, I tried to give an overall description of what is available for everyone to use and where to start if you want to support AmigaOS 4 and write or port applications and games to it, using your Linux, macOS or Windows system. I just scratched the surface here, but I believe that the hardest thing is to figure out where to start from.
Enjoy your time coding and most of all, have fun.

