- News for May 12, '98 -





Eazy Cheeze chats with Y0SHi - May 12, '98 by Eazy Cheeze
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.
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 machine worked...
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 seizures... you'll just have to play it. it's the fastest shooter I've EVER played in my life 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 1989 a lot of americans don't understand the relevancy of the game to Chinese history though 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 relevancy...
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?

Perfect. 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 English? =D the real goal is just to become the ruler of China, but hey... what can ya say =D

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 consent. 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 about that.
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 chip too.
  • 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 graphics... 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 this? heh... 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 occur 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 thing... VBlanks occur 60 times a second on an NTSC device, or 50 times a second on a PAL device.
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 of time so, programmers like Square program their games with very "timing sensitive" code... 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 occur 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 NESticle.

Icer's pretty much like the rest of us; educated, and clueless simultaneously. =D There's very little left on the NES to document... and I plan to cover it soon enough >=)

Well Jeremy, thank you for your time!
Sure thing

One Article Up: Neo Geo Page updated
One Article Down: MAME & IC make the San Jose News

Post Some NEW Comments on this topic...

2001 EmuViews