Sam Ellis appeared suddenly on the Acorn emulation scene, but has to rate as one of the most accomplished emulator authors we have, for not content with approaching a simple 8 bit computer, or console, Sam dived right in and started writing his own Atari ST emulator, STem, and brought ST emulation to the Acorn for the first time. Even in the face of some massive technical problems, hes continued to develop the emulator to a usable stage.
Did you own an Atari ST?
Yes, the first computer I ever had was an Atari ST. When I was about 13, I came home from school one day to discover that my mum had bought a computer for me. Up till that point I had never even heard of the Atari ST, so I was quite fascinated by this new machine and all the things it could do. At first I mainly used it for games, but after a while I became interested in programming. I started with assembly language, then went on to try BASIC and C. I still have the original computer, but it's gradually f alling to bits. At the moment all I use it for is to help debug my emulator.
Do you hate Amigas with a vengeance? (like many ST owners I knew) :o)
No. I never really new much about Amigas, and didn't have any friends who owned one, so they were a bit of a mystery to me. Nowadays I don't think it is such a big issue, since Amigas and Ataris are no longer considered mainstream computers.
What gave you the idea to start writing an ST emulator?
I never really planned to write an emulator, and I don't really remember quite how or why it all started. I guess I'd always been envious of PC owners who had 5 or 6 Atari ST emulators to choose from, and wondered why there were no equivalents for the Aco rn platform. Nobody else seemed to be writing one, and since I knew quite a lot about the Atari ST, I decided to give it a go.
What part of the emulator did you start work on first?
I started to code the emulator on 7th February 1997. I began with the processor, since that was what I considered to be the most important part. However, a processor is no use on it's own, and a critical subset of the hardware is required to make a useful system. Hence I simultaneously worked on other essential pieces of the hardware, such as the memory and graphics systems. Gradually the emulator took shape, and after 5 months of work I managed to boot to the GEM desktop for the first time.
Where did you get the technical information from to write your emulator?
Having programmed the Atari ST in assembly language for several years it is impossible not to become accustomed with the intricate details of it's hardware and software. This knowledge enabled me to progress fairly quickly with the development of the emul ator, but in general it was not sufficient on it's own. I relied quite heavily on the Internet as a means of finding out the things I needed to know. Every now and again interesting documents, source code for Atari programs, and snippets of information, would turn up on the web sites I visited. In addition, wh enever I had a specific problem I would post a message to the Atari newsgroups. These newsgroups are populated by some very loyal Atari enthusiasts, and if they can't provide any help then I may as well give up looking.
Were you hoping that the ST emulation would turn out faster than it did?
I never really expected it to work out at all, so I'm quite amazed when I look back and see just how far I've come in such a short space of time. It seems to take a long time when I'm writing it, but in retrospect I don't think it's been very long at all.
What has been the hardest part of writing STem?
One of the hardest parts about writing the emulator was crossing the first major milestone - being able to boot the operating system for the first time. I cannot even begin to tell you how relieved I was when that strange green desktop appeared on my scre en. It suddenly made all that effort seem worthwhile. But perhaps the hardest part is still to come. I'm referring to the difficult task of ironing out all the little bugs and inconsistencies which plague the emulator, and still prevent a lot of software from working correctly. The time to locate and fix the se problems is increasing rapidly, and often there is no easy solution to be found.
Have their ever been times when you wanted to ditch the project?
Often, but something always persuades me to continue. Perhaps it is the desire to bring back those fond memories of my original Atari ST. Also, I quite enjoy programming, and I always manage to find a bit more enthusiasm, even when things are not working out the way I intended.
What has been the most satisfying part of writing STem?
Seeing 10 year old Atari software running on my Acorn computer always brings a smile to my face. I really enjoy solving problems, and I view each additional program that I get working as a small but significant achievement.
Do you intend to port STem to any other platforms?
Not at the moment, since I am dedicated to the Acorn platform. However I would have no qualms about anyone else trying to port it, but so far I haven't had any offers. I would imagine that porting the emulator would actually be quite hard, since it has be en designed specifically with RISC OS and the ARM architecture in mind.
What's your favourite game on the ST?
My favourite games were Lemmings and Populous. I never actually owned a copy of either game, but I used to play them both on a friend's computer. There's something quite attractive about being in control of the inhabitants of a computer generated world, a nd being able to create mayhem on a whim. I also like the strategy element since I have a very active mind, and tire easily of repetitive and predictable games.
Have you ever written/attempted any other emulators?
No. One is time consuming enough. Maybe when I've had enough of STem I'll try another, but I doubt it somehow. Writing a new emulator would probably be much easier now that I've already got one under my belt. I've gained a lot of experience from writing S Tem, and I'm sure I wouldn't make as many mistakes the second time around.
Do you use any other emulators?
I use a Macintosh emulator on a Sun workstation occasionally, and have tried STonX on Linux based PC. There is no incentive for me to use any other emulators, because in general, I have no knowledge of the systems being emulated, and have no memories whic h need reviving.
What sort of response have you have from other Acorn users?
On the whole, the response from other Acorn users has been very good. I receive quite a few emails each week, requesting me to implement new features, and to fix various problems. These are always welcome, since it provides a reason for me to continue dev eloping the emulator. I probably would have given up ages ago if it weren't for the constant encouragement I'm given.
What can we look forward to in the future from STem?
I don't really know, since I never plan very far ahead. I tend to experiment a lot with the code, and most of my best ideas have appeared when I'm working on seemingly unrelated things. Lately I've been thinking about the performance issues, and in particular, the possibility of dynamic compilation. However the effort required to implement a successful dynamic compiler would probably be greater than the time taken to get the original emulator working in the first place. It would certainly be an interesting extension to the project, and one that I would love to try out one day.
Anything you'd like to say?
The only thing left for me to say is a big thank you to all the people who have given me support and encouragement whilst I've been working on this project. They are too numerous to mention individually, but their help has been very much appreciated.