Articles Index
Front Page

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

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:

  1. 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.

  2. 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...

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!

Archaic Ruins is not connected or affiliated with any mentioned company in any way. The opinions of Archaic Ruins do not reflect the views of the various companies mentioned here. Companies and all products pertaining to that company are trademarks of that company. Please contact that company for trademark and copyright information.
© 1997/1998 Archaic Ruins