NESTECH.TXT

(65 KB) Pobierz
+---------------------------------------------+
| Nintendo Entertainment System Documentation |
|                                             |
| Version: 2.00                               |
+---------------------------------------------+

+-------------------+
| Table of Contents |
+-------------------+

        1. Introduction
          A. Disclaimer
          B. Why?
          C. Mission
          D. Dedications
          E. "Thank You"s
        2. Acronymns
          A. Internals
          B. Hardware
        3. CPU
          A. General Information
          B. Memory Map
          C. Interrupts
          D. NES-specific Customizations
          E. Notes
        4. PPU
          A. General Information
          B. PPU Map
          C. Name Tables
          D. Pattern Tables
          E. Attribute Tables
          F. Palettes
          G. Name Table Mirroring
          H. Palette Mirroring
          I. Background Scrolling
          J. Screen and Sprite Layering
          K. Sprites and SPR-RAM
          L. Sprite #0 Hit Flag
          M. Horizontal and Vertical Blanking
          N. $2005/2006 Magic
          O. VRAM Read/Writes
          P. Notes
        5. pAPU
        6. Joypads, paddles, expansion ports
          A. General Information
          B. The Zapper
          C. Four-player devices
          D. Paddles
          E. Power Pad
          F. R.O.B. (Robot Operated Buddy)
          G. Signatures
          H. Expansion ports
          I. Notes
        7. Memory Mapping Hardware
        8. Registers
        9. File Formats
          A. iNES Format (.NES)
       10. Programming the NES
          A. General Information
          B. CPU Notes
          C. PPU Notes
       11. Emulation
          A. General Information
          B. CPU Notes
          C. PPU Notes
          D. APU Notes
       12. Reference Material
          A. CPU Information
          B. PPU Information
          C. APU Information
          D. Memory Mapper Information
          E. Mailing Lists
          F. WWW Sites
          G. Hardware Information



+-----------------+
| 1. Introduction |
+-----------------+
  
  A. Disclaimer
  -------------
    I am in no way held responsible for the results of this information.
    This is public-domain information, and should not be used for commercial
    purposes.  If you wish to use this document for commercial purposes,
    please contact me prior to development, so that I may discuss the outline
    of your project with you. I am not trying to hinder anyone financially:
    if you wish to do real Nintendo Entertainment System development, con-
    tacting either Nintendo of America or Nintendo Company, Ltd. would be
    wise. Their addresses are listed here:

      Nintendo of America               Nintendo Company, Ltd.
      P.O. Box 957                      60 Fukuine
      Redmond, WA 98073                 Kamitakamatsu-cho,
      USA                               Higashiyama-ku,
                                        Koyoto 602, Japan

    All titles of cartridges and console systems are registered trademarks
    of their respective owners. (I just don't deem it necessary to list
    every single one by hand).


  B. Why?
  -------
    At the time this document was created, there was only one piece of lit-
    erature covering the internals to the NES: Marat Fayzullin's documen-
    tation, otherwise known as "NES.DOC".

    While Fayzullin's documentation was lacking in many areas, it provided a
    strong base for the basics, and in itself truly stated how complex the
    little grey box was.

    I took the opportunity to expand on "NES.DOC," basing other people's
    findings, as well as my own, on experience; experience which has helped
    make this document what it has become today. The beginning stages of this
    document looked almost like a replica of Fayzullin's documentation, with
    both minor and severe changes. Marat Fayzullin himself later picked up a
    copy of my documentation, and later began referring people to it.

    Keep in mind, without Marat's "NES.DOC" document, I would have never had
    any incentive to write this one.


  C. Mission
  ----------
    The goal of this document is simplistic: to provide accurate and up-to-
    date information regarding the Nintendo Entertainment System, and it's
    Famicom counterpart.


  D. Dedications
  --------------
    I'd like to dedicate this document to Alex Krasivsky. Alex has been a
    great friend, and in my eyes, truly started the ball of emulation
    rolling. During the good times, and the bad times, Alex was there.
    Spasibo, Alex; umnyj Russki...


  E. "Thank You"s
  ---------------
    I'd like to take the time and thank all the people who helped make this
    document what it is today. I couldn't have done it without all of you.

      Alex Krasivsky            - bcat@lapkin.rosprint.ru
      Andrew Davie
      Avatar Z                  - swahlen@nfinity.com
      Barubary                  - barubary@mailexcite.com
      Bluefoot                  - danmcc@injersey.com
      CiXeL
      Chi-Wen Yang              - yangfanw@ms4.hinet.net
      Chris Hickman             - typhoonz@parodius.com
      D                         - slf05@cc.usu.edu
      Dan Boris                 - dan.boris@coat.com
      David de Regt             - akilla@earthlink.net
      Donald Moore              - moore@futureone.com
      Fredrik Olsson            - flubba@hem2.passagen.se
      Icer Addis                - bldlust@maelstrom.net
      Jon Merkel                - jpm5974@omega.uta.edu
      Kevin Horton              - khorton@iquest.net
      Loopy                     - zxcvzxcv@netzero.net
      Marat Fayzullin           - fms@cs.umd.edu
      Mark Knibbs               - mark_k@iname.com
      Martin Nielsen            - mnielsen@get2net.dk
      Matt Conte                - itsbroke@classicgaming.com
      Matthew Richey            - mr6v@andrew.cmu.edu
      Memblers                  - 5010.0951@tcon.net
      MiKael Iushin             - acc@tulatelecom.ru
      Mike Perry                - mj-perry@uiuc.edu
      Morgan Johansson          - morgan.johansson@mbox301.swipnet.se
      Neill Corlett             - corlett@elwha.nrrc.ncsu.edu
      Pat Mccomack              - splat@primenet.com
      Patrik Alexandersson      - patrikus@hem2.passagen.se
      Paul Robson               - AutismUK@aol.com
      Ryan Auge                 - rauge@hay.net
      Stumble                   - stumble@alpha.pulsar.net
      Tennessee Carmel-Veilleux - veilleux@ameth.org
      Thomas Steen              - Thomas.Steen@no.jotankers.com
      Tony Young                - KBAAA@aol.com
      Vince Indriolo            - indriolo@nm.picker.com
      \FireBug\                 - lavos999@aol.com

    Special thanks goes out to Stumble, for providing a myriad of infor-
    mation over IRC, while avoiding sleep to do so.


+--------------+
| 2. Acronymns |
+--------------+

  A. Internals
  ------------
    CPU     - Central Processing Unit: Self-explanitory. The NES uses a
              standard 6502 (NMOS).
    PPU     - Picture Processing Unit: Used to control graphics, sprites,
              and other video-oriented features.
    pAPU    - pseuedo-Audio Processing Unit: Native to the CPU; generates
              waveforms via (5) audio channels:: four (4) analogue, and
              one (1) digital. There is no physical IC for audio process-
              ing nor generation inside the NES.
    MMC     - Multi-Memory Controller: Micro-controllers used in NES games
              to access memory beyond the 6502 64Kbyte boundary. They can
              also be used to access extra CHR-ROM, and may be used for
              "special effects" such as forcing and IRQ, and other things.
    VRAM    - Video RAM: The RAM which is internal to the PPU. There is
              16kbits of VRAM installed in the NES.
    SPR-RAM - Sprite RAM: 256 bytes of RAM which is used for sprites. It is
              not part of VRAM nor ROM, though it's local to the PPU.
    PRG-ROM - Program ROM: The actual program-code area of memory. Also can
              be used to describe areas of code which are external to the
              actual code area and are swapped in via an MMC.
    PRG-RAM - Program RAM: Synonymous with PRG-ROM, except that it's RAM.
    CHR-ROM - Character ROM: The VRAM data which is kept external to the PPU,
              swapped in and out via an MMC, or "loaded" into VRAM during the
              power-on sequence.
    VROM    - Synonymous with CHR-ROM.
    SRAM    - Save RAM: RAM which is commonly used in RPGs such as "Cry-
              stalis," the Final Fantasy series, and "The Legend of Zelda."
    WRAM    - Synonymous with SRAM.
    DMC     - Delta Modulation Channel: The channel of the APU which handles
              digital data. Commonly referred to as the PCM (Pulse Code
              Modulation) channel.
    EX-RAM  - Expansion RAM: This is the memory used within Nintendo's MMC5,
              allowing games to extend the capabilities of VRAM.


  B. Hardware
  -----------
    NES     - Nintendo Entertainment System: Self-explanitory.
    Dandy   - Synonymous (hardware-wise) with the Famicom.
    Famicom - Synonymous with the NES, except for not supporting the RAW
              method of DMC digital audio playback.
    FDS     - Famicom Disk System: Unit which sits atop the Famicom, support-
              ing the use of 3" double-sided floppy disks for games.



+--------+
| 3. CPU |
+--------+

  A. General Information
  --------------...
Zgłoś jeśli naruszono regulamin