1) What made you write ZSNES?

Well. Let's put this in a story format :

Once apon a time, there was this person. (Isn't that an exciting, well-formed
intro???) One thing he enjoyed as a hobby was programming so he'd spend a good
amount of time researching and experimenting with it. One day, he discovered
the exciting world of emulation and over time, his interest in that field grew
and grew. Since it's usually the case that 1+1=2, he'd realized that it might
be a good idea to combine his main interest with his main hobby. And the rest
is history.

2) Tell something about yourself

Currently, I'm single, 20 years of age (going 21 within a couple months), and
currently studying at Simon Fraser University in BC, Canada. I enjoy
programming (I'll bet you didn't guess that!) and I also like discovering
things and exploring other fields which I haven't previously explored yet
(Maybe I should be a treasure hunter as a career! That should be pretty
interesting)... Oh yeah. And I really like playing video games.

3) What problems did you encounter (or will encounter) during coding zsnes?

Well. I guess the main problem during coding zsnes that I've been facing is
when it comes to coding those special chips (SuperFX, etc.). Since there
aren't that many games that support those chips and that those chips are
customly made, it can get very hard to get its emulation to work correctly.
Maybe if there were 100 different games coded for the SuperFX, that polygon
glitch would have been much more easier to find and if there were more than 2
games written for the C4 chip, its emulation would have gone further than what
it is at the moment. I don't have a crystal ball with me so I can't answer
that sub-question in the ()'s.

4) What was your Friends comments?

Assuming that you're talking about my real life friends, I don't recall that
I've asked any of my friends for comments about Zsnes so I doubt I can answer
this question.

5) Do you have any regrets about ZSNES these days? i understand your a student.

Oh yes. The tough thing about working on ZSNES would be to stop working on
ZSNES. If I start working on a feature, I tend to not want to stop until I
complete that feature. So if I have an exam in 4 days and if I start a
feature and then completed that in 3 days, I wouldn't have much time to study
if I didn't force myself to stop working on it. But it gets easier to draw
the line between hobby and study as the exam gets closer so I still end up
studying, even if I don't finish the feature I was working on.
Another regret is that ZSNES was never my dream. My main dream was to become
a game designer/game programmer, to code/design my very own game (with the
help of other people, of course) and then make a profit from it (Since I need
to make a living somehow). And with ZSNES keeping my free time schedule busy,
I can't really see it coming unless I stop working on ZSNES. But if I stop
working on ZSNES, there would be a lot of disappointed people out there which
I don't want to see, so I'm sorta stuck here. I guess I can work on both
ZSNES and that other project, but I'm usually more comfortable just working on
1 project at a time.

6) Any ideas about ZNES/ZGEN/ZGB/etc?

Well. I keep hearing about ZNES, although I never seen it nor I coded it.
How strange, eh? But I'm not too sure about coding another emu, especially
with the answer to Question #5.

7) What do you think about the emulation scene?

My opinion of the scene is that it's going just as well as before. There is a
much bigger selection of emulators nowadays compared to before, although that
can sometimes be a bad thing such that I don't really agree on the timing of
N64 emulation (although I do respect the authors of them since it's a pretty
big task to write one of them). I also respect Bleem!'s decision on making a
commercially available emulator.

8) ZSNES or Snes9x?


... Wait! That doesn't exist!

I'd say both since they're both great.

9) How did you hook up with _Demo_ & Pharos?

I've met _Demo_ at the time when I was very interested in the program that he
was working on, Mario Improvment. I've met Pharos since he regularly visits
#zsnes efnet.

10) Who's idea was it to add SNESPAd support within ZSNES?

Initially, I was given a source code on coding for the Snespad from Karl. But
it wasn't until Pharos built an snes pad of his own before I began to add that
support to ZSNES.

11) Can you give us a few pointers and tips on creating the code
emulate a system in generial?

Once you begin working on an emulator, be sure that you're equipped with the
proper knowledge of programming since I'd strongly recommend writing an
emulator to not be a tool for learning a programming language from start, but
rather one to sharpen it. It also may be tough when it comes to writing an
emu at start for the first time so it's best to be very committed when you're
working on one. And once you pull through and reach the point where it does
something which you wanted it to initially to do, then give yourself a pat on
the back. But of course, these are just my tips and pointers so feel free to
ignore every one of them.

Usually, whenever someone e-mails me for help on this topic, I tend to refer
them a link to Marat's How to emulator :


Although I haven't really used this document since I discovered it sometime in
the middle of ZSNES' development, its questions seems to cover a nice range of
topics for those who want to start writing an emulator which is why I'd
recommend it. Also thanks to Marat for this nice contribution for the scene.
12) What do you think of this interview?

That sounds like one of those trick questions that your friend suddenly gives
you when you least expect it. I also think I've ran out of thinking power
once I reached this question and it's also pretty much my bedtime now so I
guess I'll just leave this unanswered. Is that okay? Okay. Well. Maybe
it's not okay, but I still will leave this unanswered. Hold on. Wasn't that
an answer to that question? Oh well...