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