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.
|
|