Jeremy Chadwick ("Y0SHi") is the author of the most complete NES Tech
Specifications Document available on the web. He's an excellent personality,
and my interview with him proved to be quite informative.
|Eazy Cheeze chats with Y0SHi - May 12, '98 by Eazy Cheeze
Note: This interview was conducted via IRC by Eazy Cheeze.
Let's start at the beginning... How did you get involved in documenting the
technical information of the NES?
That's a good question. I've been an avid NES & Famicom fan for years; there's
a few explanations...
Since I documented the SNES years ago, I didnt see why I shouldn't do the
same with the NES. I'm sure I'm pushing NoA's buttons, but ...
I had my own personal reasons as well. I'd have to say the majority of American
youth during the 80s were really into the NES, and found it to have some
really classic games...
I happened to be one of those youths, but I actually wanted to know how the
So I set off on my quest to obtain information. Marat Fayzullin's
documentation was a huge incentive: his explanations lacked verbosity, and so
I felt the need to help programmers out, once again...
plus, I have my own NES projects going on behind-the-scenes right now...
some might say my interest in the technical aspect of the NES was sparked when
I had to re-build my Famicom from two Famicoms, since some of the parts in one
worked, but didn't in the other...
or maybe it was the fact that when I got my first NES, it didnt come with
Super Mario Brothers -- it came with what I call the BBB: Big Black Book, the
Nintendo Players Guide...
I mean, what good is the BBB without any games? I asked myself that question,
so to keep myself amused as a kid, I ripped open my NES to see what it had
inside of it :-)
I think it's a combination of all of the above.
Very cool. I also believe that the NES was a classic system with many classic
games. What are your favorite games? Any one favorite genre?
Haha, I have a few favorites...
but I'd have to say, adventure games are my favorite, shooters being 2nd up,
and finally RPGs...
in regards to specifics, my favourite adventure game is WaI WaI World...
my favourite shooter for the Famicom is Recca...
and my favourite RPG for the NES is probably Destiny of an Emperor
For our readers, please describe these games, starting with WaI WaI World.
WaI WaI World just blows any adventure game out of the water. I'm an avid
KonamI fan (applied to work there too many times =D)... years ago, a Taiwanese
friend of mine brought his Famicom to school, and I brought my 4" B&W portable
TV there as well, and we played WaI WaI World for the first time...
the game itself consists of six (6) KonamI games put into one...
well actually... hmm. seven (7) if you consider the final level :-)
it's a two-player simultaneous game, where you start out as KonamI Man and/or KonamI Girl
you set out to rescue fellow KonamI members, such as Mikey from The Goonies 1/2, Simon from Castlevania, etc...
you can switch players realtime, just by hitting Up and Jump.
each player has their own special weapon, and you can obtain items like the
cape, which allow you to fly, etc...
once you rescue all of your friends, you set off to another planet, to destroy
some evil monster...
you'll have to play the game to find out what exactly happens :-)
The game was never released in the US because the majority of the characters
you play are from Famicom games, hence Americans would have NO IDEA who Fuu of
Getsufuu Maden is, etc. etc.
Now, let's move on to Recca.
Recca was a game released by NaxatSoft, during the summer of 1992 in Japan
it's an *EXTREMELY* high-speed bidirectional vertical shooter -- by
bidirectional, I mean you have to fight going forwards and later on, backwards
the game pulls off some seriously awesome tricks
the NES has a 64-sprite limitation, and I'd have to say the game uses a good
64-128 on-screen most of the time.
I can safely say, do not play this game if you're known for having epileptic
you'll just have to play it. it's the fastest shooter I've EVER played in my
but yes, I have finished it, without a realtime save or without cheating :-)
And lastly, Destiny of an Emperor, which, as I understand, has
made it to the U.S.
Destiny of an Emperor was a game released in the US and in Japan by Capcom in
a lot of americans don't understand the relevancy of the game to Chinese
the game isn't necessarily "accurate" in regards to historical aspects, but
Liu BeI was an ancient ruler of China, and so the game itself does have some
The game starts out somewhere in China (sure doesn't look like China =D), and
you're asked by the emperor to take back the main castle from a band called
the Yellow Scarves.
Well, the game kinda takes on a different plot after you take the castle
back... the reason I like the game so much is quite simple
most RPGs like Dragon Warrior and FF, you walk around *SLOWLY*
in Destiny of an Emperor, you walk extremely fast, and this was one of the
things I really enjoyed
I could get from place to place quickly, without having to watch the
character tie his shoes on the way, so-to-speak
it's got a great plot, and the music is wonderful.
How is the translation quality in this game?
I originally played the American version; my Japanese friend actually informed
me that the translation was very accurate
I mean, how hard is it to translate factual Chinese history in Japanese to
the real goal is just to become the ruler of China, but hey... what can ya
Please describe the basic memory mappers, in terms of complexity and of
compatibility with current emulators.
Well, all of the mappers are a pain in the $#@!, no matter how complex or
simple they are, to be honest
fwNES has the most diverse support for mappers, but fwNES also is making up
it's own mapper numbers, without Marat Fayzullin (author of the .NES format)'s
Nofrendo and NESticle both support all the generic mappers, while fwNES
supports more of the "rare" mappers used in Famicom games
fwNES is the most compatible right now, but is lacking in other areas
Nofrendo is "behind the times," but not for long >=) that's all I can say
NESticle is considered a dead project, but I wouldn't put any money on that...
NESticle is what I use, personally, as it has all of the features I desire,
and allows for a plethora of gamepads to be used for joypad emulation
I was thinking you could tell us about the first five mappers, since most
games that the general public is aware of utilized these mappers.
- Mapper #0 is non-existent; it just means there's no mapper used...
- Mapper #1 is synonymous with MMC1, which is Nintendo's first attempt at a
mapper... It's used in Zelda 1, MegaMan 2, as well as Dragon Warrior 4...
there's two revisions of this mapper; MMC1a and MMC1b...
Nintendo re-vamped the mapper for DW4, and added support for larger PRG-ROM
addressing, as DW4 is 512K =D
the mapper itself is pretty simplistic; it allows for the switching of PRG-ROM
and CHR-ROM but there's no special features, honestly.
- Mapper #2 is a simple 74HC161 chip, which only allows for the switching of
PRG-ROM. Castlevania 1 and MegaMan 1 use this chip... its *VERY* cheap (and was at the
time too), and doesn't allow for anything complex. oh yeah, FF2j used this
- Mapper #3 is the same as mapper #2, but it's used for CHR-ROM.
Solomon's Key, Gradius, and some other carts use this. its not as common as
mapper #2 though.
- Mapper #4 is Nintendo's MMC3, which really revolutionized how people saw the
NES. First off, the mapper allows you to swap in CHR-ROM to almost any PPU RAM
page, which is useful to programmers. quick and easy methods of switching
secondly, it allowed for mirroring selection realtime -- something which was
left out of other mappers for the most part.
it also allowed for the ability to enable/disable SRAM; I guess some games use
the most revolutionary thing about MMC3 was that you could force an IRQ based
on a value you'd give the mapper
the value would count down automatically per frame -- what good is this?
simple: it allows for all the split-screen effects you see in MMC3 games.
- Mapper #5 is Nintendo's MMC5, which is the anti-Christ, so-to-speak
everyone knows of this mapper, since Castlevania 3 used it
MMC5 is insane. it allows for the playback of audio data through the MMC,
read directly from PRG-ROM banks...
it has it's own accumulator
it allows for four-screen mirroring, so you can swap in and out graphics to
any area which may be appearing on the screen before you scroll
I'd have to say the most revolutionary aspect of MMC5 is the fact that it
actually increases the number of useable tiles from 256 to 65536, as well as
increases the on-screen colour count
basically, MMC5 is MMCs 1, 2, and 3 put into one, plus a TON of new features.
Discuss 'timing' in NES games.
The "timing" term people use is actually pretty dirty...
basically, a screen refresh (VBlank) takes a specific amount of CPU cycles to
when VBlank occurs plays a huge role in games like Adventures of Bayou Billy,
where you get a nice sexy little sin-wave pseudo fade-in =D
basically, a game expects the VBlank to occur at a certain scanline; it makes
use of this feature to do things while VBlank is occuring.
It's hard to emulate this in a software emulator, since it's mainly a hardware
VBlanks occur 60 times a second on an NTSC device, or 50 times a second on a
The "timing" term people use is important.
Games are supposed to wait for the VBlank to occur, then re-set the PPU RAM
address they wish to write to, then do their graphic updates
well, a lot of games don't do this, as waiting for VBlank takes a good amount
so, programmers like Square program their games with very "timing sensitive"
meaning, rather than wait for a VBlank, they know exactly how many cycles
it'll be between a VBlank and the next
so they just cram their code between the previous VBlank and the one about to
rather than wait for it to occur, they try to fit as much in as they can.
"Bad timing" results in things like flickering graphics, or sometimes,
graphics show up wrong, or the game crashes (most common).
I'd really have to go into it in-depth to explain it, it's a lot to type out...
I'm being real generic with my terms here, for the sake of the readers =D.
That's all right. We probably all know the effects of bad timing
:) (the introductory demo in Kirby's Adventure; the whole game of Mach Rider)
Well, Mach Rider uses the same effect that Bayou Billy does
mid-HBlank updates... but I'd prefer not to go into that =D I'd have to
explain what VBlank and HBlank are
Please define 'PPU' as used earlier.
PPU = Picture Processing Unit, the thing used to put graphics/sprites on the
screen. it interacts with the NTSC/PAL device (usually a TV) directly.
Anything else of a mildly technical nature that we should know about?
Not really. the NES is a monster. if you plan on writing an emulator on it,
you're definitely an insane bastard.
I'd recommend you pick another console, as the NES is pretty worn out IMHO...
We've got too many emulators for it. I enjoy playing the games more than I do
working on them =D.
Icer is definitely a master at emulation to have gotten this far with
Icer's pretty much like the rest of us; educated, and clueless simultaneously.
There's very little left on the NES to document... and I plan to cover it soon
Well Jeremy, thank you for your time!
One Article Up: Neo Geo Page updated
One Article Down: MAME & IC make the San Jose News