The Affinity Yoshi Interview
Alan Dykes - September 24, 1996
- Please state your name and afflictions.
- I'm currently in Damaged Cybernetics and OldSkoOL. Y0SHi is fine
- y0shi: you are very popular in the console scene, what do you do?
- What do I do in the console scene huh
- yeah...
- Well, i'm pretty well known for writing The SNES Document
which most new SNES programmers use as a stepping-stone for their
first programs, assuming they don't have the actual developers
manual (because none of us do, right?)
- Actually, from what I have heard, someone does, but I am not going to say the name outloud. What do you program and what is in the SNES Document?
- Primarily, I do a multitude of things... I'm an assembly
programmer (6502/65816/x86), Pascal, perl, and other miserable
stuff. Currently i'm working on two projects which pertain to the
console community.
My first project, which took off pretty quickly, is TRaCER.
Originally, TRaCER was intended to be a 65816 code tracer, allowing people to
step through their 65816 programs so they could debug them. An emulator, in
a way; just CPU emulation though. I realized the difficulty of this project,
and therefore TRaCER quickly became one of the most popular 65c02/65816
disassemblers for the PC today.
My second project is still incognito... but, as I feel the public needs to
know what i'm doing, i'll give a few hints to what i'm up to. Recently, i've
been noticing the desire for a decent emulator. I've been noticing lots of
people concerned about speed, and stable CPU emulation. Whether it be for
the SNES, the NES, or even Z80-style CPUs, everyone seems to want fast
results. I have constructed a way to emulate the 6502 and 65816 processors
on a x86, in such a way that CPU emulation would be 100% flawless, and the
results would be faster than any emulator ever written: you have my promise
on that.
I can't discuss this method with you, as magicians don't give away their tricks :-)
- yes, I've heard that even The_Brain, the VSMC programmer, uses TRaCER..
- But, I can tell you, if the time comes to where I desire a
decent emulator, I will write one. I can also tell you this:
The code will probably be written in Borland Pascal 7.0, while
the actual CPU emulation will be done in pure assembly. Pascal will
be a front-end for file control and other minor things.
I also will give you an example of the speed it is capable of
under my emulation engine, you would be able to do two primary
things:
- Be able to emulate (and I am referring to CPU emulation
only -- *NOT* graphics, sound, or sprite emulation) the 6502/65816
(NES and SNES) on a 386 SX/33.
- The emulator engine would be modular; therefore, if someone
was to release an object segment which supported the GameGear, SMS,
or even the Genesis, the code would again run flawlessly.
Again, I need to stress I am referring to CPU emulation *ONLY*, not actual
graphics emulation, sprite emulation, or sound emulation. I refer to the CPU
itself.
Now, to answer your previous question in regards to The SNES Document.
As all SNES programmers know, Nintendo of America is very tight-assed about
giving programmers their documentation (Nintendo of Japan isn't as anal, may
I add). At the time, documentation on the SNES's registers, sprites,
and sound chip were not available to me. All I personally had was a document
from Dax, which was horrendous... and turned out to be almost 35% wrong.
In the midst of my journey to program the SNES, I wrote my own documentation,
basing it on Dax's document, correcting the flaws and etc.
Over time, this document grew to a phenomenal size, providing almost all
definitions for all registers. My document also contains source-code,
showing how to scroll two backgrounds, one controlled by the joy-pad, the
other by the CPU, as well as playing music.
- Do you distribute it freely?
- Yes, it is 100% free, and is available to anyone who wants it.
It can be found on many FTP sites all over the world.
- oops, sorry, I keep asking questions when you aren't done... Anyways, ok, I will have to post a copy with this article.
- I need to also stress something in regards to The SNES Document...
- ok
- I have been approached by Nintendo of America in regards to it
being freely available; Nintendo would like to claim that I have
been "distributing company secrets" -- as if I had stolen a copy of
their own documentation and copied it.
This is untrue, by the simple common sense that, yes, The SNES
Document *DOES* have flaws, and I am very aware of them.
Anyone who has seen it grow from 1.0, to 2.0, to 2.3 knows
that...
- ok, that is noted
- All information in my document was provided by anonymous sources, as well
as by myself, via tinkering around on the SNES.
- kewl :), about this second project, could you put it in terms that a beginner would understand for readability?
- Sure. Basically, what I could be developing would be a
new-wave of emulation engine, one which no one has ever (to my
knowledge) written.
In summary: With my CPU engine, a programmer could
successfully emulate any of the following platforms: NES, SNES,
SMS, MSX, Genesis, Turbo Grafix, Vectrex, the entire Apple II
series... And so on
For a third and final time, I need to stress that I am referring to CPU emulation *ONLY*
My engine will NOT support graphics emulation, or sound emulation. Though, I
may release a NES or SNES emulator of my own, to show the capabilities of my
engine.
- ok, so, what is your favorite gaming system? and which do you want to see emulated the most?
- Good question :-) It's a tie between the NES and the SNES...
- on both accounts?
- As i'm an old 6502 programmer, I can't but love the NES... I
was brought up on the NES (actually, Atari 2600, but hey :-) )...
The reason I love the NES so much is this:
You don't need 24-bit graphics or CD sound to make a game fun.
You don't need 540MB of data on CD-ROM to make a game worth playing
and entertaining. The NES is a 8-bit CPU, with a memory map of only
64K (excluding memory mappers)... All of us know how fun the NES is...
How can someone claim it's not, with games like Super Mario Brothers, Zelda,
Crystalis, Contra, Adventures of Lolo, Final Fantasy... should I even go on?
And the SNES... The SNES brought a revolution of change to the console gaming
industry. Some would claim the Genesis did -- and I won't deny that's true as
well... The SNES is just unbelievable for what it can do. With only a 3.6MHz
processor, and a sound chip with great capabilities... god, who could ask for
such nostalgia? :-)
Both systems are classic -- and yes, very "dead." But in the eyes of the
emulation scene, they're very much alive. Personally, to sum it up, I like
the idea of playing Blaster Master in a window on my Win95 desktop ;-)
- hehe :)
Well, that is a lot, and only a few questions. . Is there anything you would like to add? (speak freely)
- Yeah, there's a few final things.
On a semi-personal level, a lot of people have been coming to
me stating that I come across as proclaiming i'm the "God of the
SNES scene"
- You mean you're not? j/king
- I'd like to delete that whole concept from existence right
here and now by stating, I am no such thing. There are *MANY MANY*
people who are capable of programming the SNES better than I am.
For instance, my *FAVOURITE* demo on the SNES is by Censor... Sidmania.
I have many mentors of my own in the SNES scene... I look up
to a lot of people, and I ask people for help almost on a daily
basis. But, what I *AM* good at is 65816 programming. My Apple IIGS
days paid off, and not to brag or anything, but I know i'm good at
6502 and 65816... My way of saying to the public, hey, i'm normal too, is by
helping people like The Brain on the VSMC project... I want to help
educate people about this stuff which Joe Blow would consider
"taboo."
Another issue is the issue of emulators and what people desire... I want to
address this issue right now as well, because it concerns me greatly.
To all of you out there who bitch and cry about how "slow" an emulator is,
or about how it can't run your newest SNES/Genesis cart... please. Do not
put the emulator down -- give it support. Provide the authors with positive
reenforcement.
The last thing in the world I want to hear is someone putting down a project
by saying "it sucks!! it's slow!!" or "xxx's emulator is better than zzz!!!"
Yes, I realize i'm biased towards VSMC, LandyNES, GenEm, MDE, and iNES, but I
try my best to support other emulators...
So give the emulator a chance -- and HELP the authors. Provide
positive reenforcement. The last thing in the world I wanna see is
a piece of EMail telling me how my project sucks. Authors wanna see EMail
which informs them of bugs... but the best EMail is one which says "hey, i
love what you're doing -- keep up the good work!". Positive EMail *ALWAYS*
makes the author feel better, trust me. :-)
- Anything else?
- Yeah, just to throw my thanks out to those who helped me get
where I am in the console scene today
- ok, shoot
- MindRape... you've been a great help over the years i've known
you, and I don't know if I could've asked for such a great friend
to be there to help me out with things in my life ranging from
personal stuff to code
The Brain... never let anyone destroy your dreams, dude. I have
the utmost respect in what you do, and I will ALWAYS be there to
support you in every way possible
All the guys on #emu... You're all pretty fuckin' crazy, but
you know i'm there to help answer any questions you guys have, or
be there for any of ya whenever you need me.
And to the rest of the world... Hey, just what the fuck is that
drunk coconut monkey doing flying that airplane?!
;-)
- ok :) Thanx for the great interview y0shi!
- You're welcome. :-) Thanks for interviewing me, I hope I shed
some light on everything!
- I'm sure you did!
|