DCEmu Interviews is the site that asks the questions everyone wants answering, Part of the DCEmu Homebrew & Gaming Network.

DCEmu Interviews Go back to Main Page

Interview with: Aaron O`Neal

Homepage:

Date: 2001

The Interview

Wraggster:: Where was you born, live and family details etc?
Aaron Oneal: I was born in Tampa, FL and have lived here my whole life. It's been a great place to be. My wife and I recently moved a little further out of the city for a quieter pace. My parents and my brother are also Tampa natives, which seems increasingly hard to find..

Wraggster:: What qualifications do you have?
Aaron Oneal:I started programming at a very early age, as most do these days it seems, so I have been doing it a very long time -- since I was 10, so that makes it about 14 years. Obviously the first few years of that I was learning the ropes and "inventing" algorithms and ways of doing things that had already been done. If I had known how to do any research back then, I could have saved myself a lot of time, but I was still learning and there was no Internet to speak of.

I started out by trying to write a Star Wars game in BASIC for the old IBM XT. I was actually reasonably successful and that kept me interested in learning more. My goal in learning to program was to one day write a great video game. After a few years, someone introduced me to this great new language called C. I picked up a book on it, totally confused myself, and then left it to collect dust. Three months later I looked at it again and everything magically "clicked". Once I got it, I never went back.

One of my first projects in C was to write a Bulletin Board System (BBS), the precursor to the Internet. I had it about 60% complete when it became clear that the Internet was going to make the traditional BBS nearly useless. By this time, I was also writing some applications to make money on the side.

When I graduated high school, I went to work at the University of South Florida (the college I was to attend the following year). The first thing I had to do was to write some educational games for the Macintosh. It was a great learning experience since I had never used a Mac, let alone written a program for it. I had picked up C++ by this time and wrote several games using the language. These games were actually published with a book that was distributed in the classrooms of local schools.

After that project, I had to do some database work with MS Access. So, I had the opportunity to learn Visual Basic. I wasn't anxious to go back to Basic after getting accustomed to C++, but had to out of necessity (thanks to MS). The database work turned into Internet/WWW work, and I was writing CGI programs and coding HTML before I knew it.

After doing that for a while, I was offered a position with IBM by someone I had worked with in the past at USF. Deciding I was destined to do computer work, I took the job. I continued Internet related work while there, wrote a few C++ apps, and was eventually forced to learn Lotus Notes (and their version of Basic -- LotusScript). It seemed Basic just kept coming back to haunt me. Thankfully Microsoft has released C# which I can now use.

During this time, Java was just starting out, so I picked it up and wrote a few apps and client/server programs in it. I got stuck doing Lotus Notes development for a couple years, our department got purchased by AT&T, and then I got put on a new project using J2EE (Java) for a large enterprise application. I've been up to my ears in Beans, Servlets, and JSP.

On the side, I never lost sight of wanting to make a video game, so I have been working with a team to make a 3D game engine for the last year or two. What we have now is comparable to Quake 3 (surpasses really), but probably not as good as Quake 4! :-) We've got what I think is a really great game concept, and we're doing our best to complete it in our spare time. I'd love to do it full time, but that would require finding some investors -- something else that takes time.

That pretty much brings us up to date as far as my qualifications. If I had to make a short list, I'd say:

Basic, C, C++, C#, Java, Lotus Notes, ARM ASM (recently), Computer Science/Engineering degree from USF, and all the great suff you need to know to make a 3D game engine. :-)

Wraggster:: What made you get into computers?
Aaron Oneal: It was really my dad that got me into computers. He has always loved them. We had a Texas Instruments TI/99. It was a great little machine, ahead of its time. He used to get magazines that had Basic code in them. Sometimes they were for games. I would type them in (not really understanding what I was typing), record them to cassette tape (there was no hard drive), and then I could load and play them. Eventually I started understanding what I was typing in. My dad later brought home an IBM XT, and that's what I really started to code on. I was a big Nintendo fan, and when I saw some of the lame 4-color CGA (black, white, cyan, and pink -- ugh) games, I knew I wanted to make something better. My dad bought me a couple of books, and the rest is history.

Wraggster:: PocketGB is a Great emulator, do you think that you have reached perfection there?
Aaron Oneal:Thank you. But, there's still a lot to be done before I would consider PocketGB perfect. I'm supporting so many platforms (PPC, HPC, HPC Pro, PSPC) that there are little incompatabilities on each that surface from time to time. It's also very difficult to develop for these other platforms, especially HPC, since my primary testing device is a Compaq iPAQ.

Wraggster:: How did you start and what programs did you use to start coding?
Aaron Oneal: Fortunately Microsoft released eVC for free, so I was able to get started right away after requesting the CD. PocketPC development was very similar to Windows programming, with its own caveats and hurdles to solve.

Wraggster:: Tell us about your PocketGb Emulator and how well it is doing so far?
Aaron Oneal:It has done very well and there seems to be a lot of interest in it. I want to really polish it up and sell it retail one day so I can reach a broader market. I would like it to be successful enough that I could hire another engineer to work on it with me to really hammer out a superior product. But working on it only in my spare time, that's a tough goal to reach.

Wraggster:: Any information on your emulator and any updates to it planned?
Aaron Oneal: Currently I'm working on the GameBoy Advance module. The current C version is not fast enough for today's devices. But, I think I have found a way that I can take advantage of newer concepts in emulation. Right now all the modules use interpretive emulation, stepping through the ROM code one operation at a time. For porting and compatiability, this is great. For speed, it is not. So, I am attempting to write an ARM specific version of the GBA module that will use something along the lines of JIT or Dynamic Translation/Recompilation to allow large blocks of code to execute natively. If I am successful, I am expecting a major speed increase in all of my modules.

Other planned updates include a skinnable virtual pad, a SNES module, and a Genesis module. But, I don't forsee those happening for quite some time as I think I'll be busy on the new emulation core for a while. I am looking into the possibility of making the PocketGB libraries available to the public so that someone else can do a freeware port of them.

Wraggster:: Have you considered porting your emus to other platforms like Linux,Dreamcast etc
Aaron Oneal:Yes, including the Windows desktop machines, but I probably won't have time for anything like that until PocketGB is more complete.

Wraggster:: What's your opinion of the new super consoles like X-box,Gamecube,Game Boy Advance and the Playstation 2?
Aaron Oneal:I like the GBA, but I think Nintendo was silly for not including a backlight. I'd much rather play GBA on my PocketPC where I can actually see the game without shining a flashlight on the screen.

I have been looking forward to the Gamecube because I am a huge Zelda fan. I've played and beaten (almost) every Zelda game released. I expect I'll probably end up buying the cube just so I can play the next one. :-)

X-box looks great, and I'll probably get one of those too. If it weren't for Zelda, I might not even by the Gamecube and just be content with X-box. Nintendo did a poor job getting titles out for the N64. The ones that did come out were too childish looking. I'm just hoping they don't do the same with the Gamecube.

I have never liked the Playstation or the PS2, so I can't really comment much on it.

Wraggster:: Which console looks the best for devving on?
Aaron Oneal: I would have to say X-box looks the best to develop on (at least for me), since I've done Windows development most of my career. It means I can develop using my PC, test, and write a version for both platforms. It's like a developer's dream. It reamains to be seen if it will in fact be that easy. I also see that as a potential downside to the X-box. I expect most titles to come out for PC and X-box. Which begs the question, why buy an X-box if you already own a PC? Still, I expect X-box to win out because of the mistakes Nintendo made with the N64. Most likely X-box will attract more developers, which means more games to choose from, which means winning the console war.

Wraggster:: What are your favorite games for every system you have owned?
Aaron Oneal: Ok here we go:

Atari 2600 - Pole Position
TI/99 - Parsec
NES - The Legend of Zelda
SNES - Zelda, A Link to the Past
GameBoy - Zelda DX
N64 - Zelda, Majora's Mask
Genesis - Golden Axe
TG-16 - Ys
PC/Windows - Age of Empires II

Can you tell I'm a Zelda fan? :-)

Wraggster::Whats your favourite Emulator and what do you think the next big breakthrough in the emulation scene?
Aaron Oneal:These days, the only emu I use is really PocketGB. I just don't have time anymore to play with the others. Every now and then I use Basillisk II (Mac emu) and UAE (Amiga emu). I also work with this great emu called VMware that basically emulates the PC. This allows me to run Windows 98 inside a window while running Windows 2000. It's great for development.

As for the next big breakthrough, I don't know really. I keep expecting to see emulators for Java since that would mean instant portability, but I suppose emulation is something you just have to get down to the nitty gritty details sometimes to get enough speed and Java doesn't really allow for that. As computers become faster and JIT gets better, perhaps we'll see more Java.

I also expect more emulators to take advantage of concepts like JIT and Dynamic Recompilation.

Wraggster:: Your thoughts on the PC Emulation/Development Scene and how can it be improved?
Aaron Oneal: It's often difficult to locate information and tools for the various platforms we're emulating. So, some kind of repository for this information would be great. There are some out there, they're just tough to track down.

Support of my work from the emulation scene has been great. Particularly from sites like PocketGamer (www.pocketgamer.org). Every now and then I speak with someone that thinks emulation is the kind of thing that can be done in a weekend and that in a month things should be perfect. They really have no concept of what goes into writing an emulator or how they work -- which is often because they don't know how their own computer works. So, a greater awareness of just what emulation is might make things a little easier on emulator developers. I should probably add some information along those lines to my web page. :-)