1) Who is Ray? Introduce yourself.
Hi, my name is Reimund "Ray" Dratwa, I'm 36 years old and I was born and raised near the Cologne/Dusseldorf area in Germany's far West.
2) What is your history with computers and when did you discover the Atari ST?
As a matter of fact the ST was my first computer which I received as a gift from my uncle who eventually decided to get rid of it when he bought his first PC. This must have been in '91 or '92. Growing up in the 80s and 90s - two decades that eventually kicked off the transition into the "digital age" for good - computers were always around during my childhood: I remember my dad had an Apple II
which was later replaced by an IBM XT (8088)
. What a tedious and heavy box this was. One of my cousins had an Atari 2600
console on which we would play stuff like Pong
or Donkey Kong
. He always had some of the latest (affordable) systems when it came to entertainment computing, so I got in touch with the C64
, the Game Boy, the SNES or, which was later on, the PlayStation and the Nintendo 64.
3) When and why did you become a coder?
My first programming experiments started at a young age in the early to mid 90s. As you may know the ST came with a language disk that included Omikron Basic and I used to be one of those lucky (?) guys who had a rather easy time understanding maths and who liked to challenge themselves with logic riddles and the likes, you know. So instead of playing games I would spend most of my time trying to learn how to program. When my dad came home from work, I would proudly show him what I had "coded" that day. I quickly moved on to 68k assembly
, probably when I was 13 or 14. This was during a time during which you could go to your local library or book store and still find a book on 68k assembly and there were computer magazines that had program listings you could type into your computer. I recall spending lots of time with TurboAss + Bugaboo, which is an incredibly fast assembler/debugger system that pre-assembles code as you enter it. You simply hit Shift+F5 (IIRC) and instead of a time-consuming 2 pass build procedure, it would almost instantly enter the debugger and run your program. So that was really enjoyable.
In hindsight those first steps were probably ridiculous, but I guess they helped form a solid foundation for the understanding of how a computer and its CPU works, e.g. how numbers are represented, how memory is managed and accessed, what a stack is and so forth - stuff that still kind of helps me in my work these days because it has become second nature.
4) What is your favorite programming language?
For what I do these days, it would probably be C/C++
. I still write a lot of audio DSP code where those languages tend to be "the weapon of choice". I feel it's a very simple and stripped down language that sits right on top of the machine / respective OS API without giving you a layer of BS. You are in control of things where you need it, plus, I'm a guy that's into stuff that's lean and mean anyway. Writing C/C++ code also feels kind of elegant and gives it me a similar sensation I had when writing assembler code on the 68k, which is a very well designed platform with a very powerful set of addressing modes and a no-nonsense CISC instruction set – that way, I can get a good idea of the relevant effects of what I'm coding.
5) What was the very first game you played? Are you a gamer?
While I can't remember exactly, it must have been something that ran on my cousin's Atari 2600 (see above). As mentioned before I'm not that much of a gamer, but there are things that stood out for me personally; for instance some of those LucasArts adventures, such as Loom
or Monkey Island
, and obviously the id-Software
classics that would set the bar in the PC world. also remember titles such as The Great Giana Sisters on the C-64 or Zak McKracken
and Prince of Persia
on my other cousin's Amiga 500...
6) When did you join TSCC and why?
Probably in 1999 or 2000. If I remember correctly, I had already started my first attempts at implementing a Wolf3D
type engine. I also set up a simple website on which I tracked the progress of my work, which MC Laser/Lotek Style
.tSCc. had stumbled upon, so he got in touch with me, as they were looking for coders back then.
7) Were/are you part in any other groups in the Atari scene?
No. There were some instances in which I helped out others by providing ideas or food for thought on an IRC-channel called #atariscne - and sure enough, the same thing happened to me a couple of times, too. I think this was just the nature of things back when I joined the scene: A family of enthusiasts willing to share their experience and help out each other. It seemed like a time in which there was very little effective competition, while at the same time there was still a tremendous evolution going on, even despite the fact that the platform we were working on was factually dead already - just look at the amazing things that groups like Dead Hackers Society
, Escape or Checkpoint
(I probably forget other great groups here, but you get the point) put out during the late 90s/early 2000s.
8) What do you consider your greatest accomplishment on the Atari ST? What are you most proud of?
I think the quite obvious answer would be Wolf3D. Looking back, it seems like quite an achievement: I don't know where all that energy and sheer amount of time put into it came from and it seems like it happened in another life. Another thing I'm proud of from a technical perspective this thing called TTRUECOL - a 12bit RGB true color chunky to planar conversion (see below) routine for the Atari TT. And of course there was our Beams demo for the Falcon/TT030, which took us years to finish and which I consider more of a collective effort.
9) With the conversion of Wolfenstein 3D on the Atari ST, you seem to have done the impossible. You made a fully texture mapped FPS game playable on an 8mhz machine? Why did you pick this game? Did you have a history with this game before the Atari ST version?
I have to admit that my jaw dropped when it was first introduced to me by a schoolmate who had an i386
PC. I was immediately spellbound by the idea of playing a similar game on my ST, so that's basically what started it all off.
10) Can you explain to a non-coder the biggest challenges of the project?
It obviously took me some time to develop my coding skills enough, so actually, there were multiple iterations of trying to facilitate the project. It all happened during a time in which the source code of the original id Software version had already been released. There were many challenges: First of all the sheer complexity of a FPS game. So in the beginning there was lots of trying to pick apart the building blocks. I started by porting the 3D engine, which is obviously the most complex and CPU intensive part of the game. One challenge along the way was implementing an efficient texture mapper on the ST. As you may know, the ST's video-memory is arranged in bit planes rather than a chunk of data where e.g. each byte corresponds to one pixel on the screen like it was the case on the Intel counterparts that the game ran on originally. So first of all, I had to come up with a so called chunky to planar conversion (c2p) routine that is as efficient as possible. A c2p takes the raw chunky pixel based data generated by the texture mapper and subsequently converts them into the format used by the ST's video hardware. Many c2p routines were floating around, but for Wolf3d, I used all sorts of dirty tricks in order to optimize the c2p pass as much as possible, e.g. placing the required tables in the lower memory area so they could be addressed using less cycles (i.e. via something like move.l offset(a0),d0 instead of move.l (a0, d0.w),d1 where a0 contained the chunky pixel data iirc). Then there was the texture mapper itself: In Wolf3D, the environment is drawn in vertical slices and given the limited extent of the game map that represents the 3D world, a lot of stuff could be pre-calculated and placed into code tables; so drawing a sliver of texture mapped wall became as easy as pointing an address register to the respective column inside the desired texture and calling a pre-compiled routine that would map the wall sliver at the correct height depending on the distance from the viewer (clipping included). That's actually one of the things I learned from my fellow .tSCc. coders and a recipe that is constantly used in demo coding: Pre-calculate as much stuff as possible without making it become fake :-) I subsequently added the sprite scaling which essentially used the same concept, except for the fact that the sprites use a color key to mask out the transparent regions. So I needed to pre-compute another set of dedicated code-tables for those. The amount of tables required to perform these things efficiently is the main reason the game requires at least 2MBytes.
Then there was the task of obtaining reasonably looking graphics: The original game used a 256 color palette available on the PC's VGA
graphics card. The ST was only capable of displaying 16 colors at once – at least without the use of some nasty cycle-syncing tricks that don't apply in the game environment due to their CPU consumption. After gizmo
/.tSCc. had made an attempt of redoing the texture graphics using a 16 color palette, I discovered there was an Apple IIgs
group called Ninjaforce
. They were involved in creating an Apple IIgs port from the available Mac version and they had done an wonderful job of redoing all the graphics with less colors (AFAIK the Apple IIgs version requires an accelerated machine to run properly BTW.). Anyway, after a bit of back and forth they granted us (.tSCc.) the right of using all the game data, including the original maps, sound effects samples and graphics for our free ST port of the game. The ST version uses a fixed 16 color palette for the top area, i.e. where the 3D stuff is going on and another dedicated 16 color palette for the stats panel you see on the bottom.
The famous intro tune was converted to the YM by dma-sc
. There were other technical challenges, too, as for instance replaying digitally sampled sound effects on the ST - which doesn't have DMA sound as the STE does - or making the game compatible with all 16/32 bit Ataris, i.e. all ST(E) models, the TT030
and the Falcon030
: Especially stabilizing the raster stuff that is used to display more than 16 colors on screen, a technique that is used in all game menus, logos, splash screens as well as the game itself on all these machines was a little nerve-wracking. And, of course, the lack of time would get in the way on a regular basis. The project was interrupted by my military service and later on by my studies.
11) Are you planning on ever completely finishing the game on the ST?
I would love to, but frankly, I haven't revisited the source code for over 10 years or more. So it would take me a lot of time to merely understand the details of what I did, let alone the fact that I'm probably quite rusty in m68k assembly. It's more likely that at some point, I will simply release the source code to the public via GitHub
or something, hoping that another keen soul will take care of it.
12) Do you still enjoy Atari today?
Occasionally, I'll have a peek into what's still going on scene-wise and, of course, I always enjoy seeing new productions. I don't watch them on the real thing, though. I hate to say it, but even the last thing I coded for the TT in late 2014 (the aforementioned TTRUECOL c2p routine) was done on the HATARI
emulator. I still have a TT030 and a Jaguar
, but unfortunately, both of them are locked away in my cellar these days.
13) What do you think of the Atari ST in general? What does it mean to you?
It's a really great and feature packed system and I think back in the day it set a standard in terms of CPU technology along with only few competitors, because I think the m68k platform was the real thing, especially, comparing it to the Intel's from that era. It certainly excelled in the amount of available connectivity/peripherals. I also hate to say this, but I think the Amiga 500
was superior regarding its video hardware. It had a special chip called the Copper iirc. On the Atari some of that was mitigated with the introduction of the Blitter and the following systems such as the STE or the Falcon and it also inspired guys to come up with these incredible overscan routines that would open the top/bottom and eventually left and right borders. To answer your second question: I enjoy thinking back of "the old days", and there's certainly some kind of nostalgia attached to the memories I have growing up with the ST.
14) Have you coded for other systems as well and if so, what?
Let's see, well, the demo-coding I have done for .tSCc. happened on various systems including a Mega ST, Falcon030 and the TT030. I even ported the Beams
demo to the TT after we released the original Falcon version in 2005. Most of it is documented on my old site, that can be found here
, but mind you I haven't touched it in years. Then there was a time in the mid 2000s when I tried to code some stuff on a BJL modded Jaguar. There must be code to some demo-screens floating around on a HDD, simple stuff I wrote using its GPU and Blitter, which I think had amazing capabilities despite all the hardware bugs the system was shipped with. I also wrote plenty of audio DSP code on various chips, including the m56k DSP
, the Analog Devices Sharc DSP and the TI DSP. The former was done in assembly, too, while the other chips were typically coded in C. The stuff that I do these days runs on x86/x64 Intels, Windows and macOS and is coded in C++ (i.e. plug-ins for digital audio workstations in the AU, VST2, VST3 and the AAX formats).
15) What is your favorite piece of technology to date?
Despite being an engineer/programmer I'm really not that much of a tech nerd, so I really don't know if I can answer your question appropriately. I would probably say, currently it's a Leica D-Lux
camera I acquired circa two years ago. It has a great F1.7 lens and it's really fun to shoot pictures with it.
16) Oh, so are you into photography these days?
Yes, I enjoy photography, too, but more as a hobbyist: I try to understand the technicalities of my camera as good as I can and shoot the stuff that I like or find worth keeping as a memory. And as sort of a discipline, I try sticking to the viewfinder. I can remember a time where shooting photos was somewhat exclusive, at least that's how it felt to me when I was younger. You know, times before digital cameras, when you didn't have the capability of instantly reviewing your shots. You only had 36 free slots or so to fill on your film roll and then you'd send it off for development and you'd be excited for the results. And so you would have to have at least an idea of what you were doing or what you would like to shoot, actually. With smartphones, filters and instagram etc. at everyone's disposal now most of that exclusivity, the feeling that it's something special is gone. There's also a connection to what I wrote above: As a kid growing up in the 90s you couldn't get around music television and all the visuals of the music videos from that era are deeply engraved into ones mind. Someone that stood out to me through the arty type of music videos he created is photographer Anton Corbijn
- he definitely managed to make this into an art form. He has a very strong signature that resonates with me no matter what he does. I like watching the numerous, super grainy, strong contrast and shallow depth of field portraits he did of famous people throughout the decades. In more recent times he directed some incredible feature films like e.g. "Control
" which deals with the life of Joy Division
's Ian Curtis
17) Is there something you would really like to accomplish in your life?
Nothing in particular, really. I'm grateful for the things I have achieved so far. Right now, I'm trying my best to be a good dad and husband. I don't know if that can be regarded as an accomplishment, but rather something you work on, continuously.
18) Do you have time to play games these days and if so, which ones?
I'm afraid to say that I don't.
19) What do you do for a living?
I run a small software business called Fuse Audio Labs
. As mentioned before, we create DAW plug-ins, typically emulations of classic and rare analog studio processors such as EQs, compressors or tube based amplifiers. So stuff that's used in audio production (i.e. mostly by recording and broadcasting studios, as well as hobbyists).
20) Do you have an idol in the programming world? Are there people you look up to?
I don't know if there's an idol in particular, but over the years I encountered many coders which I looked up to and which I found inspiring. This was especially due to the fact that they would gladly share their knowledge, experience or approaches. Some names from sceners that come to mind (in no particular order) are: Earx
21) If you could drink a beer with someone famous, who would it be?
I guess it would be a guy who isn't around any more: Don van Vliet who used to be famous as "Captain Beefheart
" in the 60 and 70s. He was a schoolmate of Frank Zappa
and had various incarnations of his own Band called "The Magic Band
". They did some of the most far out, uncompromising and original music that I'm aware of. He ended his musical career to become a reclusive painter in the early 80s before he died in 2010. He must have been a unique individual.
22) You are a music fan, right? I can tell ...
I do like listening to music, yes. I'm a drummer myself and ventured through various local groups mainly in the rock genre. That's also how the DAW plugin/music production software development thing came about, which is what I do for a living these days as mentioned earlier. I don't know if I would consider myself a music fan, but I sure enjoy listening to music. As most guys I'm having a hard time trying to pinpoint my music taste, specifically. I'm kind of nostalgic when it comes to that, too, though: I like some of the Progressive-/Art-/Jazz-/Whatever-Rock genre stuff that was produced in the 60s/70e s - names like Zappa, Beefheart, Mahavishnu Orchestra, King Crimson
or Gentle Giant
come to mind; at least those are some of the groups I seem to revisit regularly. Some other "random" artists or bands that I'm really impressed with, that I feel are incredibly intense or that I am moved by on a deep level are, Coltrane
, John Cale
, Tom Waits
, PJ Harvey
, The Mars Volta
, or more recently Meshell Ndegeocello
. There's also music that I appreciate especially for its strong lyrical/poetic aspect, for instance The Doors
, Fiona Apple
or Joanna Newsom
. Then there's the stuff that I listened to growing up - 90s rock groups like The Smashing Pumkins
and the likes, as well as some of the influential New Wave stuff that was still reverberating after 80s. Some of these groups still exist, so seeing them today, again brings about another type of nostalgia. The list could go on and on and you see it's all over the place, but I think you get the point.
23) Do you have any last words of wisdom to share with us?
Take it easy :-)
Thank you for this interview, Ray. Take care.