1 / 27

Emulating the Nintendo Entertainment System

Emulating the Nintendo Entertainment System. By Danny Matthews Supervised by Dr Des Watson. Emulation. “ A very precise form of simulation which enables one type of computer to operate as if it were a different type of computer. ” - BCS. Executed on. Executed on. NES Software. NES

evania
Télécharger la présentation

Emulating the Nintendo Entertainment System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Emulating the Nintendo Entertainment System By Danny Matthews Supervised by Dr Des Watson

  2. Emulation “A very precise form of simulation which enables one type of computer to operate as if it were a different type of computer.” - BCS Executed on Executed on NES Software NES Emulator Executes on Executed on Executed on

  3. NES Overview • 8 Bit Video Games Console • Released in 1983 • Hugely Successful: • 60 Million Units Sold • Over 1000 Released Titles • Finally Discontinued in 1995: • Super Nintendo - 1990 • Sony Playstation – 1994 • Major Player in Revitalising the Market After the Crash of 1983

  4. Project Overview • NES • Four Main Units • Central Processing Unit (CPU) • Picture Processing Unit (PPU) • Audio Processing Unit (APU) • Input • Development Tools • Debugger • Name Table Viewer • Pattern Table Viewer Implemented using Java 1.5

  5. Motivations • Long Time interest in Computer Emulation • The NES in particular, for reasons of nostalgia • Interest in the logic behind the Hardware • Respect for the developers forced to work with such a constrained environment • Great Extension Possibilities

  6. Central Processing Unit (CPU) • 151 Official Op-codes • 13 Addressing Modes • 7 Registers • 7 Regions of Memory

  7. Central Processing Unit (CPU) Memory Mapping Uses Memory Mapping to Interact With External Hardware. Reading/Writing to Certain Locations in Memory Actually reads/writes to external memory and registers. Memory Mirroring Certain Locations in Memory "mirror" the Contents of Other Locations. Writing to a Mirrored Location Will Change the Content in All Mirroring Locations Also.

  8. Central Processing Unit (CPU) Reads From The NES Cartridge Reads/writes to the PPU, APU and I/O Registers Writing to $0800-$2000 Behaves identically to writing to $0000-$07FF

  9. Picture Processing Unit (PPU) • Renders the Generated Images to the Television • Four Main Issues • Colour Palettes • Pattern Tables • Name Tables • Sprites

  10. Picture Processing Unit (PPU) Colour Palettes • 52 Possible Colours (Master Palette) • Two Useable Palettes: • Image Palette • Sprite Palette • 25 Colours on Screen at Any One Time Master Palette

  11. Picture Processing Unit (PPU) Pattern Tables • Store 8x8 Tiles • 256 Tiles Per Table

  12. Picture Processing Unit (PPU) Sprite Table Image Table

  13. Picture Processing Unit (PPU) Sprites • Images Capable of Independent Movement Around the Screen • Sometimes Controllable by the User • Made up of tiles from the Pattern Tables Made up of 8 Tiles Made up of 4 Tiles

  14. Picture Processing Unit (PPU) Name Tables • 32 x 30 Table • Each Element Stores a Reference to a Tile in one of the Pattern Tables • These Tables are Used to Form the Backgrounds Contains References to Interpreted by the PPU as Name Table

  15. Picture Processing Unit (PPU) Pattern Tables Name Tables Images Sprites Sprites

  16. Audio Processing Unit (APU) • 5 Sound Channels • 2 Pulse Channels • Triangle Channel • Noise Channel • Delta Modulation Channel (DMC) • Mixer

  17. Audio Processing Unit (APU) Waveform Channels • Each contain a sequence of values to be output. • This sequence is stepped through at a user-defined rate (period) • Until the sequence is progressed, the current sequence value is output periodically e.g. given the sequence {0,1} and a period of 5: [0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0…]

  18. Audio Processing Unit (APU) Pulse Channel • Two Possible Voltages (0 or 1) • Four Possible Duty Cycles • 16 Level Volume • Pitch Bending Capabilities

  19. Audio Processing Unit (APU) Triangle Channel • 16 Possible Voltages (0-15) • Fixed Volume • Capable of Longer play duration than the other channels

  20. Audio Processing Unit (APU) Noise Channel • Outputs a Pseudo-Random sequence of bits • TwoModes: • 93 Possible Voltages • 32767 Possible Voltages • 16 Level Volume

  21. Audio Processing Unit (APU) Delta Modulation Channel (DMC) • Allows the Playback of Audio Samples From Memory • Achieved Through the Use of Three Units: • Memory Reader • Sample Buffer • Output Unit

  22. Audio Processing Unit (APU) Mixer • Input: The Output of all 5 Sound Channels • Output: An Analogue Audio Signal Triangle Pulse 1 Mixer Analogue Signal Pulse 2 Noise DMC

  23. Input Standard Controller • Movement in Four Directions • Two “Action” buttons • Two “Control” Buttons Movement “Control” “Action”

  24. Development Tools Memory Viewer CPU Memory PPU Memory Debugger Disassembler System State CPU Registers PPU Registers PPU State Breakpoint System Interrupt Points Register Value Points Step/Resume Functionality

  25. Development Tools Name Table Viewer Name Table Data Display Name Tables Scroll Lines Attribute Table Information Display Options

  26. Development Tools Pattern Table Viewer Tile and Palette Information Pattern Tables Display Options Palettes

  27. The Software in Action Graphical Auditory

More Related