List of software projects

I got my first computer (an AMIGA 2000) in 1990 and soon afterwards I started to write my own programs. During the next approximately ten years I wrote many programs for AMIGA computers, first using the BASIC programmming language, followed by 680x0 assembler, PowerPC assembler and C. In 2001 I moved to the Mac platform, but took a 'programming break'. My interest in programming resurrected in 2008, when I started working on new projects using the Python programming language.

Below I have listed some of my software projects in chronological order, accompanied by some history and background information.

Starbirds (1993-1996)
Programming language: 680x0 assembler

Since the early days of my computer experience, classic shoot'em up games were my favourite. Eventually I started to dream of creating such a game myself. My first attempts failed and I realized that I simply was not capable of doing all the graphics stuff. Then in 1993 I met Dario Hardmeier, skilled in making computer graphics. Together we started working on our own game. The project proved to be a big challenge for both of us and we did not progress as quickly as we had hoped. Nevertheless, after three years of work, we finished the game and so my dream came true.

Please visit the Starbirds webpages, were you can find more information, screenshots and even the game itself for download! Starbirds can nowadays be played on many computer platforms using AMIGA emulation software.
PowerASM (1996)
Programming language: 680x0 assembler

In 1996 I bought an AMIGA 4000T computer, it was really my first computer featuring a hard disk! In this year I became very interested in PowerPC processors, because some hardware companies planned to develop PowerPC based accelerator hardware for AMIGA computers. I decided to write a compiler, which should translate PowerPC assembly language to machine code understood by PowerPC CPU's (actually such compilers are called assemblers, which makes it easy to confuse them with the assembly language). When my assembler (which I called PowerASM) became functional I was not able to test it: the announced hardware had not materialized yet.

Then I got into contact with a german company called Haage & Partner GmbH, which at that time was a leading AMIGA software company. They were interested in my assembler and so we started a collaboration. In the following I got access to prototype hardware, which allowed me to play with the PowerPC CPU's much time before endusers could buy the final hardware products. An exciting period started with me being at the front of the AMIGA/PowerPC development. My assembler was sold commercially under the name Storm PowerASM, though it did not have much success.
WarpOS / WarpUp (1996 - 2001)
Programming language: 680x0 assembler and PowerPC assembler

The initial idea behind the PowerPC accelerator hardware for AMIGA computers was that the PowerPC CPU would act as a coprocessor, supplementing the existing 680x0 processor. But then some interface software was needed to allow applications to execute code on the faster PowerPC CPU. When I got my first prototype accelerator hardware, I realized that the supplied interface software was almost unusable due to extreme delays. Therefore I decided to write my own interface software in order to have something usable to work with. The software began as a small library and eventually evolved into a multitasking-capable operating system kernel, which I called WarpOS and which was inspired by Exec, the Amiga OS kernel. WarpOS was almost completely written in assembly language, for compiling the PowerPC part I used PowerASM, my own assembler software.

WarpOS was released as free software and was promoted by Haage & Partner GmbH under the label WarpUp. It faced an intensive competition with the so-called PowerUp software promoted by a leading AMIGA accelerator hardware manufacturer called Phase 5. Both solutions were mutually exclusive, which lead to a splitting of the AMIGA community between WarpUp users and PowerUp users, and there was much controversy going on. The WarpUp software eventually became part of AMIGA OS 3.5.
680x0 emulator (1998)
Programming language: PowerPC assembler

At some point various hardware companies announced to build PowerPC based computers for the AMIGA market, which would not contain a 680x0 CPU anymore. Unfortunately the AMIGA operating system was not going to be rewritten and recompiled for the PowerPC processors in the next few years. The only way to use AMIGA OS on these computers was to use a 680x0 emulator. I was asked by Haage & Partner GmbH to develop such an emulator. Eventually I reached the point, where I was able to run AMIGA OS completely on the PowerPC processor. Unfortunately none of the announced hardware materialized in the next few years and my emulator never made it to the public.
Warp3D (1998 - 2001)
Programming language: C

When it comes to 3D graphics acceleration hardware, the AMIGA platform was way behind their competing platforms. In 1998 my AMIGA was equipped with an enduser PowerPC board with a graphics card attached, featuring the Permedia 2 3D graphics chip. Unfortunately no drivers were supplied to allow AMIGA applications to use the 3D acceleration features. So I teamed up with Hans-Jörg Frieden and Thomas Frieden to write a 3D graphics library, featuring a device-independent API and drivers for the S3 Virge and for the 3DLabs Permedia 2. We named the graphics library Warp3D and released it as free software. Later it became part of AMIGA OS 3.9.
Mesa (AMIGA/WarpUp port) (1998 - 1999)
Programming language: C

OpenGL is a well-known API for 3D graphics. At that time there was no licensed OpenGL implementation for the AMIGA platform, though there existed AMIGA ports of Mesa, a free implementation of the OpenGL API. In 1998 I started to work on a port of Mesa to the AMIGA/WarpUp platform. My ongoing work on Warp3D opened an exciting opportunity, namely to write a Mesa driver which uses Warp3D to render the 3D graphics. The project was successful and brought hardware-accelerated OpenGL to the AMIGA platform. The Mesa port was released as free software and was promoted under the label Storm Mesa by Haage & Partner GmbH.
UAE (AMIGA/WarpUp port) (1999)
Programming language: C

UAE is an AMIGA emulation software available for many computer platforms. There existed even a port for the AMIGA platform, which was useful to run old AMIGA software that did not work anymore with newer AMIGA computers. But UAE running on 680x0 processors was in general not fast enough to run for example old AMIGA games at reasonable speed. Therefore I took the opportunity to port UAE to the AMIGA/WarpUp platform. The software was released as free software, as required by UAE's license (GPL).
Wipeout2097 (AMIGA/WarpUp port) (1999)
Programming language: C

In 1999 the software company Digital Images asked me to help porting the well-known racing game Wipeout2097 to the Amiga/PowerPC platform. I agreed and found myself teamed up with Peter Mc Gavin from New Zealand. The game was originally developed for the Playstation console and later was ported to the PC/Windows platform. We had to work with the PC/Windows sources, which used Direct3D for the 3D graphics. One of my main tasks was to write a partial Direct3D emulation layer sitting on top of Warp3D. It was a great pleasure to work with Peter and we successfully completed the project.

Wipeout2097/Amiga became the first commercial game utilizing the PowerPC technology on AMIGA computers. It was very rewarding for me to see the game running on top of the WarpUp and Warp3D components, and from my point of view the game was very well playable and had really nice features. It was even possible to run the game in a window! Meanwhile I consider the Wipeout2097 project as my favourite AMIGA software project, I also enjoyed playing the game very much.
UAE (OS X port) (2001 - 2002)
Programming language: C

In 2001 I moved to the Mac platform. I thought that it would be nice to be able to play the old AMIGA games on my Mac using the UAE emulator. In the following I made a port of UAE to the OS X operating system. It featured an innovative display engine which allowed to run AMIGA games in fullscreen mode at very good speed. My OS X port was never released to the public, but I personally used it regularly to play old AMIGA games.
Cube Puzzle Library / VTK Cube Puzzle (2008 - 2009)
Programming language: Python

From 2003 until 2008 I was studying theoretical physics at the University of Zurich and did not pursue any significant software projects during this time. In summer 2008 my interest in programming reappeared, when I realized that the combination of my newly acquired skills in theoretical physics and my immense experience in software development could prove to be very valuable and also exciting in future. But I definitely wanted to find a way to write software more quickly than I did in the past. This led me to the Python programming language.

At some point I decided to write a Python program to display threedimensional cube puzzles, utilizing the VTK visualization software. The project evolved much further than I originally had planned. Eventually I split the project into the Cube Puzzle Library, which provides cube puzzle related facilities, and the VTK Cube Puzzle application, a cube puzzle simulation program with interactive 3D graphics and a graphical user interface. It took me about eight months to complete the first versions of both components. More than half of the time was used on the one hand for the generic cube puzzle solver and on the other hand for documenting the project. I raised my personal standards concerning coding style, documentation and project management substantially and I am very satisfied with the results.