With Heliophobe, creator of Smeg (a Sega Master System emulator).
Interviewed by WRAGGSTER. Edited by The Gypsy.This interview was done on behalf of ConsoleVision and B00B! Dreamcast Research.
B00B! Dreamcast Research: Can you tell us where were you born, where you live, your family details, etc.?
Heliophobe: I was born in Southern California and we moved to the Central Coast of
California a few years later, where I've been for the last twenty years.
B00B: What qualifications do you have?
H: Formally, none. All my computer and programming skills are self-taught.
B00B: What made you get into computers?
H: About as long as I've been aware of what computers are, I've wanted to be involved with them.
The first time I ever saw my sister playing a Ms. Pacman machine when I was four or five, I knew that there had to be people who made video games, and I wanted to be one of those people. I'm not there yet but I'm making progress.
B00B: What projects/coding have you done previous to any Dreamcast programming?
H: Previous to working on Smeg I had done some developing for the Sega Master System, which included a couple tech demos, a Tetris clone (Tetracycline), and an unfinished shoot-em-up called Damiana, which I entered in the Y2Kode competition. I got third place in my category, which netted me an assortment of small prizes from Lik Sang.
Before that, it's been mostly small unreleased projects and one-off utilities for a variety of platforms, mostly little alphas of games and utilities that I never finished, dating back to my Basic and Assembly language days on the Atari 800, later a playable but primative Street Fighter 2 clone for the Amiga, and more recently some misc. utilities in Windows.
B00B: What made you choose to do an emulator for the Sega Master System ?
H: After having done some development work on the Sega Master System, writing an emulator seemed like a logical next step, as I had already familiarized myself with the hardware. I was originally going to write a Windows based SMS emulator with better debugging features, to assist me with future SMS development projects. Then, in its very early stages, I thought I might try bringing it over to the Dreamcast, as there weren't any SMS emulators out at the time (I had started work on it shortly before DreamSMS was released), and I wanted an excuse to test out my coder's cable. That took off like a rocket, and I have since abandoned the PC version and the debugging facilities.
That, and of course, the SMS was my favorite 8-bit console, and I have almost an unhealthy obsession with it. I spend more time on SMSPower than any other site.
B00B: How did you start and what programs did you use to start coding for Dreamcast?
H: We can all thank a particular friend of mine, Grey: Digital Target, who set me up with a coder's cable, serial slave disc (before I even had a CD burner), and a disc with gcc and development tools. I very well might never have gotten around to it if he hadn't been encouraging me to give it a try.
Also, thanks go out to my girlfriend for letting me hog 'our' Dreamcast. She has her own now, all is well.
I use GCC as my C compiler, under cygwin in windows 98, which has been mostly functional, although it was difficult to set up. When I got started libdream was still the best way to develop for the Dreamcast. Documentation was sparse, so I learned a lot from reading the libdream source code, and have modified it to include some features I needed, like screen repositioning and supporting multiple controllers.
I might switch over to KOS someday, now that it's moved away from being an operating system and has gone back towards being a development library, although I appreciate the minimalism and customizability of libdream.
B00B: Can you give us a status update on all of your emulators?
H: I hadn't worked on it one bit for the past three weeks, up until this weekend. Between a flu, working too much, and miscellaneous other distractions I'd lost my momentum.
This weekend has been productive, however. I'll post the usual updates on the page, but I finally fixed the screen repositioning on televisions. For real this time.
The VCS emulator part mysteriously stopped working. It wasn't working well to begin with, so I might leave it out of the next public release, since Gonzo's does the job just fine.
B00B: Can you tell us how complex programming into your emulator support for Game Gear and also Atari 2600 was?
H: After I had the SMS working, supporting the Game Gear was a snap. Other than adding an alternate palette handler, I didn't even have to modify the graphics engine - I just clip out the middle 160x144 pixels of the 256x192 pixel SMS display in Game Gear mode. Cheesy, but it works. And I think that's how a real Game Gear works anyway. Then, just remapping the start button and faking the serial link has gotten most games playable.
The 2600 has just about -nothing- in common with the SMS, and is an extremely odd console to begin with. When I started writing it I hadn't accounted for the fact that just about all games require mid-raster precision to function properly, so I wrote a line renderer that doesn't support it at all, and very few games run without major glitches because of it. I'd have to rewrite a lot of it from scratch for it to run correctly. But, the sound is good. Even the speech in 'Open Sesame' works, last I checked even Stella doesn't do speech playback.
B00B: Do you have any new projects in the pipeline?
H: Nothing really. I'll probably try to do another SMS entry for the next Y2Kode (Y2K1ode?).. can't let those NESsers beat us again.
Another emulator project I'm considering, but I doubt I'd have the time to work on it, so I won't announce anything. And I'd like to work on an original game someday.
B00B: Whats your opinion of the new super consoles like X-box, Gamecube, Game Boy Advance, and the Playststion 2?
H: My favorite of the new batch is the Gameboy Advance. Greatest portable ever, and probably the last console to specialize in 2D.
For the home consoles I'm rooting for the Gamecube, but I have a sinking feeling it's not going to make it. I guess with Sega out of the game I support the remaining company that's been in the home console business since the 8-bit days.
I damn near bought a Playstation 2 several times this year, but every time I look at the lineup I realize there's maybe three or four games I really want, and they're still $45 everywhere I look. Not that the lineup sucks, necessarily, but it's dominated by sports and racing games, and I'm not a fan of either genre. Of the remaining games I am interested in, many are slightly improved versions of games I already have (DOA2: Hardcare, Crazy Taxi, Tekken 3, etc.). So I probably won't bother until the XBox and Gamecube force the price of the PS2 down a bit and there are more games that interest me. In the meantime, there's still dozens of excellent Dreamcast titles that I haven't bought yet, and I need to snatch those up while I can.
The XBox... I have a prejudice against the X-Box that I'll have to overcome someday, since it looks like Sega's going to be bringing several titles to XBox exclusively.
B00B: Which console looks the best for dev'ing on?
H: Speaking of homebrew software;
Second to that, the Gameboy Advance. Of course, you can only play homebrew GBA stuff on a real GBA if you have an expensive flash rom system, but it's great to have an active 2d system to code for.
B00B: What are your favourite games for every system you have owned?
H: I'm probably going to slap the old forehead when I read this list later, but these are the ones I can think of right now;
Atari 7800 (first console): Asteroids, Galaga (why I got the console to begin with)
B00B: May I say thank you for your time. I understand the last week has been one of the most terrible ever, and I wish you the best of luck with your work and personal life etc.
We at B00B! would like to thank Heliophobe for his time in answering these questions. We also give thanks to Wraggster for conducting this interview.
This document/interview is Copyright © 2001 by Wraggster and may not be reproduced in whole or part without permission.