Design Decisions

Design Decisions

Design Decisions Chris Fernandez, Dakota Folger-Reeder, and Michael Shullick 1 On Deck ● History ● CPU Choice ● Board Layout and Architecture ● PPU ● Impact 2 ➔ 1889 Brief History of ◆ Nintendo founded in Japan as a playing card Nintendo and the manufacturer ➔ 1966 NES ◆ Nintendo shifts to toys ➔ 1975 ◆ Nintendo has success with arcade games like Donkey Kong ➔ 1983 ◆ Nintendo’s Family Computer (“Famicom”) released in Japan ◆ Video games crash in North America ➔ 1984 ◆ Nintendo releases the Advanced Video System home computer (flopped) ➔ 1985 ◆ Nintendo released the Nintendo Entertainment System 3 NES Dissection So what’s inside? 4 CPU - MOS Technology 6502 ● Introduced in 1975, a sixth of the cost of competitors ● Designed by same engineers of the Motorola 6800 ● Cost reduction performed by removing extra features of Motorola 6800 and use of new fabrication technology for depletion-mode MOSFETs. ● Used in many famous applications 5 6502 Specifications ● Proprietary derivative of the 6502 manufactured by Ricoh ● Accumulator-based with only 6 special registers ● 8-bits, little endian ● 16 bit addresses ● 1-3 MHz clock ● 56 instructions ● Fast “zero page” mode for faster access to first 256 addresses in memory, intended to be quasi-registers 6 Ricoh 2A03 - Deviations from MOS 6502 ● Hardwired to disable BCD mode of 6502 ● Memory-mapped components: ○ APU ○ DMA ○ Game controller polling ● Different versions for different regions 7 Architecture 8 Memory ● Memory is split between the CPU and the PPU(Picture Processing Unit) ● CPU Memory is divided into 3 main parts, ROM in the cartridges, the CPU RAM, and I/O registers ● CPU and PPU interact only through I/O registers 9 Memory and I/O ● The Zero Page memory addressing, which is the first page in memory was also mirrored three times between $0800 and $1FFF. ● If data is written to $0000 it is also written to $0800, $1000, and $1800. ● The I/O registers are located between $2000 and $401F ● There are 8 main I/O registers, with them being mirrored every 8 bytes between $2008 and $3FFFF ● Addresses $4000 to $4013 are used for sound, and controller input 10 Game Cartridges ● Depending on the cartridge games use different amounts of the CPU memory ● If the game has 16 kB of ROM then it only uses $C000-$FFFF ● If it has 32 kB of ROM it uses the all of the assigned memory for ROM which is $8000-$FFFF 11 Registers ● CPU had three special purpose registers, and three for general purposes ● PC, SP, and Accumulator were the three special purpose registers ○ The SP did not have a stack overflow detection and would just wrap around from $00-$FF ○ The Accumulator stored the results of operations and could be used to hold values taken from memory ● Two Index registers were used for general addressing or as a counter ● Processor Status Register held 7 flags based on the result of instructions 12 Interrupts ● There are three types of interrupts, IRQ, Non-Maskable Interrupts (NMI) and Reset ● IRQs are generated by either Memory Mappers or by software ○ Can be ignored if the Interrupt Disable Flag is set ● NMIs is generated by the PPU at the end of each frame ○ Can be ignored if bit 7 of PPU Control Register 1 is clear ● Reset interrupts are generated when the system is first turned on or the reset button is pressed 13 Picture Processing Unit (PPU) ● The custom PPU, known as the Ricoh RP2C02, was developed by Ricoh Company, Ltd. for Nintendo ● Has eight registers, visible to the CPU by its address spaces $2000-$2007 ● The PPU is responsible for interpreting data to properly display the orientation, spatial position, color, and shape of sprites ● Runs 3 times faster than the CPU clock speed NES board, PPU framed in red, CPU in blue 14 Picture Processing Unit (PPU) cont. ● The PPU sends 240 visible scan lines of sprite data to televisions to create graphical frames ● Finite set of 54 hardware controlled colors for a total of 25 concurrent colors on screen ● Able to display up to 64 moving objects on screen at a time ● Resolves at a whopping 256 × 240 pixels ● Extended capabilities through the usage of mappers NES graphical output to TV 15 PPU Memory Designation ● PPU operates in smallest graphical unit of “tiles” ● 8 kB (2 tiles of 4 kB) of ROM/RAM allocated on the Game Pak itself for tiles data ● 2 kB of external RAM to store extra maps/nametables ● 32 bytes of internal SRAM for color data Internals of NES Game Paks ● 288 total bytes of internal DRAM for Object Attribute Memory (OAM) 16 PPU Attribute Tables ● 64-byte 8x8 arrays that control spatially which color pallet should be applied to the objects in the array ● Each byte in the array is responsible for a 4x4 tile (32x32 pixel) ● This means every two-bits in a byte has the information for a quadrant of a graphical tile Attribute Table example 17 PPU Rendering Process ● Each frame is 89,342 PPU clock cycles long ● The PPU renders 262 total scanlines per frame, each lasting for a total of 341 PPU cycles ● Each rendered tile takes 4 memory accesses, each requiring 2 PPU cycles per access ● Using a combination of latches, shift registers, and counters the PPU is read in the data from memory ● This data is held in the latches until it is time to be fed to the appropriate shift registers (every 8 clock cycles) 18 PPU Timing Diagram 19 Impact & Legacy ● Poor design of front-loading cartridge ● Lockout malfunction ● Judged the second greatest console of all time by PC Magazine ● Succeeded by the Super Nintendo Entertainment System (SNES) ● NES Classic Edition released in 2016 (still unavailable everywhere) 20 References ● https://wiki.nesdev.com/w/index.php/PPU ● https://wiki.nesdev.com/w/index.php/PPU_registers ● https://wiki.nesdev.com/w/index.php/PPU_rendering ● https://en.wikipedia.org/wiki/Picture_Processing_Unit ● https://fms.komkon.org/EMUL8/NES.html ● http://nesdev.com/NESDoc.pdf 21.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    21 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us